You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: boms/README.md
+3-51Lines changed: 3 additions & 51 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -140,16 +140,8 @@ Add to your project's `pom.xml`:
140
140
141
141
## Internal Project Usage
142
142
143
-
**Important:** The A2A Java SDK project itself does **NOT** import these BOMs in the parent `pom.xml`.
144
-
145
-
### Why Not Use BOMs Internally?
146
-
147
-
Following the WildFly pattern, we keep BOMs separate from internal dependency management for several reasons:
148
-
149
-
1.**Build Order Complexity**: BOMs must be built before other modules, adding reactor ordering constraints
150
-
2.**Flexibility**: Parent pom may need different scopes/configurations than external users
151
-
3.**Simplicity**: Avoids potential circular dependencies and build complexity
152
-
4.**Single Source of Truth**: Parent `pom.xml` remains authoritative for internal builds
143
+
**Important:** The A2A Java SDK project itself does **NOT** import these BOMs in the parent `pom.xml`. The BOMs are
144
+
for the convenience of external users.
153
145
154
146
### Maintenance Strategy
155
147
@@ -235,44 +227,4 @@ The BOMs use `${project.version}` for all A2A SDK modules, ensuring:
235
227
- Version updates only need to change parent pom
236
228
- No version drift between BOMs and SDK modules
237
229
238
-
## Build Order
239
-
240
-
BOMs have explicit dependencies to ensure correct reactor build order:
241
-
-**SDK BOM** builds first (no BOM dependencies)
242
-
-**Extras BOM** builds second (depends on SDK BOM)
243
-
-**Reference BOM** builds third (depends on SDK BOM)
244
-
245
-
Maven's reactor automatically orders them correctly based on their `<dependencies>` declarations, regardless of their position in the parent pom's `<modules>` section.
246
-
247
-
## Examples
248
-
249
-
See the `examples/` directory for sample projects using these BOMs:
250
-
-`examples/helloworld/` - Basic agent using SDK BOM
251
-
-`examples/cloud-deployment/` - Quarkus-based agent using Reference BOM
252
-
253
-
## Release Process
254
-
255
-
When releasing the A2A Java SDK:
256
-
257
-
1. All three BOMs are released as separate Maven artifacts
258
-
2. External users can depend on them via Maven Central
259
-
3. BOMs follow the same version scheme as the SDK (e.g., `0.4.0.Alpha1`, `0.4.0`)
260
-
261
-
## Questions?
262
-
263
-
-**Which BOM should I use?**
264
-
- Quarkus project → Reference BOM
265
-
- Production server with database/distributed features → Extras BOM
266
-
- Other framework/basic agent → SDK BOM
267
-
268
-
-**Can I use Extras BOM with Spring Boot?**
269
-
- Yes! Extras BOM imports SDK BOM and adds server enhancements that work with any framework.
270
-
271
-
-**Can I use Reference BOM with Spring Boot?**
272
-
- Yes, but you'll get unnecessary Quarkus dependencies. Use SDK BOM or Extras BOM instead.
- Test scope dependencies don't pollute runtime, but allow users to easily import test utilities.
230
+
Maven's reactor automatically orders them correctly based on their `<dependencies>` declarations, regardless of their position in the parent pom's `<modules>` section.
0 commit comments