Author: ningjiang Date: Thu Feb 21 04:29:22 2013 New Revision: 1448509 URL: http://svn.apache.org/r1448509 Log: CAMEL-6092 set the MEP according to the BindingOperationInfo in CxfConsumer
Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfOneWayRouteTest.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=1448509&r1=1448508&r2=1448509&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 Thu Feb 21 04:29:22 2013 @@ -23,6 +23,7 @@ import java.util.Map; import javax.xml.ws.WebFault; import org.w3c.dom.Element; import org.apache.camel.AsyncCallback; +import org.apache.camel.ExchangePattern; import org.apache.camel.Processor; import org.apache.camel.component.cxf.common.message.CxfConstants; import org.apache.camel.impl.DefaultConsumer; @@ -145,7 +146,7 @@ public class CxfConsumer extends Default CxfEndpoint endpoint = (CxfEndpoint)getEndpoint(); CxfBinding binding = endpoint.getCxfBinding(); - // create a Camel exchange + // create a Camel exchange, the default MEP is InOut org.apache.camel.Exchange camelExchange = endpoint.createExchange(); DataFormat dataFormat = endpoint.getDataFormat(); @@ -159,6 +160,10 @@ public class CxfConsumer extends Default if (boi != null) { camelExchange.setProperty(BindingOperationInfo.class.getName(), boi); LOG.trace("Set exchange property: BindingOperationInfo: {}", boi); + // set the message exchange patter with the boi + if (boi.getOperationInfo().isOneWay()) { + camelExchange.setPattern(ExchangePattern.InOnly); + } } // set data format mode in Camel exchange Modified: camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfOneWayRouteTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfOneWayRouteTest.java?rev=1448509&r1=1448508&r2=1448509&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfOneWayRouteTest.java (original) +++ camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfOneWayRouteTest.java Thu Feb 21 04:29:22 2013 @@ -23,6 +23,7 @@ import javax.xml.namespace.QName; import javax.xml.ws.Service; import org.apache.camel.Exchange; +import org.apache.camel.ExchangePattern; import org.apache.camel.Processor; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.spring.CamelSpringTestSupport; @@ -88,6 +89,8 @@ public class CxfOneWayRouteTest extends static final byte[] MAGIC = {(byte)0xca, 0x3e, 0x1e}; public void process(Exchange exchange) throws Exception { + // just check the MEP here + assertEquals("Don't get the right MEP", ExchangePattern.InOnly, exchange.getPattern()); // adding some binary segment String msg = exchange.getIn().getBody(String.class); ByteArrayOutputStream bos = new ByteArrayOutputStream();