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:26:42 UTC

svn commit: r1005708 - in /camel/trunk/components/camel-cxf/src: main/java/org/apache/camel/component/cxf/CxfConsumer.java main/java/org/apache/camel/component/cxf/CxfEndpoint.java test/java/org/apache/camel/component/cxf/CxfConsumerTest.java

Author: ningjiang
Date: Fri Oct  8 04:26:41 2010
New Revision: 1005708

URL: http://svn.apache.org/viewvc?rev=1005708&view=rev
Log:
CAMEL-3190 Supporting to specify the publishedEndpointUrl for cxf:cxfEndpoint

Modified:
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
    camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java?rev=1005708&r1=1005707&r2=1005708&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java Fri Oct  8 04:26:41 2010
@@ -26,6 +26,7 @@ import org.w3c.dom.Element;
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultConsumer;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.continuations.Continuation;
@@ -252,6 +253,9 @@ public class CxfConsumer extends Default
 
         });
         server = svrBean.create();
+        if (ObjectHelper.isNotEmpty(endpoint.getPublishedEndpointUrl())) {
+            server.getEndpoint().getEndpointInfo().setProperty("publishedEndpointUrl", endpoint.getPublishedEndpointUrl());
+        }
     }
     
     @Override

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=1005708&r1=1005707&r2=1005708&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java Fri Oct  8 04:26:41 2010
@@ -88,6 +88,7 @@ public class CxfEndpoint extends Default
     private boolean isWrapped;
     // This is for marshal or unmarshal message with the document-literal wrapped or unwrapped style
     private Boolean wrappedStyle;
+    private String publishedEndpointUrl;
     private boolean inOut = true;
     private Bus bus;
     private CxfBinding cxfBinding;
@@ -112,7 +113,7 @@ public class CxfEndpoint extends Default
     protected void updateEndpointUri(String endpointUri) {
         super.setEndpointUri(endpointUri);
     }
-
+    
     public Producer createProducer() throws Exception {
         Producer answer = new CxfProducer(this);
         if (isSynchronous()) {
@@ -407,6 +408,14 @@ public class CxfEndpoint extends Default
     public void setDataFormat(DataFormat format) {
         dataFormat = format;
     }
+    
+    public String getPublishedEndpointUrl() {
+        return publishedEndpointUrl;
+    }
+    
+    public void setPublishedEndpointUrl(String url) {
+        publishedEndpointUrl = url;
+    }
 
     public String getWsdlURL() {
         return wsdlURL;

Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java?rev=1005708&r1=1005707&r2=1005708&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerTest.java Fri Oct  8 04:26:41 2010
@@ -36,7 +36,9 @@ import org.junit.Test;
 public class CxfConsumerTest extends CamelTestSupport {
     protected static final String SIMPLE_ENDPOINT_ADDRESS = "http://localhost:28080/test";
     protected static final String SIMPLE_ENDPOINT_URI = "cxf://" + SIMPLE_ENDPOINT_ADDRESS
-        + "?serviceClass=org.apache.camel.component.cxf.HelloService";
+        + "?serviceClass=org.apache.camel.component.cxf.HelloService"
+        + "&publishedEndpointUrl=http://www.simple.com/services/test";
+    
     private static final String ECHO_REQUEST = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
         + "<soap:Body><ns1:echo xmlns:ns1=\"http://cxf.component.camel.apache.org/\">"
         + "<arg0 xmlns=\"http://cxf.component.camel.apache.org/\">Hello World!</arg0></ns1:echo></soap:Body></soap:Envelope>";
@@ -104,6 +106,12 @@ public class CxfConsumerTest extends Cam
         String response = template.requestBody(SIMPLE_ENDPOINT_ADDRESS, ECHO_REQUEST, String.class);
         assertTrue("Can't find the xml declaration.", response.startsWith("<?xml version='1.0' encoding="));
     }
+    
+    @Test
+    public void testPublishEndpointUrl() throws Exception {
+        String response = template.requestBody(SIMPLE_ENDPOINT_ADDRESS + "?wsdl", null, String.class);
+        assertTrue("Can't find the right service location.", response.indexOf("http://www.simple.com/services/test") > 0);
+    }