Skip to content

Commit c21baf8

Browse files
committed
Move JSONRPC stuff to new module
1 parent a2daec9 commit c21baf8

File tree

152 files changed

+1018
-941
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+1018
-941
lines changed

boms/sdk/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
<artifactId>a2a-java-sdk-common</artifactId>
4040
<version>${project.version}</version>
4141
</dependency>
42+
<dependency>
43+
<groupId>${project.groupId}</groupId>
44+
<artifactId>a2a-java-sdk-internal</artifactId>
45+
<version>${project.version}</version>
46+
</dependency>
4247
<dependency>
4348
<groupId>${project.groupId}</groupId>
4449
<artifactId>a2a-java-sdk-http-client</artifactId>

client/base/src/main/java/io/a2a/client/AbstractClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import io.a2a.spec.ListTaskPushNotificationConfigParams;
1616
import io.a2a.spec.ListTaskPushNotificationConfigResult;
1717
import io.a2a.spec.ListTasksParams;
18-
import io.a2a.spec.ListTasksResult;
18+
import io.a2a.internal.wrappers.ListTasksResult;
1919
import io.a2a.spec.Message;
2020
import io.a2a.spec.PushNotificationConfig;
2121
import io.a2a.spec.Task;

client/base/src/main/java/io/a2a/client/Client.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.a2a.spec.ListTaskPushNotificationConfigParams;
1919
import io.a2a.spec.ListTaskPushNotificationConfigResult;
2020
import io.a2a.spec.ListTasksParams;
21-
import io.a2a.spec.ListTasksResult;
21+
import io.a2a.internal.wrappers.ListTasksResult;
2222
import io.a2a.spec.Message;
2323
import io.a2a.spec.MessageSendConfiguration;
2424
import io.a2a.spec.MessageSendParams;

client/transport/grpc/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
<groupId>${project.groupId}</groupId>
2626
<artifactId>a2a-java-sdk-spec</artifactId>
2727
</dependency>
28+
<dependency>
29+
<groupId>${project.groupId}</groupId>
30+
<artifactId>a2a-java-sdk-internal</artifactId>
31+
<version>${project.version}</version>
32+
</dependency>
2833
<dependency>
2934
<groupId>${project.groupId}</groupId>
3035
<artifactId>a2a-java-sdk-spec-grpc</artifactId>

client/transport/grpc/src/main/java/io/a2a/client/transport/grpc/GrpcTransport.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import java.util.function.Consumer;
88
import java.util.stream.Collectors;
99

10-
import io.a2a.client.transport.spi.interceptors.ClientCallContext;
1110
import io.a2a.client.transport.spi.ClientTransport;
11+
import io.a2a.client.transport.spi.interceptors.ClientCallContext;
1212
import io.a2a.client.transport.spi.interceptors.ClientCallInterceptor;
1313
import io.a2a.client.transport.spi.interceptors.PayloadAndHeaders;
1414
import io.a2a.client.transport.spi.interceptors.auth.AuthInterceptor;
@@ -18,27 +18,27 @@
1818
import io.a2a.grpc.A2AServiceGrpc.A2AServiceStub;
1919
import io.a2a.grpc.utils.ProtoUtils.FromProto;
2020
import io.a2a.grpc.utils.ProtoUtils.ToProto;
21+
import io.a2a.internal.wrappers.CancelTaskRequest;
22+
import io.a2a.internal.wrappers.DeleteTaskPushNotificationConfigRequest;
23+
import io.a2a.internal.wrappers.GetTaskPushNotificationConfigRequest;
24+
import io.a2a.internal.wrappers.GetTaskRequest;
25+
import io.a2a.internal.wrappers.ListTaskPushNotificationConfigRequest;
26+
import io.a2a.internal.wrappers.ListTasksRequest;
27+
import io.a2a.internal.wrappers.ListTasksResult;
28+
import io.a2a.internal.wrappers.SendMessageRequest;
29+
import io.a2a.internal.wrappers.SendStreamingMessageRequest;
30+
import io.a2a.internal.wrappers.SetTaskPushNotificationConfigRequest;
31+
import io.a2a.internal.wrappers.SubscribeToTaskRequest;
2132
import io.a2a.spec.A2AClientException;
2233
import io.a2a.spec.AgentCard;
23-
import io.a2a.spec.CancelTaskRequest;
2434
import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
25-
import io.a2a.spec.DeleteTaskPushNotificationConfigRequest;
2635
import io.a2a.spec.EventKind;
2736
import io.a2a.spec.GetTaskPushNotificationConfigParams;
28-
import io.a2a.spec.GetTaskPushNotificationConfigRequest;
29-
import io.a2a.spec.GetTaskRequest;
3037
import io.a2a.spec.ListTaskPushNotificationConfigParams;
31-
import io.a2a.spec.ListTaskPushNotificationConfigRequest;
3238
import io.a2a.spec.ListTaskPushNotificationConfigResult;
3339
import io.a2a.spec.ListTasksParams;
34-
import io.a2a.spec.ListTasksRequest;
35-
import io.a2a.spec.ListTasksResult;
3640
import io.a2a.spec.MessageSendParams;
37-
import io.a2a.spec.SendMessageRequest;
38-
import io.a2a.spec.SendStreamingMessageRequest;
39-
import io.a2a.spec.SetTaskPushNotificationConfigRequest;
4041
import io.a2a.spec.StreamingEventKind;
41-
import io.a2a.spec.SubscribeToTaskRequest;
4242
import io.a2a.spec.Task;
4343
import io.a2a.spec.TaskIdParams;
4444
import io.a2a.spec.TaskPushNotificationConfig;

