You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2008/10/31 14:51:38 UTC

svn commit: r709414 - in /tuscany/java/sca/modules: binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/ binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/ binding-jms-runtime/src...

Author: slaws
Date: Fri Oct 31 06:51:37 2008
New Revision: 709414

URL: http://svn.apache.org/viewvc?rev=709414&view=rev
Log:
Add a context structure for the jms binding to pass along the binding wire

Added:
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java   (with props)
Modified:
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/OperationSelectorJMSDefaultServiceInterceptor.java
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingListener.java
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/bytes/WireFormatJMSBytesServiceInterceptor.java
    tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/WireFormatJMSDefaultServiceInterceptor.java
    tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java

Added: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java?rev=709414&view=auto
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java (added)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java Fri Oct 31 06:51:37 2008
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.sca.binding.jms.context;
+
+import javax.jms.Message;
+import javax.jms.Session;
+
+
+/**
+ * Context that the JMS binding puts on the Tuscany wire
+ *
+ * @version $Rev$ $Date$
+ */
+public class JMSBindingContext {
+
+    private Message jmsMsg;
+    private Session jmsSession;
+
+    public Message getJmsMsg() {
+        return jmsMsg;
+    }
+    
+    public void setJmsMsg(Message jmsMsg) {
+        this.jmsMsg = jmsMsg;
+    }
+    
+    public Session getJmsSession() {
+        return jmsSession;
+    }
+    
+    public void setJmsSession(Session jmsSession) {
+        this.jmsSession = jmsSession;
+    }
+}

Propchange: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/context/JMSBindingContext.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/OperationSelectorJMSDefaultServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/OperationSelectorJMSDefaultServiceInterceptor.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/OperationSelectorJMSDefaultServiceInterceptor.java (original)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/OperationSelectorJMSDefaultServiceInterceptor.java Fri Oct 31 06:51:37 2008
@@ -25,6 +25,7 @@
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
@@ -74,8 +75,9 @@
     }    
     
     public Message invokeRequest(Message msg) { 
-        // get the jms message
-        javax.jms.Message jmsMsg = (javax.jms.Message)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSREQUESTMSG_POSITION);
+        // get the jms context
+        JMSBindingContext context = (JMSBindingContext)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_POSITION);
+        javax.jms.Message jmsMsg = context.getJmsMsg();
         
         String operationName = requestMessageProcessor.getOperationName(jmsMsg);
         Operation operation = getTargetOperation(operationName);
@@ -86,12 +88,10 @@
     
     public Message invokeResponse(Message msg) { 
         try {
-            // get the jms message
-            javax.jms.Message requestJMSMsg = (javax.jms.Message)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSREQUESTMSG_POSITION);
-            
-            // get the jms session
-            Session session = (Session)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSSESSION_POSITION);
-            
+            JMSBindingContext context = (JMSBindingContext)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_POSITION);
+            javax.jms.Message requestJMSMsg = context.getJmsMsg();
+            Session session = context.getJmsSession();
+                       
             Destination destination = requestJMSMsg.getJMSReplyTo();
             MessageProducer producer = session.createProducer(destination);
     

Modified: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java (original)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingServiceBindingProvider.java Fri Oct 31 06:51:37 2008
@@ -143,7 +143,9 @@
         this.providerFactories = extensionPoints.getExtensionPoint(ProviderFactoryExtensionPoint.class);
         this.operationSelectorProviderFactory =
             (OperationSelectorProviderFactory)providerFactories.getProviderFactory(jmsBinding.getOperationSelector().getClass());
-        this.operationSelectorProvider = operationSelectorProviderFactory.createServiceOperationSelectorProvider(component, service, jmsBinding);
+        if (this.operationSelectorProviderFactory != null){
+            this.operationSelectorProvider = operationSelectorProviderFactory.createServiceOperationSelectorProvider(component, service, jmsBinding);
+        }
         
         // Get the factories/providers for wire format
         
@@ -159,11 +161,15 @@
         
         this.requestWireFormatProviderFactory = 
             (WireFormatProviderFactory)providerFactories.getProviderFactory(jmsBinding.getRequestWireFormat().getClass());
-        this.requestWireFormatProvider = requestWireFormatProviderFactory.createServiceWireFormatProvider(component, service, jmsBinding);
+        if (this.requestWireFormatProviderFactory != null){
+            this.requestWireFormatProvider = requestWireFormatProviderFactory.createServiceWireFormatProvider(component, service, jmsBinding);
+        }
         
         this.responseWireFormatProviderFactory = 
             (WireFormatProviderFactory)providerFactories.getProviderFactory(jmsBinding.getResponseWireFormat().getClass());
