refactor!: resolve all split packages across Maven modules#987
Conversation
There was a problem hiding this comment.
Code Review
This pull request refactors package structures and imports across multiple modules. Specifically, utility classes (such as CollectionCopies, ErrorDetail, PageToken, and Utils) have been moved from org.a2aproject.sdk.util to org.a2aproject.sdk.spec.util. Additionally, HTTP client implementations for Android and Vert.x, as well as OpenTelemetry server decorators, have been relocated to more specific subpackages. Feedback is provided to eliminate unnecessary reflection when instantiating VertxA2AHttpClient inside VertxA2AHttpClientProvider, as both classes now reside in the same package and module.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Rename packages in leaf/dependent modules so no Java package spans
multiple Maven modules. This eliminates duplicate package-info.class
in published jars (which broke Android builds) and enables
javadoc:aggregate.
Package moves:
- org.a2aproject.sdk.util (spec) -> org.a2aproject.sdk.spec.util
- org.a2aproject.sdk.extras.opentelemetry (server) -> org.a2aproject.sdk.extras.opentelemetry.server
- org.a2aproject.sdk.client.http (android) -> org.a2aproject.sdk.client.http.android
- org.a2aproject.sdk.client.http (vertx) -> org.a2aproject.sdk.client.http.vertx
- org.a2aproject.sdk.compat03.conversion (test) -> org.a2aproject.sdk.compat03.conversion.test
- org.a2aproject.sdk.examples.helloworld -> .client / .server sub-packages
- org.a2aproject.sdk.test -> org.a2aproject.sdk.bom.test.{sdk,reference,extras}
- org.a2aproject.sdk.server.events (test) -> org.a2aproject.sdk.extras.queuemanager.replicated.events
This fixes a2aproject#978
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove EventQueueTestHelper from org.a2aproject.sdk.server.events in the replicated module (split package with server-common). Consolidate tapQueue() into server-common's test-jar EventQueueUtil and add a test-jar dependency. Normalize trailing newlines in new package-info files. Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
Rename packages in leaf/dependent modules so no Java package spans multiple Maven modules. This eliminates duplicate package-info.class in published jars (which broke Android builds) and enables javadoc:aggregate.
Package moves:
BREAKING CHANGE: While renaming packages isn't ideal, we've aimed to minimize inconvenience, while dealing with the split package problem. As all the moved classes exposed to users are in the extras/ submodules, and not the core SDK, we chose to stay on the 1.1.x stream.
This fixes #978