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/07 04:39:54 UTC
svn commit: r702329 - in
/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src:
main/java/org/apache/servicemix/eip/patterns/WireTap.java
test/java/org/apache/servicemix/eip/WireTapTest.java
Author: ffang
Date: Mon Oct 6 19:39:53 2008
New Revision: 702329
URL: http://svn.apache.org/viewvc?rev=702329&view=rev
Log:
[SM-1612]EIP wiretap should save operationname by default
Modified:
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/WireTap.java
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/test/java/org/apache/servicemix/eip/WireTapTest.java
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/WireTap.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/WireTap.java?rev=702329&r1=702328&r2=702329&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/WireTap.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/WireTap.java Mon Oct 6 19:39:53 2008
@@ -162,6 +162,10 @@
* @see org.apache.servicemix.eip.EIPEndpoint#processSync(javax.jbi.messaging.MessageExchange)
*/
protected void processSync(MessageExchange exchange) throws Exception {
+ if (null == target.getOperation()) {
+ //not specify operation for the target, so save the src one by default
+ target.setOperation(exchange.getOperation());
+ }
// Create exchange for target
MessageExchange tme = getExchangeFactory().createExchange(exchange.getPattern());
target.configureTarget(tme, getContext());
@@ -187,6 +191,10 @@
* @see org.apache.servicemix.eip.EIPEndpoint#processAsync(javax.jbi.messaging.MessageExchange)
*/
protected void processAsync(MessageExchange exchange) throws Exception {
+ if (null == target.getOperation()) {
+ //not specify operation for the target, so save the src one by default
+ target.setOperation(exchange.getOperation());
+ }
if (exchange.getRole() == MessageExchange.Role.PROVIDER
&& exchange.getProperty(correlation) == null) {
// Create exchange for target
Modified: servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/test/java/org/apache/servicemix/eip/WireTapTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/test/java/org/apache/servicemix/eip/WireTapTest.java?rev=702329&r1=702328&r2=702329&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/test/java/org/apache/servicemix/eip/WireTapTest.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-eip/src/test/java/org/apache/servicemix/eip/WireTapTest.java Mon Oct 6 19:39:53 2008
@@ -388,4 +388,32 @@
listener.assertExchangeCompleted();
}
+ public void testCopyOperationName() throws Exception {
+ activateReceiver("target");
+
+ InOnly me = client.createInOnlyExchange();
+ me.setService(new QName("wireTap"));
+ QName operation = new QName("operationNeedSave");
+ me.setOperation(operation);
+ me.getInMessage().setContent(createSource("<hello/>"));
+ client.sendSync(me);
+ assertEquals(ExchangeStatus.DONE, me.getStatus());
+ //since we didn't specify the operation for the target, so should save
+ //the operation name from the src MessageExchange
+ assertEquals(operation, wireTap.getTarget().getOperation());
+
+ me = client.createInOnlyExchange();
+ me.setService(new QName("wireTap"));
+ operation = new QName("operationNeedSave");
+ me.setOperation(operation);
+ me.getInMessage().setContent(createSource("<hello/>"));
+ QName targetOperation = new QName("targetOperation");
+ wireTap.getTarget().setOperation(targetOperation);
+ client.sendSync(me);
+ assertEquals(ExchangeStatus.DONE, me.getStatus());
+ //since we specify the operation for the target, so should use the specified one
+ assertEquals(targetOperation, wireTap.getTarget().getOperation());
+
+ listener.assertExchangeCompleted();
+ }
}