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;
}