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 2010/10/08 06:47:25 UTC
svn commit: r1005710 - in /camel/trunk/components/camel-cxf/src:
main/java/org/apache/camel/component/cxf/converter/
main/java/org/apache/camel/component/cxf/spring/
test/java/org/apache/camel/component/cxf/
test/resources/org/apache/camel/component/cxf/
Author: ningjiang
Date: Fri Oct 8 04:47:24 2010
New Revision: 1005710
URL: http://svn.apache.org/viewvc?rev=1005710&view=rev
Log:
CAMEL-3205 The CxfEndpointConvertor should support to configure CxfEndpoint from the properties map. Also Added some tests for CAMEL-3190.
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterMessageRouterTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadRouterTest.java
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointsRouterContext.xml
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java Fri Oct 8 04:47:24 2010
@@ -20,7 +20,9 @@ import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.ws.rs.core.Response;
import javax.xml.soap.SOAPMessage;
@@ -30,14 +32,17 @@ import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.FallbackConverter;
import org.apache.camel.TypeConverter;
+import org.apache.camel.component.cxf.CxfEndpoint;
import org.apache.camel.component.cxf.CxfSpringEndpoint;
import org.apache.camel.component.cxf.DataFormat;
import org.apache.camel.component.cxf.spring.CxfEndpointBeanDefinitionParser.CxfSpringEndpointBean;
import org.apache.camel.spi.TypeConverterRegistry;
import org.apache.camel.spring.SpringCamelContext;
+import org.apache.camel.util.EndpointHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.cxf.common.classloader.ClassLoaderUtils;
+import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
/**
@@ -113,7 +118,15 @@ public final class CxfConverter {
// CamelContext
SpringCamelContext context = SpringCamelContext.springCamelContext(endpointBean.getApplicationContext());
// The beanId will be set from endpointBean's property
- Endpoint answer = new CxfSpringEndpoint(context, endpointBean);
+ CxfEndpoint answer = new CxfSpringEndpoint(context, endpointBean);
+ // check the properties map
+ if (endpointBean.getProperties() != null) {
+ Map<String, Object> copy = new HashMap<String, Object>();
+ copy.putAll(endpointBean.getProperties());
+ EndpointHelper.setReferenceProperties(context, answer, copy);
+ EndpointHelper.setProperties(context, answer, copy);
+ answer.setMtomEnabled(Boolean.valueOf((String)copy.get(Message.MTOM_ENABLED)));
+ }
return answer;
}
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java Fri Oct 8 04:47:24 2010
@@ -61,7 +61,6 @@ public class CxfEndpointBeanDefinitionPa
map.putAll(props);
}
bean.addPropertyValue("properties", map);
-
} else if ("binding".equals(name)) {
setFirstChildAsProperty(el, ctx, bean, "bindingConfig");
} else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name)
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CXFGreeterRouterTest.java Fri Oct 8 04:47:24 2010
@@ -120,6 +120,12 @@ public class CXFGreeterRouterTest extend
}
}
+ @Test
+ public void testPublishEndpointUrl() throws Exception {
+ String response = template.requestBody("http://localhost:9003/CamelContext/RouterPort?wsdl", null, String.class);
+ assertTrue("Can't find the right service location.", response.indexOf("http://www.simple.com/services/test") > 0);
+ }
+
@Override
protected CamelContext createCamelContext() throws Exception {
return SpringCamelContext.springCamelContext(applicationContext);
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterMessageRouterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterMessageRouterTest.java?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterMessageRouterTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterMessageRouterTest.java Fri Oct 8 04:47:24 2010
@@ -28,7 +28,8 @@ public class CxfGreeterMessageRouterTest
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- from("cxf:bean:routerEndpoint?dataFormat=Message").to("cxf:bean:serviceEndpoint?dataFormat=Message");
+ from("cxf:bean:routerEndpoint?dataFormat=Message&publishedEndpointUrl=http://www.simple.com/services/test")
+ .to("cxf:bean:serviceEndpoint?dataFormat=Message");
}
};
}
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadRouterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadRouterTest.java?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadRouterTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadRouterTest.java Fri Oct 8 04:47:24 2010
@@ -28,7 +28,8 @@ public class CxfGreeterPayLoadRouterTest
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- from("cxf:bean:routerEndpoint?dataFormat=PAYLOAD").to("cxf:bean:serviceEndpoint?dataFormat=PAYLOAD");
+ from("cxf:bean:routerEndpoint?dataFormat=PAYLOAD&publishedEndpointUrl=http://www.simple.com/services/test")
+ .to("cxf:bean:serviceEndpoint?dataFormat=PAYLOAD");
}
};
}
Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterConverterEndpointsRouterContext.xml Fri Oct 8 04:47:24 2010
@@ -34,7 +34,12 @@
serviceClass="org.apache.hello_world_soap_http.Greeter"
endpointName="s:SoapPort"
serviceName="s:SOAPService"
- xmlns:s="http://apache.org/hello_world_soap_http"/>
+ xmlns:s="http://apache.org/hello_world_soap_http">
+ <cxf:properties>
+ <entry key="publishedEndpointUrl" value="http://www.simple.com/services/test" />
+ </cxf:properties>
+
+ </cxf:cxfEndpoint>
<cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:9000/SoapContext/SoapPort"
wsdlURL="testutils/hello_world.wsdl"
Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointWithFeatureBeans.xml Fri Oct 8 04:47:24 2010
@@ -46,7 +46,7 @@
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route errorHandlerRef="noErrorHandler">
- <from uri="cxf:bean:routerEndpoint?dataFormat=PAYLOAD" />
+ <from uri="cxf:bean:routerEndpoint?dataFormat=PAYLOAD&publishedEndpointUrl=http://www.simple.com/services/test" />
<to uri="cxf:bean:serviceEndpoint?dataFormat=PAYLOAD" />
</route>
</camelContext>
Modified: camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointsRouterContext.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointsRouterContext.xml?rev=1005710&r1=1005709&r2=1005710&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointsRouterContext.xml (original)
+++ camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/GreeterEndpointsRouterContext.xml Fri Oct 8 04:47:24 2010
@@ -36,6 +36,10 @@
<!-- This interceptor will force the CXF server send the XML start document to client -->
<bean class="org.apache.camel.component.cxf.WriteXmlDeclarationInterceptor"/>
</cxf:outInterceptors>
+ <cxf:properties>
+ <!-- Set the publishedEndpointUrl which could override the service address from generated WSDL as you want -->
+ <entry key="publishedEndpointUrl" value="http://www.simple.com/services/test" />
+ </cxf:properties>
</cxf:cxfEndpoint>
<!-- END SNIPPET: example -->