Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CONTRIBUTING_INTEGRATIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributing A2A SDK Integrations

To add your A2A SDK Integration for your chosen runtime to the list of integrations in the [README](README.md#server-integrations), open a pull request adding it to the list.

The pull request should contain a link to your project page.

Then the project page itself needs to contain the following information as a minimum:

* How to use the integration.
* Ideally there should be a sample demonstrating how to use it
* The integration should have tests, extending [AbstractA2AServerTest](tests/server-common/src/test/java/io/a2a/server/apps/common/AbstractA2AServerTest.java)
* The integration should pass the [TCK](https://github.com/a2aproject/a2a-tck), and make it obvious how to see that it has passed.
* Ideally, the integration should be deployed in Maven Central. If that is not possible, provide clear instructions for how to build it.

If some of the above points are problematic, feel free to point that out in your pull request, and we can discuss further. For example, AbstractA2AServerTest is currently written with only the initial runtimes in mind, and might need some tweaking.
29 changes: 14 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,32 +33,23 @@ The A2A Java SDK provides a Java server implementation of the [Agent2Agent (A2A)
- [Add a class that creates an A2A Agent Card](#2-add-a-class-that-creates-an-a2a-agent-card)
- [Add a class that creates an A2A Agent Executor](#3-add-a-class-that-creates-an-a2a-agent-executor)

### 1. Add an A2A Java SDK Server Maven dependency to your project
### 1. Add the A2A Java SDK Server Maven dependency to your project

Adding a dependency on an A2A Java SDK Server will provide access to the core classes that make up the A2A specification
and allow you to run your agentic Java application as an A2A server agent.

The A2A Java SDK provides two A2A server endpoint implementations, one based on Jakarta REST (`a2a-java-sdk-server-jakarta`) and one based on Quarkus Reactive Routes (`a2a-java-sdk-server-quarkus`). You can choose the one that best fits your application.
The A2A Java SDK provides a [reference A2A server implementation](reference-impl/README.md) based on [Quarkus](https://quarkus.io) for use with our tests and examples. However, the project is designed in such a way that it is trivial to integrate with various Java runtimes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Consider rephrasing to clarify that the reference implementation is just one option, and other runtimes can be integrated. This highlights the flexibility of the SDK. For example: "The A2A Java SDK provides a reference A2A server implementation based on Quarkus for use with our tests and examples. However, the project is designed to be runtime-agnostic and easily integrated with various Java runtimes."


Add **one** of the following dependencies to your project:
[Server Integrations](#server-integrations) contains a list of community contributed integrations of the server with various runtimes. You might be able to use one of these for your target runtime, or you can use them as inspiration to create your own.

> *⚠️ The `io.github.a2asdk` `groupId` below is temporary and will likely change for future releases.*
To use the reference implementation add the following dependency to your project:

```xml
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-server-jakarta</artifactId>
<!-- Use a released version from https://github.com/a2aproject/a2a-java/releases -->
<version>${io.a2a.sdk.version}</version>
</dependency>
```

OR
> *⚠️ The `io.github.a2asdk` `groupId` below is temporary and will likely change for future releases.*

```xml
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<artifactId>a2a-java-reference-server</artifactId>
<!-- Use a released version from https://github.com/a2aproject/a2a-java/releases -->
<version>${io.a2a.sdk.version}</version>
</dependency>
Expand Down Expand Up @@ -372,5 +363,13 @@ This project is licensed under the terms of the [Apache 2.0 License](LICENSE).

See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.

## Server Integrations
The following list contains community contributed integrations with various Java Runtimes.

To contribute an integration, please see [CONTRIBUTING_INTEGRATIONS.md](CONTRIBUTING_INTEGRATIONS.md).

* [reference-impl/README.md](reference-impl/README.md) - Reference implementation, based on Quarkus.
* https://github.com/wildfly-extras/a2a-java-sdk-server-jakarta - This integration is based on Jakarta EE, and should work in all runtimes supporting the [Jakarta EE Web Profile](https://jakarta.ee/specifications/webprofile/).



2 changes: 1 addition & 1 deletion examples/helloworld/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
</dependency>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<artifactId>a2a-java-reference-server</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
Expand Down
2 changes: 1 addition & 1 deletion examples/helloworld/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<dependencies>
<dependency>
<groupId>io.github.a2asdk</groupId>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<artifactId>a2a-java-reference-server</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
Expand Down
3 changes: 1 addition & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -271,8 +271,7 @@
<module>common</module>
<module>spec</module>
<module>client</module>
<module>sdk-jakarta</module>
<module>sdk-quarkus</module>
<module>reference-impl</module>
<module>tck</module>
<module>examples/helloworld</module>
<module>tests/server-common</module>
Expand Down
7 changes: 7 additions & 0 deletions reference-impl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# A2A Java SDK Reference Server Integration

This is a reference server for the A2A SDK for Java, that we use to run tests, as well as to demonstrate examples.

It is based on [Quarkus](https://quarkus.io), and makes use of Quarkus's [Reactive Routes](https://quarkus.io/guides/reactive-routes).

It is a great choice if you use Quarkus!
6 changes: 3 additions & 3 deletions sdk-quarkus/pom.xml → reference-impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
<artifactId>a2a-java-sdk-parent</artifactId>
<version>0.2.3.Beta2-SNAPSHOT</version>
</parent>
<artifactId>a2a-java-sdk-server-quarkus</artifactId>
<artifactId>a2a-java-reference-server</artifactId>

<packaging>jar</packaging>

<name>Java A2A SDK for Quarkus</name>
<description>Java SDK for the Agent2Agent Protocol (A2A) - SDK - Quarkus</description>
<name>Java A2A Reference Server</name>
<description>Java SDK for the Agent2Agent Protocol (A2A) - A2A Reference Server (based on Quarkus)</description>

<dependencies>
<dependency>
Expand Down
242 changes: 0 additions & 242 deletions sdk-jakarta/pom.xml

This file was deleted.

Loading