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
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ mvn clean install
- Use `org.a2aproject.sdk.util.Assert.checkNotNullParam()` in the compact constructor to validate required fields
- Use `List.copyOf()` and `Map.copyOf()` for defensive copying of collections
- Apply the Builder pattern for records with many fields (see `AgentCard.java` as reference)
- Do not split Java packages across Maven modules in production code (each package must belong to exactly one module). Test code may share a package with production code to access package-private members.

### Code generation

Expand Down
2 changes: 1 addition & 1 deletion boms/extras/src/it/extras-usage-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.a2aproject.sdk.test.ExtrasBomVerifier</mainClass>
<mainClass>org.a2aproject.sdk.bom.test.extras.ExtrasBomVerifier</mainClass>
</configuration>
</execution>
</executions>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.test;
package org.a2aproject.sdk.bom.test.extras;

import org.a2aproject.sdk.bom.test.DynamicBomVerifier;

Expand Down
2 changes: 1 addition & 1 deletion boms/reference/src/it/reference-usage-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.a2aproject.sdk.test.ReferenceBomVerifier</mainClass>
<mainClass>org.a2aproject.sdk.bom.test.reference.ReferenceBomVerifier</mainClass>
</configuration>
</execution>
</executions>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.test;
package org.a2aproject.sdk.bom.test.reference;

import org.a2aproject.sdk.bom.test.DynamicBomVerifier;

Expand Down
2 changes: 1 addition & 1 deletion boms/sdk/src/it/sdk-usage-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.a2aproject.sdk.test.SdkBomVerifier</mainClass>
<mainClass>org.a2aproject.sdk.bom.test.sdk.SdkBomVerifier</mainClass>
</configuration>
</execution>
</executions>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.test;
package org.a2aproject.sdk.bom.test.sdk;

import org.a2aproject.sdk.bom.test.DynamicBomVerifier;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.client;

import static org.a2aproject.sdk.util.Utils.appendArtifactToTask;
import static org.a2aproject.sdk.spec.util.Utils.appendArtifactToTask;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
import org.a2aproject.sdk.spec.TaskIdParams;
import org.a2aproject.sdk.spec.TaskPushNotificationConfig;
import org.a2aproject.sdk.spec.TaskQueryParams;
import org.a2aproject.sdk.util.Utils;
import org.a2aproject.sdk.spec.util.Utils;
import org.jspecify.annotations.Nullable;

