10.0 | 10.0-javax
Noteworthy changes from 9.x
The following three classes will continue to function, but have been deprecated and will be removed in a future release:
Plugin
(useInjectPlugin
instead)Module
(useAvajeModule
instead)PropertyRequiresPlugin
(useConfigPropertyPlugin
instead)
-
AOP related classes/annotations have been moved to a separate artifact and added as a transitive dependency (those using JPMS will need to add
requires io.avaje.inject.aop
to use AOP) -
All spi class implementations should now be registered as
InjectExtension
instances in JPMS. -
to assist with the above, avaje spi service has been added as a transitive dependency of the generator
-
Qualifiers preserve their case (no longer forced lower case) for
BeanEntry
and@QualifierMap
keys (but still use case insensitive matching for wiring)
New Features
- Adds native support for wiring generic types across multi-module projects/libraries
- Adds CDI-like event annotations and functionality via codegen
- Adds a
strictWiring
flag to@InjectModule
to determine multi-module wiring order at compile time. - Adds
@External
annotation for disabling validation for beans provided at runtime - The Maven/Gradle plugins now use the same version as
avaje-inject
instead of having separate versions
What's Changed
-
Fix support for @prototype with Provider by @rbygrave in #541
-
Refactor simplify lazy to use existing OnceProvider by @rbygrave in #542
-
Support Generic Auto Provides/Requires by @SentryMan in #498
-
Add something like Jakarta
@Observes
by @SentryMan in #491 -
Add a switch to determine multi-module wiring order at compile time. by @SentryMan in #479
-
inject-maven-plugin: Add default lifecycle and goal support by @rbygrave in #544
-
Add http validator to autodetected plugins by @SentryMan in #546
-
Qualifiers preserve their case (no longer forced lower case) for BeanEntry and @QualifierMap keys (but still using case insensitive matching for wiring) by @SentryMan in #548
-
Prefer intra-module beans when resolving type (v2) by @rbygrave in #557
-
Adds
@External
annotation by @SentryMan in #553 -
Auto Generate Event Publishers by @SentryMan in #554
-
#555 No qualifier injection point prefers no qualifier bean (over named bean) by @rbygrave in #562
-
Fix escape quotes on Event with qualifiers with string members (otherwise compiler error) by @SentryMan in #558
-
Backwards Compatible Generic Modules by @SentryMan in #567
-
maven plugin: #567 Followup, Simplify ServiceLoader of InjectPlugin by @rbygrave in #568
-
#567 Backwards Compatible Generic Modules, restore Module interface by @rbygrave in #575
-
Tidy Event internals - use a static priority Comparator by @rbygrave in #576
-
Remove System.out use in ExternalProvider and minor tidy by @rbygrave in #577
-
Multi-register beans with
List
Factory Methods by @SentryMan in #579 -
Fix a NPE in InjectProcessor when InjectModule annotation is null by @rbygrave in #586
-
Restore autoProvides to exclude http controllers and generated http routes by @rbygrave in #587
-
Fix Factory Map generation by @SentryMan in #583
-
Fix for unnamed generic types returned by @factory @bean by @rob-bygrave in #589
-
Refactor SPI interfaces by @SentryMan in #570
-
let spi service take care of module validation by @rbygrave in #593
-
Update README to provide doc for InjectSPI by @Mechite in #594
-
Remove Duplicate SPI dependency by @SentryMan in #596
-
Add GA/EA JDK to PR builds by @SentryMan in #597
-
Split Events into their own module by @SentryMan in #600
-
Split AOP into a separate module by @SentryMan in #601
-
Change workflow to run on forked PRs by @SentryMan in #602
-
Simplify Generated Proxy Classes by @SentryMan in #607
-
Rename InjectSPI to InjectExtension by @SentryMan in #608
-
Rename Property Plugin from PropertyRequiresPlugin to ConfigPropertyPlugin by @SentryMan in #572
-
Remove
InjectSPI
from events by @SentryMan in #611 -
Refactor rename AvajeModuleData to ModuleData, plus some method renames, plus imports by @rbygrave in #612
-
Write SPIs to META-INF/generated-services so that they can be merged later via avaje-spi-service by @SentryMan in #616
-
Fix Plugin Service Configuration Error by @SentryMan in #620
-
Use Avaje Prisms for module-validation by @SentryMan in #621
-
Remove references to avaje-spi-service which is no longer used by @rbygrave in #623
-
Process Avaje SPI @Serviceprovider for writing service META-INF/services file entry by @SentryMan in #624
-
Refactor internals - In InjectProcessor use APContext.isAssignable(te… by @rbygrave in #625
-
Make Annotations Source Retention by @SentryMan in #631
-
Writes a file to signal inject's presence by @SentryMan in #634
-
Update Generated Imports by @SentryMan in #636
-
Update Javadocs by @SentryMan in #638
-
Bump lots of dependencies
Full Changelog: 9.12...10.0