[#3879] Feature/introduce kotlin extension#3878
Draft
jangalinski wants to merge 970 commits intomainfrom
Draft
Conversation
Move old docs to library
Bumps the maven-dependencies group with 2 updates: [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) and [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core). Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.3.0 to 3.3.1 - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](apache/maven-surefire@surefire-3.3.0...surefire-3.3.1) Updates `io.projectreactor:reactor-core` from 3.6.7 to 3.6.8 - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](reactor/reactor-core@v3.6.7...v3.6.8) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-surefire-plugin dependency-type: direct:production update-type: version-update:semver-patch dependency-group: maven-dependencies - dependency-name: io.projectreactor:reactor-core dependency-type: direct:development update-type: version-update:semver-patch dependency-group: maven-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…endencies-1420651362 Bump the maven-dependencies group with 2 updates
Bumps the maven-dependencies group with 1 update: [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release). Updates `org.apache.maven.plugins:maven-release-plugin` from 3.1.0 to 3.1.1 - [Release notes](https://github.com/apache/maven-release/releases) - [Commits](apache/maven-release@maven-release-3.1.0...maven-release-3.1.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-release-plugin dependency-type: direct:production update-type: version-update:semver-patch dependency-group: maven-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…endencies-f2fe579de3 Bump org.apache.maven.plugins:maven-release-plugin from 3.1.0 to 3.1.1 in the maven-dependencies group
Set since tag #338
Revert Kotlin Serialization to 1.6.3 for backwards compatibility #340
Move ArrayResponseType to message/responsetypes. In doing so, we reflect the folder structure for the other ResponseType implementation in Axon Framework #338
Expand KDoc with construction example #338
Upgrade Axon Framework to 4.10.0 #dependency-upgrade/af-4.10
Upgrade Axon Framework to 4.10.0
Set version to 4.10.0 for release #release/4.10.0
Set milestone to 4.11.0 #release/4.10.0
Update version of non-deployed modules #release/4.10.0
Bumps the maven-dependencies group with 4 updates: [org.jetbrains.kotlinx:kotlinx-serialization-core](https://github.com/Kotlin/kotlinx.serialization), [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization), [org.jetbrains.kotlinx:kotlinx-serialization-cbor](https://github.com/Kotlin/kotlinx.serialization) and [org.jetbrains.kotlinx:kotlinx-serialization-protobuf](https://github.com/Kotlin/kotlinx.serialization). Updates `org.jetbrains.kotlinx:kotlinx-serialization-core` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-cbor` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-protobuf` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-cbor` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-protobuf` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) --- updated-dependencies: - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-cbor dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-cbor dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…endencies-92cb11aacb Bump the maven-dependencies group with 4 updates
Set version to 4.11.0-SNAPSHOT for main branch #release/4.10.0
Revert to 1.6.3 for backwards compatibility #347
Bumps the maven-dependencies group with 4 updates: [org.jetbrains.kotlinx:kotlinx-serialization-core](https://github.com/Kotlin/kotlinx.serialization), [org.jetbrains.kotlinx:kotlinx-serialization-json](https://github.com/Kotlin/kotlinx.serialization), [org.jetbrains.kotlinx:kotlinx-serialization-cbor](https://github.com/Kotlin/kotlinx.serialization) and [org.jetbrains.kotlinx:kotlinx-serialization-protobuf](https://github.com/Kotlin/kotlinx.serialization). Updates `org.jetbrains.kotlinx:kotlinx-serialization-core` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-cbor` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-protobuf` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-json` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-cbor` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) Updates `org.jetbrains.kotlinx:kotlinx-serialization-protobuf` from 1.6.3 to 1.7.1 - [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases) - [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md) - [Commits](Kotlin/kotlinx.serialization@v1.6.3...v1.7.1) --- updated-dependencies: - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-core dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-cbor dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-cbor dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies - dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-protobuf dependency-type: direct:production update-type: version-update:semver-minor dependency-group: maven-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
…endencies-92cb11aacb Bump the maven-dependencies group with 4 updates
Disable auto merge to catch undesired dep. upgrades #348
…3878) - Replace parent with monorepo axon-extensions / 5.1.0-SNAPSHOT - Remove log4j.version override that breaks monorepo Maven resolution - Delete AF4-only files: AggregateLifecycleExtensions, BuilderExtensions, EventUpcaster, ResultDiscriminatorCommandCallback, ArrayResponseType, serialization module, spring-devtools.properties and all their tests - Rewrite CommandGatewayExtensions for AF5 CommandResult API - Rewrite QueryGatewayExtensions for AF5 (R:Any bound, streamingQuery) - Rewrite QueryUpdateEmitterExtensions for AF5 (Q:Any, explicit SAM lambda) - Rewrite FixtureExtensions for AF5 AxonTestPhase API - All 18 tests pass
vcanuel
added a commit
to vcanuel/AxonFramework
that referenced
this pull request
Mar 12, 2026
…xonIQ#3878) - Replace parent with monorepo axon-extensions / 5.1.0-SNAPSHOT - Remove log4j.version override that breaks monorepo Maven resolution - Delete AF4-only files: AggregateLifecycleExtensions, BuilderExtensions, EventUpcaster, ResultDiscriminatorCommandCallback, ArrayResponseType, serialization module, spring-devtools.properties and all their tests - Rewrite CommandGatewayExtensions for AF5 CommandResult API - Rewrite QueryGatewayExtensions for AF5 (R:Any bound, streamingQuery) - Rewrite QueryUpdateEmitterExtensions for AF5 (Q:Any, explicit SAM lambda) - Rewrite FixtureExtensions for AF5 AxonTestPhase API - All 18 tests pass
…editorconfig, .gitattributes, CONTRIBUTING.md, LICENSE.txt, mvnw, docs, coverage-report)
Contributor
|
Closing this PR in favor of the #4281 PR. |
also: - keep legacy extension code in `_todo` - use simplified kotlin 2.3.20 project setup - use kotlin package structure
|
Contributor
|
I didn't see any problems importing this in Eclipse (without a Kotlin plugin). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


extensions/kotlin- keeping commit history_todoCloses AxonFramework/extension-kotlin#393. Takes over #3878 by @jangalinski.
Context
@jangalinski opened #3878 to import the
extension-kotlinrepository intoextensions/kotlin/(with full commit history) and wire it into the monorepo build.That PR intentionally stopped there: incompatible AF4 files were moved to
_todo/rather than rewritten, leaving the actual AF5 migration as follow-up work.
This PR completes that migration. The reference for every change is
extension-kotlin#394,
which performed the same migration against the standalone
extension-kotlinrepository (targeting AF 5.1.0).
Differences from extension-kotlin#394
The monorepo integration required a few adjustments beyond a straight copy of the patch.
extensions/kotlin/pom.xml— parent and coordinatesPR#394 kept the standalone
axon-kotlin-parent/4.12.x-SNAPSHOTparent andsimply updated
axon.versionto5.0.3.Our branch replaces the entire parent with the monorepo coordinates:
parent→axon-extensions/5.1.0-SNAPSHOTversion→5.1.0-SNAPSHOT(inherited)release-plugin, pluginRepositories, scm, developers,
.github/,.editorconfig,mvnw,coverage-report/, etc.)docs/removed — AF4 Antora reference content imported via history, no AF5equivalent yet; reference docs update is a separate effort
Additionally the
<log4j.version>2.13.3</log4j.version>property present in thestandalone pom was removed. In the monorepo it overrides the managed
2.25.3versionand causes a Maven resolution failure (
log4j-slf4j2-impl:2.13.3does not exist inMaven Central — only introduced in log4j 2.20).
CommandGatewayExtensions.kt—sendAndWaitnull safetyCommandGateway.sendAndWait(Object, Class<R>)is@Nullable. PR#394 silently truststhe platform type. Our branch adds
?: error(...)to fail fast with a clear messagepointing callers to
sendForResultas the nullable alternative.QueryUpdateEmitterExtensions.kt— type bound and SAM lambdaTwo changes vs PR#394:
Q : Anybound added (required to resolve the correct Javaoverload), and
filterwrapped in an explicit lambda to satisfyPredicate<? super Q>unambiguously.
@Suppress("UNCHECKED_CAST")covers the remaining compiler warning.What was done (full summary)
Build (
extensions/kotlin/pom.xml)axon-extensions/5.1.0-SNAPSHOT<log4j.version>2.13.3</log4j.version>(would break monorepo resolution)jackson-module-kotlin,kotlinx-serialization-core,javax.xml.bind:jaxb-apiall-open:annotation=...AggregateRootcompiler plugin optionaxon-configuration→axon-messagingin dependency managementDeleted — AF4-only, no AF5 equivalent (yet)
AggregateLifecycleExtensions.ktAggregateLifecycle/@AggregateRootremoved in AF5BuilderExtensions.ktEventSourcingRepository/GenericJpaRepositorybuilders not present in AF5ResultDiscriminatorCommandCallback.ktCommandCallback/CommandResultMessagereplaced byCommandResultEventUpcaster.ktSingleEventUpcasternot available in AF5.0/5.1; tracked for 5.2messaging/responsetypes/ArrayResponseType.ktAbstractResponseTyperemoved;ResponseTypehierarchy reworkedserialization/(entire module)Serializerreplaced byConverter; full rewrite out of scope — tracked as follow-upMETA-INF/spring-devtools.propertiesRewritten for AF5
CommandGatewayExtensions.kt—send,sendForResult,sendAndWaitoverCommandResult<R>(replaces AF4CommandCallback/CommandResultMessagepattern).QueryGatewayExtensions.kt—query,queryMany,subscriptionQueryretained;scatterGather*replaced bystreamingQuery; type boundR : Anyon all functionswhere
Ris used asClass<R>.QueryUpdateEmitterExtensions.kt— package import updated to AF5;Q : Anybound added; explicit SAM lambda forPredicate.kotlin-test/FixtureExtensions.kt—AggregateTestFixture/SagaTestFixture/TestExecutor/ResultValidatorreplaced by the AF5 phase-basedAxonTestFixture/AxonTestPhaseAPI;whenever(),whenever(command),exception(KClass),exception(KClass, message)rewritten accordingly.Tests
18 tests pass (12 in
kotlin, 6 inkotlin-test). Test files are identical tothe ones in PR#394.
Documentation
README.md: versions4.6.0→5.1.0-SNAPSHOT, CI/SonarCloud/CodeTriage badgesremoved (standalone-repo artefacts), issue tracker URL updated to monorepo,
docs profile name corrected (
javadoc-and-sources→docs-and-sources).Out of scope / follow-up
KotlinSerializer/KotlinConverterConverterAPIEventUpcasterDSLSingleEventUpcasterabsent from AF5.0/5.1; scheduled for 5.2