-        this.responseWireFormatProvider = responseWireFormatProviderFactory.createServiceWireFormatProvider(component, service, jmsBinding);
+        if (this.responseWireFormatProvider != null){
+            this.responseWireFormatProvider = responseWireFormatProviderFactory.createServiceWireFormatProvider(component, service, jmsBinding);
+        }
     }
     
     protected boolean isOnMessage() {

Modified: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingListener.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingListener.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingListener.java (original)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/RRBJMSBindingListener.java Fri Oct 31 06:51:37 2008
@@ -36,6 +36,7 @@
 import javax.security.auth.Subject;
 
 import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
@@ -137,18 +138,28 @@
      */
     protected void invokeService(Message requestJMSMsg) throws JMSException, InvocationTargetException {
 
-        // create the tuscany message
-        org.apache.tuscany.sca.invocation.Message tuscanyMsg = messageFactory.createMessage();
-        
-        // populate the message context with JMS binding information
-        tuscanyMsg.getHeaders().add(requestJMSMsg);
-        tuscanyMsg.setBody(requestJMSMsg);
-        
-        // call the runtime wire
-        setHeaderProperties(requestJMSMsg, tuscanyMsg, tuscanyMsg.getOperation());
-        InvocationChain chain = service.getRuntimeWire(targetBinding).getBindingInvocationChain();
-        chain.getHeadInvoker().invoke(tuscanyMsg);
-        
+        try {
+            // create the tuscany message
+            org.apache.tuscany.sca.invocation.Message tuscanyMsg = messageFactory.createMessage();
+            
+            // populate the message context with JMS binding information
+            JMSBindingContext context = new JMSBindingContext();
+            tuscanyMsg.getHeaders().add(context);
+            
+            context.setJmsMsg(requestJMSMsg);
+            context.setJmsSession(jmsResourceFactory.createSession());
+            
+            // set the message body
+            tuscanyMsg.setBody(requestJMSMsg);
+            
+            // call the runtime wire
+            setHeaderProperties(requestJMSMsg, tuscanyMsg, tuscanyMsg.getOperation());
+            InvocationChain chain = service.getRuntimeWire(targetBinding).getBindingInvocationChain();
+            chain.getHeadInvoker().invoke(tuscanyMsg);
+        } catch (NamingException e) {
+            throw new JMSBindingException(e);
+        }
+            
     }
 
     /**

Modified: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/bytes/WireFormatJMSBytesServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/bytes/WireFormatJMSBytesServiceInterceptor.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/bytes/WireFormatJMSBytesServiceInterceptor.java (original)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/bytes/WireFormatJMSBytesServiceInterceptor.java Fri Oct 31 06:51:37 2008
@@ -19,6 +19,7 @@
 package org.apache.tuscany.sca.binding.jms.wireformat.bytes;
 
 import org.apache.tuscany.sca.assembly.WireFormat;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessor;
@@ -52,10 +53,10 @@
         this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(jmsBinding);
     }
 
-
     public Message invoke(Message msg) {
-        // get the jms message
-        javax.jms.Message jmsMsg = (javax.jms.Message)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSREQUESTMSG_POSITION);
+        // get the jms context
+        JMSBindingContext context = (JMSBindingContext)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_POSITION);
+        javax.jms.Message jmsMsg = context.getJmsMsg();
         
         msg.setBody(requestMessageProcessor.extractPayloadFromJMSMessage(jmsMsg));
                 

Modified: tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/WireFormatJMSDefaultServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/WireFormatJMSDefaultServiceInterceptor.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/WireFormatJMSDefaultServiceInterceptor.java (original)
+++ tuscany/java/sca/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/WireFormatJMSDefaultServiceInterceptor.java Fri Oct 31 06:51:37 2008
@@ -23,6 +23,7 @@
 import javax.naming.NamingException;
 
 import org.apache.tuscany.sca.assembly.WireFormat;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
@@ -85,8 +86,9 @@
     }
 
     public Message invokeRequest(Message msg) {
-        // get the jms message
-        javax.jms.Message jmsMsg = (javax.jms.Message)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSREQUESTMSG_POSITION);
+        // get the jms context
+        JMSBindingContext context = (JMSBindingContext)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_POSITION);
+        javax.jms.Message jmsMsg = context.getJmsMsg();
         
         if ("onMessage".equals(msg.getOperation().getName())) {
             msg.setBody(new Object[]{jmsMsg});
@@ -100,12 +102,11 @@
     
     public Message invokeResponse(Message msg) {
         try {
-            // get the jms message
-            javax.jms.Message requestJMSMsg = (javax.jms.Message)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_JMSREQUESTMSG_POSITION);
-            
-            Session session = jmsResourceFactory.createSession();
-            msg.getHeaders().add(JMSBindingConstants.MSG_CTXT_JMSSESSION_POSITION, session);
-            
+            // get the jms context
+            JMSBindingContext context = (JMSBindingContext)msg.getHeaders().get(JMSBindingConstants.MSG_CTXT_POSITION);
+            javax.jms.Message requestJMSMsg = context.getJmsMsg();
+            Session session = context.getJmsSession();
+
             javax.jms.Message responseJMSMsg;
             if (msg.isFault()) {
                 responseJMSMsg = responseMessageProcessor.createFaultMessage(session, (Throwable)msg.getBody());
@@ -127,9 +128,7 @@
             return msg;
         } catch (JMSException e) {
             throw new JMSBindingException(e);
-        } catch (NamingException e) {
-            throw new JMSBindingException(e);
-        }
+        } 
     }    
 
     public Invoker getNext() {

Modified: tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java?rev=709414&r1=709413&r2=709414&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java (original)
+++ tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBindingConstants.java Fri Oct 31 06:51:37 2008
@@ -69,7 +69,5 @@
     String CALLBACK_Q_PROPERTY = "scaCallbackQueue ";
     String CONVERSATION_ID_PROPERTY = "scaConversationId";
     
-    int MSG_CTXT_JMSREQUESTMSG_POSITION = 0;
-    int MSG_CTXT_JMSSESSION_POSITION=1;
-
+    int MSG_CTXT_POSITION = 0;
 }