client/transport/jsonrpc/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
<groupId>${project.groupId}</groupId>
3434
<artifactId>a2a-java-sdk-spec</artifactId>
3535
</dependency>
36+
<dependency>
37+
<groupId>${project.groupId}</groupId>
38+
<artifactId>a2a-java-sdk-internal</artifactId>
39+
<version>${project.version}</version>
40+
</dependency>
3641
<dependency>
3742
<groupId>${project.groupId}</groupId>
3843
<artifactId>a2a-java-sdk-spec-grpc</artifactId>

client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/JSONRPCTransport.java

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.concurrent.atomic.AtomicReference;
1010
import java.util.function.Consumer;
1111

12-
import io.a2a.json.JsonProcessingException;
1312
import com.google.protobuf.MessageOrBuilder;
1413
import io.a2a.client.http.A2ACardResolver;
1514
import io.a2a.client.http.A2AHttpClient;
@@ -22,42 +21,43 @@
2221
import io.a2a.client.transport.spi.interceptors.PayloadAndHeaders;
2322
import io.a2a.grpc.utils.JSONRPCUtils;
2423
import io.a2a.grpc.utils.ProtoUtils;
24+
import io.a2a.internal.json.JsonProcessingException;
25+
import io.a2a.internal.wrappers.A2AMessage;
26+
import io.a2a.internal.wrappers.A2AResponse;
27+
import io.a2a.internal.wrappers.CancelTaskRequest;
28+
import io.a2a.internal.wrappers.CancelTaskResponse;
29+
import io.a2a.internal.wrappers.DeleteTaskPushNotificationConfigRequest;
30+
import io.a2a.internal.wrappers.DeleteTaskPushNotificationConfigResponse;
31+
import io.a2a.internal.wrappers.GetAuthenticatedExtendedCardRequest;
32+
import io.a2a.internal.wrappers.GetAuthenticatedExtendedCardResponse;
33+
import io.a2a.internal.wrappers.GetTaskPushNotificationConfigRequest;
34+
import io.a2a.internal.wrappers.GetTaskPushNotificationConfigResponse;
35+
import io.a2a.internal.wrappers.GetTaskRequest;
36+
import io.a2a.internal.wrappers.GetTaskResponse;
37+
import io.a2a.internal.wrappers.ListTaskPushNotificationConfigRequest;
38+
import io.a2a.internal.wrappers.ListTaskPushNotificationConfigResponse;
39+
import io.a2a.internal.wrappers.ListTasksRequest;
40+
import io.a2a.internal.wrappers.ListTasksResponse;
41+
import io.a2a.internal.wrappers.ListTasksResult;
42+
import io.a2a.internal.wrappers.SendMessageRequest;
43+
import io.a2a.internal.wrappers.SendMessageResponse;
44+
import io.a2a.internal.wrappers.SendStreamingMessageRequest;
45+
import io.a2a.internal.wrappers.SetTaskPushNotificationConfigRequest;
46+
import io.a2a.internal.wrappers.SetTaskPushNotificationConfigResponse;
47+
import io.a2a.internal.wrappers.SubscribeToTaskRequest;
2548
import io.a2a.spec.A2AClientError;
2649
import io.a2a.spec.A2AClientException;
50+
import io.a2a.spec.A2AError;
2751
import io.a2a.spec.AgentCard;
2852
import io.a2a.spec.AgentInterface;
29-
import io.a2a.spec.CancelTaskRequest;
30-
import io.a2a.spec.CancelTaskResponse;
3153
import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
32-
import io.a2a.spec.DeleteTaskPushNotificationConfigRequest;
33-
import io.a2a.spec.DeleteTaskPushNotificationConfigResponse;
3454
import io.a2a.spec.EventKind;
35-
import io.a2a.spec.GetAuthenticatedExtendedCardRequest;
36-
import io.a2a.spec.GetAuthenticatedExtendedCardResponse;
3755
import io.a2a.spec.GetTaskPushNotificationConfigParams;
38-
import io.a2a.spec.GetTaskPushNotificationConfigRequest;
39-
import io.a2a.spec.GetTaskPushNotificationConfigResponse;
40-
import io.a2a.spec.GetTaskRequest;
41-
import io.a2a.spec.GetTaskResponse;
42-
import io.a2a.spec.JSONRPCError;
43-
import io.a2a.spec.JSONRPCMessage;
44-
import io.a2a.spec.JSONRPCResponse;
4556
import io.a2a.spec.ListTaskPushNotificationConfigParams;
46-
import io.a2a.spec.ListTaskPushNotificationConfigRequest;
47-
import io.a2a.spec.ListTaskPushNotificationConfigResponse;
4857
import io.a2a.spec.ListTaskPushNotificationConfigResult;
4958
import io.a2a.spec.ListTasksParams;
50-
import io.a2a.spec.ListTasksRequest;
51-
import io.a2a.spec.ListTasksResponse;
52-
import io.a2a.spec.ListTasksResult;
5359
import io.a2a.spec.MessageSendParams;
54-
import io.a2a.spec.SendMessageRequest;
55-
import io.a2a.spec.SendMessageResponse;
56-
import io.a2a.spec.SendStreamingMessageRequest;
57-
import io.a2a.spec.SetTaskPushNotificationConfigRequest;
58-
import io.a2a.spec.SetTaskPushNotificationConfigResponse;
5960
import io.a2a.spec.StreamingEventKind;
60-
import io.a2a.spec.SubscribeToTaskRequest;
6161
import io.a2a.spec.Task;
6262
import io.a2a.spec.TaskIdParams;
6363
import io.a2a.spec.TaskPushNotificationConfig;
@@ -304,7 +304,7 @@ public AgentCard getAgentCard(@Nullable ClientCallContext context) throws A2ACli
304304
}
305305

