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<>();