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();
+    }
 }