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
7 changes: 0 additions & 7 deletions boms/sdk/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,6 @@
<version>${project.version}</version>
</dependency>

<!-- Compat 0.3 HTTP Client -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>a2a-java-sdk-compat-0.3-http-client</artifactId>
<version>${project.version}</version>
</dependency>

<!-- Compat 0.3 Client modules -->
<dependency>
<groupId>${project.groupId}</groupId>
Expand Down
6 changes: 0 additions & 6 deletions boms/sdk/src/it/sdk-usage-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,6 @@
<artifactId>a2a-java-sdk-compat-0.3-spec-grpc</artifactId>
</dependency>

<!-- Compat 0.3 HTTP Client -->
<dependency>
<groupId>org.a2aproject.sdk</groupId>
<artifactId>a2a-java-sdk-compat-0.3-http-client</artifactId>
</dependency>

<!-- Compat 0.3 Client modules -->
<dependency>
<groupId>org.a2aproject.sdk</groupId>
Expand Down
2 changes: 1 addition & 1 deletion compat-0.3/client/base/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>a2a-java-sdk-compat-0.3-http-client</artifactId>
<artifactId>a2a-java-sdk-http-client</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -138,7 +138,7 @@ private static Message_v0_3 toMessage(List<Part_v0_3<?>> 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);
}

/**
Expand All @@ -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);
}

Expand All @@ -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<String, String> authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
return getAgentCard(new JdkA2AHttpClient_v0_3(), agentUrl, relativeCardPath, authHeaders);
return getAgentCard(A2AHttpClientFactory.create(), agentUrl, relativeCardPath, authHeaders);
}

/**
Expand All @@ -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<String, String> authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
public static AgentCard_v0_3 getAgentCard(A2AHttpClient httpClient, String agentUrl, String relativeCardPath, Map<String, String> authHeaders) throws A2AClientError_v0_3, A2AClientJSONError_v0_3 {
A2ACardResolver_v0_3 resolver = new A2ACardResolver_v0_3(httpClient, agentUrl, relativeCardPath, authHeaders);
return resolver.getAgentCard();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion compat-0.3/client/transport/jsonrpc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>a2a-java-sdk-compat-0.3-http-client</artifactId>
<artifactId>a2a-java-sdk-http-client</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
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<JSONRPCTransportConfig_v0_3, JSONRPCTransportConfigBuilder_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;
}

@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;
}
}
}
Original file line number Diff line number Diff line change
@@ -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<JSONRPCTransport_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;
}
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -69,7 +70,7 @@ public class JSONRPCTransport_v0_3 implements ClientTransport_v0_3 {
private static final Class<DeleteTaskPushNotificationConfigResponse_v0_3> DELETE_TASK_PUSH_NOTIFICATION_CONFIG_RESPONSE_REFERENCE = DeleteTaskPushNotificationConfigResponse_v0_3.class;
private static final Class<GetAuthenticatedExtendedCardResponse_v0_3> 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<ClientCallInterceptor_v0_3> interceptors;
private AgentCard_v0_3 agentCard;
Expand All @@ -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<ClientCallInterceptor_v0_3> 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;
Expand Down Expand Up @@ -133,9 +134,9 @@ public void sendMessageStreaming(MessageSendParams_v0_3 request, Consumer<Stream
SSEEventListener_v0_3 sseEventListener = new SSEEventListener_v0_3(eventConsumer, errorConsumer);

try {
A2AHttpClient_v0_3.PostBuilder builder = createPostBuilder(payloadAndHeaders);
A2AHttpClient.PostBuilder builder = createPostBuilder(payloadAndHeaders);
ref.set(builder.postAsyncSSE(
msg -> 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)
Expand Down Expand Up @@ -314,9 +315,9 @@ public void resubscribe(TaskIdParams_v0_3 request, Consumer<StreamingEventKind_v
SSEEventListener_v0_3 sseEventListener = new SSEEventListener_v0_3(eventConsumer, errorConsumer);

try {
A2AHttpClient_v0_3.PostBuilder builder = createPostBuilder(payloadAndHeaders);
A2AHttpClient.PostBuilder builder = createPostBuilder(payloadAndHeaders);
ref.set(builder.postAsyncSSE(
msg -> 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)
Expand Down Expand Up @@ -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()));
Expand Down
2 changes: 1 addition & 1 deletion compat-0.3/client/transport/rest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>a2a-java-sdk-compat-0.3-http-client</artifactId>
<artifactId>a2a-java-sdk-http-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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());
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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<RestTransportConfig_v0_3, RestTransportConfigBuilder_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;
}
}
}
Original file line number Diff line number Diff line change
@@ -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<RestTransport_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;
}
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Loading