v3.0.0-alpha.12 | Components hotfix and dependency injection improvements
Pre-release
Pre-release
Overview
Components hotfix and dependency injection improvements
Allow multiple service providers using the same name (#157)
Services that uses the same name will no longer throw an exception at startup, however, in this case, getting the service by its name won't work, as it selects more than one.
New features
Dependency injection
- Prevent usages of conditions on
object
classes- Singletons always get instantiated, using conditions does not make sense
- Report service factories as being unusable if their declaring class is unusable
- This means that a failing condition of a class will also disable service factories inside it
- Property-based service factories are now registered using the property name
- Added
@BConfiguration
- No-op annotation for classes that purely provide service factories
Application commands
- Exposed a
BContext
in application command managers
Changes
Dependency injection
- [Small breaking] Added the requested service name to
DynamicSupplier
- Multiple service providers with the same name are now allowed
- Indirect annotations are no longer read
- This prevents reading meta-annotations, as they are not supported everywhere
- Improved service error formatting
Fixes
Dependency injection
- Fixed issues when multiple factories supplied the same type
Components
- Fixed an issue related to autogenerated keys, preventing from storing components using PostgreSQL
Don't hesitate to check out the changelogs and the wiki.
Full Changelog: v3.0.0-alpha.11...v3.0.0-alpha.12