You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/02/09 13:42:09 UTC

svn commit: r1068866 - /camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java

Author: davsclaus
Date: Wed Feb  9 12:42:09 2011
New Revision: 1068866

URL: http://svn.apache.org/viewvc?rev=1068866&view=rev
Log:
CAMEL-3645: Made it possible to set remoteInterfaces in XML DSL.

Modified:
    camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java

Modified: camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java?rev=1068866&r1=1068865&r2=1068866&view=diff
==============================================================================
--- camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java (original)
+++ camel/trunk/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiComponent.java Wed Feb  9 12:42:09 2011
@@ -16,11 +16,15 @@
  */
 package org.apache.camel.component.rmi;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.util.CastUtils;
 
 /**
  * @version $Revision:520964 $
@@ -36,6 +40,23 @@ public class RmiComponent extends Defaul
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        return new RmiEndpoint(uri, this);
+        RmiEndpoint rmi = new RmiEndpoint(uri, this);
+
+        // lookup remote interfaces
+        List<Class<?>> classes = new ArrayList<Class<?>>();
+        Iterator it = getAndRemoveParameter(parameters, "remoteInterfaces", Iterator.class);
+        while (it != null && it.hasNext()) {
+            Object next = it.next();
+            Class clazz = getCamelContext().getTypeConverter().mandatoryConvertTo(Class.class, next);
+            classes.add(clazz);
+        }
+
+        if (!classes.isEmpty()) {
+            List<Class<?>> interfaces = CastUtils.cast(classes);
+            rmi.setRemoteInterfaces(interfaces);
+        }
+
+        setProperties(rmi, parameters);
+        return rmi;
     }
 }