public class JSONRPCTransport implements ClientTransport {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
import org.a2aproject.sdk.spec.TaskQueryParams;
import org.a2aproject.sdk.spec.TaskState;
import org.a2aproject.sdk.spec.TextPart;
import org.a2aproject.sdk.util.Utils;
import org.a2aproject.sdk.spec.util.Utils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
import org.a2aproject.sdk.spec.TaskIdParams;
import org.a2aproject.sdk.spec.TaskPushNotificationConfig;
import org.a2aproject.sdk.spec.TaskQueryParams;
import org.a2aproject.sdk.util.Utils;
import org.a2aproject.sdk.spec.util.Utils;
import org.jspecify.annotations.Nullable;

public class RestTransport implements ClientTransport {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.a2aproject.sdk.compat03.spec.A2AClientError_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientJSONError_v0_3;
import org.a2aproject.sdk.compat03.spec.AgentCard_v0_3;
import org.a2aproject.sdk.util.Utils;
import org.a2aproject.sdk.spec.util.Utils;
import org.jspecify.annotations.Nullable;

public class A2ACardResolver_v0_3 {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;

import org.a2aproject.sdk.client.http.AndroidA2AHttpClient;
import org.a2aproject.sdk.client.http.android.AndroidA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;

import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;

import org.a2aproject.sdk.client.http.AndroidA2AHttpClient;
import org.a2aproject.sdk.client.http.android.AndroidA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;

import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import io.quarkus.test.junit.TestProfile;
import io.vertx.core.Vertx;
import jakarta.inject.Inject;
import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;

import org.a2aproject.sdk.client.http.AndroidA2AHttpClient;
import org.a2aproject.sdk.client.http.android.AndroidA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;

import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;

import org.a2aproject.sdk.client.http.AndroidA2AHttpClient;
import org.a2aproject.sdk.client.http.android.AndroidA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;

import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import io.quarkus.test.junit.TestProfile;
import io.vertx.core.Vertx;
import jakarta.inject.Inject;
import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.compat03.conversion;
package org.a2aproject.sdk.compat03.conversion.test;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.compat03.conversion;
package org.a2aproject.sdk.compat03.conversion.test;

import jakarta.enterprise.context.RequestScoped;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.compat03.conversion;
package org.a2aproject.sdk.compat03.conversion.test;

import java.util.concurrent.ConcurrentHashMap;

Expand Down
4 changes: 2 additions & 2 deletions examples/helloworld/client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<description>Examples for the Java SDK for the Agent2Agent Protocol (A2A)</description>

<properties>
<jbang.script.name>src/main/java/org/a2aproject/sdk/examples/helloworld/HelloWorldRunner.java</jbang.script.name>
<jbang.script.name>src/main/java/org/a2aproject/sdk/examples/helloworld/client/HelloWorldRunner.java</jbang.script.name>
</properties>

<dependencies>
Expand Down Expand Up @@ -93,7 +93,7 @@
<artifactId>exec-maven-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<mainClass>org.a2aproject.sdk.examples.helloworld.HelloWorldClient</mainClass>
<mainClass>org.a2aproject.sdk.examples.helloworld.client.HelloWorldClient</mainClass>
<systemProperties>
<systemProperty>
<key>opentelemetry</key>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.examples.helloworld;
package org.a2aproject.sdk.examples.helloworld.client;

import static org.a2aproject.sdk.extras.opentelemetry.client.OpenTelemetryClientTransportWrapper.OTEL_TRACER_KEY;
import static org.a2aproject.sdk.extras.opentelemetry.client.propagation.OpenTelemetryClientPropagatorTransportWrapper.OTEL_OPEN_TELEMETRY_KEY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public static void main(String[] args) {
}
}
}
org.a2aproject.sdk.examples.helloworld.HelloWorldClient.main(args);
org.a2aproject.sdk.examples.helloworld.client.HelloWorldClient.main(args);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.examples.helloworld;
package org.a2aproject.sdk.examples.helloworld.server;

import org.a2aproject.sdk.server.PublicAgentCard;
import org.a2aproject.sdk.spec.AgentCapabilities;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.a2aproject.sdk.examples.helloworld;
package org.a2aproject.sdk.examples.helloworld.server;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import static java.net.HttpURLConnection.HTTP_FORBIDDEN;
import static java.net.HttpURLConnection.HTTP_MULT_CHOICE;
import static java.net.HttpURLConnection.HTTP_OK;
import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED;

import org.a2aproject.sdk.common.A2AErrorMessages;
import org.a2aproject.sdk.spec.A2AClientHTTPError;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
Expand All @@ -26,6 +24,13 @@
import java.util.concurrent.Executors;
import java.util.function.Consumer;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.A2AHttpHeaders;
import org.a2aproject.sdk.client.http.A2AHttpResponse;
import org.a2aproject.sdk.client.http.ServerSentEvent;
import org.a2aproject.sdk.client.http.ServerSentEventParser;
import org.a2aproject.sdk.common.A2AErrorMessages;
import org.a2aproject.sdk.spec.A2AClientHTTPError;
import org.jspecify.annotations.Nullable;

/** Android-specific implementation of {@link A2AHttpClient} using {@link HttpURLConnection}. */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.A2AHttpClientProvider;

/**
* Service provider for {@link AndroidA2AHttpClient}.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@NullMarked
package org.a2aproject.sdk.extras.opentelemetry;
package org.a2aproject.sdk.client.http.android;

import org.jspecify.annotations.NullMarked;

Original file line number Diff line number Diff line change
@@ -1 +1 @@
org.a2aproject.sdk.client.http.AndroidA2AHttpClientProvider
org.a2aproject.sdk.client.http.android.AndroidA2AHttpClientProvider
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.junit.jupiter.api.Test;

public class AndroidA2AHttpClientFactoryTest {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.AbstractA2AHttpClientIntegrationTest;

public class AndroidA2AHttpClientIntegrationTest extends AbstractA2AHttpClientIntegrationTest {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.AbstractA2AHttpClientSSETest;

public class AndroidA2AHttpClientSSETest extends AbstractA2AHttpClientSSETest {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package org.a2aproject.sdk.client.http;
package org.a2aproject.sdk.client.http.android;

import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertSame;

import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.junit.jupiter.api.Test;

public class AndroidA2AHttpClientTest {
Expand Down
6 changes: 3 additions & 3 deletions extras/http-client-vertx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ The `VertxA2AHttpClient` constructor automatically checks for a CDI-managed `Ver
If you're not using CDI but want to share a Vert.x instance:

```java
import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import io.vertx.core.Vertx;

// Create Vertx instance once
Expand All @@ -242,7 +242,7 @@ For advanced use cases requiring custom Vert.x WebClient configuration, you can

```java
import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
import org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClient;
import io.vertx.core.Vertx;
import io.vertx.ext.web.client.WebClient;
import io.vertx.ext.web.client.WebClientOptions;
Expand All @@ -263,7 +263,7 @@ The module uses Java's `ServiceLoader` mechanism for automatic discovery:

1. **Provider Registration**: `META-INF/services/org.a2aproject.sdk.client.http.A2AHttpClientProvider` contains:
```
org.a2aproject.sdk.client.http.VertxA2AHttpClientProvider
org.a2aproject.sdk.client.http.vertx.VertxA2AHttpClientProvider
```

2. **Priority System**: Each provider has a priority:
Expand Down
Loading
Loading