Repository: camel
Updated Branches:
  refs/heads/camel-2.19.x 78ddd616d -> 480239b54


CAMEL-11343: gRPC component cannot load service class


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/480239b5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/480239b5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/480239b5

Branch: refs/heads/camel-2.19.x
Commit: 480239b54c399af995f76448dd50e45a6b754494
Parents: 78ddd61
Author: dvolodin <dvolodin@localhost.localdomain>
Authored: Sun May 28 09:43:43 2017 +0300
Committer: dvolodin <dvolodin@localhost.localdomain>
Committed: Sun May 28 09:43:43 2017 +0300

----------------------------------------------------------------------
 .../org/apache/camel/component/grpc/GrpcProducer.java  |  4 ++--
 .../org/apache/camel/component/grpc/GrpcUtils.java     | 13 +++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/480239b5/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java
 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java
index 01668fe..fcc2ed7 100644
--- 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java
+++ 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcProducer.java
@@ -73,10 +73,10 @@ public class GrpcProducer extends DefaultProducer 
implements AsyncProcessor {
             initializeChannel();
             if (endpoint.isSynchronous()) {
                 LOG.info("Getting synchronous method stub from channel");
-                grpcStub = 
GrpcUtils.constructGrpcBlockingStub(configuration.getServicePackage(), 
configuration.getServiceName(), channel);
+                grpcStub = 
GrpcUtils.constructGrpcBlockingStub(configuration.getServicePackage(), 
configuration.getServiceName(), channel, endpoint.getCamelContext());
             } else {
                 LOG.info("Getting asynchronous method stub from channel");
-                grpcStub = 
GrpcUtils.constructGrpcAsyncStub(configuration.getServicePackage(), 
configuration.getServiceName(), channel);
+                grpcStub = 
GrpcUtils.constructGrpcAsyncStub(configuration.getServicePackage(), 
configuration.getServiceName(), channel, endpoint.getCamelContext());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/480239b5/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
----------------------------------------------------------------------
diff --git 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
index 5ff1a88..dc915eb 100644
--- 
a/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
+++ 
b/components/camel-grpc/src/main/java/org/apache/camel/component/grpc/GrpcUtils.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import io.grpc.Channel;
 import io.grpc.stub.StreamObserver;
+import org.apache.camel.CamelContext;
 import org.springframework.util.ReflectionUtils;
 
 /**
@@ -34,12 +35,12 @@ public final class GrpcUtils {
     private GrpcUtils() {
     }
 
-    public static Object constructGrpcAsyncStub(String packageName, String 
serviceName, Channel channel) {
-        return constructGrpcStubClass(packageName, serviceName, 
GrpcConstants.GRPC_SERVICE_ASYNC_STUB_METHOD, channel);
+    public static Object constructGrpcAsyncStub(String packageName, String 
serviceName, Channel channel, final CamelContext context) {
+        return constructGrpcStubClass(packageName, serviceName, 
GrpcConstants.GRPC_SERVICE_ASYNC_STUB_METHOD, channel, context);
     }
 
-    public static Object constructGrpcBlockingStub(String packageName, String 
serviceName, Channel channel) {
-        return constructGrpcStubClass(packageName, serviceName, 
GrpcConstants.GRPC_SERVICE_SYNC_STUB_METHOD, channel);
+    public static Object constructGrpcBlockingStub(String packageName, String 
serviceName, Channel channel, final CamelContext context) {
+        return constructGrpcStubClass(packageName, serviceName, 
GrpcConstants.GRPC_SERVICE_SYNC_STUB_METHOD, channel, context);
     }
 
     /**
@@ -49,14 +50,14 @@ public final class GrpcUtils {
      * newFutureStub - for ListenableFuture-style (not implemented yet)
      */
     @SuppressWarnings({"rawtypes"})
-    private static Object constructGrpcStubClass(String packageName, String 
serviceName, String stubMethod, Channel channel) {
+    private static Object constructGrpcStubClass(String packageName, String 
serviceName, String stubMethod, Channel channel, final CamelContext context) {
         Class[] paramChannel = new Class[1];
         paramChannel[0] = Channel.class;
         Object grpcBlockingStub = null;
 
         String serviceClassName = packageName + "." + serviceName + 
GrpcConstants.GRPC_SERVICE_CLASS_POSTFIX;
         try {
-            Class grpcServiceClass = Class.forName(serviceClassName);
+            Class grpcServiceClass = 
context.getClassResolver().resolveMandatoryClass(serviceClassName);
             Method grpcBlockingMethod = 
ReflectionUtils.findMethod(grpcServiceClass, stubMethod, paramChannel);
             if (grpcBlockingMethod == null) {
                 throw new IllegalArgumentException("gRPC service method not 
found: " + serviceClassName + "." + 
GrpcConstants.GRPC_SERVICE_SYNC_STUB_METHOD);

Reply via email to