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/07/27 11:53:46 UTC
svn commit: r979626 - in /camel/trunk/components/camel-cxf/src:
main/java/org/apache/camel/component/cxf/
main/java/org/apache/camel/component/cxf/spring/
test/java/org/apache/camel/component/cxf/
test/java/org/apache/camel/component/cxf/spring/
Author: ningjiang
Date: Tue Jul 27 09:53:46 2010
New Revision: 979626
URL: http://svn.apache.org/viewvc?rev=979626&view=rev
Log:
CAMEL-2997 Made camel-cxf endpoint's URI to be unique
Modified:
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerStartTwiceTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfMultipleConsumersSupportTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java Tue Jul 27 09:53:46 2010
@@ -80,5 +80,11 @@ public class CxfComponent extends Header
setEndpointHeaderFilterStrategy(result);
return result;
}
+
+ @Override
+ protected void afterConfiguration(String uri, String remaining, Endpoint endpoint, Map<String, Object> parameters) throws Exception {
+ CxfEndpoint cxfEndpoint = (CxfEndpoint) endpoint;
+ cxfEndpoint.updateEndpointUri(uri);
+ }
}
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=979626&r1=979625&r2=979626&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 Tue Jul 27 09:53:46 2010
@@ -94,13 +94,21 @@ public class CxfEndpoint extends Default
private AtomicBoolean getBusHasBeenCalled = new AtomicBoolean(false);
private boolean isSetDefaultBus;
private boolean loggingFeatureEnabled;
+ private String address;
public CxfEndpoint(String remaining, CxfComponent cxfComponent) {
super(remaining, cxfComponent);
+ setAddress(remaining);
}
public CxfEndpoint(String remaining, CamelContext context) {
super(remaining, context);
+ setAddress(remaining);
+ }
+
+ // This path is for CxfComponent setting the EndpointUri
+ void updateEndpointUri(String endpointUri) {
+ super.setEndpointUri(endpointUri);
}
public Producer createProducer() throws Exception {
@@ -121,7 +129,7 @@ public class CxfEndpoint extends Default
protected void setupServerFactoryBean(ServerFactoryBean sfb, Class<?> cls) {
// address
- sfb.setAddress(getEndpointUri());
+ sfb.setAddress(getAddress());
// service class
sfb.setServiceClass(cls);
@@ -235,7 +243,7 @@ public class CxfEndpoint extends Default
factoryBean.setServiceClass(cls);
// address
- factoryBean.setAddress(getEndpointUri());
+ factoryBean.setAddress(getAddress());
// wsdl url
if (getWsdlURL() != null) {
@@ -275,7 +283,7 @@ public class CxfEndpoint extends Default
protected void setupClientFactoryBean(ClientFactoryBean factoryBean) {
// address
- factoryBean.setAddress(getEndpointUri());
+ factoryBean.setAddress(getAddress());
// wsdl url
if (getWsdlURL() != null) {
@@ -542,6 +550,14 @@ public class CxfEndpoint extends Default
// noop
}
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
/**
* We need to override the {@link ClientImpl#setParameters} method
* to insert parameters into CXF Message for {@link DataFormat#PAYLOAD} mode.
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSpringEndpoint.java Tue Jul 27 09:53:46 2010
@@ -60,8 +60,8 @@ public class CxfSpringEndpoint extends C
super(bean.getAddress(), component);
init(bean);
}
-
-
+
+ // override the
private void init(CxfEndpointBean bean) throws Exception {
this.bean = bean;
// create configurer
@@ -234,7 +234,7 @@ public class CxfSpringEndpoint extends C
}
// this property will be set by spring
- public void setBeanId(String id) {
+ public void setBeanId(String id) {
this.beanId = id;
}
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java Tue Jul 27 09:53:46 2010
@@ -22,12 +22,15 @@ import org.apache.cxf.BusFactory;
import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.NamedBean;
public class CxfEndpointBean extends AbstractWSDLBasedEndpointFactory
- implements DisposableBean {
+ implements DisposableBean, BeanNameAware, NamedBean {
private List handlers;
+ private String beanName;
public CxfEndpointBean() {
this(new ReflectionServiceFactoryBean());
@@ -51,4 +54,12 @@ public class CxfEndpointBean extends Abs
BusFactory.setThreadDefaultBus(null);
}
+
+ public void setBeanName(String name) {
+ beanName = name;
+ }
+
+ public String getBeanName() {
+ return beanName;
+ }
}
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerStartTwiceTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerStartTwiceTest.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerStartTwiceTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfConsumerStartTwiceTest.java Tue Jul 27 09:53:46 2010
@@ -48,7 +48,8 @@ public class CxfConsumerStartTwiceTest e
context.start();
fail("Expect to catch an exception here");
} catch (Exception ex) {
- assertTrue(ex.getMessage().endsWith("Multiple consumers for the same endpoint is not allowed: Endpoint[http://localhost:7070/test]"));
+ assertTrue(ex.getMessage().endsWith(
+ "Multiple consumers for the same endpoint is not allowed: Endpoint[cxf:http://localhost:7070/test?serviceClass=org.apache.camel.component.cxf.HelloService]"));
}
context.stop();
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfMultipleConsumersSupportTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfMultipleConsumersSupportTest.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfMultipleConsumersSupportTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfMultipleConsumersSupportTest.java Tue Jul 27 09:53:46 2010
@@ -50,7 +50,8 @@ public class CxfMultipleConsumersSupport
context.start();
fail("Should have thrown an exception");
} catch (FailedToStartRouteException e) {
- assertTrue(e.getMessage().endsWith("Multiple consumers for the same endpoint is not allowed: Endpoint[http://localhost:28080/test]"));
+ assertTrue(e.getMessage().endsWith(
+ "Multiple consumers for the same endpoint is not allowed: Endpoint[cxf://http://localhost:28080/test?serviceClass=org.apache.camel.component.cxf.HelloService]"));
}
}
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerRouterTest.java Tue Jul 27 09:53:46 2010
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.cxf;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -25,6 +26,7 @@ import org.apache.camel.ExchangePattern;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.util.URISupport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.cxf.bus.CXFBusFactory;
@@ -66,6 +68,16 @@ public class CxfProducerRouterTest exten
}
};
}
+
+ @Test
+ public void testCxfEndpointUris() throws URISyntaxException {
+ CxfEndpoint endpoint = context.getEndpoint(getSimpleEndpointUri(), CxfEndpoint.class);
+ assertEquals("Get a wrong endpoint uri", getSimpleEndpointUri(), endpoint.getEndpointUri());
+
+ endpoint = context.getEndpoint(getSimpleEndpointUri() + "&dataFormat=MESSAGE", CxfEndpoint.class);
+ assertEquals("Get a wrong endpoint uri", URISupport.normalizeUri(getSimpleEndpointUri() + "&dataFormat=MESSAGE"), endpoint.getEndpointUri());
+
+ }
@Test
public void testInvokingSimpleServerWithParams() throws Exception {
Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java?rev=979626&r1=979625&r2=979626&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java (original)
+++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanBusSettingTest.java Tue Jul 27 09:53:46 2010
@@ -33,12 +33,14 @@ public class CxfEndpointBeanBusSettingTe
CamelContext camelContext = (CamelContext) ctx.getBean("camel");
CxfEndpoint endpoint = (CxfEndpoint)camelContext.getEndpoint("cxf:bean:routerEndpoint");
+ assertEquals("Get a wrong endpoint uri", "cxf://bean:routerEndpoint", endpoint.getEndpointUri());
Bus cxf1 = endpoint.getBus();
assertTrue(cxf1.getOutInterceptors().size() >= 1);
assertTrue(cxf1.getInInterceptors().size() == 0);
endpoint = (CxfEndpoint)camelContext.getEndpoint("cxf:bean:serviceEndpoint");
+ assertEquals("Get a wrong endpoint uri", "cxf://bean:serviceEndpoint", endpoint.getEndpointUri());
Bus cxf2 = endpoint.getBus();
assertTrue(cxf2.getInInterceptors().size() >= 1);
assertTrue(cxf2.getOutInterceptors().size() == 0);