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/05/09 08:59:02 UTC
svn commit: r654696 - in
/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src:
main/java/org/apache/servicemix/camel/ test/java/org/apache/servicemix/camel/
test/java/org/apache/servicemix/camel/su6/
Author: ffang
Date: Thu May 8 23:59:02 2008
New Revision: 654696
URL: http://svn.apache.org/viewvc?rev=654696&view=rev
Log:
[SM-1343]apply patch on behalf of Willem Jiang with thanks
Modified:
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiBinding.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiMessage.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ToJbiProcessor.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JavaCamelRouteTest.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java
servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/su6/MyRouter.java
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiBinding.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiBinding.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiBinding.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiBinding.java Thu May 8 23:59:02 2008
@@ -25,6 +25,7 @@
import javax.jbi.messaging.MessageExchangeFactory;
import javax.jbi.messaging.MessagingException;
import javax.jbi.messaging.NormalizedMessage;
+import javax.xml.namespace.QName;
import javax.xml.transform.Source;
import org.apache.camel.Exchange;
@@ -36,7 +37,7 @@
/**
* The binding of how Camel messages get mapped to JBI and back again
- *
+ *
* @version $Revision: 563665 $
*/
public class JbiBinding {
@@ -81,7 +82,7 @@
/**
* Sets the message exchange pattern to use for communicating with JBI
- *
+ *
* @param messageExchangePattern
*/
public void setMessageExchangePattern(String messageExchangePattern) {
@@ -89,7 +90,7 @@
}
protected MessageExchange createJbiMessageExchange(Exchange camelExchange,
- MessageExchangeFactory exchangeFactory, String defaultMep)
+ MessageExchangeFactory exchangeFactory, String defaultMep)
throws MessagingException, URISyntaxException {
ExchangePattern mep = camelExchange.getPattern();
@@ -124,6 +125,15 @@
answer = exchangeFactory.createInOutExchange();
}
}
+
+ if (camelExchange.getProperty("jbi.operation") != null) {
+
+ String operationName = (String) camelExchange.getProperty("jbi.operation");
+ QName operationQName = QName.valueOf(operationName);
+ answer.setOperation(operationQName);
+
+ }
+
return answer;
}
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java Thu May 8 23:59:02 2008
@@ -27,7 +27,7 @@
* An {@link org.apache.camel.Exchange} working with JBI which exposes the underlying JBI
* features such as the JBI {@link #getMessageExchange()},
* {@link #getInMessage()} and {@link #getOutMessage()}
- *
+ *
* @version $Revision: 563665 $
*/
public class JbiExchange extends DefaultExchange {
@@ -82,6 +82,11 @@
return (JbiMessage) super.getFault(lazyCreate);
}
+ @Override
+ public org.apache.camel.Exchange newInstance() {
+ return new JbiExchange(this.getContext(), this.getBinding(), this.getMessageExchange());
+ }
+
/**
* @return the Camel <-> JBI binding
*/
@@ -95,7 +100,7 @@
/**
* Returns the underlying JBI message exchange for an inbound exchange or
* null for outbound messages
- *
+ *
* @return the inbound message exchange
*/
public MessageExchange getMessageExchange() {
@@ -104,7 +109,7 @@
/**
* Returns the underlying In {@link NormalizedMessage}
- *
+ *
* @return the In message
*/
public NormalizedMessage getInMessage() {
@@ -113,7 +118,7 @@
/**
* Returns the underlying Out {@link NormalizedMessage}
- *
+ *
* @return the Out message
*/
public NormalizedMessage getOutMessage() {
@@ -122,7 +127,7 @@
/**
* Returns the underlying Fault {@link NormalizedMessage}
- *
+ *
* @return the Fault message
*/
public NormalizedMessage getFaultMessage() {
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiMessage.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiMessage.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiMessage.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiMessage.java Thu May 8 23:59:02 2008
@@ -28,7 +28,7 @@
/**
* A JBI {@link org.apache.camel.Message} which provides access to the underlying JBI features
* such as {@link #getNormalizedMessage()}
- *
+ *
* @version $Revision: 563665 $
*/
public class JbiMessage extends DefaultMessage {
@@ -57,7 +57,7 @@
/**
* Returns the underlying JBI message
- *
+ *
* @return the underlying JBI message
*/
public NormalizedMessage getNormalizedMessage() {
@@ -81,6 +81,15 @@
}
@Override
+ public void setHeader(String name , Object value) {
+ if (normalizedMessage != null) {
+ normalizedMessage.setProperty(name, value);
+ } else {
+ super.setHeader(name, value);
+ }
+ }
+
+ @Override
public JbiMessage newInstance() {
return new JbiMessage();
}
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ToJbiProcessor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ToJbiProcessor.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ToJbiProcessor.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ToJbiProcessor.java Thu May 8 23:59:02 2008
@@ -27,6 +27,7 @@
import javax.jbi.messaging.MessageExchangeFactory;
import javax.jbi.messaging.MessagingException;
import javax.jbi.messaging.NormalizedMessage;
+import javax.xml.namespace.QName;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -36,7 +37,7 @@
/**
* A
- *
+ *
* @{link Processor} which takes a Camel {@link Exchange} and invokes it into
* JBI using the straight JBI API
* @version $Revision: 563665 $
@@ -50,6 +51,8 @@
private String mep;
+ private String operation;
+
public ToJbiProcessor(JbiBinding binding, ComponentContext componentContext, String destinationUri) {
this.binding = binding;
this.componentContext = componentContext;
@@ -62,6 +65,7 @@
if (mep != null && !mep.startsWith("http://www.w3.org/ns/wsdl/")) {
mep = "http://www.w3.org/ns/wsdl/" + mep;
}
+ operation = (String) params.get("operation");
this.destinationUri = destinationUri.substring(0, idx);
}
} catch (URISyntaxException e) {
@@ -91,6 +95,10 @@
MessageExchangeFactory exchangeFactory = deliveryChannel.createExchangeFactory();
MessageExchange messageExchange = binding.makeJbiMessageExchange(exchange, exchangeFactory, mep);
+ if (operation != null) {
+ messageExchange.setOperation(QName.valueOf(operation));
+ }
+
URIResolver.configureExchange(messageExchange, componentContext, destinationUri);
deliveryChannel.sendSync(messageExchange);
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JavaCamelRouteTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JavaCamelRouteTest.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JavaCamelRouteTest.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JavaCamelRouteTest.java Thu May 8 23:59:02 2008
@@ -16,6 +16,8 @@
*/
package org.apache.servicemix.camel;
+import javax.jbi.messaging.MessageExchange;
+
/**
* @version $Revision: 1.1 $
*/
@@ -28,4 +30,10 @@
super.setUp();
suName = "su6";
}
+
+ @Override
+ protected void checkResult(MessageExchange exchange) {
+ assertNotNull(exchange.getMessage("out"));
+ assertNotNull(exchange.getMessage("out").getProperty("operation"));
+ }
}
\ No newline at end of file
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java Thu May 8 23:59:02 2008
@@ -21,7 +21,6 @@
import javax.xml.namespace.QName;
import org.apache.servicemix.client.ServiceMixClient;
-import org.apache.servicemix.components.util.EchoComponent;
/**
* @version $Revision: 1.1 $
@@ -36,7 +35,7 @@
suName = "su5";
super.setUp();
- EchoComponent echo = new EchoComponent();
+ MyEchoComponent echo = new MyEchoComponent();
echo.setService(new QName("namespace", "echo"));
echo.setEndpoint("endpoint");
container.activateComponent(echo, "echo");
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java Thu May 8 23:59:02 2008
@@ -74,9 +74,9 @@
configureExchange(client, exchange);
populateExchange(exchange);
client.sendSync(exchange);
- assertNotNull(exchange.getMessage("out"));
+ checkResult(exchange);
//assertNotNull(exchange.getMessage("out").getContent());
- // TODO: check out
+ // TODO: check out the exchange
client.done(exchange);
// Stop and undeploy
@@ -103,6 +103,10 @@
}
}
+ protected void checkResult(MessageExchange exchange) {
+ assertNotNull(exchange.getMessage("out"));
+ }
+
/*
* @see TestCase#setUp()
*/
@@ -141,7 +145,7 @@
protected InOut createExchange(ServiceMixClient client)
throws MessagingException {
-
+
return client.createInOutExchange();
}
Modified: servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/su6/MyRouter.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/su6/MyRouter.java?rev=654696&r1=654695&r2=654696&view=diff
==============================================================================
--- servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/su6/MyRouter.java (original)
+++ servicemix/smx3/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/su6/MyRouter.java Thu May 8 23:59:02 2008
@@ -23,6 +23,6 @@
*/
public class MyRouter extends RouteBuilder {
public void configure() throws Exception {
- from("jbi:name:cheese").to("jbi:service:namespace:echo?mep=in-out");
+ from("jbi:name:cheese").to("jbi:service:namespace:echo?mep=in-out&operation={http://hello}echo");
}
}