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(use- InjectPlugininstead)
- Module(use- AvajeModuleinstead)
- PropertyRequiresPlugin(use- ConfigPropertyPlugininstead)
- 
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.aopto use AOP)
- 
All spi class implementations should now be registered as InjectExtensioninstances 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 BeanEntryand@QualifierMapkeys (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 strictWiringflag to@InjectModuleto determine multi-module wiring order at compile time.
- Adds @Externalannotation for disabling validation for beans provided at runtime
- The Maven/Gradle plugins now use the same version as avaje-injectinstead 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 @Observesby @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 @Externalannotation 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 ListFactory 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 InjectSPIfrom 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