Skip to content

Commit 7ae564a

Browse files
committed
feat: Updates to align with v0.2.5 of the spec
1 parent 1516f29 commit 7ae564a

File tree

4 files changed

+40
-3
lines changed

4 files changed

+40
-3
lines changed

impl/src/main/java/org/wildfly/extras/a2a/server/apps/jakarta/A2ARequestFilter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import java.io.InputStream;
77

88
import io.a2a.spec.CancelTaskRequest;
9+
import io.a2a.spec.DeleteTaskPushNotificationConfigRequest;
910
import io.a2a.spec.GetTaskPushNotificationConfigRequest;
1011
import io.a2a.spec.GetTaskRequest;
12+
import io.a2a.spec.ListTaskPushNotificationConfigRequest;
1113
import io.a2a.spec.SendMessageRequest;
1214
import io.a2a.spec.SendStreamingMessageRequest;
1315
import io.a2a.spec.SetTaskPushNotificationConfigRequest;
@@ -67,7 +69,9 @@ private static boolean isNonStreamingRequest(String requestBody) {
6769
requestBody.contains(CancelTaskRequest.METHOD) ||
6870
requestBody.contains(SendMessageRequest.METHOD) ||
6971
requestBody.contains(SetTaskPushNotificationConfigRequest.METHOD) ||
70-
requestBody.contains(GetTaskPushNotificationConfigRequest.METHOD);
72+
requestBody.contains(GetTaskPushNotificationConfigRequest.METHOD) ||
73+
requestBody.contains(ListTaskPushNotificationConfigRequest.METHOD) ||
74+
requestBody.contains(DeleteTaskPushNotificationConfigRequest.METHOD);
7175
}
7276

7377
private static void putAcceptHeader(ContainerRequestContext requestContext, String mediaType) {

impl/src/main/java/org/wildfly/extras/a2a/server/apps/jakarta/A2AServerResource.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.a2a.server.util.async.Internal;
2626
import io.a2a.spec.AgentCard;
2727
import io.a2a.spec.CancelTaskRequest;
28+
import io.a2a.spec.DeleteTaskPushNotificationConfigRequest;
2829
import io.a2a.spec.GetTaskPushNotificationConfigRequest;
2930
import io.a2a.spec.GetTaskRequest;
3031
import io.a2a.spec.IdJsonMappingException;
@@ -37,6 +38,7 @@
3738
import io.a2a.spec.JSONRPCErrorResponse;
3839
import io.a2a.spec.JSONRPCRequest;
3940
import io.a2a.spec.JSONRPCResponse;
41+
import io.a2a.spec.ListTaskPushNotificationConfigRequest;
4042
import io.a2a.spec.MethodNotFoundError;
4143
import io.a2a.spec.MethodNotFoundJsonMappingException;
4244
import io.a2a.spec.NonStreamingJSONRPCRequest;
@@ -146,11 +148,15 @@ private JSONRPCResponse<?> processNonStreamingRequest(NonStreamingJSONRPCRequest
146148
} else if (request instanceof CancelTaskRequest) {
147149
return jsonRpcHandler.onCancelTask((CancelTaskRequest) request);
148150
} else if (request instanceof SetTaskPushNotificationConfigRequest) {
149-
return jsonRpcHandler.setPushNotification((SetTaskPushNotificationConfigRequest) request);
151+
return jsonRpcHandler.setPushNotificationConfig((SetTaskPushNotificationConfigRequest) request);
150152
} else if (request instanceof GetTaskPushNotificationConfigRequest) {
151-
return jsonRpcHandler.getPushNotification((GetTaskPushNotificationConfigRequest) request);
153+
return jsonRpcHandler.getPushNotificationConfig((GetTaskPushNotificationConfigRequest) request);
152154
} else if (request instanceof SendMessageRequest) {
153155
return jsonRpcHandler.onMessageSend((SendMessageRequest) request);
156+
} else if (request instanceof ListTaskPushNotificationConfigRequest) {
157+
return jsonRpcHandler.listPushNotificationConfig((ListTaskPushNotificationConfigRequest) request);
158+
} else if (request instanceof DeleteTaskPushNotificationConfigRequest) {
159+
return jsonRpcHandler.deletePushNotificationConfig((DeleteTaskPushNotificationConfigRequest) request);
154160
} else {
155161
return generateErrorResponse(request, new UnsupportedOperationError());
156162
}

tck/src/main/java/org/wildfly/extras/a2a/server/jakarta/tck/AgentCardProducer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public AgentCard agentCard() {
4040
.tags(Collections.singletonList("hello world"))
4141
.examples(List.of("hi", "hello world"))
4242
.build()))
43+
.protocolVersion("0.2.5")
4344
.build();
4445
}
4546
}

tests/common/src/main/java/org/wildfly/extras/a2a/server/jakarta/test/common/A2ATestResource.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import jakarta.ws.rs.core.Response;
2020

2121
import io.a2a.server.apps.common.TestUtilsBean;
22+
import io.a2a.spec.PushNotificationConfig;
2223
import io.a2a.spec.Task;
2324
import io.a2a.spec.TaskArtifactUpdateEvent;
2425
import io.a2a.spec.TaskStatusUpdateEvent;
@@ -102,4 +103,29 @@ public Response enqueueTaskArtifactUpdateEvent(@PathParam("taskId") String taskI
102103
public Response getStreamingSubscribedCount() {
103104
return Response.ok(String.valueOf(streamingSubscribedCount.get()), TEXT_PLAIN).build();
104105
}
106+
107+
@DELETE
108+
@Path("/task/{taskId}/config/{configId}")
109+
public Response deleteTaskPushNotificationConfig(@PathParam("taskId") String taskId, @PathParam("configId") String configId) {
110+
Task task = testUtilsBean.getTask(taskId);
111+
if (task == null) {
112+
return Response.status(404).build();
113+
}
114+
testUtilsBean.deleteTaskPushNotificationConfig(taskId, configId);
115+
return Response.ok()
116+
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
117+
.build();
118+
}
119+
120+
@POST
121+
@Path("/task/{taskId}")
122+
@Consumes(MediaType.APPLICATION_JSON)
123+
public Response savePushNotificationConfigInStore(@PathParam("taskId") String taskId, String body) throws Exception {
124+
PushNotificationConfig notificationConfig = Utils.OBJECT_MAPPER.readValue(body, PushNotificationConfig.class);
125+
if (notificationConfig == null) {
126+
return Response.status(404).build();
127+
}
128+
testUtilsBean.saveTaskPushNotificationConfig(taskId, notificationConfig);
129+
return Response.ok().build();
130+
}
105131
}

0 commit comments

Comments
 (0)