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 2012/09/27 13:36:08 UTC
svn commit: r1390946 - in /camel/trunk/components:
camel-core-xml/src/main/java/org/apache/camel/core/xml/
camel-spring/src/test/java/org/apache/camel/spring/config/
camel-spring/src/test/resources/org/apache/camel/spring/config/
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">