You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2008/10/27 10:38:32 UTC
svn commit: r708114 - in /servicemix/smx3/branches/servicemix-3.2: ./
deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/
deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/
...
Author: ffang
Date: Mon Oct 27 02:38:31 2008
New Revision: 708114
URL: http://svn.apache.org/viewvc?rev=708114&view=rev
Log:
[SM-1571]CXF BC Provider using JMS Transport is not scalable (locks thread waiting for external service response)
Added:
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java (with props)
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java (with props)
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml (with props)
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml (with props)
Modified:
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java
servicemix/smx3/branches/servicemix-3.2/pom.xml
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java?rev=708114&r1=708113&r2=708114&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/CxfBcProvider.java Mon Oct 27 02:38:31 2008
@@ -93,8 +93,9 @@
/**
*
* @author gnodet
- * @org.apache.xbean.XBean element="provider" description="a provider endpoint that is capable of
- * exposing SOAP/HTTP or SOAP/JMS services"
+ * @org.apache.xbean.XBean element="provider" description="a provider endpoint
+ * that is capable of exposing SOAP/HTTP or SOAP/JMS
+ * services"
*/
public class CxfBcProvider extends ProviderEndpoint implements
CxfBcEndpointWithInterceptor {
@@ -114,7 +115,7 @@
private Bus bus;
private ConduitInitiator conduitInit;
-
+
private Conduit conduit;
private URI locationURI;
@@ -129,6 +130,8 @@
private boolean useJBIWrapper = true;
+ private boolean synchronous = true;
+
public void processExchange(MessageExchange exchange) {
}
@@ -140,14 +143,16 @@
}
NormalizedMessage nm = exchange.getMessage("in");
- Object newDestinationURI = nm.getProperty(JbiConstants.HTTP_DESTINATION_URI);
+ Object newDestinationURI = nm
+ .getProperty(JbiConstants.HTTP_DESTINATION_URI);
if (newDestinationURI != null) {
ei.setAddress((String) newDestinationURI);
}
-
+
Message message = ep.getBinding().createMessage();
message.put(MessageExchange.class, exchange);
Exchange cxfExchange = new ExchangeImpl();
+ cxfExchange.setSynchronous(isSynchronous());
cxfExchange.put(MessageExchange.class, exchange);
message.setExchange(cxfExchange);
@@ -172,6 +177,7 @@
cxfExchange.put(BindingOperationInfo.class, boi);
cxfExchange.put(Endpoint.class, ep);
cxfExchange.put(Service.class, cxfService);
+ cxfExchange.put(Bus.class, getBus());
PhaseInterceptorChain outChain = createInterceptorChain(message);
InputStream is = JBIMessageHelper.convertMessageToInputStream(nm
.getContent());
@@ -180,13 +186,13 @@
message.setContent(Source.class, source);
message.setContent(InputStream.class, is);
-
+
conduit.prepare(message);
OutputStream os = message.getContent(OutputStream.class);
message.put(org.apache.cxf.message.Message.REQUESTOR_ROLE, true);
try {
outChain.doIntercept(message);
- //Check to see if there is a Fault from the outgoing chain
+ // Check to see if there is a Fault from the outgoing chain
Exception ex = message.getContent(Exception.class);
if (ex != null) {
throw ex;
@@ -195,18 +201,18 @@
if (ex != null) {
throw ex;
}
- String contentType = (String)message.get(Message.CONTENT_TYPE);
-
+ String contentType = (String) message.get(Message.CONTENT_TYPE);
+
Map<String, List<String>> headers = getSetProtocolHeaders(message);
if (headers.get(Message.CONTENT_TYPE) == null) {
List<String> ct = new ArrayList<String>();
ct.add(contentType);
headers.put(Message.CONTENT_TYPE, ct);
- } else {
+ } else {
List<String> ct = headers.get(Message.CONTENT_TYPE);
ct.add(contentType);
}
-
+
os = message.getContent(OutputStream.class);
os.flush();
is.close();
@@ -234,13 +240,11 @@
outList.add(new SoapOutInterceptor(getBus()));
outList.add(new SoapActionOutInterceptor());
outList.add(new StaxOutInterceptor());
-
-
+
getInInterceptors().addAll(getBus().getInInterceptors());
getInFaultInterceptors().addAll(getBus().getInFaultInterceptors());
getOutInterceptors().addAll(getBus().getOutInterceptors());
- getOutFaultInterceptors()
- .addAll(getBus().getOutFaultInterceptors());
+ getOutFaultInterceptors().addAll(getBus().getOutFaultInterceptors());
PhaseInterceptorChain outChain = outboundChainCache.get(pm
.getOutPhases(), outList);
outChain.add(getOutInterceptors());
@@ -248,19 +252,19 @@
message.setInterceptorChain(outChain);
return outChain;
}
-
+
private Map<String, List<String>> getSetProtocolHeaders(Message message) {
- Map<String, List<String>> headers =
- CastUtils.cast((Map<?, ?>)message.get(Message.PROTOCOL_HEADERS));
+ Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>) message
+ .get(Message.PROTOCOL_HEADERS));
if (null == headers) {
headers = new HashMap<String, List<String>>();
message.put(Message.PROTOCOL_HEADERS, headers);
}
return headers;
}
-
- private void faultProcess(MessageExchange exchange, Message message, Exception e) throws MessagingException {
+ private void faultProcess(MessageExchange exchange, Message message,
+ Exception e) throws MessagingException {
javax.jbi.messaging.Fault fault = exchange.createFault();
if (e.getCause() != null) {
handleJBIFault(message, e.getCause().getMessage());
@@ -280,109 +284,120 @@
}
}
-
private void handleJBIFault(Message message, String detail) {
Document doc = DomUtil.createDocument();
Element jbiFault = DomUtil.createElement(doc, new QName(
JBIConstants.NS_JBI_BINDING, JBIFault.JBI_FAULT_ROOT));
- Node jbiFaultDetail = DomUtil.createElement(jbiFault, new QName("", JBIFault.JBI_FAULT_DETAIL));
+ Node jbiFaultDetail = DomUtil.createElement(jbiFault, new QName("",
+ JBIFault.JBI_FAULT_DETAIL));
jbiFaultDetail.setTextContent(detail);
jbiFault.appendChild(jbiFaultDetail);
message.setContent(Source.class, new DOMSource(doc));
message.put("jbiFault", true);
}
-
+
/**
- * Returns the list of interceptors used to process fault messages being
- * sent back to the consumer.
- *
- * @return a list of <code>Interceptor</code> objects
- * */
+ * Returns the list of interceptors used to process fault messages being
+ * sent back to the consumer.
+ *
+ * @return a list of <code>Interceptor</code> objects
+ */
public List<Interceptor> getOutFaultInterceptors() {
return outFault;
}
/**
- * Returns the list of interceptors used to process fault messages being
- * recieved by the endpoint.
- *
- * @return a list of <code>Interceptor</code> objects
- * */
+ * Returns the list of interceptors used to process fault messages being
+ * recieved by the endpoint.
+ *
+ * @return a list of <code>Interceptor</code> objects
+ */
public List<Interceptor> getInFaultInterceptors() {
return inFault;
}
/**
- * Returns the list of interceptors used to process requests being
- * recieved by the endpoint.
- *
- * @return a list of <code>Interceptor</code> objects
- * */
+ * Returns the list of interceptors used to process requests being recieved
+ * by the endpoint.
+ *
+ * @return a list of <code>Interceptor</code> objects
+ */
public List<Interceptor> getInInterceptors() {
return in;
}
/**
- * Returns the list of interceptors used to process responses being
- * sent back to the consumer.
- *
- * @return a list of <code>Interceptor</code> objects
- * */
+ * Returns the list of interceptors used to process responses being sent
+ * back to the consumer.
+ *
+ * @return a list of <code>Interceptor</code> objects
+ */
public List<Interceptor> getOutInterceptors() {
return out;
}
/**
- * Specifies a list of interceptors used to process requests recieved
- * by the endpoint.
- *
- * @param interceptors a list of <code>Interceptor</code> objects
- * @org.apache.xbean.Property description="a list of beans configuring interceptors that process incoming requests"
- * */
+ * Specifies a list of interceptors used to process requests recieved by the
+ * endpoint.
+ *
+ * @param interceptors
+ * a list of <code>Interceptor</code> objects
+ * @org.apache.xbean.Property description="a list of beans configuring
+ * interceptors that process incoming requests"
+ */
public void setInInterceptors(List<Interceptor> interceptors) {
in = interceptors;
}
/**
- * Specifies a list of interceptors used to process faults recieved by
- * the endpoint.
- *
- * @param interceptors a list of <code>Interceptor</code> objects
- * @org.apache.xbean.Property description="a list of beans configuring interceptors that process incoming faults"
- * */
+ * Specifies a list of interceptors used to process faults recieved by the
+ * endpoint.
+ *
+ * @param interceptors
+ * a list of <code>Interceptor</code> objects
+ * @org.apache.xbean.Property description="a list of beans configuring
+ * interceptors that process incoming faults"
+ */
public void setInFaultInterceptors(List<Interceptor> interceptors) {
inFault = interceptors;
}
/**
- * Specifies a list of interceptors used to process responses sent by
- * the endpoint.
- *
- * @param interceptors a list of <code>Interceptor</code> objects
- * @org.apache.xbean.Property description="a list of beans configuring interceptors that process responses"
- * */
+ * Specifies a list of interceptors used to process responses sent by the
+ * endpoint.
+ *
+ * @param interceptors
+ * a list of <code>Interceptor</code> objects
+ * @org.apache.xbean.Property description="a list of beans configuring
+ * interceptors that process responses"
+ */
public void setOutInterceptors(List<Interceptor> interceptors) {
out = interceptors;
}
/**
- * Specifies a list of interceptors used to process faults sent by
- * the endpoint.
- *
- * @param interceptors a list of <code>Interceptor</code> objects
- * @org.apache.xbean.Property description="a list of beans configuring interceptors that process fault
- * messages being returned to the consumer"
- * */
+ * Specifies a list of interceptors used to process faults sent by the
+ * endpoint.
+ *
+ * @param interceptors
+ * a list of <code>Interceptor</code> objects
+ * @org.apache.xbean.Property description="a list of beans configuring
+ * interceptors that process fault messages being
+ * returned to the consumer"
+ */
public void setOutFaultInterceptors(List<Interceptor> interceptors) {
outFault = interceptors;
}
/**
- * Specifies the location of the WSDL defining the endpoint's interface.
- *
- * @param wsdl the location of the WSDL contract as a <code>Resource</code> object
- * @org.apache.xbean.Property description="the location of the WSDL document defining the endpoint's interface"
- **/
+ * Specifies the location of the WSDL defining the endpoint's interface.
+ *
+ * @param wsdl
+ * the location of the WSDL contract as a <code>Resource</code>
+ * object
+ * @org.apache.xbean.Property description="the location of the WSDL document
+ * defining the endpoint's interface"
+ */
public void setWsdl(Resource wsdl) {
this.wsdl = wsdl;
}
@@ -428,7 +443,7 @@
}
}
-
+
ServiceInfo serInfo = new ServiceInfo();
Map<String, Element> schemaList = new HashMap<String, Element>();
@@ -438,7 +453,7 @@
serInfo = ei.getService();
List<ServiceInfo> serviceInfos = new ArrayList<ServiceInfo>();
serviceInfos.add(serInfo);
- //transform import xsd to inline xsd
+ // transform import xsd to inline xsd
ServiceWSDLBuilder swBuilder = new ServiceWSDLBuilder(getBus(),
serviceInfos);
for (String key : schemaList.keySet()) {
@@ -448,7 +463,7 @@
"http://www.w3.org/2001/XMLSchema", "import")
.item(0);
if (sInfo.getNamespaceURI() == null // it's import
- // schema
+ // schema
&& nl != null
&& ((Element) nl)
.getAttribute("namespace")
@@ -460,7 +475,7 @@
}
}
}
-
+
serInfo.setProperty(WSDLServiceBuilder.WSDL_DEFINITION, null);
description = WSDLFactory.newInstance().newWSDLWriter()
.getDocument(swBuilder.build());
@@ -484,7 +499,8 @@
conduitInit = conduitMgr.getConduitInitiator(ei
.getTransportId());
conduit = conduitInit.getConduit(ei);
- CxfBcProviderMessageObserver obs = new CxfBcProviderMessageObserver(this);
+ CxfBcProviderMessageObserver obs = new CxfBcProviderMessageObserver(
+ this);
conduit.setMessageObserver(obs);
super.validate();
}
@@ -514,14 +530,18 @@
}
/**
- * Specifies the location of the CXF configuraiton file used to configure
- * the CXF bus. This allows you to access features like JMS runtime
- * behavior and WS-RM.
- *
- * @param busCfg a string containing the relative path to the configuration file
- * @org.apache.xbean.Property description="the location of the CXF configuration file used to configure the CXF bus.
- * This allows you to configure features like WS-RM and JMS runtime behavior."
- **/
+ * Specifies the location of the CXF configuraiton file used to configure
+ * the CXF bus. This allows you to access features like JMS runtime behavior
+ * and WS-RM.
+ *
+ * @param busCfg
+ * a string containing the relative path to the configuration
+ * file
+ * @org.apache.xbean.Property description="the location of the CXF
+ * configuration file used to configure the CXF
+ * bus. This allows you to configure features
+ * like WS-RM and JMS runtime behavior."
+ */
public void setBusCfg(String busCfg) {
this.busCfg = busCfg;
}
@@ -531,13 +551,15 @@
}
/**
- * Specifies the HTTP address of the exposed service. This value will
- * overide any value specified in the WSDL.
- *
- * @param locationURI a <code>URI</code> object
- * @org.apache.xbean.Property description="the HTTP address of the exposed service. This value will overide
- * any value specified in the WSDL."
- **/
+ * Specifies the HTTP address of the exposed service. This value will
+ * overide any value specified in the WSDL.
+ *
+ * @param locationURI
+ * a <code>URI</code> object
+ * @org.apache.xbean.Property description="the HTTP address of the exposed
+ * service. This value will overide any value
+ * specified in the WSDL."
+ */
public void setLocationURI(URI locationURI) {
this.locationURI = locationURI;
}
@@ -546,8 +568,6 @@
return locationURI;
}
-
-
Endpoint getCxfEndpoint() {
return this.ep;
}
@@ -557,12 +577,14 @@
}
/**
- * Specifies if the endpoint can support binnary attachments.
- *
- * @param mtomEnabled a boolean
- * @org.apache.xbean.Property description="Specifies if MTOM / attachment support is enabled.
- * Default is <code>false</code>."
- **/
+ * Specifies if the endpoint can support binnary attachments.
+ *
+ * @param mtomEnabled
+ * a boolean
+ * @org.apache.xbean.Property description="Specifies if MTOM / attachment
+ * support is enabled. Default is
+ * <code>false</code>."
+ */
public void setMtomEnabled(boolean mtomEnabled) {
this.mtomEnabled = mtomEnabled;
}
@@ -572,13 +594,15 @@
}
/**
- * Specifies if the endpoint expects messages to use the JBI wrapper
- * for SOAP messages.
- *
- * @param useJBIWrapper a boolean
- * @org.apache.xbean.Property description="Specifies if the JBI wrapper is sent in the body of the message.
- * Default is <code>true</code>."
- **/
+ * Specifies if the endpoint expects messages to use the JBI wrapper for
+ * SOAP messages.
+ *
+ * @param useJBIWrapper
+ * a boolean
+ * @org.apache.xbean.Property description="Specifies if the JBI wrapper is
+ * sent in the body of the message. Default is
+ * <code>true</code>."
+ */
public void setUseJBIWrapper(boolean useJBIWrapper) {
this.useJBIWrapper = useJBIWrapper;
}
@@ -587,4 +611,23 @@
return useJBIWrapper;
}
+ /**
+ * Specifies if the endpoints send message synchronously to external server
+ * using underlying jms/http transport
+ * *
+ * @param synchronous
+ * a boolean
+ * @org.apache.xbean.Property description="Specifies if the endpoints send
+ * message synchronously to external server using
+ * underlying jms/http transport. Default is
+ * <code>true</code>."
+ */
+ public void setSynchronous(boolean synchronous) {
+ this.synchronous = synchronous;
+ }
+
+ public boolean isSynchronous() {
+ return synchronous;
+ }
+
}
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java?rev=708114&r1=708113&r2=708114&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplTwoWayJMS.java Mon Oct 27 02:38:31 2008
@@ -16,17 +16,13 @@
*/
package org.apache.servicemix.cxfbc;
-
-
-@javax.jws.WebService(
- serviceName = "HelloWorldService",
- portName = "HelloWorldPortProxy",
- endpointInterface = "org.apache.hello_world_soap_http.Greeter",
- targetNamespace = "http://apache.org/hello_world_soap_http",
- wsdlLocation = "org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
- )
-public class GreeterImplTwoWayJMS
- extends org.apache.hello_world_soap_http.GreeterImpl {
+@javax.jws.WebService(serviceName = "HelloWorldService",
+ portName = "HelloWorldPortProxy",
+ endpointInterface = "org.apache.hello_world_soap_http.Greeter",
+ targetNamespace = "http://apache.org/hello_world_soap_http",
+ wsdlLocation = "org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl")
+public class GreeterImplTwoWayJMS extends
+ org.apache.hello_world_soap_http.GreeterImpl {
public String greetMe(String me) {
System.out.println("\n\n*** GreetMe called with: " + me + "***\n\n");
if ("ffang".equals(me)) {
@@ -37,7 +33,15 @@
e.printStackTrace();
}
}
+ if ("wait".equals(me)) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
return "Hello " + me;
}
-
+
}
Added: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java?rev=708114&view=auto
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java (added)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java Mon Oct 27 02:38:31 2008
@@ -0,0 +1,307 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.cxfbc.provider;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.jbi.messaging.InOut;
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.common.logging.LogUtils;
+
+import org.apache.cxf.testutil.common.ServerLauncher;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.cxfbc.EmbededJMSBrokerLauncher;
+import org.apache.servicemix.cxfbc.MyJMSServer;
+import org.apache.servicemix.jbi.container.SpringJBIContainer;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.tck.SpringTestSupport;
+import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+
+/*
+ * This test is designed to verify that if use asynchrounous mode, the cxf bc
+ * provider will use non block mode to invoke the external server through
+ * underlying jms or http transport.To prove it works, configure the jbi
+ * container allocate only one thread to the cxf bc, and use a outgoing chain
+ * TimeCompareInterceptor to illustrate the second invocation send out before
+ * the first one returns, which means the noblock cxf bc provide works.
+ */
+public class CxfBCSEProviderAsyncSystemTest extends SpringTestSupport {
+
+ private static final Logger LOG = LogUtils
+ .getL7dLogger(CxfBCSEProviderAsyncSystemTest.class);
+
+ private static boolean serversStarted;
+
+ private ServerLauncher sl;
+
+ private ServerLauncher embeddedLauncher;
+
+ private ServerLauncher jmsLauncher;
+
+ private boolean success;
+
+ public void startServers() throws Exception {
+ if (serversStarted) {
+ return;
+ }
+ Map<String, String> props = new HashMap<String, String>();
+
+ if (System.getProperty("activemq.store.dir") != null) {
+ props.put("activemq.store.dir", System
+ .getProperty("activemq.store.dir"));
+ }
+ props.put("java.util.logging.config.file", System
+ .getProperty("java.util.logging.config.file"));
+
+ assertTrue("server did not launch correctly", launchServer(
+ EmbededJMSBrokerLauncher.class, props, false));
+ embeddedLauncher = sl;
+ assertTrue("server did not launch correctly", launchServer(
+ MyJMSServer.class, null, false));
+ jmsLauncher = sl;
+
+ assertTrue("server did not launch correctly", launchServer(
+ MyServer.class, props, false));
+
+ serversStarted = true;
+ }
+
+ protected void setUp() throws Exception {
+ startServers();
+ // super.setUp();
+ LOG.info("setUp is invoked");
+ }
+
+ public boolean launchServer(Class<?> clz, Map<String, String> p,
+ boolean inProcess) {
+ boolean ok = false;
+ try {
+ sl = new ServerLauncher(clz.getName(), p, null, inProcess);
+ ok = sl.launchServer();
+ assertTrue("server failed to launch", ok);
+
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ fail("failed to launch server " + clz);
+ }
+
+ return ok;
+ }
+
+ public void setUpJBI(String beanFile) throws Exception {
+ if (context != null) {
+ context.refresh();
+ }
+ transformer = new SourceTransformer();
+ if (beanFile == null) {
+ context = createBeanFactory();
+ } else {
+ context = createBeanFactory(beanFile);
+ }
+
+ jbi = (SpringJBIContainer) context.getBean("jbi");
+ assertNotNull("JBI Container not found in spring!", jbi);
+
+ }
+
+ public void tearDown() throws Exception {
+ if (context != null) {
+ context.destroy();
+ context = null;
+ }
+ if (jbi != null) {
+ jbi.shutDown();
+ jbi.destroy();
+ jbi = null;
+ }
+
+ try {
+ embeddedLauncher.stopServer();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ fail("failed to stop server " + embeddedLauncher.getClass());
+ }
+ try {
+ jmsLauncher.stopServer();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ fail("failed to stop server " + jmsLauncher.getClass());
+ }
+
+ try {
+ sl.stopServer();
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ fail("failed to stop server " + sl.getClass());
+ }
+ serversStarted = false;
+ }
+
+ public void testGreetMeProviderWithHttpTransportAsync() throws Exception {
+ setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml");
+ greetMeProviderHttpTestBase();
+ assertTrue(success);
+ }
+
+ public void testGreetMeProviderWithJmsTransportAsync() throws Exception {
+ setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml");
+ greetMeProviderJmsTestBase();
+ assertTrue(success);
+ }
+
+ public void testGreetMeProviderWithHttpTransportSync() throws Exception {
+ setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml");
+ greetMeProviderHttpTestBase();
+ assertTrue(success);
+ }
+
+ public void testGreetMeProviderWithJmsTransportSync() throws Exception {
+ setUpJBI("org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml");
+ greetMeProviderJmsTestBase();
+ assertTrue(success);
+ }
+
+ private void greetMeProviderHttpTestBase() throws Exception {
+ ClientInvocationForHttp thread1 = new ClientInvocationForHttp("wait");
+ thread1.start();
+ Thread.sleep(1000);
+ ClientInvocationForHttp thread2 = new ClientInvocationForHttp("fang");
+ thread2.start();
+ thread1.join();
+ thread2.join();
+ }
+
+ private void greetMeProviderJmsTestBase() throws Exception {
+ ClientInvocationForJms thread1 = new ClientInvocationForJms("wait");
+ thread1.start();
+ Thread.sleep(1000);
+ ClientInvocationForJms thread2 = new ClientInvocationForJms("fang");
+ thread2.start();
+ thread1.join();
+ thread2.join();
+
+ }
+
+ @Override
+ protected AbstractXmlApplicationContext createBeanFactory() {
+ // load cxf se and bc from spring config file
+ return new ClassPathXmlApplicationContext(
+ "org/apache/servicemix/cxfbc/provider/xbean_provider.xml");
+ }
+
+ protected AbstractXmlApplicationContext createBeanFactory(String beanFile) {
+ // load cxf se and bc from specified spring config file
+ return new ClassPathXmlApplicationContext(beanFile);
+ }
+
+ class ClientInvocationForHttp extends Thread {
+ private String greeting;
+
+ public ClientInvocationForHttp(String greeting) {
+ this.greeting = greeting;
+ }
+
+ public void run() {
+ DefaultServiceMixClient client;
+ try {
+ client = new DefaultServiceMixClient(jbi);
+ InOut io = client.createInOutExchange();
+ io.setService(new QName(
+ "http://apache.org/hello_world_soap_http_provider",
+ "SOAPService"));
+ io.setInterfaceName(new QName(
+ "http://apache.org/hello_world_soap_http_provider",
+ "Greeter"));
+ io.setOperation(new QName(
+ "http://apache.org/hello_world_soap_http_provider",
+ "greetMe"));
+ // send message to proxy
+ io
+ .getInMessage()
+ .setContent(
+ new StringSource(
+ "<greetMe xmlns='http://apache.org/hello_world_soap_http_provider/types'><requestType>"
+ + greeting
+ + "</requestType></greetMe>"));
+
+ client.send(io);
+ client.receive(100000);
+ client.done(io);
+ if (io.getFault() != null) {
+ success = false;
+ } else {
+ success = true;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ }
+
+ class ClientInvocationForJms extends Thread {
+ private String greeting;
+
+ public ClientInvocationForJms(String greeting) {
+ this.greeting = greeting;
+ }
+
+ public void run() {
+ DefaultServiceMixClient client;
+ try {
+ client = new DefaultServiceMixClient(jbi);
+ InOut io = client.createInOutExchange();
+ io.setService(new QName(
+ "http://apache.org/hello_world_soap_http",
+ "HelloWorldService"));
+ io.setInterfaceName(new QName(
+ "http://apache.org/hello_world_soap_http", "Greeter"));
+ io.setOperation(new QName(
+ "http://apache.org/hello_world_soap_http", "greetMe"));
+ // send message to proxy
+ io.getInMessage()
+ .setContent(
+ new StringSource(
+ "<greetMe xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+ + greeting
+ + "</requestType></greetMe>"));
+
+ client.send(io);
+ client.receive(100000);
+ client.done(io);
+ if (io.getFault() != null) {
+ success = false;
+ } else {
+ success = true;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ }
+
+}
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/CxfBCSEProviderAsyncSystemTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java?rev=708114&r1=708113&r2=708114&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/GreeterImpl.java Mon Oct 27 02:38:31 2008
@@ -28,6 +28,15 @@
public String greetMe(String me) {
System.out.println("\n\n*** GreetMe called with: " + me + "***\n\n");
+ if ("wait".equals(me)) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
return "Hello " + me;
}
Added: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java?rev=708114&view=auto
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java (added)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java Mon Oct 27 02:38:31 2008
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.cxfbc.provider;
+
+import org.apache.cxf.binding.jbi.JBIFault;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
+
+public class TimeCompareInterceptor extends AbstractPhaseInterceptor {
+
+ private long currentThreadId;
+
+ private long before;
+
+ private boolean firstInvocation = true;
+
+ public TimeCompareInterceptor() {
+ super(Phase.PRE_STREAM);
+ }
+
+ public void handleMessage(Message message) throws Fault {
+ if (firstInvocation) {
+ firstInvocation = false;
+ currentThreadId = Thread.currentThread().getId();
+ before = System.currentTimeMillis();
+ } else {
+ if (Thread.currentThread().getId() != currentThreadId) {
+ // ensure only one thread is used for the cxf bc provider
+ throw new JBIFault("not invoked by the same thread");
+ }
+ if (!message.getExchange().isSynchronous()) {
+ if (System.currentTimeMillis() - before > 10000) {
+ // it's asynchronous way, so should use nonblcok invocation
+ throw new JBIFault(
+ "second invocation shouldn't wait the first invocation return");
+
+ }
+ } else {
+ if (System.currentTimeMillis() - before < 8000) {
+ // it's synchronous way, so should use blcok invocation
+ throw new JBIFault(
+ "second invocation should wait until the first invocation return");
+
+ }
+ }
+ }
+ }
+
+}
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/provider/TimeCompareInterceptor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml?rev=708114&view=auto
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml (added)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml Mon Oct 27 02:38:31 2008
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ -->
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:test="urn:test"
+ xmlns:greeter="http://apache.org/hello_world_soap_http_provider"
+ xmlns:jmsgreeter="http://apache.org/hello_world_soap_http">
+
+
+
+ <sm:container id="jbi" embedded="true">
+ <sm:executorFactory>
+ <bean class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
+ <property name="configs">
+ <map>
+ <entry key="flow.seda.servicemix-cxfbc">
+ <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
+ <property name="corePoolSize" value="1"/>
+ <property name="maximumPoolSize" value="1"/>
+ <property name="queueSize" value="-1"/>
+ </bean>
+ </entry>
+ </map>
+ </property>
+ </bean>
+ </sm:executorFactory>
+
+ <sm:endpoints>
+
+ <cxfbc:provider wsdl="./hello_world.wsdl"
+ locationURI="http://localhost:9000/SoapContext/SoapPort"
+ endpoint="SoapPort"
+ service="greeter:SOAPService"
+ interfaceName="greeter:Greeter"
+ useJBIWrapper="false"
+ synchronous="false"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ <bean class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+
+ <cxfbc:provider wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+ service="jmsgreeter:HelloWorldService"
+ endpoint="HelloWorldPortProxy"
+ interfaceName="jmsgreeter:Greetr"
+ useJBIWrapper="false"
+ synchronous="false"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ <bean class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+ </sm:endpoints>
+
+ </sm:container>
+
+</beans>
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_async.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml?rev=708114&view=auto
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml (added)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml Mon Oct 27 02:38:31 2008
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ -->
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:test="urn:test"
+ xmlns:greeter="http://apache.org/hello_world_soap_http_provider"
+ xmlns:jmsgreeter="http://apache.org/hello_world_soap_http">
+
+
+
+ <sm:container id="jbi" embedded="true">
+ <sm:executorFactory>
+ <bean class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
+ <property name="configs">
+ <map>
+ <entry key="flow.seda.servicemix-cxfbc">
+ <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
+ <property name="corePoolSize" value="1"/>
+ <property name="maximumPoolSize" value="1"/>
+ <property name="queueSize" value="-1"/>
+ </bean>
+ </entry>
+
+ </map>
+ </property>
+ </bean>
+ </sm:executorFactory>
+
+ <sm:endpoints>
+
+ <cxfbc:provider wsdl="./hello_world.wsdl"
+ locationURI="http://localhost:9000/SoapContext/SoapPort"
+ endpoint="SoapPort"
+ service="greeter:SOAPService"
+ interfaceName="greeter:Greeter"
+ useJBIWrapper="false"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ <bean class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+
+ <cxfbc:provider wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+ service="jmsgreeter:HelloWorldService"
+ endpoint="HelloWorldPortProxy"
+ interfaceName="jmsgreeter:Greetr"
+ useJBIWrapper="false"
+ busCfg="org/apache/servicemix/cxfbc/jms_test_timeout_provider.xml"
+ >
+ <cxfbc:inInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inInterceptors>
+ <cxfbc:outInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ <bean class="org.apache.servicemix.cxfbc.provider.TimeCompareInterceptor"/>
+ </cxfbc:outInterceptors>
+ <cxfbc:inFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+ </cxfbc:inFaultInterceptors>
+ <cxfbc:outFaultInterceptors>
+ <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+ </cxfbc:outFaultInterceptors>
+ </cxfbc:provider>
+ </sm:endpoints>
+
+ </sm:container>
+
+</beans>
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean_provider_sync.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: servicemix/smx3/branches/servicemix-3.2/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/pom.xml?rev=708114&r1=708113&r2=708114&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/pom.xml (original)
+++ servicemix/smx3/branches/servicemix-3.2/pom.xml Mon Oct 27 02:38:31 2008
@@ -220,7 +220,7 @@
<oro-version>2.0.8</oro-version>
<sitemesh-version>2.2.1</sitemesh-version>
<woden-version>1.0.0M6</woden-version>
- <cxf-version>2.0.9</cxf-version>
+ <cxf-version>2.0.10-SNAPSHOT</cxf-version>
<jaxb.version>2.0</jaxb.version>
<jaxb.impl.version>2.0.1</jaxb.impl.version>
<derby-version>10.2.2.0</derby-version>