Releases: avaje/avaje-inject
11.0
What's Changed
- Fix Repeatable Annotation Name Collision by @SentryMan in #739
- Breaking change - Remove support for Deprecated Interfaces (please upgrade dependencies) by @SentryMan in #670
Full Changelog: 10.6.0...11.0
10.6
What's New
- Merging
META-INF/services/io.avaje.inject.spi.InjectExtension
entries via the shade/assembly maven plugin or theshadowJar
gradle tasks is no longer required for multi-module projects.
Changes
- Fix odd null pointer in module detection by @SentryMan in #732
- Merge Detected Services into
META-INF
by @SentryMan in #733 - Fix Lazy Checked Exceptions by @SentryMan in #737
- Mark Generated Avaje HttpClient implementations as Closeable by @SentryMan in #734
- Rename
isAddBeanFor
toisBeanAbsent
by @SentryMan in #727
Full Changelog: 10.5...10.6
10.5
What's New
- Projects having a module definition (a
module-info.java
) should no longer require the inject maven/gradle plugin to detect externalAvajeModule
instances at compile time. - New
@PluginProvides
annotation for registeringInjectPlugin
implementations. Plugins that use the new annotation to register will receive similarmodule-info.java
auto-detection benefits.
Changes
- Tidy Internals by @SentryMan in #697
- Generate Meta-INF/services entry for
inject-events
by @SentryMan in #704 - [events] Use runAsync by @SentryMan in #706
- Fix Inject-test such that it does NOT have a dependency on inject-events by @SentryMan in #708
- Cease reading supertypes for
java.lang
by @SentryMan in #712 - Fix Gradle Build Folder Detection by @SentryMan in #711
- Change MetaData to be Comparable and sort to deterministic order by @rbygrave in #714
- Mark maven plugin goal as thread safe by @SentryMan in #715
- Reproducible Build by @SentryMan in #709
- MetaData use isEmpty() instead of size() > 0 by @rob-bygrave in #717
- Use Module Path to Find External Modules by @SentryMan in #718
- Change generator logError to use format over string concatenation by @rob-bygrave in #719
- Remove
exports
limitation from Module Path Detection by @SentryMan in #720 - Fix Gradle Test Resource Detection by @SentryMan in #725
- Handle
EventPublishWriter
TypeElement
nulls by @SentryMan in #726 - Add annotation for module-path
InjectPlugin
auto-detection by @SentryMan in #722 - Rename
@PluginProvides
provides
member tovalue
by @SentryMan in #729
Full Changelog: 10.4...10.5
10.4
What's Changed
- Fix ExternalProvider warning message by @SentryMan in #669
- Make Jakarta Inject required in module-info by @SentryMan in #676
- Add avaje-http jstache plugin to autodetected Plugins by @SentryMan in #671
- Add
@BeanTypes
Annotation to Limit Injection Types by @SentryMan in #665 - Update parent pom, tidy use argLine in properties by @rbygrave in #683
- Add support for building against Valhalla EA by @rbygrave in #684
- Log Error on Empty Scope instead of Failing by @SentryMan in #687
Dependencies
- Bump io.avaje:avaje-jsonb from 2.0 to 2.1 by @dependabot in #661
- Bump jupiter.version from 5.10.3 to 5.11.0 by @dependabot in #662
- Bump net.bytebuddy:byte-buddy-agent from 1.14.18 to 1.14.19 by @dependabot in #663
- Bump net.bytebuddy:byte-buddy from 1.14.18 to 1.14.19 by @dependabot in #664
- Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.13.1 to 3.14.0 by @dependabot in #666
- Bump org.apache.maven.plugins:maven-plugin-plugin from 3.13.1 to 3.14.0 by @dependabot in #667
- Bump org.apache.maven:maven-core from 3.9.8 to 3.9.9 by @dependabot in #668
- Bump net.bytebuddy:byte-buddy from 1.14.19 to 1.15.0 by @dependabot in #673
- Bump net.bytebuddy:byte-buddy-agent from 1.14.19 to 1.15.0 by @dependabot in #674
- Bump io.avaje:avaje-spi-service from 2.4 to 2.6 by @dependabot in #675
- Update dependabot to actually group dependency updates by @SentryMan in #677
- [workflow]: Bump actions/setup-java from 3 to 4 by @dependabot in #678
- Bump the dependencies group with 6 updates by @dependabot in #686
Full Changelog: 10.3...10.4
10.3 | 10.3-javax
What's Changed
- Fix cases where test beans fail module validation by @SentryMan in #659
- Generate Value Classes When on Valhalla by @SentryMan in #660
Dependencies
- Bump io.avaje:avaje-spi-service from 2.2 to 2.3 by @dependabot in #656
- Bump io.avaje:avaje-prisms from 1.30 to 1.31 by @dependabot in #657
- [deps] Bump avaje-spi-service dependency to 2.4 by @rbygrave in #658
Full Changelog: 10.2...10.3
10.2 | 10.2-javax
What's Changed
- Fix partial compile regression introduced in 10.0-RC5 by @rbygrave in #653
- Fix partial compile regression introduced in 10.1 via #645 by @rbygrave in #654
- Fix Inject Plugin CSV Generation/Parsing by @SentryMan in #647
- Sonar Fixes by @SentryMan in #648
- Support Jspecify Annotations by @SentryMan in #650
- Fix NPE on module.name() by @rbygrave in #655
- Bump io.avaje:avaje-prisms from 1.28 to 1.30 by @dependabot in #651
- [deps] Bump avaje-spi-service dependency to 2.2 by @rbygrave in #652
Full Changelog: 10.1...10.2
10.1 | 10.1-javax
What's Changed
- Fix #644 Dependency information for qualified beans does not include qualified name, resulting in incorrect circular dependency detection via #645
- [Generator] Refactor Metadata Parsing by @SentryMan in #646
- Bump io.avaje:avaje-http-api from 2.6 to 2.7 by @dependabot in #642
- Bump io.avaje:avaje-jsonb from 1.12 to 2.0 by @dependabot in #643
Full Changelog: 10.0...10.1
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
9.12 | 9.12-javax
What's Changed
- Update README table by @SentryMan in #512
- Fix Factory Providers by @SentryMan in #517
- Support lazy beans by @SentryMan in #518
- For LazyProvider add fast path when its not null by @rbygrave in #520
- Add a test that uses `Supplier wrt #519 by @rbygrave in #521
- Remove deprecated AOP classes by @SentryMan in #509
- Better error when calling Provider.get() too early (during DI wiring) by @rbygrave in #523
- README typo fixes by @andrewazores in #530
- Support JDK 23-EA by @SentryMan in #534
- fix: compilation error with providers and
throws
by @mohamed-abdelnour in #533 - Adjust the indentation of the generated code for try/catch by @rbygrave in #535
- Disable Module Validation when the Avaje Build Plugin is Detected by @SentryMan in #513
Dependabot
- Bump io.avaje:avaje-jsonb from 1.9 to 1.10 by @dependabot in #510
- Bump io.avaje:avaje-http-api from 2.1 to 2.2 by @dependabot in #511
- Bump io.avaje:avaje-config from 3.11 to 3.12 by @dependabot in #514
- Bump mockito.version from 5.10.0 to 5.11.0 by @dependabot in #515
- Bump org.projectlombok:lombok from 1.18.30 to 1.18.32 by @dependabot in #526
- Bump io.avaje:avaje-config from 3.12 to 3.13 by @dependabot in #527
- Bump net.bytebuddy:byte-buddy-agent from 1.14.12 to 1.14.13 by @dependabot in #529
- Bump net.bytebuddy:byte-buddy from 1.14.12 to 1.14.13 by @dependabot in #528
- Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.11.0 to 3.12.0 by @dependabot in #532
- Bump org.apache.maven.plugins:maven-plugin-plugin from 3.11.0 to 3.12.0 by @dependabot in #531
- Bump parent pom to 4.1 with maven-surefire-plugin byte-buddy JDK 23 support by @rbygrave in #536
New Contributors
- @andrewazores made their first contribution in #530
- @mohamed-abdelnour made their first contribution in #533
Full Changelog: 9.11...9.12
9.11 | 9.11-javax
What's Changed
- Fix Lost Imports in Generated Code by @SentryMan in #477
- Use CodeGen for AOP Fallback by @SentryMan in #470
- Simplify Proxy Generation by @SentryMan in #486
- Support Assisted Injection via Factory Codegen by @SentryMan in #467
- [generator] Use Avaje Prisms
UType
for Processing TypeMirrors by @SentryMan in #484 - Make
@Aspect.Import
Repeatable by @SentryMan in #497 - Fix for @InjectTest with inherited field injection by @rob-bygrave in #499
- Fix when getting map of beans with parent scope by @rbygrave in #502
- For @InjectTest only build new BeanScope when test has mocks or spies by @rbygrave in #503
- Fix Field Assisted Inject by @SentryMan in #492
- Support qualifiers with members by @SentryMan in #488
- Follow up to #503 for Plugin scope to match the test bean scope by @rbygrave in #507
- Add Super Types to Auto Provides by @SentryMan in #504
Dependencies
- Bump io.avaje:avaje-config from 3.9 to 3.10 by @dependabot in #465
- Bump org.apache.maven:maven-core from 3.9.5 to 3.9.6 by @dependabot in #469
- Bump mockito.version from 5.7.0 to 5.8.0 by @dependabot in #468
- Bump io.avaje:avaje-prisms from 1.16 to 1.17 by @dependabot in #471
- Bump io.github.resilience4j:resilience4j-annotations from 2.1.0 to 2.2.0 by @dependabot in #473
- Bump net.bytebuddy:byte-buddy from 1.14.10 to 1.14.11 by @dependabot in #474
- Bump net.bytebuddy:byte-buddy-agent from 1.14.10 to 1.14.11 by @dependabot in #475
- Bump io.avaje:avaje-prisms from 1.17 to 1.18 by @dependabot in #480
- Bump org.apache.maven.plugins:maven-plugin-plugin from 3.10.2 to 3.11.0 by @dependabot in #482
- Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.10.2 to 3.11.0 by @dependabot in #483
- Bump io.avaje:avaje-prisms from 1.18 to 1.20 by @dependabot in #481
- Bump mockito.version from 5.8.0 to 5.9.0 by @dependabot in #485
- Bump io.avaje:avaje-prisms from 1.20 to 1.21 by @dependabot in #487
- Bump mockito.version from 5.9.0 to 5.10.0 by @dependabot in #490
- Bump io.avaje:avaje-http-api from 2.0 to 2.1 by @dependabot in #493
- Bump io.avaje:avaje-config from 3.10 to 3.11 by @dependabot in #494
- Bump jupiter.version from 5.10.1 to 5.10.2 by @dependabot in #495
- Bump net.bytebuddy:byte-buddy from 1.14.11 to 1.14.12 by @dependabot in #505
- Bump net.bytebuddy:byte-buddy-agent from 1.14.11 to 1.14.12 by @dependabot in #506
- Bump avaje junit test dependency (with bytebuddy update) by @rbygrave in #508
Full Changelog: 9.10...9.11