From d6129f1cecd2aa3c5bcbab291873855a86cf9f33 Mon Sep 17 00:00:00 2001 From: Kabir Khan Date: Tue, 12 May 2026 19:14:25 +0100 Subject: [PATCH] fix: Fixes for Jakarta - Don't use TCCL to initialise the Http Client - Default 1.0 gRPC version to 1.0 if not found by interceptor (haven't worked out how to register this in WildFly) --- .../org/a2aproject/sdk/client/http/A2AHttpClientFactory.java | 5 +++-- .../a2aproject/sdk/transport/grpc/handler/GrpcHandler.java | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/http-client/src/main/java/org/a2aproject/sdk/client/http/A2AHttpClientFactory.java b/http-client/src/main/java/org/a2aproject/sdk/client/http/A2AHttpClientFactory.java index 068a47046..e781a31e5 100644 --- a/http-client/src/main/java/org/a2aproject/sdk/client/http/A2AHttpClientFactory.java +++ b/http-client/src/main/java/org/a2aproject/sdk/client/http/A2AHttpClientFactory.java @@ -45,7 +45,7 @@ public final class A2AHttpClientFactory { private static final List PROVIDERS; static { - PROVIDERS = StreamSupport.stream(ServiceLoader.load(A2AHttpClientProvider.class).spliterator(), false) + PROVIDERS = StreamSupport.stream(ServiceLoader.load(A2AHttpClientProvider.class, A2AHttpClientProvider.class.getClassLoader()).spliterator(), false) .collect(Collectors.toList()); } @@ -85,7 +85,8 @@ public static A2AHttpClient create(String providerName) { throw new IllegalArgumentException("Provider name must not be null or empty"); } - ServiceLoader loader = ServiceLoader.load(A2AHttpClientProvider.class); + ServiceLoader loader = + ServiceLoader.load(A2AHttpClientProvider.class, A2AHttpClientProvider.class.getClassLoader()); return StreamSupport.stream(loader.spliterator(), false) .filter(provider -> providerName.equals(provider.name())) diff --git a/transport/grpc/src/main/java/org/a2aproject/sdk/transport/grpc/handler/GrpcHandler.java b/transport/grpc/src/main/java/org/a2aproject/sdk/transport/grpc/handler/GrpcHandler.java index 90e99e848..306c8655c 100644 --- a/transport/grpc/src/main/java/org/a2aproject/sdk/transport/grpc/handler/GrpcHandler.java +++ b/transport/grpc/src/main/java/org/a2aproject/sdk/transport/grpc/handler/GrpcHandler.java @@ -56,6 +56,7 @@ import org.a2aproject.sdk.spec.TaskNotFoundError; import org.a2aproject.sdk.spec.TaskPushNotificationConfig; import org.a2aproject.sdk.spec.TaskQueryParams; +import org.a2aproject.sdk.spec.AgentInterface; import org.a2aproject.sdk.spec.TransportProtocol; import org.a2aproject.sdk.spec.A2AErrorCodes; import org.a2aproject.sdk.spec.UnsupportedOperationError; @@ -686,7 +687,11 @@ private ServerCallContext createCallContext(StreamObserver responseObserv } // Extract requested protocol version from gRPC context (set by interceptor) + // Default to current version since gRPC only handles 1.0 protocol String requestedVersion = getVersionFromContext(); + if (requestedVersion == null) { + requestedVersion = AgentInterface.CURRENT_PROTOCOL_VERSION; + } // Extract requested extensions from gRPC context (set by interceptor) Set requestedExtensions = new HashSet<>();