Move Axon Server integration to Axoniq Framework#4412
Conversation
Remove axon-server-connector module entirely. This module is now part of Axoniq Framework instead of Axon Framework. This shift clarifies Axoniq's intent with Axon Server, as it's current license requires a subscription for single and multi-node setups.
Remove axon-server-connector dependency. Removal is inline with the removal of the module, in favor of the module's presence in the Axoniq Framework repository. This shift clarifies Axoniq's intent with Axon Server, as it's current license requires a subscription for single and multi-node setups.
|
Remove testcontainer integration of Axon Server. Removal is inline with the removal of the logic, in favor of the new axoniq-testcontainer module in the Axoniq Framework repository. This shift clarifies Axoniq's intent with Axon Server, as it's current license requires a subscription for single and multi-node setups.
Remove Spring-specific integration of Axon Server. Removal is inline with the removal of the module, in favor of the module's presence in the Axoniq Framework repository. This shift clarifies Axoniq's intent with Axon Server, as it's current license requires a subscription for single and multi-node setups.
Remove Axon Server specific integration tests. Removal is inline with the removal of the module, in favor of the module's presence in the Axoniq Framework repository. This shift clarifies Axoniq's intent with Axon Server, as it's current license requires a subscription for single and multi-node setups.
Refer to class name i.o. class. This is safer and in line with the fact Axon and Axoniq Framework form a split between some previously integrated logic
Drop unused dependency
|
Hi, |
Hey @vcanuel! There are definitely more things planned. You may have spotted the #4408 and #4410 PRs, to name a few. Hence, we did not think it justified to maintain Axon Server integration inside an open source repository at all. Given to the other things that will move: I am working on a table which will be part of the Documentation, linked to in the Readme, and propagated on our socials, that will explain what will and what will not move. |
Remove AxonServer specific integration tests again. With #4413 implemented, the test suites can be implemented differently depending on the available infrastructure. As we're moving Axon Server entirely to Axoniq Framework, any Axon Server versions of the integration tests should be ported entirely.
Port Axon Server with Spring Boot testcontainer specific tests. As Axon Server is now part of Axoniq Framework, those tests reside there.
Port Axon Server test in combination with JPA. As Axon Server is now part of Axoniq Framework, those tests reside there.
Drop AxonServerConfigurationEnhancer disablement. These tests will no longer automatically encounter Axon Server's configuration enhancer, so there's no need to keep the disablement for speed up
Port all Axon Server specific Persistent Stream integration. As Axon Server logic moves to Axoniq Framework, the Persistent Stream integration will move as well.
Remove remaining imports on Axon Server autoconfiguration. As Axon Server logic moves to Axoniq Framework, there's no means the tests can accidentally integrate with it anymore.
Drop use of axon.axonserver.enabled property. As Axon Server logic moves to Axoniq Framework, there's no need to disable it anymore.
Drop redundant Axon Server Connector dependency. As Axon Server logic moves to Axoniq Framework, there's no need for this version anymore.
Remove redundant suppression. As Axon Server logic moves to Axoniq Framework, there's no need for this version anymore.
Remove leftover axon-server-connector dependency
…dependency Remove leftover Axon Server IT usage after removal of last remaining dependency
Remove more leftover Axon Server autoconfig imports. Not sure why these popped up later, but there you go
Remove Axon Server autoconfig from AutoConfiguration.imports
Remove spring.factories file. This file only contains Axon Server specific Testcontainer support, which, as it's been moved to Axoniq Framework, doesn't belong here.
Add dependency (I assume) previously pulled in by axonServer. Without it, the db-scheduler tests throw a ClassNotFoundException
Add 5.1.0-RC2 dependency on connector and tests. We need Axoniq Framework to be released for the examples to work properly. To unblock for now, it's easier to depend on the latest, being 5.1.0-RC2, which still contains the AxonServerContainer and AxonServerContainerTestUtils required by the examples
Switch to new Sonar settings. With Axon Framework moved to the AxonIQ GitHub organization, we need to adjust the project key and organization reference
…move-axon-server-connector
Set AxonServer-detail containing modules to 5.1.0-RC2. This allows us to not adjust the examples just yet.
ProblemThe build is failing because: I have this locally as well... and I'm not sure what is the problem. CauseDiagnose what's happening (thanks Claude): The problem has two layers: 1. Maven reactor precedence overrides the intended version The dependency tree showed the critical issue: The examples explicitly use 2. The local SNAPSHOT removed two things that the examples need The local
3. But The Without In short: This branch's local SNAPSHOT removes the Spring glue between the Axon Server connector (which self-registers via ServiceLoader and still runs) and the Spring test context (which would have provided the TestContainer address). The result is a connection attempt to a server that was never properly configured. |
The Spring Boot university examples are designed to run against the
published 5.1.0-RC2 release, which still includes Axon Server support.
However, when built via `-Pexamples` as part of the main reactor, Maven
was resolving all Axon framework artifacts (core modules and Spring
extensions) to the local 5.1.0-SNAPSHOT build instead of the intended
RC2 releases.
On this branch the local SNAPSHOT has AxonServerAutoConfiguration
removed from the autoconfigure module and the spring.factories
ConnectionDetailsFactories stripped out. The axon-server-connector:RC2
jar still self-registers AxonServerConfigurationEnhancer via
ServiceLoader, so tests attempted an Axon Server connection — but
without the Spring glue that used to wire the test context (Testcontainer
address, axon.axonserver.enabled guard) into that connection, every test
context startup failed with "no connection to AxonServer".
Root cause: examples/pom.xml imported axon-framework-bom at
${project.version} (SNAPSHOT). This BOM covers all core and Spring
extension modules, so the managed versions all resolved to SNAPSHOT,
which the reactor then supplied from the local build.
Fix: import axon-framework-bom at 5.1.0-RC2. Maven now requests the
release coordinates (5.1.0-RC2) for every managed Axon artifact; the
reactor only has 5.1.0-SNAPSHOT, so it is not a match and Maven fetches
the published RC2 artifacts from Maven Central. Both local and CI builds
are affected equally, requiring no additional CI configuration changes.
…5.1.0-RC2`" This reverts commit 163e350.
Disable examples GHA. The examples are brittle at the moment, as they need to depend on the axon-server-connector module, which has not yet seen a release in Axoniq Framework. Added a todo referring to an issue number to tackle this on the first (RC) release of Axoniq Framework.
|



This pull request removes the entire Axon Server integration from Axon Framework, as it's been moved to Axoniq Framework.
Concretely, this means the following is no longer present in this repository:
axon-server-connectorMaven moduleaxon-server-connectorfor examples and integration testsThis move is part of Axoniq's new open source and open core model, as described in this blog in more detail.
Specifically on the point of Axon Server, we expect people to have a subscription, as detailed here, when using Axon Server.
As clarified in the linked table, there's an "Individual", or developer plan, which is free of charge for those aiming to play around.
However, to conclude, given this choice for Axon Server, it's more transparent to maintain Axon Server framework details in another repository than this repository; hence the removal as per this PR.
Both Axon Framework (remaining open source) and Axoniq Framework (proprietary open core license) will see 5.1 release end of April, 2026.
For any questions around this pull request, feel free to reach out!