Skip to content

Commit 64dd534

Browse files
committed
fix: Ensure a success JSONRPCResponse with a Void result gets serialized correctly
1 parent 9aad88c commit 64dd534

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.wildfly.extras.a2a.server.apps.jakarta;
2+
3+
import jakarta.ws.rs.ext.ContextResolver;
4+
import jakarta.ws.rs.ext.Provider;
5+
6+
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import com.fasterxml.jackson.databind.module.SimpleModule;
8+
9+
import io.a2a.spec.DeleteTaskPushNotificationConfigResponse;
10+
import io.a2a.spec.JSONRPCResponse;
11+
import io.a2a.spec.JSONRPCVoidResponseSerializer;
12+
13+
@Provider
14+
public class A2AContextResolver implements ContextResolver<ObjectMapper> {
15+
16+
private final ObjectMapper mapper;
17+
18+
public A2AContextResolver() {
19+
mapper = new ObjectMapper();
20+
SimpleModule module = new SimpleModule();
21+
module.addSerializer(new JSONRPCVoidResponseSerializer());
22+
mapper.registerModule(module);
23+
}
24+
25+
@Override
26+
public ObjectMapper getContext(Class<?> type) {
27+
if (JSONRPCResponse.class.isAssignableFrom(type) && type.equals(DeleteTaskPushNotificationConfigResponse.class)) {
28+
return mapper;
29+
}
30+
return null;
31+
}
32+
}

0 commit comments

Comments
 (0)