Releases: AxonIQ/AxonFramework
Axon Framework v5.1.0
Notice - Axon & Axoniq Framework
This release marks the first release wherein the split between Axon Framework and Axoniq Framework is apparent.
As such, the feature-specific sections are split between Axon Framework and Axoniq Framework features, enhancements, fixes, documentation, and dependency changes.
For those looking for a quick overview of "what is Axon and what is Axoniq Framework", the following components have been ported to Axoniq Framework are:
- The
axon-server-connectormodule. - All Axon Server Spring integration.
- The
AxonServerContainerfor Testcontainer support - The
DistributedCommandBusandCommandBusConnector. In line with the move of theaxon-server-connector - The
DistributedQueryBusandQueryBusConnector. In line with the move of theaxon-server-connector - The
SequencedDeadLetterQueue,SequencedDeadLetterQueueintegration into Event Handling Components, and the JPA/JDBC/InMemory storage solutions for theSequencedDeadLetterQueue - The
MultiStreamableEventSource
Axon Framework
⭐ Features
- [#3105] Revise Snapshotting logic
- [#3105] Reintroduce Snapshotting by @hjohn in #4204
- Snapshotting rework to allow snapshots to be part of event stream by @hjohn in #4335
- [#3514] First-class Spring support for AxonTestFixture
- feat(extensions): init axon-spring-boot-starter-test with AxonTestFixture bean support by @MateuszNaKodach in #4213
- [#3618] Last-minute Message#payload conversion
- [#3618] Introduce conversion awareness to the GenericMessage by @hatzlj in #4312
- [#3618] Make lastminute/inline payload conversion available for command handling by @hatzlj in #4314
- [#3618] Make lastminute/inline payload conversion available for event handling by @hatzlj in #4313
- [#3618] Make lastminute/inline payload conversion available for query handling by @hatzlj in #4315
- [#3879] Provide Kotlin extension for 5.0
- [#3879] Introduce Kotlin extension by @jangalinski in #4432
- [#3886] Support Spring Data Page through the JacksonConverter
- [#3886] Add Jackson module for Spring Data Page deserialization by @theoema in #3937
- [#3891] Introduce @namespace annotation and use for Event Processor naming
- [#3891] Introduce and use the @namespace annotation by @smcvb in #4226
- [#3923] Filter events while streaming with given EventCriteria for aggregate-based storage solutions
- [#3923] Filter events while streaming with given EventCriteria for aggregate-based storage solutions by @hjohn in #4005
- [#4111] Enable decorator pattern for EventProcessors (register as interface type)
- [#4111] Register event processors as interface types for decorator support by @theoema in #4113
- [#4182] Reintroduce JdbcAutoConfiguration
- [#4384] Introduce configuration section functionality
- [#4384] feat: introduce extensible configuration + adjust DLQ to use the approach by @MateuszNaKodach in #4385
- Introduce ReplayStatusChangedHandler by @smcvb in #4297
- Port Reactor Extension to Axon Framework 5 by @theoema in #4245
- Introduce dedicated examples for Spring Boot 3 and 4 by @hatzlj in #4367
- feat(integrationtests): base AbstractIntegrationTest class decoupled from Axon Server by @MateuszNaKodach in #4413
📈 Enhancements
- [#3149] Allow queries with a local handler to shortcut to the local segment
- [#3194] DbScheduler 15+ incompatible with Axon Framework 4.10.2
- [#3304] Integrate event replay logic into Event Handling Component
- [#3304] Support resets for the PooledStreamingEventProcessor resulting in EventHandlingComponent replays by @MateuszNaKodach in #3957
- [#3304] Deserialize ReplayToken#context with the Converter by @MateuszNaKodach in #3979
- [#3577] Modules should inherit ConfigurationEnhancer settings from the parent
- [#3577] Module registry inheritance by @zambrovski in #4090
- [#3816] Adopt JSpecify nullability annotations
- [#3816] Adopt JSpecify nullability annotations by @jangalinski in #4233
- [#3816] Adopt JSpecify nullability annotations - Nullmarked by @jangalinski in #4251
- [#3952] Transactional resources should be managed by resource executors as part of the processing context
- [#3962] Validate necessity of SpringLazyCreatingModule
- [#3962] LazyInitializedModule is still required, but can be slightly improved by @zambrovski in #4033
- [#3998] Allow SimpleUnitOfWorkFactory to augment its work units with enhancers
- Allow SimpleUnitOfWorkFactory to augment its work units with enhancers by @hjohn in #3999
- Show failed message handler in logs by @Sam-Kruglov in #3913
- Default to the AnnotationMessageTypeResolver in annotation-specific components by @Sam-Kruglov in #3894
- Refactor JPA Spring Boot auto configuration and slight SpringComponentRegistry tweak by @Sam-Kruglov in #3892
- Some codestyle improvements by @abuijze in #3951
- Event Storage Engine Test Suite improvements - Add stream-sees-appended-events tests and make methods protected by @hjohn in #3956
- feat(test-fixture): AxonTestThenCommand - resultMessagePayload - convert payload before executing the check by @MateuszNaKodach in #3995
- Introduce ArchUnit into commons module by @hjohn in #4015
- Add new integration test using event store and unit of work by @hjohn in #4014
- [#3517] feat(eventhandling): PooledStreamingEventProcessor - introduce SegmentChangeListener by @MateuszNaKodach in #4183
- EntityManagerTransactionManager - supports JPA transactions without Spring by @MateuszNaKodach in #4232
- EventProcessors - enforce explicitly named event components by @MateuszNaKodach in #4265
- Make Property#get method return nullable value by @jangalinski in #4358
- Enhancement/university java springboot3 setup by @hatzlj in #4374
- Refactor AbstractMessageStream and implementations by @hjohn in #4396
- Replace AxonTestFixture setting axonServerEnabled for integrationEnabled by @smcvb in #4445
- Replace AxonIQ references with Axoniq by @MateuszNaKodach in #4471
- Provide default ResetHandler#handle(ResetContext, ProcessingContext) for EventHandlingComponent by @smcvb in #4350
- Fix javadocs / warnings in EventSourcing module by @hjohn in #4360
- Fix warnings in messaging by @hjohn in #4368
- Add test case for appending multiple events with append condition set by @hjohn in #4478
- fix(test): disable PostgresqlConfigurationEnhancer in AxonTestFixture to prevent using Postgres db in non-integration tests by @MateuszNaKodach in #4480
- Remove unused imports by @jangalinski in #4235
- Update copyright notice for 2026 by @jangalinski in #4066
🪲 Bug Fixes
- [#3784] Polymorphic @EventSourcedEntity - doesn't evolve immutable entities
- [#3784] Support Polymorphic Sealed Interface Entity Evolution by @hatzlj in #3975
- [#3853] Setting a callback on a MessageStream which throws an error during callback should result in the stream completing with that error
- [#3853] Fix exceptions on callback should report error and close MessageStream by @jangalinski in #4072
- [#3855] When a sourcing completes, the callback should be called per MessageStream contract
- [#3855] Re-Enable callback test on AggregateBasedStorageEngineTestSuite by @jangalinski in #4352
- Make initial callback execution for InMemory engine unconditional by @hjohn in #4176
- [#3982] fix(test): Event events(@nonnull List<?>... events) - invalid usage of varargs by @MateuszNaKodach in #3984
- Fix toString in GenericEventMessage by @hjohn in #4000
- [#4006] AggregateBasedJpaEventStorageEngine should return the max (or latest) token when tokenAt is called with a date in the future
- Feature/fix token at...
Axon Framework v5.0.5
Axon Framework v4.13.1
📈 Enhancements
- Allow EmbeddedEventStore to be configured via application.properties #4466
- Fix incorrect aggregate version cached in DCB mode when using AxonServer #4463
- refactor(test): remove shadowed DeadLetteringEventIntegrationTest from spring-boot-3-integrationtests #4246
- Fix generic (for ecj) #4164
🪲 Bug fixes
- Fix race between AxonTimeLimitedTask and UnitOfWorkTimeoutInterceptor causing TEP shutdown #4459
- [#4453] Fix ReplayToken.wasProcessedBeforeReset() for tokens without gap-walkback lowerBound semantics #4458
- Fix #4244: Properly shutdown Axon janitor thread on Spring context close #4269
- Spring context shutdown does not stop Axon janitor thread #4244
- Provide default serializer method and allow Axon classes for Jackson3 #4163
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
Axon Framework v5.1.0-RC3
Axon Framework and Axoniq Framework
This release candidate marks the first release wherein the split between Axon Framework and Axoniq Framework is apparent.
As such, the "what's changed" section below contains the new type Port, next to the fixes and enhancements from RC2 validation.
To be concrete, components that have been ported to Axoniq Framework are:
- The
axon-server-connectormodule. - All Axon Server Spring integration.
- The
AxonServerContainerfor Testcontainer support - The
DistributedCommandBusandCommandBusConnector. In line with the move of theaxon-server-connector - The
DistributedQueryBusandQueryBusConnector. In line with the move of theaxon-server-connector - The
SequencedDeadLetterQueue,SequencedDeadLetterQueueintegration into Event Handling Components, and the JPA/JDBC/InMemory storage solutions for theSequencedDeadLetterQueue - The
MultiStreamableEventSource
For a full change list on Axoniq Framework 5.1.0-RC1 (with which this release was paired), please go here.
What's Changed
- Bump the maven-dependencies group with 18 updates by @dependabot[bot] in #4343
- [#4339] fix(extensions/spring-boot): Spring Boot 4.x support - use
afterNamein AutoConfiguration classes by @MateuszNaKodach in #4344 - [#3855] Re-Enable callback test on AggregateBasedStorageEngineTestSuite by @jangalinski in #4352
- chore: make Property#get method return nullable value by @jangalinski in #4358
- chore: use latest 2025.2.7 in docker-compose by @jangalinski in #4359
- Migration path for the DLQ by @hatzlj in #4338
- Fix javadocs / warnings in EventSourcing module by @hjohn in #4360
- [#3517] refactor(extensions/spring-boot): remove unused
DeadLetterQueueProviderConfigurerModuleby @MateuszNaKodach in #4361 - chore(deps): bump picomatch in /docs/_playbook by @dependabot[bot] in #4363
- [#4092] Introduce Configuration migration path by @smcvb in #4353
- Introduce dedicated examples for spring boot 3 and 4 by @hatzlj in #4367
- fix(extensions/spring-boot): do not ignore
@Namespaceannotation on@Componentwith@EventHandlerannotations if the matchingEventProcessorDefinitionis not present by @MateuszNaKodach in #4369 - [#4340] fix(extensions/spring-boot): defer
SpringComponentRegistryinitialization for infrastructure beans to preventBoundConfigurationPropertiescycle by @MateuszNaKodach in #4365 - chore: set next dev version to 5.2.0-SNAPSHOT by @jangalinski in #4370
- Add missing author and since tags by @hjohn in #4371
- Feature/fix warnings in messaging by @hjohn in #4368
- Align
DistributedQueryBusConfigurationwithDistributedCommandBusConfigurationby @smcvb in #4373 - chore(deps): bump convict from 6.2.4 to 6.2.5 in /docs/_playbook by @dependabot[bot] in #4375
- chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 in /docs/_playbook by @dependabot[bot] in #4376
- Enhancement/university java springboot3 setup by @hatzlj in #4374
- Wait for polling thread to terminate for JPA event storage engine by @hjohn in #4372
- chore(deps): bump the maven-dependencies group with 19 updates by @dependabot[bot] in #4379
- test(messaging): fix command-threads property test using wrong prefix and weak assertion by @MateuszNaKodach in #4381
- remove pr-merge-up github action automation by @corradom in #4383
- [#3105] Add snapshot documentation by @hjohn in #4298
- Bug/4377/tokenstore autoconfig jackson3 dependency by @hatzlj in #4380
- Add a module overview diagram to the Axon Framework Documentation by @hatzlj in #4386
- Color-code the module overview in the reference by @hatzlj in #4387
- chore(deps): bump the maven-dependencies group with 6 updates by @dependabot[bot] in #4390
- chore(deps-dev): bump lodash from 4.17.23 to 4.18.1 in /docs/_playbook by @dependabot[bot] in #4391
- [#4384] feat: introduce extensible configuration + adjust DLQ to use the approach by @MateuszNaKodach in #4385
- [#4392] fix(messaging): consistent EventProcessor module naming by @MateuszNaKodach in #4393
- Use revision property for POM versioning by @hatzlj in #4398
- Port 5.1.x to main by @hatzlj in #4399
- Add flattened pom files to gitignore by @hatzlj in #4401
- chore(maven/build): remove axon-integrationtests from excluded artifacts in publishing configuration by @MateuszNaKodach in #4406
- chore(maven): update Maven wrapper to 3.9.14 and wrapper plugin to 3.3.4 by @MateuszNaKodach in #4407
- Move Sequenced Dead-Letter Queue feature to Axoniq Framework by @MateuszNaKodach in #4408
- Repository Transfer notice by @smcvb in #4415
- Change code owners to align with new team name by @smcvb in #4419
- Moved MultiSourceTrackingToken and MultiStreamableEventSource to Axoniq Framework by @jangalinski in #4410
- feat(integrationtests): base AbstractIntegrationTest class decoupled from Axon Server by @MateuszNaKodach in #4413
- Remove image link about AxonIQ Console by @smcvb in #4421
- Align Sonar settings with repository organization transfer by @smcvb in #4426
- Move Axon Server integration to Axoniq Framework by @smcvb in #4412
- Prepare composite Axon Framework / Axoniq Framework documentation by @hatzlj in #4420
- Refactor AbstractMessageStream and implementations by @hjohn in #4396
- Fix flakey test in AbstractSubscriptionQueryTestSuite by @hjohn in #4433
- Replace the Slack notify GHA by @smcvb in #4436
- Ensure UnitOfWork recorded cause on
runErrorHandlersis set by @hjohn in #4435 - Fix
add-to-project.ymlGHA URL by @smcvb in #4429 - Adjust
AxonServerAutoConfigurationimport for Spring Boot autoconfig classes by @smcvb in #4438 - [#4408] Remove DLQ references from persistence configuration by @smcvb in #4440
- Port DistributedCommand- and -QueryBus by @hatzlj in #4439
- Remove DLQ entity registration in
JpaAutoConfigurationby @smcvb in #4441 - Remove the final Axon Server mentions by @smcvb in #4446
- Replace
AxonTestFixturesettingaxonServerEnabledforintegrationEnabledby @smcvb in #4445
Full Changelog: axon-5.1.0-RC2...axon-5.1.0-RC3
Axon Framework v5.1.0-RC2
What's Changed
- Chore: fix duplicate archunit dependency management by @hatzlj in #4347
- [#4339] fix(extensions/spring-boot): Spring Boot 4.x support - use
afterNamein AutoConfiguration classes (port to 5.1.x branch) by @hatzlj in #4349 - Provide
defaultResetHandler#handle(ResetContext, ProcessingContext)forEventHandlingComponentby @smcvb in #4350 - fix(messaging): prevent
StackOverflowErrorfrom doubleLocalConfigurationin module parent chain by @MateuszNaKodach in #4351 - [#4355]
ConcatenatingMessageStreamensures it interacts with its first stream before callingisCompletedby @hjohn in #4357 - [#4340] Break cyclic dependencies in spring autoconfiguration by @hatzlj in #4354
Full Changelog: axon-5.1.0-RC1...axon-5.1.0-RC2
Axon Framework v5.1.0-RC1
⭐ Features
AxonServerContainerDCB context support #3992- Support resets for the
PooledStreamingEventProcessorresulting inEventHandlingComponentreplays #3957 - Support Polymorphic Sealed Interface Entity Evolution #3975
- Created the
MultiStreamableEventSourceimplementation #4116 - Dead Letter Queue adjusted to AF5 API #4120
PooledStreamingEventProcessor— introduceSegmentChangeListener#4183JpaSequencedDeadLetterQueuealigned with AF5 APIs #4178CachingSequencedDeadLetterQueueper Segment #4202JdbcSequencedDeadLetterQueuealigned with AF5 APIs #4230- Init
axon-spring-boot-starter-testwithAxonTestFixturebean support #4213 EntityManagerTransactionManager— supports JPA transactions without Spring #4232JpaSequencedDeadLetterQueueauto configuration #4247JdbcAutoConfiguration+JdbcDeadLetterQueueAutoConfiguration#4287- Reintroduce Snapshotting #4204
- Introduce the
@Namespaceannotation #4226 - Introduce
ReplayStatusChangedHandler#4297 - Port Reactor Extension to Axon Framework 5 #4245
- Add Jackson module for Spring Data
Pagedeserialization #3937 - Event processors — enforce explicitly named event components #4265
- Snapshotting rework to allow snapshots to be part of event stream #4335
- Set
AxonServerSnapshotStorein theAxonServerConfigurationEnhancer#4307 - Add github action for automatic PR merge up #4283
- Init Claude Code setup for AI assistant development #4184
📈 Enhancements
- Show failed message handler in logs #3913
- Default to the
AnnotationMessageTypeResolverin annotation-specific components #3894 - Refactor JPA Spring Boot auto configuration and slight
SpringComponentRegistrytweak #3892 - Upgrade to db-scheduler 16.2.0 and migrate to new
TaskDescriptorAPI #3785 - Allow
SimpleUnitOfWorkFactoryto augment its work units with enhancers #3999 - Event Storage Engine Test Suite improvements — add stream-sees-appended-events tests and make methods protected #3956
- Feature/fix token at future date #4007
- Fix
toStringinGenericEventMessage#4000 AxonTestThenCommandresultMessagePayload— convert payload before executing the check #3995- Resolve
MessageTypefor query handlers based onMessageTypeResolver#4012 - Add new integration test using event store and unit of work #4014
- Filter events while streaming with given
EventCriteriafor aggregate-based storage solutions #4005 - Deserialize
ReplayToken#contextwith theConverter#3979 LazyInitializedModuleis still required, but can be slightly improved #4033- Introduce ArchUnit into commons module #4015
Event events(@Nonnull List<?>... events)— fix invalid usage of varargs #3984- Feature/module registry inheritance #4090
- Register event processors as interface types for decorator support #4113
- Fix isolation for
MonitoringPooledEventProcessingReportIT#4196 DistributedQueryBusConfigurationcleanup and support for local shortcut #4195- Make initial callback execution for InMemory engine unconditional #4176
- Move JPA dead letter classes from stash/todo to messaging module #4211
- Add
Context context()method toDeadLetterinterface #4289 - Fix exceptions on callback — should report error and close
MessageStream#4072 - Adopt JSpecify nullability annotations #4233
- Adopt JSpecify nullability annotations — Nullmarked #4251
- Make Axon Server Connector dependency optional for Spring Boot Starter #4260
- Fix Axon Server address resolution for
AxonServerTestContainerConnectionDetailsFactory#4266 - Introduce conversion awareness to
GenericMessage#4312 - Make last-minute/inline payload conversion available for command handling #4314
- Make last-minute/inline payload conversion available for event handling #4313
- Make last-minute/inline payload conversion available for query handling #4315
- Reference DCB/
EventTagin event dispatchers #4064 - Upgrade Axon Server Connector for Java to 2026.0.0 #4317
- Fix race-condition for
DistributedQueryBusSubscriptionQueryTest#replayBufferOverflow#4286 - Fix test isolation for the
ReplayStatusChangedHandlerIT#4321 - Fix token advancement in
AggregateBasedJpaEventStorageEngine#4290 - Remove unused module
spring-boot-autoconfiguration#3990 - Improve Javadoc on
QueryUpdateEmitter#4327
🪲 Bug Fixes
- Fix documentation for
EventStoreTransactionmethods #3983
📝 Documentation
- Updated documentation for dispatching of Commands, Events and Queries #3939
- Documentation for command handlers #3946
- Migrated documentation for query handlers #3963
- Update modules structure and platform branding #3960
- Migrated messaging concepts section to Axon 5 style #3967
- Migrated event handling documentation #3974
- Rewrote documentation about test fixtures #3991
- Doc/doc migration conversion #3954
- Rework documentation to align with AF5 API #4074
- Introduce the base migration guide #4075
- Mark documentation as pre-release for development branch #4103
- Clarify that
@Timestampannotation is required to inject event timestamp in@EventHandlerand@EventSourcingHandler#4106 - Update Axon Framework version to
5.0.1in Getting Started guide #3987 - Add documentation explaining application startup event #4284
- Update DLQ docs for Axon Framewo...
Axon Framework v5.0.4
⭐ Features
- Add github action for automatic PR merge up #4283
📈 Enhancements
- PSEP
CoordinatorandUpdateCheckerlog level changes #4296 - The DistributedCommandBus should not log error responses #4258
🪲 Bug fixes
- [#4288] Fix token advancement in
AggregateBasedJpaEventStorageEngine#4290 - Make the
EventGatewayaDescribableComponent#4282 - Ensure order of published events is maintained in interceptors #4277
- Await commit correctly when publishing without processing context #4270
- fix(test):
AxonTestFixture- records commands before serialization inDistributedCommandBus#4263
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
Axon Framework v5.0.3
⭐ Features
- #4147 Introduce auto-configuration for Dropwizard and Micrometer metrics
- #4151 Remove
@RoutingKeyusages (#3804) - #4222 Allow TypeReference-based component lookup (#4172)
📈 Enhancements
- #4141 Make Interceptor and Monitor construction Component-aware
- #4150 Remove Converter#canConvert methods (#3642)
- #4159 Import axoniq/university-demo to examples - #4165 Align ProcessorDefinition naming with the EventProcessorModule
- #4167 Add JDK25 build
- #4173 Introduce local Command sequencing to avoid optimistic lock failures on concurrent command execution (#4155)
- #4179 Refactor sequencing policies for general messaging usage
- #4190 Update event publishing methods to accept lists of EventMessage subtypes
- #4206 Provide JUnit extension for fixture lifecycle management (#4134)
- #4212 Move JpaTransactionalExecutorProvider and JdbcTransactionalExecutorProvider to messaging module
- #4219 Port axon-4.13.x into axon-5.0.x
- #4231 Adjust ReplayToken context field type to byte[] (#4218)
- #4238 EventAppender - add metadata-aware append overloads
- #4250 Introduce TransactionalExecutor for persistent Token Stores (#4248)
📖 Documentation
- #4131 Migration path documentation for messages (#4082)
- #4132 Migration path documentation for Aggregates (#4083)
- #4135 Monitoring section rewrite (#4094)
- #4137 Refer to Migration Paths section from Migration Guide main page
- #4148 Minor Getting Started improvements - Refer to examples and folder rename
- #4156 Migration paths documentation for Projectors and Event Processors (#4084)
- #4197 Introduce the Event Store migration path (#4096)
- #4208 Test Fixture migration documentation (#4085)
- #4216 Fix EntityCreator sample code (#4205)
- #4227 Migration paths documentation for serializer/converter (#4091)
- #4256 Adjust Spring-Boot version support matrix
🪲 Bug Fixes
- #4149 Rename missing annotated to autodetected in configuration API
- #4166 Ensure Event Handling Components are described correctly
- #4168 Adjust build and SonarQube labels (#3875)
- #4175 Ensure ResourceOverridingProcessingContext#resources() does not throw an UnsupportedOperationException
- #4186 Fix integration test isolation for MonitoringPooledEventProcessingReportIT
- #4187 Enabled Spring (Boot) tests and subsequent bug fixes (#3496)
- #4192 WorkPackageTest - match TokenStore initialization contract
- #4193 ResourceOverridingProcessingContext run lifecycle hooks with the overridden resources
- #4217 Replay Handlers - Ensure only EventHandlingMembers are wrapped (#4214)
- #4221 Add support for returning the resume position from a sourcing
- #4228 Autoconfigure after should use names instead of classes in JpaEventStoreAutoConfiguration
- #4229 Resolved some type reliance issues in handler wrappers
- #4240 RecordingEventSink positioned before interceptors — interceptor message changes not reflected in recorded events (#4237)
- #4255 Make routing with SequentialPolicy consistent across JVM restarts (#4253)
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
Axon Framework v4.13.0
Migration Support
Axon Framework 4.13. marks the migration support minor release!
As such, it is aimed at providing users a stepping stone from Axon Framework 4 to Axon Framework 5.
In this first migration support release, we focused on our largest integration with other tooling, which is Spring Boot.
Hence, as of 4.13., Axon Framework 4 support support Spring Boot 4+.
Furthermore, we increased the JDK version of Axon Framework 4 from JDK8 to JDK17.
This simplified our integration with Spring Boot 4, as well as aligns more closely with the paramount JDK increase to 21 for Axon Framework 5.
📈 Enhancements
🛠️ Dependency upgrades
- Upgrade Axon Server Connector version to 2025.2.1 #4157
- chore: set version 4.13.x for all modules #4154
- Upgrade to db-scheduler 16.2.0 and migrate to new TaskDescriptor API #4144
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
Axon Framework v5.0.2
⭐ Features
- [#4053] Introduce Event Processor Specification to influence Event Processor configuration when Event Handlers are autodetected
- Added ability to customize event processor configuration in Spring by @abuijze in #4067
📈 Enhancements
- [#4013] Add integration test using unit of work and EventStore with transactional resource
- [#4014] Add new integration test using event store and unit of work
- Annotated Message Handling Component alignment by @smcvb in #4041
- Ensure every Message Handling Component can be described by @smcvb in #4047
- Align
EventHandlerRegistrywith command and query equivalents by @smcvb in #4046 - Align Annotated Message Handler subscription flow by @smcvb in #4042
- Filter on
EventHandlingMemberinMethodSequencingPolicyEventHandlerDefinitionby @smcvb in #4049 - Introduce a
TransactionalExecutorby @hjohn in #4055 - [#4065] Remove processing context parameter from all EventStorageEngine methods except appendEvents
- [#4065] Remove processing context from most EventStorageEngine methods by @hjohn in #4068
- Add missing
@Nonnullannotations in processing lifecycle by @hjohn in #4071 - Minor
MatchersandAxonTestFixtureimprovements by @smcvb in #4069 - Rename parameter in EntityManagerExecutor by @hjohn in #4080
- Adjustments to StorageEngineTestSuite for transactional executors by @hjohn in #4089
- Event Processor Config - Remove
MessageMonitorandSpanFactorycustomization by @smcvb in #4087 - Add JDBC transactional executor + Spring integration by @hjohn in #4101
- Remove the
ProcessingLifecycleHandlerRegistrarby @smcvb in #4121 - [#4032] [git] .gitignore ignores .idea/ but it contains committed files
- [#4032] cleanup gitignore/idea/ setup by @jangalinski in #4035
- [#3995] feat(test-fixture): AxonTestThenCommand - resultMessagePayload - convert payload before executing the check
- [#3994] Remove ProcessingLifecycleHandlerRegistrar and its usages
📖 Documentation
- Migrate AF5 documentation from main to patch branch by @smcvb in #4102
- [#4081] Introduce based Migration Paths section
- [#4081] Introduce migration/paths sub section by @jangalinski in #4110
- Adjust indent of Migration Paths section by @smcvb in #4124
🪲 Bug fixes
- [#4010] Circular dependency error with Spring Boot 4.0 WebMVC and @eventhandler components
- Fix Circular dependency error with Spring Boot 4.0 WebMVC and @eventhandler components by @jangalinski in #4020
- [#4086] Align JPA storage engine to not enforce uniqueness of message identifier
- Update identifier column to be non-unique by @hjohn in #4122
- [#4012] Resolve MessageType for query handlers based on MessageTypeResolver
- [#4006] AggregateBasedJpaEventStorageEngine should return the max (or latest) token when tokenAt is called with a date in the future
- [#4007] Feature/fix token at future date
- [#3706] JDBC connections cannot be used by multiple threads at the same time
- [#3704] In EventStorageEngine, JDBC/JPA implementations should not do work in AppendTransaction::commit
🛠️ Dependency upgrades
- Remove unused module
spring-boot-autoconfigurationby @jangalinski in #4018 - Port current 4.12.3 changes into 5.0 by @smcvb in #4100
❤️ Contributors
We'd like to thank all the contributors who worked on this release!