Author: davsclaus
Date: Thu Sep 27 11:36:07 2012
New Revision: 1390946

URL: http://svn.apache.org/viewvc?rev=1390946&view=rev
Log:
CAMEL-5655: Fixed endpoint factorty bean when using multiple camel contexts.

Added:
    
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.java
      - copied, changed from r1390936, 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java
    
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml
      - copied, changed from r1390936, 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml
Modified:
    
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java

Modified: 
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java?rev=1390946&r1=1390945&r2=1390946&view=diff
==============================================================================
--- 
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
 (original)
+++ 
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
 Thu Sep 27 11:36:07 2012
@@ -63,6 +63,10 @@ public abstract class AbstractCamelFacto
     }
 
     public CamelContext getCamelContext() {
+        if (ObjectHelper.isNotEmpty(camelContextId)) {
+            // always return the context by its id
+            return getCamelContextWithId(camelContextId);
+        }
         return camelContext;
     }
 

Copied: 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.java
 (from r1390936, 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java&r1=1390936&r2=1390946&rev=1390946&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/management/DualCamelContextManagedTest.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.java
 Thu Sep 27 11:36:07 2012
@@ -14,12 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.spring.management;
-
-import java.util.Set;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
+package org.apache.camel.spring.config;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spring.SpringTestSupport;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -27,58 +25,30 @@ import org.springframework.context.suppo
 /**
  * @version 
  */
-public class DualCamelContextManagedTest extends SpringTestSupport {
-
-    @Override
-    protected boolean useJmx() {
-        return true;
-    }
+public class DualCamelContextEndpointOutsideTest extends SpringTestSupport {
 
     protected AbstractXmlApplicationContext createApplicationContext() {
-        return new 
ClassPathXmlApplicationContext("org/apache/camel/spring/management/dualCamelContextManagedTest.xml");
+        return new 
ClassPathXmlApplicationContext("org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml");
     }
 
-    public void testDualCamelContextManaged() throws Exception {
-        
-        MBeanServer mbeanServer = 
context.getManagementStrategy().getManagementAgent().getMBeanServer();
-
-        ObjectName on1 = null;
-        ObjectName on2 = null;
-        Set<ObjectName> set = mbeanServer.queryNames(new 
ObjectName("*:type=routes,*"), null);
-        // filter out only camel-A and camel-B
-        for (ObjectName on : set) {
-            if (on.getCanonicalName().contains("camel-A")) {
-                on1 = on;
-            } else if (on.getCanonicalName().contains("camel-B")) {
-                on2 = on;
-            }
-        }
-        assertNotNull("Should have found camel-A route", on1);
-        assertNotNull("Should have found camel-B route", on2);
-
-        assertTrue("Route 1 is missing", 
on1.getCanonicalName().contains("route1"));
-        assertTrue("Route 2 is missing", 
on2.getCanonicalName().contains("route2"));
-
-        set = mbeanServer.queryNames(new ObjectName("*:type=endpoints,*"), 
null);
-        assertTrue("Should be at least 7 endpoints, was: " + set.size(), 
set.size() >= 7);
-
-        for (ObjectName on : set) {
-            String name = on.getCanonicalName();
-            
-            if (name.contains("mock://mock1")) {
-                String id = (String) mbeanServer.getAttribute(on, "CamelId");
-                assertEquals("camel-A", id);
-            } else if (name.contains("mock://mock2")) {
-                String id = (String) mbeanServer.getAttribute(on, "CamelId");
-                assertEquals("camel-B", id);
-            } else if (name.contains("file://target/route1")) {
-                String id = (String) mbeanServer.getAttribute(on, "CamelId");
-                assertEquals("camel-A", id);
-            } else if (name.contains("file://target/route2")) {
-                String id = (String) mbeanServer.getAttribute(on, "CamelId");
-                assertEquals("camel-B", id);
-            }
-        }
+    public void testDualCamelContextEndpoint() throws Exception {
+        CamelContext camelA = applicationContext.getBean("camel-A", 
CamelContext.class);
+        assertNotNull(camelA);
+
+        CamelContext camelB = applicationContext.getBean("camel-B", 
CamelContext.class);
+        assertNotNull(camelB);
+
+        MockEndpoint mockA = camelA.getEndpoint("mock:mock1", 
MockEndpoint.class);
+        mockA.expectedBodiesReceived("Hello A");
+
+        MockEndpoint mockB = camelB.getEndpoint("mock:mock2", 
MockEndpoint.class);
+        mockB.expectedBodiesReceived("Hello B");
+
+        camelA.createProducerTemplate().sendBody("direct:start1", "Hello A");
+        camelB.createProducerTemplate().sendBody("direct:start2", "Hello B");
+
+        mockA.assertIsSatisfied();
+        mockB.assertIsSatisfied();
     }
 
 }

Copied: 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml
 (from r1390936, 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml&r1=1390936&r2=1390946&rev=1390946&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/management/dualCamelContextManagedTest.xml
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/DualCamelContextEndpointOutsideTest.xml
 Thu Sep 27 11:36:07 2012
@@ -22,9 +22,11 @@
        http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
 
-    <camelContext id="camel-A" xmlns="http://camel.apache.org/schema/spring";>
+       <endpoint id="fromFile" camelContextId="camel-A" uri="direct:start1" 
xmlns="http://camel.apache.org/schema/spring"/>
+       <endpoint id="fromFile2" camelContextId="camel-B" uri="direct:start2" 
xmlns="http://camel.apache.org/schema/spring"/>
+
+       <camelContext id="camel-A" 
xmlns="http://camel.apache.org/schema/spring";>
         
-        <endpoint id="fromFile" uri="file://target/route1"/>
         <endpoint id="mock1" uri="mock:mock1"/>
 
         <route id="route1">
@@ -36,7 +38,6 @@
 
     <camelContext id="camel-B" xmlns="http://camel.apache.org/schema/spring";>
         
-        <endpoint id="fromFile2" uri="file://target/route2"/>
         <endpoint id="mock2" uri="mock:mock2"/>
 
         <route id="route2">


Reply via email to