Skip to content

v3.0.0-alpha.12 | Components hotfix and dependency injection improvements

Pre-release
Pre-release
Compare
Choose a tag to compare
@freya022 freya022 released this 07 Mar 18:48
· 479 commits to 3.X since this release
adc5388

JDA version

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