Author: antelder
Date: Mon Aug 4 03:44:08 2008
New Revision: 682318
URL: http://svn.apache.org/viewvc?rev=682318&view=rev
Log:
Tidy up header processing
Modified:
tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
Modified:
tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java?rev=682318&r1=682317&r2=682318&view=diff
==============================================================================
---
tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
(original)
+++
tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
Mon Aug 4 03:44:08 2008
@@ -20,6 +20,7 @@
import java.lang.reflect.InvocationTargetException;
+import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
@@ -41,7 +42,7 @@
import org.osoa.sca.ServiceRuntimeException;
/**
- * Interceptor for the JMS binding.
+ * Invoker for the JMS binding.
*
* @version $Rev$ $Date$
*/
@@ -259,12 +260,16 @@
setHeaders(tuscanyMsg, requestMsg);
- requestMessageProcessor.setOperationName(operationName, requestMsg);
requestMsg.setJMSReplyTo(replyToDest);
Destination requestDest = getRequestDestination(tuscanyMsg, session);
MessageProducer producer = session.createProducer(requestDest);
+
+ if (jmsBinding.getOperationJMSTimeToLive(operationName) != null) {
+
producer.setTimeToLive(jmsBinding.getOperationJMSTimeToLive(operationName));
+ }
+
try {
producer.send(requestMsg);
} finally {
@@ -293,8 +298,23 @@
protected void setHeaders(org.apache.tuscany.sca.invocation.Message
tuscanyMsg, Message jmsMsg) throws JMSException {
- jmsMsg.setJMSDeliveryMode(jmsBinding.getDeliveryMode());
- jmsMsg.setJMSPriority(jmsBinding.getPriority());
+
requestMessageProcessor.setOperationName(jmsBinding.getNativeOperationName(operationName),
jmsMsg);
+
+ if (jmsBinding.getOperationJMSDeliveryMode(operationName) != null) {
+ if (jmsBinding.getOperationJMSDeliveryMode(operationName)) {
+ jmsMsg.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
+ } else {
+ jmsMsg.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
+ }
+ }
+
+ if (jmsBinding.getOperationJMSPriority(operationName) != null) {
+
jmsMsg.setJMSPriority(jmsBinding.getOperationJMSPriority(operationName));
+ }
+
+ if (jmsBinding.getOperationJMSType(operationName) != null) {
+ jmsMsg.setJMSType(jmsBinding.getOperationJMSType(operationName));
+ }
ReferenceParameters parameters =
tuscanyMsg.getFrom().getReferenceParameters();
@@ -329,10 +349,18 @@
protected Message receiveReply(Session session, Destination replyToDest,
String requestMsgId) throws JMSException, NamingException {
String msgSelector = "JMSCorrelationID = '" + requestMsgId + "'";
MessageConsumer consumer = session.createConsumer(replyToDest,
msgSelector);
+
+ long receiveWait;
+ if (jmsBinding.getOperationJMSTimeToLive(operationName) != null) {
+ receiveWait = jmsBinding.getOperationJMSTimeToLive(operationName)
* 2;
+ } else {
+ receiveWait = JMSBindingConstants.DEFAULT_TIME_TO_LIVE;
+ }
+
Message replyMsg;
try {
jmsResourceFactory.startConnection();
- replyMsg = consumer.receive(jmsBinding.getTimeToLive());
+ replyMsg = consumer.receive(receiveWait);
} finally {
consumer.close();
}