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 2009/01/09 05:23:06 UTC
svn commit: r732923 - in /activemq/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/spring/
Author: ningjiang
Date: Thu Jan 8 20:23:05 2009
New Revision: 732923
URL: http://svn.apache.org/viewvc?rev=732923&view=rev
Log:
CAMEL-1238 using the CXFEndpoint's bus instead of creating a new one.
Modified:
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java?rev=732923&r1=732922&r2=732923&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java Thu Jan 8 20:23:05 2009
@@ -46,15 +46,14 @@
Bus bus = null;
this.endpoint = endpoint;
boolean isWebServiceProvider = false;
- if (endpoint.getApplicationContext() != null) {
- SpringBusFactory bf = new SpringBusFactory(endpoint.getApplicationContext());
- bus = bf.createBus();
+ if (endpoint.getApplicationContext() != null) {
+ bus = endpoint.getCxfEndpointBean().getBus();
if (CxfEndpointUtils.getSetDefaultBus(endpoint)) {
- BusFactory.setDefaultBus(bus);
+ BusFactory.setThreadDefaultBus(bus);
}
} else {
// now we just use the default bus here
- bus = BusFactory.getDefaultBus();
+ bus = BusFactory.getThreadDefaultBus();
}
ServerFactoryBean svrBean = null;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java?rev=732923&r1=732922&r2=732923&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java Thu Jan 8 20:23:05 2009
@@ -100,15 +100,14 @@
// If cfb is null, we will try to find the right cfb to use.
private Client createClientFromClientFactoryBean(ClientProxyFactoryBean cfb) throws CamelException {
Bus bus = null;
- if (endpoint.getApplicationContext() != null) {
- SpringBusFactory bf = new SpringBusFactory(endpoint.getApplicationContext());
- bus = bf.createBus();
+ if (endpoint.getApplicationContext() != null) {
+ bus = endpoint.getCxfEndpointBean().getBus();
if (CxfEndpointUtils.getSetDefaultBus(endpoint)) {
- BusFactory.setDefaultBus(bus);
+ BusFactory.setThreadDefaultBus(bus);
}
} else {
// now we just use the default bus here
- bus = BusFactory.getDefaultBus();
+ bus = BusFactory.getThreadDefaultBus();
}
if (endpoint.isSpringContextEndpoint()) {
CxfEndpointBean cxfEndpointBean = endpoint.getCxfEndpointBean();
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java?rev=732923&r1=732922&r2=732923&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java Thu Jan 8 20:23:05 2009
@@ -29,7 +29,11 @@
private List handlers;
public CxfEndpointBean() {
- setServiceFactory(new ReflectionServiceFactoryBean());
+ this(new ReflectionServiceFactoryBean());
+ }
+
+ public CxfEndpointBean(ReflectionServiceFactoryBean factory) {
+ setServiceFactory(factory);
}
public List getHandlers() {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java?rev=732923&r1=732922&r2=732923&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanDefinitionParser.java Thu Jan 8 20:23:05 2009
@@ -20,12 +20,19 @@
import javax.xml.namespace.QName;
import org.w3c.dom.Element;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
+import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
@@ -88,6 +95,25 @@
protected boolean hasBusProperty() {
return true;
}
+
+ public static class CxfSpringEndpointBean extends CxfEndpointBean implements ApplicationContextAware {
+ public CxfSpringEndpointBean() {
+ super();
+ }
+
+ public CxfSpringEndpointBean(ReflectionServiceFactoryBean factory) {
+ super(factory);
+ }
+
+ public void setApplicationContext(ApplicationContext ctx) throws BeansException {
+ if (getBus() == null) {
+ Bus bus = BusFactory.getThreadDefaultBus();
+ BusWiringBeanFactoryPostProcessor.updateBusReferencesInContext(bus, ctx);
+ setBus(bus);
+ }
+ }
+
+ }
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java?rev=732923&r1=732922&r2=732923&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/spring/CxfEndpointBeanTest.java Thu Jan 8 20:23:05 2009
@@ -17,9 +17,7 @@
package org.apache.camel.component.cxf.spring;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import junit.framework.TestCase;
import org.apache.camel.CamelContext;
@@ -28,9 +26,6 @@
import org.apache.camel.ProducerTemplate;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.cxf.CxfConstants;
-import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.message.Message;
-import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -57,7 +52,7 @@
CamelContext camelContext = (CamelContext) ctx.getBean("camel");
ProducerTemplate template = camelContext.createProducerTemplate();
try {
- Exchange exchange = template.send("cxf:bean:routerEndpoint", new Processor() {
+ template.send("cxf:bean:serviceEndpoint", new Processor() {
public void process(final Exchange exchange) {
final List<String> params = new ArrayList<String>();
params.add("hello");
@@ -67,7 +62,8 @@
});
fail("should get the exception here");
} catch (RuntimeCamelException ex) {
- // do nothing here
+ assertTrue("Should get the fault here ", ex.getCause() instanceof org.apache.cxf.interceptor.Fault);
+ // do nothing here;
}
}