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 2010/05/10 11:38:35 UTC

svn commit: r942696 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/component/bean/ camel-core/src/test/java/org/apache/camel/component/bean/ components/camel-spring/src/test/java/org/apache/camel/spring/processor/ components/camel-spring/...

Author: davsclaus
Date: Mon May 10 09:38:35 2010
New Revision: 942696

URL: http://svn.apache.org/viewvc?rev=942696&view=rev
Log:
CAMEL-2705: Let bean registry fallback to see if the name is a FQN for a class.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanRegistryBeanTest.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringMethodCallTest.java
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringMethodCallTest.xml

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java?rev=942696&r1=942695&r2=942696&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/RegistryBean.java Mon May 10 09:38:35 2010
@@ -55,7 +55,12 @@ public class RegistryBean implements Bea
     public Object getBean() throws NoSuchBeanException {
         Object value = lookupBean();
         if (value == null) {
-            throw new NoSuchBeanException(name);
+            // maybe its a class
+            value = context.getClassResolver().resolveClass(name);
+            if (value == null) {
+                // no its not a class then we cannot find the bean
+                throw new NoSuchBeanException(name);
+            }
         }
         if (value != bean) {
             bean = value;

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanRegistryBeanTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanRegistryBeanTest.java?rev=942696&r1=942695&r2=942696&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanRegistryBeanTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/bean/BeanRegistryBeanTest.java Mon May 10 09:38:35 2010
@@ -81,6 +81,14 @@ public class BeanRegistryBeanTest extend
         assertEquals("foofoo", foo.echo("foo"));
     }
 
+    public void testLookupFQNClass() throws Exception {
+        RegistryBean rb = new RegistryBean(context, "org.apache.camel.component.bean.MyDummyBean");
+
+        Object bean = rb.getBean();
+        MyDummyBean dummy = assertIsInstanceOf(MyDummyBean.class, bean);
+        assertEquals("Hello World", dummy.hello("World"));
+    }
+
     public static class MyFooBean {
 
         public String echo(String s) {

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringMethodCallTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringMethodCallTest.java?rev=942696&r1=942695&r2=942696&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringMethodCallTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringMethodCallTest.java Mon May 10 09:38:35 2010
@@ -47,6 +47,16 @@ public class SpringMethodCallTest extend
         assertMockEndpointsSatisfied();
     }
 
+    public void testToBeanType() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Hi Camel", "Hi World");
+
+        template.sendBody("direct:tobeantype", "Camel");
+        template.sendBody("direct:tobeantype", "World");
+
+        assertMockEndpointsSatisfied();
+    }
+
     protected CamelContext createCamelContext() throws Exception {
         return createSpringCamelContext(this, "/org/apache/camel/spring/processor/SpringMethodCallTest.xml");
     }

Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringMethodCallTest.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringMethodCallTest.xml?rev=942696&r1=942695&r2=942696&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringMethodCallTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringMethodCallTest.xml Mon May 10 09:38:35 2010
@@ -40,6 +40,14 @@
             </setHeader>
             <to uri="mock:ref"/>
         </route>
+
+        <route>
+            <from uri="direct:tobeantype"/>
+            <to uri="bean:org.apache.camel.spring.processor.MyCoolBean"/>
+            <to uri="mock:result"/>
+        </route>
+
     </camelContext>
 
+
 </beans>