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(