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(