[
https://issues.apache.org/jira/browse/LOG4J2-2854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Sicker resolved LOG4J2-2854.
---------------------------------
Fix Version/s: 3.0.0
Resolution: Fixed
Merged in master.
> Create standardized dependency injection API
> --------------------------------------------
>
> Key: LOG4J2-2854
> URL: https://issues.apache.org/jira/browse/LOG4J2-2854
> Project: Log4j 2
> Issue Type: New Feature
> Components: Core
> Reporter: Matt Sicker
> Assignee: Matt Sicker
> Priority: Major
> Fix For: 3.0.0
>
>
> In the 2.x plugin API, we do not have a generic dependency injection
> mechanism. We do have a similar system in Configuration for injection
> configuration data into Core plugins. There are other attempts at user
> configuration injection into other classes through system properties as well.
> In the 3.0 API, a more generic and unified dependency injection API should be
> provided. This should be analogous to how the [standard javax.inject
> API|https://docs.oracle.com/javaee/6/api/javax/inject/Inject.html] works.
> This should include a way to specify how a class can be instantiated through
> either {{@Inject}} on the constructor or {{@Produces}} on a method. The
> produces version should replace the existing methods of binding configuration
> data to the {{@Plugin(Builder)Factory}} annotations. Combined with scopes
> (LOG4J2-2852) and qualifiers (LOG4J2-2853), this will allow for a lot of code
> in log4j-core to be refactored to remove boilerplate code related to object
> construction and lifecycle management.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)