You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2008/08/04 12:44:09 UTC
svn commit: r682318 -
/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingInvoker.java
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();
}