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 2010/04/23 04:26:50 UTC

svn commit: r937137 - in /servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src: main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java

Author: ffang
Date: Fri Apr 23 02:26:50 2010
New Revision: 937137

URL: http://svn.apache.org/viewvc?rev=937137&view=rev
Log:
[SMX4-520]NMR Destination should check Exchange Status and Mep Pattern

Modified:
    servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java
    servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java

Modified: servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java?rev=937137&r1=937136&r2=937137&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java (original)
+++ servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestination.java Fri Apr 23 02:26:50 2010
@@ -44,7 +44,9 @@ import org.apache.servicemix.nmr.api.Cha
 import org.apache.servicemix.nmr.api.Endpoint;
 import org.apache.servicemix.nmr.api.Exchange;
 import org.apache.servicemix.nmr.api.NMR;
+import org.apache.servicemix.nmr.api.Pattern;
 import org.apache.servicemix.nmr.api.ServiceMixException;
+import org.apache.servicemix.nmr.api.Status;
 
 public class NMRDestination extends AbstractDestination implements Endpoint {
     
@@ -101,6 +103,13 @@ public class NMRDestination extends Abst
     }
 
     public void process(Exchange exchange) {
+    	if (exchange == null || exchange.getStatus() != Status.Active) {
+    		return;
+    	}
+		if (exchange.getPattern() == Pattern.InOnly || exchange.getPattern() == Pattern.RobustInOnly) {
+			exchange.setStatus(Status.Done);
+			getChannel().send(exchange);
+		}
         QName opName = exchange.getOperation();
         getLogger().fine("dispatch method: " + opName);
 

Modified: servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java?rev=937137&r1=937136&r2=937137&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java (original)
+++ servicemix/smx4/features/trunk/cxf/cxf-transport-nmr/src/test/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationTest.java Fri Apr 23 02:26:50 2010
@@ -37,6 +37,7 @@ import org.apache.cxf.service.model.Serv
 import org.apache.cxf.transport.MessageObserver;
 import org.apache.servicemix.nmr.api.Channel;
 import org.apache.servicemix.nmr.api.EndpointRegistry;
+import org.apache.servicemix.nmr.api.Status;
 import org.easymock.EasyMock;
 
 
@@ -115,7 +116,9 @@ public class NMRDestinationTest extends 
         nmrTransportFactory.putDestination(destName, destination);
         
         org.apache.servicemix.nmr.api.Exchange xchg = control.createMock(org.apache.servicemix.nmr.api.Exchange.class);
+        
         org.apache.servicemix.nmr.api.Message inMsg = control.createMock(org.apache.servicemix.nmr.api.Message.class);
+        EasyMock.expect(xchg.getStatus()).andReturn(Status.Active);
         EasyMock.expect(xchg.getIn()).andReturn(inMsg);
                 
         Source source = new StreamSource(new ByteArrayInputStream(