diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-12 12:50:36 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-12 12:50:36 +0000 |
commit | c3f14ef336a1fef26b80600a381697f90dfb988f (patch) | |
tree | 88fb79cdd447186e1775589d7816b6cb14eadcb0 /branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java | |
parent | e869ce8b1c252fc277385edbd6c98ff1c8a0470f (diff) |
TUSCANY-2839: Start at supporting services invoked by oneway requests not needing a response connection factory
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@743710 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java')
-rw-r--r-- | branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java index 6370c9f575..183e006b04 100644 --- a/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java +++ b/branches/sca-java-1.x/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java @@ -19,9 +19,12 @@ package org.apache.tuscany.sca.binding.jms.context; import javax.jms.Destination; +import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; +import javax.naming.NamingException; +import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException; import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory; @@ -34,6 +37,7 @@ public class JMSBindingContext { private Message jmsMsg; private Session jmsSession; + private Session jmsResponseSession; private Destination requestDestination; private Destination replyToDestination; private JMSResourceFactory jmsResourceFactory; @@ -47,12 +51,26 @@ public class JMSBindingContext { this.jmsMsg = jmsMsg; } - public Session getJmsSession() { + public synchronized Session getJmsSession() { + if (jmsSession == null) { + try { + jmsSession = getJmsResourceFactory().createSession(); + } catch (Exception e) { + throw new JMSBindingException(e); + } + } return jmsSession; } - - public void setJmsSession(Session jmsSession) { - this.jmsSession = jmsSession; + + public synchronized Session getJmsResponseSession() { + if (jmsResponseSession == null) { + try { + jmsResponseSession = getJmsResourceFactory().createResponseSession(); + } catch (Exception e) { + throw new JMSBindingException(e); + } + } + return jmsResponseSession; } public Destination getRequestDestination() { |