jvz opened a new pull request, #1752:
URL: https://github.com/apache/logging-log4j2/pull/1752

   It's time to rewrite the DI subsystem _one more time!_ To simplify the 
provenance of this long-time effort, all related changes here have been 
squashed back together. This addresses numerous items:
   
   - Rename `Injector` to `InstanceFactory` with a subinterface 
`ConfigurableInstanceFactory` and embrace some lessons from Spring
   - Teach `Condition`/`Conditional` API to support multiple conditions
   - Fix `ConditionalOnProperty`
   - Add `ConditionalOnMissingBinding`
   - Rename `ReflectionAccessor` to `ReflectionAgent`
   - Add several more specific exception classes
   - Add `org.apache.logging.log4j.plugins.di.spi` package for SPI-related 
classes in DI
   - Replace named `Function<String, String>` instance with 
`StringValueResolver` interface
   - Replace `InjectorCallback` concept with 
`ConfigurableInstanceFactoryPostProcessor` service class vaguely comparable to 
Spring's `BeanFactoryPostProcessor` family of classes
   - Add `FactoryResolver` strategy interface for abstracting resolution of 
"special" factories to simplify integration with configurable plugin annotation 
handling
   - Add `InstancePostProcessor` interface similar to Spring's 
`BeanPostProcessor` API for processing instances created through DI
   - Add and update API docs for plugin and DI things
   - Remove unused `Configuration::getPluginPackages` method and backing field
   - Add built-in bindings for `PropertyEnvironment` and `ClassLoader`
   - Split up `DefaultBundle`
   - Add `@ConfigurationFactoryType` JUnit 5 extension for defining a 
`ConfigurationFactory` class to use in a test
   - Add `LoggerContextSource::selector` option for specifying a 
`ContextSelector` class to use in a test
   
   [A clear and concise description of what the pull request is for along with 
a reference to the associated issue IDs, if they exist.]
   
   ## Checklist
   
   * Base your changes on `2.x` branch if you are targeting Log4j 2; use `main` 
otherwise
   * `./mvnw verify` succeeds (if it fails due to code formatting issues 
reported by Spotless, simply run `./mvnw spotless:apply` and retry)
   * Non-trivial changes contain an entry file in the `src/changelog/.2.x.x` 
directory
   * Tests for the changes are provided
   * [Commits are 
signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
 (optional, but highly recommended)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to