You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2013/01/14 09:05:57 UTC
svn commit: r1432828 - in /camel/trunk/components/camel-cxf-transport/src:
main/java/org/apache/camel/component/cxf/transport/spring/
main/resources/schema/configuration/
test/java/org/apache/camel/component/cxf/transport/
test/resources/org/apache/cam...
Author: ningjiang
Date: Mon Jan 14 08:05:56 2013
New Revision: 1432828
URL: http://svn.apache.org/viewvc?rev=1432828&view=rev
Log:
CAMEL-5967 supported to specify the camelContextId through the attribute of destination or conduite
Modified:
camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/spring/AbstractCamelContextBeanDefinitionParser.java
camel/trunk/components/camel-cxf-transport/src/main/resources/schema/configuration/camel.xsd
camel/trunk/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java
camel/trunk/components/camel-cxf-transport/src/test/resources/org/apache/camel/component/cxf/transport/CamelConduit.xml
Modified: camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/spring/AbstractCamelContextBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/spring/AbstractCamelContextBeanDefinitionParser.java?rev=1432828&r1=1432827&r2=1432828&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/spring/AbstractCamelContextBeanDefinitionParser.java (original)
+++ camel/trunk/components/camel-cxf-transport/src/main/java/org/apache/camel/component/cxf/transport/spring/AbstractCamelContextBeanDefinitionParser.java Mon Jan 14 08:05:56 2013
@@ -19,6 +19,7 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.apache.camel.util.ObjectHelper;
+import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -44,6 +45,13 @@ public class AbstractCamelContextBeanDef
protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
// Parser the id attribute
bean.setAbstract(true);
+ // Parser the camelContextId attribute
+ final String camelContextId = element.getAttribute("camelContextId");
+ if (!StringUtils.isEmpty(camelContextId)) {
+ wireCamelContext(bean, getContextId(camelContextId));
+ // Don't need to do further parsing here
+ return;
+ }
NodeList children = element.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node n = children.item(i);
Modified: camel/trunk/components/camel-cxf-transport/src/main/resources/schema/configuration/camel.xsd
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf-transport/src/main/resources/schema/configuration/camel.xsd?rev=1432828&r1=1432827&r2=1432828&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf-transport/src/main/resources/schema/configuration/camel.xsd (original)
+++ camel/trunk/components/camel-cxf-transport/src/main/resources/schema/configuration/camel.xsd Mon Jan 14 08:05:56 2013
@@ -41,6 +41,8 @@
<xs:element name="camelContextRef" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="cxf-beans:beanAttributes"/>
+ <!-- here we need to specify the CamelContext reference -->
+ <xs:attribute name="camelContextId" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -55,6 +57,8 @@
<xs:element name="camelContextRef" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="cxf-beans:beanAttributes"/>
+ <!-- here we need to specify the CamelContext reference -->
+ <xs:attribute name="camelContextId" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
Modified: camel/trunk/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java?rev=1432828&r1=1432827&r2=1432828&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java (original)
+++ camel/trunk/components/camel-cxf-transport/src/test/java/org/apache/camel/component/cxf/transport/CamelConduitTest.java Mon Jan 14 08:05:56 2013
@@ -62,6 +62,8 @@ public class CamelConduitTest extends Ca
public void testCamelConduitConfiguration() throws Exception {
QName testEndpointQNameA = new QName("http://camel.apache.org/camel-test", "portA");
QName testEndpointQNameB = new QName("http://camel.apache.org/camel-test", "portB");
+ QName testEndpointQNameC = new QName("http://camel.apache.org/camel-test", "portC");
+
// set up the bus with configure file
SpringBusFactory bf = new SpringBusFactory();
BusFactory.setDefaultBus(null);
@@ -77,6 +79,17 @@ public class CamelConduitTest extends Ca
assertNotNull("the camel context which get from camel conduit is not null", context);
assertEquals("get the wrong camel context", context.getName(), "conduit_context");
assertEquals("direct://EndpointA", context.getRoutes().get(0).getEndpoint().getEndpointUri());
+
+ // test the configuration of camelContextId attribute
+ endpointInfo.setAddress("camel://direct:EndpointA");
+ endpointInfo.setName(testEndpointQNameC);
+ conduit = new CamelConduit(null, bus, endpointInfo);
+ context = conduit.getCamelContext();
+
+ assertNotNull("the camel context which get from camel conduit is not null", context);
+ assertEquals("get the wrong camel context", context.getName(), "conduit_context");
+ assertEquals("direct://EndpointA", context.getRoutes().get(0).getEndpoint().getEndpointUri());
+
endpointInfo.setAddress("camel://direct:EndpointC");
endpointInfo.setName(testEndpointQNameB);
Modified: camel/trunk/components/camel-cxf-transport/src/test/resources/org/apache/camel/component/cxf/transport/CamelConduit.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf-transport/src/test/resources/org/apache/camel/component/cxf/transport/CamelConduit.xml?rev=1432828&r1=1432827&r2=1432828&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf-transport/src/test/resources/org/apache/camel/component/cxf/transport/CamelConduit.xml (original)
+++ camel/trunk/components/camel-cxf-transport/src/test/resources/org/apache/camel/component/cxf/transport/CamelConduit.xml Mon Jan 14 08:05:56 2013
@@ -36,6 +36,10 @@
<camel:conduit name="{http://camel.apache.org/camel-test}portA.camel-conduit">
<camel:camelContextRef>conduit_context</camel:camelContextRef>
</camel:conduit>
+
+ <camel:conduit name="{http://camel.apache.org/camel-test}portC.camel-conduit" camelContextId="conduit_context"/>
+
+
<!-- START SNIPPET: example -->
<camel:conduit name="{http://camel.apache.org/camel-test}portB.camel-conduit">
<camelContext id="context" xmlns="http://camel.apache.org/schema/spring">