306306
GetAuthenticatedExtendedCardRequest getExtendedAgentCardRequest = GetAuthenticatedExtendedCardRequest.builder()
307-
.jsonrpc(JSONRPCMessage.JSONRPC_VERSION)
307+
.jsonrpc(A2AMessage.JSONRPC_VERSION)
308308
.build(); // id will be randomly generated
309309

310310
PayloadAndHeaders payloadAndHeaders = applyInterceptors(GetAuthenticatedExtendedCardRequest.METHOD,
@@ -381,10 +381,10 @@ private A2AHttpClient.PostBuilder createPostBuilder(String url, PayloadAndHeader
381381
* @throws JsonProcessingException if the JSON cannot be processed
382382
*/
383383
@SuppressWarnings("unchecked")
384-
private <T extends JSONRPCResponse<?>> T unmarshalResponse(String response, String method)
384+
private <T extends A2AResponse<?>> T unmarshalResponse(String response, String method)
385385
throws A2AClientException, JsonProcessingException {
386-
JSONRPCResponse<?> value = JSONRPCUtils.parseResponseBody(response, method);
387-
JSONRPCError error = value.getError();
386+
A2AResponse<?> value = JSONRPCUtils.parseResponseBody(response, method);
387+
A2AError error = value.getError();
388388
if (error != null) {
389389
throw new A2AClientException(error.getMessage() + (error.getData() != null ? ": " + error.getData() : ""), error);
390390
}

client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/sse/SSEEventListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.a2a.client.transport.jsonrpc.sse;
22

3-
import io.a2a.json.JsonProcessingException;
4-
import io.a2a.spec.JSONRPCError;
3+
import io.a2a.internal.json.JsonProcessingException;
4+
import io.a2a.spec.A2AError;
55
import io.a2a.spec.StreamingEventKind;
66
import io.a2a.spec.TaskStatusUpdateEvent;
77

@@ -70,7 +70,7 @@ private void handleMessage(String message, @Nullable Future<Void> future) {
7070
future.cancel(true); // close SSE channel
7171
}
7272
}
73-
} catch (JSONRPCError error) {
73+
} catch (A2AError error) {
7474
if (errorHandler != null) {
7575
errorHandler.accept(error);
7676
}

client/transport/jsonrpc/src/test/java/io/a2a/client/transport/jsonrpc/sse/SSEEventListenerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import io.a2a.client.transport.jsonrpc.JsonStreamingMessages;
1717
import io.a2a.spec.Artifact;
18-
import io.a2a.spec.JSONRPCError;
18+
import io.a2a.spec.A2AError;
1919
import io.a2a.spec.Message;
2020
import io.a2a.spec.Part;
2121
import io.a2a.spec.StreamingEventKind;
@@ -158,8 +158,8 @@ public void testOnEventWithError() throws Exception {
158158

159159
// Verify the error was processed correctly
160160
assertNotNull(receivedError.get());
161-
assertInstanceOf(JSONRPCError.class, receivedError.get());
162-
JSONRPCError jsonrpcError = (JSONRPCError) receivedError.get();
161+
assertInstanceOf(A2AError.class, receivedError.get());
162+
A2AError jsonrpcError = (A2AError) receivedError.get();
163163
assertEquals(-32602, jsonrpcError.getCode());
164164
assertEquals("Invalid parameters", jsonrpcError.getMessage());
165165
assertEquals("\"Missing required field\"", jsonrpcError.getData());

client/transport/rest/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
<groupId>${project.groupId}</groupId>
2626
<artifactId>a2a-java-sdk-spec</artifactId>
2727
</dependency>
28+
<dependency>
29+
<groupId>${project.groupId}</groupId>
30+
<artifactId>a2a-java-sdk-internal</artifactId>
31+
<version>${project.version}</version>
32+
</dependency>
2833
<dependency>
2934
<groupId>${project.groupId}</groupId>
3035
<artifactId>a2a-java-sdk-spec-grpc</artifactId>

0 commit comments

Comments
 (0)