summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java34
1 files changed, 24 insertions, 10 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
index e899448760..6dac182d9a 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderServiceInterceptor.java
@@ -24,12 +24,13 @@ import javax.jms.JMSException;
import org.apache.tuscany.sca.binding.jms.JMSBinding;
import org.apache.tuscany.sca.binding.jms.JMSBindingException;
+import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
-public class HeaderServiceInterceptor implements Interceptor {
+public class HeaderServiceInterceptor extends InterceptorAsyncImpl {
private Invoker next;
private JMSBinding jmsBinding;
@@ -75,30 +76,43 @@ public class HeaderServiceInterceptor implements Interceptor {
for (String propName : jmsBinding.getPropertyNames()) {
Object value = jmsBinding.getProperty(propName);
jmsMsg.setObjectProperty(propName, value);
- }
+ } // end for
Map<String, Object> operationProperties = jmsBinding.getOperationProperties(operationName);
if (operationProperties != null) {
for (String propName : operationProperties.keySet()) {
Object value = operationProperties.get(propName);
jmsMsg.setObjectProperty(propName, value);
- }
- }
+ } // end for
+ } // end if
+
+ // Put a "RELATES_TO" property into the response message
+ String relatesTo = (String)tuscanyMsg.getHeaders().get("RELATES_TO");
+ if( relatesTo != null ) {
+ jmsMsg.setStringProperty("RELATES_TO", relatesTo);
+ } // end if
return tuscanyMsg;
} catch (JMSException e) {
throw new JMSBindingException(e);
- }
- }
+ } // end try
+ } // end method invokeResponse
public Invoker getNext() {
return next;
- }
+ } // end method getNext
public void setNext(Invoker next) {
this.next = next;
}
-
-
-}
+
+ public Message processRequest(Message msg) {
+ return invokeRequest(msg);
+ } // end method processRequest
+
+ public Message processResponse(Message msg) {
+ return invokeResponse(msg);
+ } // end method processResponse
+
+} // end class