diff --git a/boms/sdk/pom.xml b/boms/sdk/pom.xml
index 149ebd6d3..e85d715e2 100644
--- a/boms/sdk/pom.xml
+++ b/boms/sdk/pom.xml
@@ -120,13 +120,6 @@
${project.version}
-
-
- ${project.groupId}
- a2a-java-sdk-compat-0.3-http-client
- ${project.version}
-
-
${project.groupId}
diff --git a/boms/sdk/src/it/sdk-usage-test/pom.xml b/boms/sdk/src/it/sdk-usage-test/pom.xml
index 851f98ea9..1f73494e9 100644
--- a/boms/sdk/src/it/sdk-usage-test/pom.xml
+++ b/boms/sdk/src/it/sdk-usage-test/pom.xml
@@ -113,12 +113,6 @@
a2a-java-sdk-compat-0.3-spec-grpc
-
-
- org.a2aproject.sdk
- a2a-java-sdk-compat-0.3-http-client
-
-
org.a2aproject.sdk
diff --git a/compat-0.3/client/base/pom.xml b/compat-0.3/client/base/pom.xml
index 6fa0036ff..5fd78bdbe 100644
--- a/compat-0.3/client/base/pom.xml
+++ b/compat-0.3/client/base/pom.xml
@@ -20,7 +20,7 @@
${project.groupId}
- a2a-java-sdk-compat-0.3-http-client
+ a2a-java-sdk-http-client
${project.groupId}
diff --git a/compat-0.3/client/base/src/main/java/org/a2aproject/sdk/compat03/A2A_v0_3.java b/compat-0.3/client/base/src/main/java/org/a2aproject/sdk/compat03/A2A_v0_3.java
index 2be60b7ad..dfbc37386 100644
--- a/compat-0.3/client/base/src/main/java/org/a2aproject/sdk/compat03/A2A_v0_3.java
+++ b/compat-0.3/client/base/src/main/java/org/a2aproject/sdk/compat03/A2A_v0_3.java
@@ -4,9 +4,9 @@
import java.util.List;
import java.util.Map;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.a2aproject.sdk.compat03.client.http.A2ACardResolver_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
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;
@@ -138,7 +138,7 @@ private static Message_v0_3 toMessage(List> parts, Message_v0_3.Rol
* @throws A2AClientJSONError_v0_3 If the response body cannot be decoded as JSON or validated against the AgentCard schema
*/
public static AgentCard_v0_3 getAgentCard(String agentUrl) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
- return getAgentCard(new JdkA2AHttpClient_v0_3(), agentUrl);
+ return getAgentCard(A2AHttpClientFactory.create(), agentUrl);
}
/**
@@ -150,7 +150,7 @@ public static AgentCard_v0_3 getAgentCard(String agentUrl) throws A2AClientError
* @throws A2AClientError_v0_3 If an HTTP error occurs fetching the card
* @throws A2AClientJSONError_v0_3 If the response body cannot be decoded as JSON or validated against the AgentCard schema
*/
- public static AgentCard_v0_3 getAgentCard(A2AHttpClient_v0_3 httpClient, String agentUrl) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
+ public static AgentCard_v0_3 getAgentCard(A2AHttpClient httpClient, String agentUrl) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
return getAgentCard(httpClient, agentUrl, null, null);
}
@@ -166,7 +166,7 @@ public static AgentCard_v0_3 getAgentCard(A2AHttpClient_v0_3 httpClient, String
* @throws A2AClientJSONError_v0_3 If the response body cannot be decoded as JSON or validated against the AgentCard schema
*/
public static AgentCard_v0_3 getAgentCard(String agentUrl, String relativeCardPath, Map authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
- return getAgentCard(new JdkA2AHttpClient_v0_3(), agentUrl, relativeCardPath, authHeaders);
+ return getAgentCard(A2AHttpClientFactory.create(), agentUrl, relativeCardPath, authHeaders);
}
/**
@@ -181,7 +181,7 @@ public static AgentCard_v0_3 getAgentCard(String agentUrl, String relativeCardPa
* @throws A2AClientError_v0_3 If an HTTP error occurs fetching the card
* @throws A2AClientJSONError_v0_3 If the response body cannot be decoded as JSON or validated against the AgentCard schema
*/
- public static AgentCard_v0_3 getAgentCard(A2AHttpClient_v0_3 httpClient, String agentUrl, String relativeCardPath, Map authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
+ public static AgentCard_v0_3 getAgentCard(A2AHttpClient httpClient, String agentUrl, String relativeCardPath, Map authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
A2ACardResolver_v0_3 resolver = new A2ACardResolver_v0_3(httpClient, agentUrl, relativeCardPath, authHeaders);
return resolver.getAgentCard();
}
diff --git a/compat-0.3/client/base/src/test/java/org/a2aproject/sdk/compat03/client/ClientBuilder_v0_3_Test.java b/compat-0.3/client/base/src/test/java/org/a2aproject/sdk/compat03/client/ClientBuilder_v0_3_Test.java
index 4b4e31d0b..fa910f041 100644
--- a/compat-0.3/client/base/src/test/java/org/a2aproject/sdk/compat03/client/ClientBuilder_v0_3_Test.java
+++ b/compat-0.3/client/base/src/test/java/org/a2aproject/sdk/compat03/client/ClientBuilder_v0_3_Test.java
@@ -1,7 +1,7 @@
package org.a2aproject.sdk.compat03.client;
import org.a2aproject.sdk.compat03.client.config.ClientConfig_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.JdkA2AHttpClient;
import org.a2aproject.sdk.compat03.client.transport.grpc.GrpcTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.grpc.GrpcTransportConfigBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
@@ -88,7 +88,7 @@ public void shouldCreateClient_differentConfigurations() throws A2AClientExcepti
Client_v0_3 client = Client_v0_3
.builder(card)
.withTransport(JSONRPCTransport_v0_3.class, new JSONRPCTransportConfigBuilder_v0_3())
- .withTransport(JSONRPCTransport_v0_3.class, new JSONRPCTransportConfig_v0_3(new JdkA2AHttpClient_v0_3()))
+ .withTransport(JSONRPCTransport_v0_3.class, new JSONRPCTransportConfig_v0_3(new JdkA2AHttpClient()))
.build();
Assertions.assertNotNull(client);
diff --git a/compat-0.3/client/transport/jsonrpc/pom.xml b/compat-0.3/client/transport/jsonrpc/pom.xml
index fd099d2d0..af1121c5f 100644
--- a/compat-0.3/client/transport/jsonrpc/pom.xml
+++ b/compat-0.3/client/transport/jsonrpc/pom.xml
@@ -19,7 +19,7 @@
${project.groupId}
- a2a-java-sdk-compat-0.3-http-client
+ a2a-java-sdk-http-client
${project.groupId}
diff --git a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfigBuilder_v0_3.java b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfigBuilder_v0_3.java
index be9d95608..557832b97 100644
--- a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfigBuilder_v0_3.java
+++ b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfigBuilder_v0_3.java
@@ -1,14 +1,14 @@
package org.a2aproject.sdk.compat03.client.transport.jsonrpc;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportConfigBuilder_v0_3;
public class JSONRPCTransportConfigBuilder_v0_3 extends ClientTransportConfigBuilder_v0_3 {
- private A2AHttpClient_v0_3 httpClient;
+ private A2AHttpClient httpClient;
- public JSONRPCTransportConfigBuilder_v0_3 httpClient(A2AHttpClient_v0_3 httpClient) {
+ public JSONRPCTransportConfigBuilder_v0_3 httpClient(A2AHttpClient httpClient) {
this.httpClient = httpClient;
return this;
@@ -16,13 +16,13 @@ public JSONRPCTransportConfigBuilder_v0_3 httpClient(A2AHttpClient_v0_3 httpClie
@Override
public JSONRPCTransportConfig_v0_3 build() {
- // No HTTP client provided, fallback to the default one (JDK-based implementation)
+ // No HTTP client provided, fallback to the default one
if (httpClient == null) {
- httpClient = new JdkA2AHttpClient_v0_3();
+ httpClient = A2AHttpClientFactory.create();
}
JSONRPCTransportConfig_v0_3 config = new JSONRPCTransportConfig_v0_3(httpClient);
config.setInterceptors(this.interceptors);
return config;
}
-}
\ No newline at end of file
+}
diff --git a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfig_v0_3.java b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfig_v0_3.java
index 7e01e3e56..9e67e4640 100644
--- a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfig_v0_3.java
+++ b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportConfig_v0_3.java
@@ -1,21 +1,21 @@
package org.a2aproject.sdk.compat03.client.transport.jsonrpc;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportConfig_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
public class JSONRPCTransportConfig_v0_3 extends ClientTransportConfig_v0_3 {
- private final A2AHttpClient_v0_3 httpClient;
+ private final A2AHttpClient httpClient;
public JSONRPCTransportConfig_v0_3() {
this.httpClient = null;
}
- public JSONRPCTransportConfig_v0_3(A2AHttpClient_v0_3 httpClient) {
+ public JSONRPCTransportConfig_v0_3(A2AHttpClient httpClient) {
this.httpClient = httpClient;
}
- public A2AHttpClient_v0_3 getHttpClient() {
+ public A2AHttpClient getHttpClient() {
return httpClient;
}
-}
\ No newline at end of file
+}
diff --git a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportProvider_v0_3.java b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportProvider_v0_3.java
index afe66dadf..3787bf117 100644
--- a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportProvider_v0_3.java
+++ b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransportProvider_v0_3.java
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.client.transport.jsonrpc;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportProvider_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientException_v0_3;
import org.a2aproject.sdk.compat03.spec.AgentCard_v0_3;
@@ -11,7 +11,7 @@ public class JSONRPCTransportProvider_v0_3 implements ClientTransportProvider_v0
@Override
public JSONRPCTransport_v0_3 create(JSONRPCTransportConfig_v0_3 clientTransportConfig, AgentCard_v0_3 agentCard, String agentUrl) throws A2AClientException_v0_3 {
if (clientTransportConfig == null) {
- clientTransportConfig = new JSONRPCTransportConfig_v0_3(new JdkA2AHttpClient_v0_3());
+ clientTransportConfig = new JSONRPCTransportConfig_v0_3(A2AHttpClientFactory.create());
}
return new JSONRPCTransport_v0_3(clientTransportConfig.getHttpClient(), agentCard, agentUrl, clientTransportConfig.getInterceptors());
diff --git a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransport_v0_3.java b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransport_v0_3.java
index d379277cd..e7ee7eb47 100644
--- a/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransport_v0_3.java
+++ b/compat-0.3/client/transport/jsonrpc/src/main/java/org/a2aproject/sdk/compat03/client/transport/jsonrpc/JSONRPCTransport_v0_3.java
@@ -10,13 +10,14 @@
import org.a2aproject.sdk.compat03.json.JsonProcessingException_v0_3;
import org.a2aproject.sdk.compat03.json.JsonUtil_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
+import org.a2aproject.sdk.client.http.A2AHttpResponse;
+import org.a2aproject.sdk.client.http.ServerSentEvent;
import org.a2aproject.sdk.compat03.client.http.A2ACardResolver_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.ClientCallContext_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.ClientCallInterceptor_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.PayloadAndHeaders_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpResponse_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransport_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientError_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientException_v0_3;
@@ -69,7 +70,7 @@ public class JSONRPCTransport_v0_3 implements ClientTransport_v0_3 {
private static final Class DELETE_TASK_PUSH_NOTIFICATION_CONFIG_RESPONSE_REFERENCE = DeleteTaskPushNotificationConfigResponse_v0_3.class;
private static final Class GET_AUTHENTICATED_EXTENDED_CARD_RESPONSE_REFERENCE = GetAuthenticatedExtendedCardResponse_v0_3.class;
- private final A2AHttpClient_v0_3 httpClient;
+ private final A2AHttpClient httpClient;
private final String agentUrl;
private final List interceptors;
private AgentCard_v0_3 agentCard;
@@ -83,9 +84,9 @@ public JSONRPCTransport_v0_3(AgentCard_v0_3 agentCard) {
this(null, agentCard, agentCard.url(), null);
}
- public JSONRPCTransport_v0_3(A2AHttpClient_v0_3 httpClient, AgentCard_v0_3 agentCard,
+ public JSONRPCTransport_v0_3(A2AHttpClient httpClient, AgentCard_v0_3 agentCard,
String agentUrl, List interceptors) {
- this.httpClient = httpClient == null ? new JdkA2AHttpClient_v0_3() : httpClient;
+ this.httpClient = httpClient == null ? A2AHttpClientFactory.create() : httpClient;
this.agentCard = agentCard;
this.agentUrl = agentUrl;
this.interceptors = interceptors;
@@ -133,9 +134,9 @@ public void sendMessageStreaming(MessageSendParams_v0_3 request, Consumer sseEventListener.onMessage(msg, ref.get()),
+ event -> sseEventListener.onMessage(event.data(), ref.get()),
throwable -> sseEventListener.onError(throwable, ref.get()),
() -> {
// Signal normal stream completion to error handler (null error means success)
@@ -314,9 +315,9 @@ public void resubscribe(TaskIdParams_v0_3 request, Consumer sseEventListener.onMessage(msg, ref.get()),
+ event -> sseEventListener.onMessage(event.data(), ref.get()),
throwable -> sseEventListener.onError(throwable, ref.get()),
() -> {
// Signal normal stream completion to error handler (null error means success)
@@ -385,16 +386,16 @@ private PayloadAndHeaders_v0_3 applyInterceptors(String methodName, Object paylo
}
private String sendPostRequest(PayloadAndHeaders_v0_3 payloadAndHeaders) throws IOException, InterruptedException, JsonProcessingException_v0_3 {
- A2AHttpClient_v0_3.PostBuilder builder = createPostBuilder(payloadAndHeaders);
- A2AHttpResponse_v0_3 response = builder.post();
+ A2AHttpClient.PostBuilder builder = createPostBuilder(payloadAndHeaders);
+ A2AHttpResponse response = builder.post();
if (!response.success()) {
throw new IOException("Request failed " + response.status());
}
return response.body();
}
- private A2AHttpClient_v0_3.PostBuilder createPostBuilder(PayloadAndHeaders_v0_3 payloadAndHeaders) throws JsonProcessingException_v0_3 {
- A2AHttpClient_v0_3.PostBuilder postBuilder = httpClient.createPost()
+ private A2AHttpClient.PostBuilder createPostBuilder(PayloadAndHeaders_v0_3 payloadAndHeaders) throws JsonProcessingException_v0_3 {
+ A2AHttpClient.PostBuilder postBuilder = httpClient.createPost()
.url(agentUrl)
.addHeader("Content-Type", "application/json")
.body(JsonUtil_v0_3.toJson(payloadAndHeaders.getPayload()));
diff --git a/compat-0.3/client/transport/rest/pom.xml b/compat-0.3/client/transport/rest/pom.xml
index 2539152af..0b101ed9e 100644
--- a/compat-0.3/client/transport/rest/pom.xml
+++ b/compat-0.3/client/transport/rest/pom.xml
@@ -35,7 +35,7 @@
${project.groupId}
- a2a-java-sdk-compat-0.3-http-client
+ a2a-java-sdk-http-client
com.google.protobuf
diff --git a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestErrorMapper_v0_3.java b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestErrorMapper_v0_3.java
index d6732726e..d9b6d1368 100644
--- a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestErrorMapper_v0_3.java
+++ b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestErrorMapper_v0_3.java
@@ -4,7 +4,7 @@
import com.google.gson.JsonObject;
import org.a2aproject.sdk.compat03.json.JsonProcessingException_v0_3;
import org.a2aproject.sdk.compat03.json.JsonUtil_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpResponse_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpResponse;
import org.a2aproject.sdk.compat03.spec.A2AClientException_v0_3;
import org.a2aproject.sdk.compat03.spec.AuthenticatedExtendedCardNotConfiguredError_v0_3;
import org.a2aproject.sdk.compat03.spec.ContentTypeNotSupportedError_v0_3;
@@ -26,7 +26,7 @@
*/
public class RestErrorMapper_v0_3 {
- public static A2AClientException_v0_3 mapRestError(A2AHttpResponse_v0_3 response) {
+ public static A2AClientException_v0_3 mapRestError(A2AHttpResponse response) {
return RestErrorMapper_v0_3.mapRestError(response.body(), response.status());
}
diff --git a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfigBuilder_v0_3.java b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfigBuilder_v0_3.java
index 13794ee3f..cab5e3a82 100644
--- a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfigBuilder_v0_3.java
+++ b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfigBuilder_v0_3.java
@@ -1,28 +1,28 @@
package org.a2aproject.sdk.compat03.client.transport.rest;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportConfigBuilder_v0_3;
import org.jspecify.annotations.Nullable;
public class RestTransportConfigBuilder_v0_3 extends ClientTransportConfigBuilder_v0_3 {
- private @Nullable A2AHttpClient_v0_3 httpClient;
+ private @Nullable A2AHttpClient httpClient;
- public RestTransportConfigBuilder_v0_3 httpClient(A2AHttpClient_v0_3 httpClient) {
+ public RestTransportConfigBuilder_v0_3 httpClient(A2AHttpClient httpClient) {
this.httpClient = httpClient;
return this;
}
@Override
public RestTransportConfig_v0_3 build() {
- // No HTTP client provided, fallback to the default one (JDK-based implementation)
+ // No HTTP client provided, fallback to the default one
if (httpClient == null) {
- httpClient = new JdkA2AHttpClient_v0_3();
+ httpClient = A2AHttpClientFactory.create();
}
RestTransportConfig_v0_3 config = new RestTransportConfig_v0_3(httpClient);
config.setInterceptors(this.interceptors);
return config;
}
-}
\ No newline at end of file
+}
diff --git a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfig_v0_3.java b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfig_v0_3.java
index 0d6b1f859..16428649b 100644
--- a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfig_v0_3.java
+++ b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportConfig_v0_3.java
@@ -1,22 +1,22 @@
package org.a2aproject.sdk.compat03.client.transport.rest;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportConfig_v0_3;
import org.jspecify.annotations.Nullable;
public class RestTransportConfig_v0_3 extends ClientTransportConfig_v0_3 {
- private final @Nullable A2AHttpClient_v0_3 httpClient;
+ private final @Nullable A2AHttpClient httpClient;
public RestTransportConfig_v0_3() {
this.httpClient = null;
}
- public RestTransportConfig_v0_3(A2AHttpClient_v0_3 httpClient) {
+ public RestTransportConfig_v0_3(A2AHttpClient httpClient) {
this.httpClient = httpClient;
}
- public @Nullable A2AHttpClient_v0_3 getHttpClient() {
+ public @Nullable A2AHttpClient getHttpClient() {
return httpClient;
}
-}
\ No newline at end of file
+}
diff --git a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportProvider_v0_3.java b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportProvider_v0_3.java
index 87dcdf5ce..46cf3fa1b 100644
--- a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportProvider_v0_3.java
+++ b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransportProvider_v0_3.java
@@ -1,6 +1,6 @@
package org.a2aproject.sdk.compat03.client.transport.rest;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransportProvider_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientException_v0_3;
import org.a2aproject.sdk.compat03.spec.AgentCard_v0_3;
@@ -15,11 +15,10 @@ public String getTransportProtocol() {
@Override
public RestTransport_v0_3 create(RestTransportConfig_v0_3 clientTransportConfig, AgentCard_v0_3 agentCard, String agentUrl) throws A2AClientException_v0_3 {
- RestTransportConfig_v0_3 transportConfig = clientTransportConfig;
- if (transportConfig == null) {
- transportConfig = new RestTransportConfig_v0_3(new JdkA2AHttpClient_v0_3());
+ if (clientTransportConfig == null) {
+ clientTransportConfig = new RestTransportConfig_v0_3(A2AHttpClientFactory.create());
}
- return new RestTransport_v0_3(clientTransportConfig.getHttpClient(), agentCard, agentUrl, transportConfig.getInterceptors());
+ return new RestTransport_v0_3(clientTransportConfig.getHttpClient(), agentCard, agentUrl, clientTransportConfig.getInterceptors());
}
@Override
diff --git a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransport_v0_3.java b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransport_v0_3.java
index 7dc0b40fb..6ff2d560d 100644
--- a/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransport_v0_3.java
+++ b/compat-0.3/client/transport/rest/src/main/java/org/a2aproject/sdk/compat03/client/transport/rest/RestTransport_v0_3.java
@@ -6,10 +6,11 @@
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.MessageOrBuilder;
import com.google.protobuf.util.JsonFormat;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
+import org.a2aproject.sdk.client.http.A2AHttpResponse;
+import org.a2aproject.sdk.client.http.ServerSentEvent;
import org.a2aproject.sdk.compat03.client.http.A2ACardResolver_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpResponse_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.sse.RestSSEEventListener_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.ClientTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.ClientCallContext_v0_3;
@@ -58,7 +59,7 @@
public class RestTransport_v0_3 implements ClientTransport_v0_3 {
private static final Logger log = Logger.getLogger(RestTransport_v0_3.class.getName());
- private final A2AHttpClient_v0_3 httpClient;
+ private final A2AHttpClient httpClient;
private final String agentUrl;
private @Nullable final List interceptors;
private AgentCard_v0_3 agentCard;
@@ -68,9 +69,9 @@ public RestTransport_v0_3(AgentCard_v0_3 agentCard) {
this(null, agentCard, agentCard.url(), null);
}
- public RestTransport_v0_3(@Nullable A2AHttpClient_v0_3 httpClient, AgentCard_v0_3 agentCard,
+ public RestTransport_v0_3(@Nullable A2AHttpClient httpClient, AgentCard_v0_3 agentCard,
String agentUrl, @Nullable List interceptors) {
- this.httpClient = httpClient == null ? new JdkA2AHttpClient_v0_3() : httpClient;
+ this.httpClient = httpClient == null ? A2AHttpClientFactory.create() : httpClient;
this.agentCard = agentCard;
this.agentUrl = agentUrl.endsWith("/") ? agentUrl.substring(0, agentUrl.length() - 1) : agentUrl;
this.interceptors = interceptors;
@@ -110,9 +111,9 @@ public void sendMessageStreaming(MessageSendParams_v0_3 messageSendParams, Consu
AtomicReference> ref = new AtomicReference<>();
RestSSEEventListener_v0_3 sseEventListener = new RestSSEEventListener_v0_3(eventConsumer, errorConsumer);
try {
- A2AHttpClient_v0_3.PostBuilder postBuilder = createPostBuilder(agentUrl + "/v1/message:stream", payloadAndHeaders);
+ A2AHttpClient.PostBuilder postBuilder = createPostBuilder(agentUrl + "/v1/message:stream", payloadAndHeaders);
ref.set(postBuilder.postAsyncSSE(
- msg -> sseEventListener.onMessage(msg, ref.get()),
+ event -> sseEventListener.onMessage(event.data(), ref.get()),
throwable -> sseEventListener.onError(throwable, ref.get()),
() -> {
// We don't need to do anything special on completion
@@ -140,13 +141,13 @@ public Task_v0_3 getTask(TaskQueryParams_v0_3 taskQueryParams, @Nullable ClientC
} else {
url = agentUrl + String.format("/v1/tasks/%1s", taskQueryParams.id());
}
- A2AHttpClient_v0_3.GetBuilder getBuilder = httpClient.createGet().url(url);
+ A2AHttpClient.GetBuilder getBuilder = httpClient.createGet().url(url);
if (payloadAndHeaders.getHeaders() != null) {
for (Map.Entry entry : payloadAndHeaders.getHeaders().entrySet()) {
getBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
- A2AHttpResponse_v0_3 response = getBuilder.get();
+ A2AHttpResponse response = getBuilder.get();
if (!response.success()) {
throw RestErrorMapper_v0_3.mapRestError(response);
}
@@ -213,13 +214,13 @@ public TaskPushNotificationConfig_v0_3 getTaskPushNotificationConfiguration(GetT
agentCard, context);
try {
String url = agentUrl + String.format("/v1/tasks/%1s/pushNotificationConfigs/%2s", request.id(), configId);
- A2AHttpClient_v0_3.GetBuilder getBuilder = httpClient.createGet().url(url);
+ A2AHttpClient.GetBuilder getBuilder = httpClient.createGet().url(url);
if (payloadAndHeaders.getHeaders() != null) {
for (Map.Entry entry : payloadAndHeaders.getHeaders().entrySet()) {
getBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
- A2AHttpResponse_v0_3 response = getBuilder.get();
+ A2AHttpResponse response = getBuilder.get();
if (!response.success()) {
throw RestErrorMapper_v0_3.mapRestError(response);
}
@@ -243,13 +244,13 @@ public List listTaskPushNotificationConfigurati
agentCard, context);
try {
String url = agentUrl + String.format("/v1/tasks/%1s/pushNotificationConfigs", request.id());
- A2AHttpClient_v0_3.GetBuilder getBuilder = httpClient.createGet().url(url);
+ A2AHttpClient.GetBuilder getBuilder = httpClient.createGet().url(url);
if (payloadAndHeaders.getHeaders() != null) {
for (Map.Entry entry : payloadAndHeaders.getHeaders().entrySet()) {
getBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
- A2AHttpResponse_v0_3 response = getBuilder.get();
+ A2AHttpResponse response = getBuilder.get();
if (!response.success()) {
throw RestErrorMapper_v0_3.mapRestError(response);
}
@@ -272,13 +273,13 @@ public void deleteTaskPushNotificationConfigurations(DeleteTaskPushNotificationC
agentCard, context);
try {
String url = agentUrl + String.format("/v1/tasks/%1s/pushNotificationConfigs/%2s", request.id(), request.pushNotificationConfigId());
- A2AHttpClient_v0_3.DeleteBuilder deleteBuilder = httpClient.createDelete().url(url);
+ A2AHttpClient.DeleteBuilder deleteBuilder = httpClient.createDelete().url(url);
if (payloadAndHeaders.getHeaders() != null) {
for (Map.Entry entry : payloadAndHeaders.getHeaders().entrySet()) {
deleteBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
- A2AHttpResponse_v0_3 response = deleteBuilder.delete();
+ A2AHttpResponse response = deleteBuilder.delete();
if (!response.success()) {
throw RestErrorMapper_v0_3.mapRestError(response);
}
@@ -301,9 +302,9 @@ public void resubscribe(TaskIdParams_v0_3 request, Consumer sseEventListener.onMessage(msg, ref.get()),
+ event -> sseEventListener.onMessage(event.data(), ref.get()),
throwable -> sseEventListener.onError(throwable, ref.get()),
() -> {
// We don't need to do anything special on completion
@@ -332,13 +333,13 @@ public AgentCard_v0_3 getAgentCard(@Nullable ClientCallContext_v0_3 context) thr
PayloadAndHeaders_v0_3 payloadAndHeaders = applyInterceptors(GetAuthenticatedExtendedCardRequest_v0_3.METHOD, null,
agentCard, context);
String url = agentUrl + String.format("/v1/card");
- A2AHttpClient_v0_3.GetBuilder getBuilder = httpClient.createGet().url(url);
+ A2AHttpClient.GetBuilder getBuilder = httpClient.createGet().url(url);
if (payloadAndHeaders.getHeaders() != null) {
for (Map.Entry entry : payloadAndHeaders.getHeaders().entrySet()) {
getBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
- A2AHttpResponse_v0_3 response = getBuilder.get();
+ A2AHttpResponse response = getBuilder.get();
if (!response.success()) {
throw RestErrorMapper_v0_3.mapRestError(response);
}
@@ -371,8 +372,8 @@ private PayloadAndHeaders_v0_3 applyInterceptors(String methodName, @Nullable Me
}
private String sendPostRequest(String url, PayloadAndHeaders_v0_3 payloadAndHeaders) throws IOException, InterruptedException, JsonProcessingException_v0_3 {
- A2AHttpClient_v0_3.PostBuilder builder = createPostBuilder(url, payloadAndHeaders);
- A2AHttpResponse_v0_3 response = builder.post();
+ A2AHttpClient.PostBuilder builder = createPostBuilder(url, payloadAndHeaders);
+ A2AHttpResponse response = builder.post();
if (!response.success()) {
log.fine("Error on POST processing " + JsonFormat.printer().print((MessageOrBuilder) payloadAndHeaders.getPayload()));
throw RestErrorMapper_v0_3.mapRestError(response);
@@ -380,9 +381,9 @@ private String sendPostRequest(String url, PayloadAndHeaders_v0_3 payloadAndHead
return response.body();
}
- private A2AHttpClient_v0_3.PostBuilder createPostBuilder(String url, PayloadAndHeaders_v0_3 payloadAndHeaders) throws JsonProcessingException_v0_3, InvalidProtocolBufferException {
+ private A2AHttpClient.PostBuilder createPostBuilder(String url, PayloadAndHeaders_v0_3 payloadAndHeaders) throws JsonProcessingException_v0_3, InvalidProtocolBufferException {
log.fine(JsonFormat.printer().print((MessageOrBuilder) payloadAndHeaders.getPayload()));
- A2AHttpClient_v0_3.PostBuilder postBuilder = httpClient.createPost()
+ A2AHttpClient.PostBuilder postBuilder = httpClient.createPost()
.url(url)
.addHeader("Content-Type", "application/json")
.body(JsonFormat.printer().print((MessageOrBuilder) payloadAndHeaders.getPayload()));
diff --git a/compat-0.3/client/transport/spi/pom.xml b/compat-0.3/client/transport/spi/pom.xml
index b8e8d1730..d4b7c9bb3 100644
--- a/compat-0.3/client/transport/spi/pom.xml
+++ b/compat-0.3/client/transport/spi/pom.xml
@@ -17,6 +17,10 @@
Java SDK for the Agent2Agent Protocol (A2A) - Client Transport SPI
+
+ ${project.groupId}
+ a2a-java-sdk-http-client
+
${project.groupId}
a2a-java-sdk-compat-0.3-spec
diff --git a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java b/compat-0.3/client/transport/spi/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java
similarity index 83%
rename from compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java
rename to compat-0.3/client/transport/spi/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java
index af554f978..2d91eb195 100644
--- a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java
+++ b/compat-0.3/client/transport/spi/src/main/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3.java
@@ -5,6 +5,9 @@
import java.net.URISyntaxException;
import java.util.Map;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpClientFactory;
+import org.a2aproject.sdk.client.http.A2AHttpResponse;
import org.a2aproject.sdk.compat03.json.JsonProcessingException_v0_3;
import org.a2aproject.sdk.compat03.json.JsonUtil_v0_3;
import org.a2aproject.sdk.compat03.spec.A2AClientError_v0_3;
@@ -13,7 +16,7 @@
import org.jspecify.annotations.Nullable;
public class A2ACardResolver_v0_3 {
- private final A2AHttpClient_v0_3 httpClient;
+ private final A2AHttpClient httpClient;
private final String url;
private final @Nullable Map authHeaders;
@@ -21,13 +24,13 @@ public class A2ACardResolver_v0_3 {
/**
* Get the agent card for an A2A agent.
- * The {@code JdkA2AHttpClient} will be used to fetch the agent card.
+ * The HTTP client will be auto-selected via {@link A2AHttpClientFactory}.
*
* @param baseUrl the base URL for the agent whose agent card we want to retrieve
* @throws A2AClientError_v0_3 if the URL for the agent is invalid
*/
public A2ACardResolver_v0_3(String baseUrl) throws A2AClientError_v0_3 {
- this(new JdkA2AHttpClient_v0_3(), baseUrl, null, null);
+ this(A2AHttpClientFactory.create(), baseUrl, null, null);
}
/**
@@ -37,7 +40,7 @@ public A2ACardResolver_v0_3(String baseUrl) throws A2AClientError_v0_3 {
* @param baseUrl the base URL for the agent whose agent card we want to retrieve
* @throws A2AClientError_v0_3 if the URL for the agent is invalid
*/
- public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl) throws A2AClientError_v0_3 {
+ public A2ACardResolver_v0_3(A2AHttpClient httpClient, String baseUrl) throws A2AClientError_v0_3 {
this(httpClient, baseUrl, null, null);
}
@@ -48,7 +51,7 @@ public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl) throw
* agent URL, defaults to ".well-known/agent-card.json"
* @throws A2AClientError_v0_3 if the URL for the agent is invalid
*/
- public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl, String agentCardPath) throws A2AClientError_v0_3 {
+ public A2ACardResolver_v0_3(A2AHttpClient httpClient, String baseUrl, String agentCardPath) throws A2AClientError_v0_3 {
this(httpClient, baseUrl, agentCardPath, null);
}
@@ -60,7 +63,7 @@ public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl, Strin
* @param authHeaders the HTTP authentication headers to use. May be {@code null}
* @throws A2AClientError_v0_3 if the URL for the agent is invalid
*/
- public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl, @Nullable String agentCardPath,
+ public A2ACardResolver_v0_3(A2AHttpClient httpClient, String baseUrl, @Nullable String agentCardPath,
@Nullable Map authHeaders) throws A2AClientError_v0_3 {
this.httpClient = httpClient;
String effectiveAgentCardPath = agentCardPath == null || agentCardPath.isEmpty() ? DEFAULT_AGENT_CARD_PATH : agentCardPath;
@@ -80,7 +83,7 @@ public A2ACardResolver_v0_3(A2AHttpClient_v0_3 httpClient, String baseUrl, @Null
* @throws A2AClientJSONError_v0_3 If the response body cannot be decoded as JSON or validated against the AgentCard schema
*/
public AgentCard_v0_3 getAgentCard() throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
- A2AHttpClient_v0_3.GetBuilder builder = httpClient.createGet()
+ A2AHttpClient.GetBuilder builder = httpClient.createGet()
.url(url)
.addHeader("Content-Type", "application/json");
@@ -92,7 +95,7 @@ public AgentCard_v0_3 getAgentCard() throws A2AClientError_v0_3, A2AClientJSONEr
String body;
try {
- A2AHttpResponse_v0_3 response = builder.get();
+ A2AHttpResponse response = builder.get();
if (!response.success()) {
throw new A2AClientError_v0_3("Failed to obtain agent card: " + response.status());
}
diff --git a/compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java b/compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java
similarity index 91%
rename from compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java
rename to compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java
index f632d3e22..658b0f49d 100644
--- a/compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java
+++ b/compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/A2ACardResolver_v0_3_Test.java
@@ -5,14 +5,17 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
+import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
+import org.a2aproject.sdk.client.http.A2AHttpClient;
+import org.a2aproject.sdk.client.http.A2AHttpResponse;
+import org.a2aproject.sdk.client.http.ServerSentEvent;
import org.a2aproject.sdk.compat03.json.JsonUtil_v0_3;
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 java.util.Map;
import org.junit.jupiter.api.Test;
public class A2ACardResolver_v0_3_Test {
@@ -109,7 +112,7 @@ public void testGetAgentCardRequestError() throws Exception {
assertTrue(msg.contains("503"));
}
- private static class TestHttpClient implements A2AHttpClient_v0_3 {
+ private static class TestHttpClient implements A2AHttpClient {
int status = 200;
String body;
String url;
@@ -129,11 +132,11 @@ public DeleteBuilder createDelete() {
return null;
}
- class TestGetBuilder implements A2AHttpClient_v0_3.GetBuilder {
+ class TestGetBuilder implements A2AHttpClient.GetBuilder {
@Override
- public A2AHttpResponse_v0_3 get() throws IOException, InterruptedException {
- return new A2AHttpResponse_v0_3() {
+ public A2AHttpResponse get() throws IOException, InterruptedException {
+ return new A2AHttpResponse() {
@Override
public int status() {
return status;
@@ -152,7 +155,7 @@ public String body() {
}
@Override
- public CompletableFuture getAsyncSSE(Consumer messageConsumer, Consumer errorConsumer, Runnable completeRunnable) throws IOException, InterruptedException {
+ public CompletableFuture getAsyncSSE(Consumer messageConsumer, Consumer errorConsumer, Runnable completeRunnable) throws IOException, InterruptedException {
return null;
}
diff --git a/compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java b/compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java
similarity index 99%
rename from compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java
rename to compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java
index 751dadf6c..54ea3f41e 100644
--- a/compat-0.3/http-client/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java
+++ b/compat-0.3/client/transport/spi/src/test/java/org/a2aproject/sdk/compat03/client/http/JsonMessages_v0_3.java
@@ -161,4 +161,4 @@ public class JsonMessages_v0_3 {
}""";
-}
\ No newline at end of file
+}
diff --git a/compat-0.3/http-client/pom.xml b/compat-0.3/http-client/pom.xml
deleted file mode 100644
index 61fb8bd3a..000000000
--- a/compat-0.3/http-client/pom.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
- 4.0.0
-
-
- org.a2aproject.sdk
- a2a-java-sdk-compat-0.3-parent
- 1.0.0.Beta2-SNAPSHOT
- ..
-
- a2a-java-sdk-compat-0.3-http-client
-
- jar
-
- Java SDK A2A Compat 0.3 HTTP Client
- Java SDK for the Agent2Agent Protocol (A2A) - HTTP Client (0.3 compat)
-
-
-
- ${project.groupId}
- a2a-java-sdk-compat-0.3-spec
-
-
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
-
- org.mock-server
- mockserver-netty
- test
-
-
-
-
diff --git a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpClient_v0_3.java b/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpClient_v0_3.java
deleted file mode 100644
index 2387e725e..000000000
--- a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpClient_v0_3.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.a2aproject.sdk.compat03.client.http;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Consumer;
-
-public interface A2AHttpClient_v0_3 {
-
- GetBuilder createGet();
-
- PostBuilder createPost();
-
- DeleteBuilder createDelete();
-
- interface Builder> {
- T url(String s);
- T addHeaders(Map headers);
- T addHeader(String name, String value);
- }
-
- interface GetBuilder extends Builder {
- A2AHttpResponse_v0_3 get() throws IOException, InterruptedException;
- CompletableFuture getAsyncSSE(
- Consumer messageConsumer,
- Consumer errorConsumer,
- Runnable completeRunnable) throws IOException, InterruptedException;
- }
-
- interface PostBuilder extends Builder {
- PostBuilder body(String body);
- A2AHttpResponse_v0_3 post() throws IOException, InterruptedException;
- CompletableFuture postAsyncSSE(
- Consumer messageConsumer,
- Consumer errorConsumer,
- Runnable completeRunnable) throws IOException, InterruptedException;
- }
-
- interface DeleteBuilder extends Builder {
- A2AHttpResponse_v0_3 delete() throws IOException, InterruptedException;
- }
-}
diff --git a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpResponse_v0_3.java b/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpResponse_v0_3.java
deleted file mode 100644
index fe082648d..000000000
--- a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/A2AHttpResponse_v0_3.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.a2aproject.sdk.compat03.client.http;
-
-public interface A2AHttpResponse_v0_3 {
- int status();
-
- boolean success();
-
- String body();
-}
diff --git a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/JdkA2AHttpClient_v0_3.java b/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/JdkA2AHttpClient_v0_3.java
deleted file mode 100644
index 2d1838b86..000000000
--- a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/JdkA2AHttpClient_v0_3.java
+++ /dev/null
@@ -1,330 +0,0 @@
-package org.a2aproject.sdk.compat03.client.http;
-
-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 java.io.IOException;
-import java.net.URI;
-import java.net.http.HttpClient;
-import java.net.http.HttpRequest;
-import java.net.http.HttpResponse;
-import java.net.http.HttpResponse.BodyHandler;
-import java.net.http.HttpResponse.BodyHandlers;
-import java.net.http.HttpResponse.BodySubscribers;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Flow;
-import java.util.function.Consumer;
-import org.jspecify.annotations.Nullable;
-
-import org.a2aproject.sdk.common.A2AErrorMessages;
-
-public class JdkA2AHttpClient_v0_3 implements A2AHttpClient_v0_3 {
-
- private final HttpClient httpClient;
-
- public JdkA2AHttpClient_v0_3() {
- httpClient = HttpClient.newBuilder()
- .version(HttpClient.Version.HTTP_2)
- .followRedirects(HttpClient.Redirect.NORMAL)
- .build();
- }
-
- @Override
- public GetBuilder createGet() {
- return new JdkGetBuilder();
- }
-
- @Override
- public PostBuilder createPost() {
- return new JdkPostBuilder();
- }
-
- @Override
- public DeleteBuilder createDelete() {
- return new JdkDeleteBuilder();
- }
-
- private abstract class JdkBuilder> implements Builder {
- private String url = "";
- private Map headers = new HashMap<>();
-
- @Override
- public T url(String url) {
- this.url = url;
- return self();
- }
-
- @Override
- public T addHeader(String name, String value) {
- headers.put(name, value);
- return self();
- }
-
- @Override
- public T addHeaders(Map headers) {
- if(headers != null && ! headers.isEmpty()) {
- for (Map.Entry entry : headers.entrySet()) {
- addHeader(entry.getKey(), entry.getValue());
- }
- }
- return self();
- }
-
- @SuppressWarnings("unchecked")
- T self() {
- return (T) this;
- }
-
- protected HttpRequest.Builder createRequestBuilder() throws IOException {
- HttpRequest.Builder builder = HttpRequest.newBuilder()
- .uri(URI.create(url));
- for (Map.Entry headerEntry : headers.entrySet()) {
- builder.header(headerEntry.getKey(), headerEntry.getValue());
- }
- return builder;
- }
-
- protected CompletableFuture asyncRequest(
- HttpRequest request,
- Consumer messageConsumer,
- Consumer errorConsumer,
- Runnable completeRunnable
- ) {
- Flow.Subscriber subscriber = new Flow.Subscriber() {
- private Flow.@Nullable Subscription subscription;
- private volatile boolean errorRaised = false;
-
- @Override
- public void onSubscribe(Flow.Subscription subscription) {
- this.subscription = subscription;
- this.subscription.request(1);
- }
-
- @Override
- public void onNext(String item) {
- // SSE messages sometimes start with "data:". Strip that off
- if (item != null && item.startsWith("data:")) {
- item = item.substring(5).trim();
- if (!item.isEmpty()) {
- messageConsumer.accept(item);
- }
- }
- if (subscription != null) {
- subscription.request(1);
- }
- }
-
- @Override
- public void onError(Throwable throwable) {
- if (!errorRaised) {
- errorRaised = true;
- errorConsumer.accept(throwable);
- }
- if (subscription != null) {
- subscription.cancel();
- }
- }
-
- @Override
- public void onComplete() {
- if (!errorRaised) {
- completeRunnable.run();
- }
- if (subscription != null) {
- subscription.cancel();
- }
- }
- };
-
- // Create a custom body handler that checks status before processing body
- BodyHandler bodyHandler = responseInfo -> {
- // Check for authentication/authorization errors only
- if (responseInfo.statusCode() == HTTP_UNAUTHORIZED || responseInfo.statusCode() == HTTP_FORBIDDEN) {
- final String errorMessage;
- if (responseInfo.statusCode() == HTTP_UNAUTHORIZED) {
- errorMessage = A2AErrorMessages.AUTHENTICATION_FAILED;
- } else {
- errorMessage = A2AErrorMessages.AUTHORIZATION_FAILED;
- }
- // Return a body subscriber that immediately signals error
- return BodySubscribers.fromSubscriber(new Flow.Subscriber>() {
- @Override
- public void onSubscribe(Flow.Subscription subscription) {
- subscriber.onError(new IOException(errorMessage));
- }
-
- @Override
- public void onNext(List item) {
- // Should not be called
- }
-
- @Override
- public void onError(Throwable throwable) {
- // Should not be called
- }
-
- @Override
- public void onComplete() {
- // Should not be called
- }
- });
- } else {
- // For all other status codes (including other errors), proceed with normal line subscriber
- return BodyHandlers.fromLineSubscriber(subscriber).apply(responseInfo);
- }
- };
-
- // Send the response async, and let the subscriber handle the lines.
- return httpClient.sendAsync(request, bodyHandler)
- .thenAccept(response -> {
- // Handle non-authentication/non-authorization errors here
- if (!isSuccessStatus(response.statusCode()) &&
- response.statusCode() != HTTP_UNAUTHORIZED &&
- response.statusCode() != HTTP_FORBIDDEN) {
- subscriber.onError(new IOException("Request failed with status " + response.statusCode() + ":" + response.body()));
- }
- })
- .exceptionally(throwable -> {
- // Handle network errors (timeouts, connection failures, etc.)
- subscriber.onError(throwable);
- return null;
- });
- }
- }
-
- private class JdkGetBuilder extends JdkBuilder implements A2AHttpClient_v0_3.GetBuilder {
-
- private HttpRequest.Builder createRequestBuilder(boolean SSE) throws IOException {
- HttpRequest.Builder builder = super.createRequestBuilder().GET();
- if (SSE) {
- builder.header("Accept", "text/event-stream");
- }
- return builder;
- }
-
- @Override
- public A2AHttpResponse_v0_3 get() throws IOException, InterruptedException {
- HttpRequest request = createRequestBuilder(false)
- .build();
- HttpResponse response =
- httpClient.send(request, BodyHandlers.ofString(StandardCharsets.UTF_8));
-
- if (response.statusCode() == HTTP_UNAUTHORIZED) {
- throw new IOException(A2AErrorMessages.AUTHENTICATION_FAILED);
- } else if (response.statusCode() == HTTP_FORBIDDEN) {
- throw new IOException(A2AErrorMessages.AUTHORIZATION_FAILED);
- }
-
- return new JdkHttpResponse(response);
- }
-
- @Override
- public CompletableFuture getAsyncSSE(
- Consumer messageConsumer,
- Consumer errorConsumer,
- Runnable completeRunnable) throws IOException, InterruptedException {
- HttpRequest request = createRequestBuilder(true)
- .build();
- return super.asyncRequest(request, messageConsumer, errorConsumer, completeRunnable);
- }
-
- }
-
- private class JdkDeleteBuilder extends JdkBuilder implements A2AHttpClient_v0_3.DeleteBuilder {
-
- @Override
- public A2AHttpResponse_v0_3 delete() throws IOException, InterruptedException {
- HttpRequest request = super.createRequestBuilder().DELETE().build();
- HttpResponse response =
- httpClient.send(request, BodyHandlers.ofString(StandardCharsets.UTF_8));
-
- if (response.statusCode() == HTTP_UNAUTHORIZED) {
- throw new IOException(A2AErrorMessages.AUTHENTICATION_FAILED);
- } else if (response.statusCode() == HTTP_FORBIDDEN) {
- throw new IOException(A2AErrorMessages.AUTHORIZATION_FAILED);
- }
-
- return new JdkHttpResponse(response);
- }
-
- }
-
- private class JdkPostBuilder extends JdkBuilder implements A2AHttpClient_v0_3.PostBuilder {
- String body = "";
-
- @Override
- public PostBuilder body(String body) {
- this.body = body;
- return self();
- }
-
- private HttpRequest.Builder createRequestBuilder(boolean SSE) throws IOException {
- HttpRequest.Builder builder = super.createRequestBuilder()
- .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8));
- if (SSE) {
- builder.header("Accept", "text/event-stream");
- }
- return builder;
- }
-
- @Override
- public A2AHttpResponse_v0_3 post() throws IOException, InterruptedException {
- HttpRequest request = createRequestBuilder(false)
- .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8))
- .build();
- HttpResponse response =
- httpClient.send(request, BodyHandlers.ofString(StandardCharsets.UTF_8));
-
- if (response.statusCode() == HTTP_UNAUTHORIZED) {
- throw new IOException(A2AErrorMessages.AUTHENTICATION_FAILED);
- } else if (response.statusCode() == HTTP_FORBIDDEN) {
- throw new IOException(A2AErrorMessages.AUTHORIZATION_FAILED);
- }
-
- return new JdkHttpResponse(response);
- }
-
- @Override
- public CompletableFuture postAsyncSSE(
- Consumer messageConsumer,
- Consumer errorConsumer,
- Runnable completeRunnable) throws IOException, InterruptedException {
- HttpRequest request = createRequestBuilder(true)
- .build();
- return super.asyncRequest(request, messageConsumer, errorConsumer, completeRunnable);
- }
- }
-
- private record JdkHttpResponse(HttpResponse response) implements A2AHttpResponse_v0_3 {
-
- @Override
- public int status() {
- return response.statusCode();
- }
-
- @Override
- public boolean success() {// Send the request and get the response
- return success(response);
- }
-
- static boolean success(HttpResponse> response) {
- return response.statusCode() >= HTTP_OK && response.statusCode() < HTTP_MULT_CHOICE;
- }
-
- @Override
- public String body() {
- return response.body();
- }
- }
-
- private static boolean isSuccessStatus(int statusCode) {
- return statusCode >= HTTP_OK && statusCode < HTTP_MULT_CHOICE;
- }
-}
diff --git a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/package-info.java b/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/package-info.java
deleted file mode 100644
index 035bf5a62..000000000
--- a/compat-0.3/http-client/src/main/java/org/a2aproject/sdk/compat03/client/http/package-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-@NullMarked
-package org.a2aproject.sdk.compat03.client.http;
-
-import org.jspecify.annotations.NullMarked;
-
diff --git a/compat-0.3/pom.xml b/compat-0.3/pom.xml
index 9e7af13ae..e3c90533c 100644
--- a/compat-0.3/pom.xml
+++ b/compat-0.3/pom.xml
@@ -29,11 +29,6 @@
a2a-java-sdk-compat-0.3-spec-grpc
${project.version}
-
- ${project.groupId}
- a2a-java-sdk-compat-0.3-http-client
- ${project.version}
-
${project.groupId}
a2a-java-sdk-compat-0.3-client
@@ -118,9 +113,6 @@
spec
spec-grpc
-
- http-client
-
server-conversion
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_AndroidTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_AndroidTest.java
index aac980bc8..86ddaa549 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_AndroidTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_AndroidTest.java
@@ -1,9 +1,9 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.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;
-import org.a2aproject.sdk.compat03.conversion.AndroidA2AHttpClient_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@QuarkusTest
@@ -12,6 +12,6 @@ public class QuarkusA2AJSONRPC_v0_3_AndroidTest extends QuarkusA2AJSONRPC_v0_3_T
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient_v0_3()));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_JdkTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_JdkTest.java
index 831e73dea..6c096b069 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_JdkTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_JdkTest.java
@@ -1,7 +1,7 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.JdkA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@@ -12,6 +12,6 @@ public class QuarkusA2AJSONRPC_v0_3_JdkTest extends QuarkusA2AJSONRPC_v0_3_Test
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient_v0_3()));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_VertxTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_VertxTest.java
index bd7d2f5a4..beda8276a 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_VertxTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_VertxTest.java
@@ -1,9 +1,9 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.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;
-import org.a2aproject.sdk.compat03.conversion.VertxA2AHttpClient_v0_3;
import io.quarkus.test.junit.QuarkusTest;
import io.vertx.core.Vertx;
import jakarta.inject.Inject;
@@ -17,6 +17,6 @@ public class QuarkusA2AJSONRPC_v0_3_VertxTest extends QuarkusA2AJSONRPC_v0_3_Tes
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient_v0_3(vertx)));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient(vertx)));
}
}
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthAndroidTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthAndroidTest.java
index 45e8fbeee..5085bb276 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthAndroidTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthAndroidTest.java
@@ -1,11 +1,11 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.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;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
import org.a2aproject.sdk.compat03.conversion.AbstractA2AServerWithAuthTest_v0_3;
-import org.a2aproject.sdk.compat03.conversion.AndroidA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.conversion.AuthTestProfile_v0_3;
import org.a2aproject.sdk.compat03.spec.TransportProtocol_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@@ -37,13 +37,13 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
new JSONRPCTransportConfigBuilder_v0_3()
- .httpClient(new AndroidA2AHttpClient_v0_3())
+ .httpClient(new AndroidA2AHttpClient())
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient_v0_3()));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthTest.java
index e158c28c2..2122bfff8 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthTest.java
@@ -1,7 +1,7 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.JdkA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.jsonrpc.JSONRPCTransportConfigBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
@@ -37,13 +37,13 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
new JSONRPCTransportConfigBuilder_v0_3()
- .httpClient(new JdkA2AHttpClient_v0_3())
+ .httpClient(new JdkA2AHttpClient())
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient_v0_3()));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthVertxTest.java b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthVertxTest.java
index ba37d6b9b..d836c6fe2 100644
--- a/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthVertxTest.java
+++ b/compat-0.3/reference/jsonrpc/src/test/java/org/a2aproject/sdk/compat03/server/apps/quarkus/QuarkusA2AJSONRPC_v0_3_WithAuthVertxTest.java
@@ -1,12 +1,12 @@
package org.a2aproject.sdk.compat03.server.apps.quarkus;
+import org.a2aproject.sdk.client.http.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;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
import org.a2aproject.sdk.compat03.conversion.AbstractA2AServerWithAuthTest_v0_3;
import org.a2aproject.sdk.compat03.conversion.AuthTestProfile_v0_3;
-import org.a2aproject.sdk.compat03.conversion.VertxA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.spec.TransportProtocol_v0_3;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile;
@@ -42,13 +42,13 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
new JSONRPCTransportConfigBuilder_v0_3()
- .httpClient(new VertxA2AHttpClient_v0_3(vertx))
+ .httpClient(new VertxA2AHttpClient(vertx))
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(JSONRPCTransport_v0_3.class,
- new JSONRPCTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient_v0_3(vertx)));
+ new JSONRPCTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient(vertx)));
}
}
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_AndroidTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_AndroidTest.java
index 6d1f5cfdd..4b70e86ca 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_AndroidTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_AndroidTest.java
@@ -1,9 +1,9 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.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;
-import org.a2aproject.sdk.compat03.conversion.AndroidA2AHttpClient_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@QuarkusTest
@@ -12,6 +12,6 @@ public class QuarkusA2ARest_v0_3_AndroidTest extends QuarkusA2ARest_v0_3_Test {
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient_v0_3()));
+ new RestTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_JdkTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_JdkTest.java
index 8ec2191ba..fc6c578a2 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_JdkTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_JdkTest.java
@@ -1,7 +1,7 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.JdkA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@@ -12,6 +12,6 @@ public class QuarkusA2ARest_v0_3_JdkTest extends QuarkusA2ARest_v0_3_Test {
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient_v0_3()));
+ new RestTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient()));
}
}
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_VertxTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_VertxTest.java
index 410c80feb..599738c3b 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_VertxTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_VertxTest.java
@@ -1,9 +1,9 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.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;
-import org.a2aproject.sdk.compat03.conversion.VertxA2AHttpClient_v0_3;
import io.quarkus.test.junit.QuarkusTest;
import io.vertx.core.Vertx;
import jakarta.inject.Inject;
@@ -17,6 +17,6 @@ public class QuarkusA2ARest_v0_3_VertxTest extends QuarkusA2ARest_v0_3_Test {
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient_v0_3(vertx)));
+ new RestTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient(vertx)));
}
}
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthAndroidTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthAndroidTest.java
index b17ec5e57..6a339e7c4 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthAndroidTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthAndroidTest.java
@@ -1,11 +1,11 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.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;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
import org.a2aproject.sdk.compat03.conversion.AbstractA2AServerWithAuthTest_v0_3;
-import org.a2aproject.sdk.compat03.conversion.AndroidA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.conversion.AuthTestProfile_v0_3;
import org.a2aproject.sdk.compat03.spec.TransportProtocol_v0_3;
import io.quarkus.test.junit.QuarkusTest;
@@ -38,14 +38,14 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
new RestTransportConfigBuilder_v0_3()
- .httpClient(new AndroidA2AHttpClient_v0_3())
+ .httpClient(new AndroidA2AHttpClient())
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient_v0_3()));
+ new RestTransportConfigBuilder_v0_3().httpClient(new AndroidA2AHttpClient()));
}
@Test
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthTest.java
index 984850d2b..5ab5f5b75 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthTest.java
@@ -1,7 +1,7 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.JdkA2AHttpClient;
import org.a2aproject.sdk.compat03.client.ClientBuilder_v0_3;
-import org.a2aproject.sdk.compat03.client.http.JdkA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransport_v0_3;
import org.a2aproject.sdk.compat03.client.transport.rest.RestTransportConfigBuilder_v0_3;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
@@ -38,14 +38,14 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
new RestTransportConfigBuilder_v0_3()
- .httpClient(new JdkA2AHttpClient_v0_3())
+ .httpClient(new JdkA2AHttpClient())
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient_v0_3()));
+ new RestTransportConfigBuilder_v0_3().httpClient(new JdkA2AHttpClient()));
}
@Test
diff --git a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthVertxTest.java b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthVertxTest.java
index 087b30535..f5d4e1c58 100644
--- a/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthVertxTest.java
+++ b/compat-0.3/reference/rest/src/test/java/org/a2aproject/sdk/compat03/server/rest/quarkus/QuarkusA2ARest_v0_3_WithAuthVertxTest.java
@@ -1,12 +1,12 @@
package org.a2aproject.sdk.compat03.server.rest.quarkus;
+import org.a2aproject.sdk.client.http.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;
import org.a2aproject.sdk.compat03.client.transport.spi.interceptors.auth.AuthInterceptor_v0_3;
import org.a2aproject.sdk.compat03.conversion.AbstractA2AServerWithAuthTest_v0_3;
import org.a2aproject.sdk.compat03.conversion.AuthTestProfile_v0_3;
-import org.a2aproject.sdk.compat03.conversion.VertxA2AHttpClient_v0_3;
import org.a2aproject.sdk.compat03.spec.TransportProtocol_v0_3;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile;
@@ -43,14 +43,14 @@ protected void configureTransportWithAuth(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
new RestTransportConfigBuilder_v0_3()
- .httpClient(new VertxA2AHttpClient_v0_3(vertx))
+ .httpClient(new VertxA2AHttpClient(vertx))
.addInterceptor(authInterceptor));
}
@Override
protected void configureTransport(ClientBuilder_v0_3 builder) {
builder.withTransport(RestTransport_v0_3.class,
- new RestTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient_v0_3(vertx)));
+ new RestTransportConfigBuilder_v0_3().httpClient(new VertxA2AHttpClient(vertx)));
}
@Test
diff --git a/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/AndroidA2AHttpClient_v0_3.java b/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/AndroidA2AHttpClient_v0_3.java
deleted file mode 100644
index 778d42fd7..000000000
--- a/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/AndroidA2AHttpClient_v0_3.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.a2aproject.sdk.compat03.conversion;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Consumer;
-
-import org.a2aproject.sdk.client.http.A2AHttpClient;
-import org.a2aproject.sdk.client.http.AndroidA2AHttpClient;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpResponse_v0_3;
-
-/**
- * Adapts {@link AndroidA2AHttpClient} to the {@link A2AHttpClient_v0_3} interface,
- * bridging the v0.3 SSE callback ({@code Consumer}) to the v1.0 SSE callback
- * ({@code Consumer}) by extracting the event data payload.
- */
-public class AndroidA2AHttpClient_v0_3 implements A2AHttpClient_v0_3 {
-
- private final AndroidA2AHttpClient delegate = new AndroidA2AHttpClient();
-
- @Override
- public GetBuilder createGet() {
- return new GetBuilderAdapter(delegate.createGet());
- }
-
- @Override
- public PostBuilder createPost() {
- return new PostBuilderAdapter(delegate.createPost());
- }
-
- @Override
- public DeleteBuilder createDelete() {
- return new DeleteBuilderAdapter(delegate.createDelete());
- }
-
- private static A2AHttpResponse_v0_3 adapt(org.a2aproject.sdk.client.http.A2AHttpResponse r) {
- return new A2AHttpResponse_v0_3() {
- @Override public int status() { return r.status(); }
- @Override public boolean success() { return r.success(); }
- @Override public String body() { return r.body(); }
- };
- }
-
- private static class GetBuilderAdapter implements GetBuilder {
- private final A2AHttpClient.GetBuilder delegate;
-
- GetBuilderAdapter(A2AHttpClient.GetBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public GetBuilder url(String s) { delegate.url(s); return this; }
- @Override public GetBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public GetBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 get() throws IOException, InterruptedException {
- return adapt(delegate.get());
- }
-
- @Override
- public CompletableFuture getAsyncSSE(Consumer mc, Consumer ec, Runnable cr)
- throws IOException, InterruptedException {
- return delegate.getAsyncSSE(event -> mc.accept(event.data()), ec, cr);
- }
- }
-
- private static class PostBuilderAdapter implements PostBuilder {
- private final A2AHttpClient.PostBuilder delegate;
-
- PostBuilderAdapter(A2AHttpClient.PostBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public PostBuilder url(String s) { delegate.url(s); return this; }
- @Override public PostBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public PostBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
- @Override public PostBuilder body(String body) { delegate.body(body); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 post() throws IOException, InterruptedException {
- return adapt(delegate.post());
- }
-
- @Override
- public CompletableFuture postAsyncSSE(Consumer mc, Consumer ec, Runnable cr)
- throws IOException, InterruptedException {
- return delegate.postAsyncSSE(event -> mc.accept(event.data()), ec, cr);
- }
- }
-
- private static class DeleteBuilderAdapter implements DeleteBuilder {
- private final A2AHttpClient.DeleteBuilder delegate;
-
- DeleteBuilderAdapter(A2AHttpClient.DeleteBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public DeleteBuilder url(String s) { delegate.url(s); return this; }
- @Override public DeleteBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public DeleteBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 delete() throws IOException, InterruptedException {
- return adapt(delegate.delete());
- }
- }
-}
diff --git a/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/VertxA2AHttpClient_v0_3.java b/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/VertxA2AHttpClient_v0_3.java
deleted file mode 100644
index 24fac7060..000000000
--- a/compat-0.3/server-conversion/src/test/java/org/a2aproject/sdk/compat03/conversion/VertxA2AHttpClient_v0_3.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package org.a2aproject.sdk.compat03.conversion;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Consumer;
-
-import org.a2aproject.sdk.client.http.A2AHttpClient;
-import org.a2aproject.sdk.client.http.VertxA2AHttpClient;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpClient_v0_3;
-import org.a2aproject.sdk.compat03.client.http.A2AHttpResponse_v0_3;
-import io.vertx.core.Vertx;
-
-/**
- * Adapts {@link VertxA2AHttpClient} to the {@link A2AHttpClient_v0_3} interface,
- * bridging the v0.3 SSE callback ({@code Consumer}) to the v1.0 SSE callback
- * ({@code Consumer}) by extracting the event data payload.
- */
-public class VertxA2AHttpClient_v0_3 implements A2AHttpClient_v0_3 {
-
- private final VertxA2AHttpClient delegate;
-
- public VertxA2AHttpClient_v0_3(Vertx vertx) {
- this.delegate = new VertxA2AHttpClient(vertx);
- }
-
- @Override
- public GetBuilder createGet() {
- return new GetBuilderAdapter(delegate.createGet());
- }
-
- @Override
- public PostBuilder createPost() {
- return new PostBuilderAdapter(delegate.createPost());
- }
-
- @Override
- public DeleteBuilder createDelete() {
- return new DeleteBuilderAdapter(delegate.createDelete());
- }
-
- private static A2AHttpResponse_v0_3 adapt(org.a2aproject.sdk.client.http.A2AHttpResponse r) {
- return new A2AHttpResponse_v0_3() {
- @Override public int status() { return r.status(); }
- @Override public boolean success() { return r.success(); }
- @Override public String body() { return r.body(); }
- };
- }
-
- private static class GetBuilderAdapter implements GetBuilder {
- private final A2AHttpClient.GetBuilder delegate;
-
- GetBuilderAdapter(A2AHttpClient.GetBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public GetBuilder url(String s) { delegate.url(s); return this; }
- @Override public GetBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public GetBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 get() throws IOException, InterruptedException {
- return adapt(delegate.get());
- }
-
- @Override
- public CompletableFuture getAsyncSSE(Consumer mc, Consumer ec, Runnable cr)
- throws IOException, InterruptedException {
- return delegate.getAsyncSSE(event -> mc.accept(event.data()), ec, cr);
- }
- }
-
- private static class PostBuilderAdapter implements PostBuilder {
- private final A2AHttpClient.PostBuilder delegate;
-
- PostBuilderAdapter(A2AHttpClient.PostBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public PostBuilder url(String s) { delegate.url(s); return this; }
- @Override public PostBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public PostBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
- @Override public PostBuilder body(String body) { delegate.body(body); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 post() throws IOException, InterruptedException {
- return adapt(delegate.post());
- }
-
- @Override
- public CompletableFuture postAsyncSSE(Consumer mc, Consumer ec, Runnable cr)
- throws IOException, InterruptedException {
- return delegate.postAsyncSSE(event -> mc.accept(event.data()), ec, cr);
- }
- }
-
- private static class DeleteBuilderAdapter implements DeleteBuilder {
- private final A2AHttpClient.DeleteBuilder delegate;
-
- DeleteBuilderAdapter(A2AHttpClient.DeleteBuilder delegate) {
- this.delegate = delegate;
- }
-
- @Override public DeleteBuilder url(String s) { delegate.url(s); return this; }
- @Override public DeleteBuilder addHeader(String n, String v) { delegate.addHeader(n, v); return this; }
- @Override public DeleteBuilder addHeaders(Map h) { delegate.addHeaders(h); return this; }
-
- @Override
- public A2AHttpResponse_v0_3 delete() throws IOException, InterruptedException {
- return adapt(delegate.delete());
- }
- }
-}