org.apache.axis2.transport.jms
Class JMSUtils

java.lang.Object
  extended by org.apache.axis2.transport.base.BaseUtils
      extended by org.apache.axis2.transport.jms.JMSUtils

public class JMSUtils
extends BaseUtils

Miscallaneous methods used for the JMS transport


Constructor Summary
JMSUtils()
           
 
Method Summary
static javax.jms.Connection createConnection(javax.jms.ConnectionFactory conFac, java.lang.String user, java.lang.String pass, boolean jmsSpec11, java.lang.Boolean isQueue)
          This is a JMS spec independent method to create a Connection.
static javax.jms.MessageConsumer createConsumer(javax.jms.Session session, javax.jms.Destination destination, java.lang.Boolean isQueue, java.lang.String subscriberName, java.lang.String messageSelector, boolean pubSubNoLocal, boolean isDurable, boolean jmsSpec11)
          This is a JMS spec independent method to create a MessageConsumer.
static javax.jms.MessageConsumer createConsumer(javax.jms.Session session, javax.jms.Destination dest, java.lang.String messageSelector)
          Create a MessageConsumer for the given Destination
static javax.jms.MessageProducer createProducer(javax.jms.Session session, javax.jms.Destination destination, java.lang.Boolean isQueue, boolean jmsSpec11)
          This is a JMS spec independent method to create a MessageProducer.
static javax.jms.Session createSession(javax.jms.Connection connection, boolean transacted, int ackMode, boolean jmsSpec11, java.lang.Boolean isQueue)
          This is a JMS spec independent method to create a Session.
static javax.jms.Destination createTemporaryDestination(javax.jms.Session session)
          Create a temp queue or topic for synchronous receipt of responses, when a reply destination is not specified
static long getBodyLength(javax.jms.BytesMessage bMsg)
          Return the body length in bytes for a bytes message
static java.lang.String getDestination(java.lang.String url)
          Return the destination name from the given URL
static java.lang.String getDestinationTypeAsString(int destType)
          Return a String representation of the destination type
static long getMessageSize(javax.jms.Message message)
          Get the length of the message in bytes
static java.lang.String getProperty(javax.jms.Message message, java.lang.String property)
          Get a String property from the JMS message
static java.util.Map<java.lang.String,java.lang.Object> getTransportHeaders(javax.jms.Message message)
          Extract transport level headers for JMS from the given message into a Map
static boolean isJMSService(org.apache.axis2.description.AxisService service)
          Should this service be enabled over the JMS transport?
static void loadTransportHeaders(javax.jms.Message message, org.apache.axis2.context.MessageContext responseMsgCtx)
          Read the transport headers from the JMS Message and set them to the axis2 message context
static
<T> T
lookup(javax.naming.Context context, java.lang.Class<T> clazz, java.lang.String name)
           
static javax.jms.Destination lookupDestination(javax.naming.Context context, java.lang.String destinationName, java.lang.String destinationType)
          Return the JMS destination with the given destination name looked up from the context
static javax.jms.Destination setReplyDestination(javax.jms.Destination replyDestination, javax.jms.Session session, javax.jms.Message message)
          Set the JMS ReplyTo for the message
static void setSOAPEnvelope(javax.jms.Message message, org.apache.axis2.context.MessageContext msgContext, java.lang.String contentType)
          Set the SOAPEnvelope to the Axis2 MessageContext, from the JMS Message passed in
static void setTransportHeaders(org.apache.axis2.context.MessageContext msgContext, javax.jms.Message message)
          Set transport headers from the axis message context, into the JMS message
 
Methods inherited from class org.apache.axis2.transport.base.BaseUtils
getEnvelope, getEPRProperties, getMessageFormatter, getOMOutputFormat, getQNameFromString, handleException, handleException, isBlank, isUsingTransport, loadProperties, markServiceAsFaulty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JMSUtils

public JMSUtils()
Method Detail

isJMSService

public static boolean isJMSService(org.apache.axis2.description.AxisService service)
Should this service be enabled over the JMS transport?

Parameters:
service - the Axis service
Returns:
true if JMS should be enabled

getProperty

public static java.lang.String getProperty(javax.jms.Message message,
                                           java.lang.String property)
Get a String property from the JMS message

Parameters:
message - JMS message
property - property name
Returns:
property value

getDestination

public static java.lang.String getDestination(java.lang.String url)
Return the destination name from the given URL

Parameters:
url - the URL
Returns:
the destination name

setSOAPEnvelope

public static void setSOAPEnvelope(javax.jms.Message message,
                                   org.apache.axis2.context.MessageContext msgContext,
                                   java.lang.String contentType)
                            throws org.apache.axis2.AxisFault,
                                   javax.jms.JMSException
Set the SOAPEnvelope to the Axis2 MessageContext, from the JMS Message passed in

Parameters:
message - the JMS message read
msgContext - the Axis2 MessageContext to be populated
contentType - content type for the message
Throws:
org.apache.axis2.AxisFault
javax.jms.JMSException

setReplyDestination

public static javax.jms.Destination setReplyDestination(javax.jms.Destination replyDestination,
                                                        javax.jms.Session session,
                                                        javax.jms.Message message)
Set the JMS ReplyTo for the message

Parameters:
replyDestination - the JMS Destination where the reply is expected
session - the session to use to create a temp Queue if a response is expected but a Destination has not been specified
message - the JMS message where the final Destinatio would be set as the JMS ReplyTo
Returns:
the JMS ReplyTo Destination for the message

setTransportHeaders

public static void setTransportHeaders(org.apache.axis2.context.MessageContext msgContext,
                                       javax.jms.Message message)
                                throws javax.jms.JMSException
Set transport headers from the axis message context, into the JMS message

Parameters:
msgContext - the axis message context
message - the JMS Message
Throws:
javax.jms.JMSException - on exception

loadTransportHeaders

public static void loadTransportHeaders(javax.jms.Message message,
                                        org.apache.axis2.context.MessageContext responseMsgCtx)
                                 throws org.apache.axis2.AxisFault
Read the transport headers from the JMS Message and set them to the axis2 message context

Parameters:
message - the JMS Message received
responseMsgCtx - the axis message context
Throws:
org.apache.axis2.AxisFault - on error

getTransportHeaders

public static java.util.Map<java.lang.String,java.lang.Object> getTransportHeaders(javax.jms.Message message)
Extract transport level headers for JMS from the given message into a Map

Parameters:
message - the JMS message
Returns:
a Map of the transport headers

createConsumer

public static javax.jms.MessageConsumer createConsumer(javax.jms.Session session,
                                                       javax.jms.Destination dest,
                                                       java.lang.String messageSelector)
                                                throws javax.jms.JMSException
Create a MessageConsumer for the given Destination

Parameters:
session - JMS Session to use
dest - Destination for which the Consumer is to be created
messageSelector - the message selector to be used if any
Returns:
a MessageConsumer for the specified Destination
Throws:
javax.jms.JMSException

createTemporaryDestination

public static javax.jms.Destination createTemporaryDestination(javax.jms.Session session)
                                                        throws javax.jms.JMSException
Create a temp queue or topic for synchronous receipt of responses, when a reply destination is not specified

Parameters:
session - the JMS Session to use
Returns:
a temporary Queue or Topic, depending on the session
Throws:
javax.jms.JMSException

getBodyLength

public static long getBodyLength(javax.jms.BytesMessage bMsg)
Return the body length in bytes for a bytes message

Parameters:
bMsg - the JMS BytesMessage
Returns:
length of body in bytes

getMessageSize

public static long getMessageSize(javax.jms.Message message)
                           throws javax.jms.JMSException
Get the length of the message in bytes

Parameters:
message -
Returns:
message size (or approximation) in bytes
Throws:
javax.jms.JMSException

lookup

public static <T> T lookup(javax.naming.Context context,
                           java.lang.Class<T> clazz,
                           java.lang.String name)
                throws javax.naming.NamingException
Throws:
javax.naming.NamingException

createConnection

public static javax.jms.Connection createConnection(javax.jms.ConnectionFactory conFac,
                                                    java.lang.String user,
                                                    java.lang.String pass,
                                                    boolean jmsSpec11,
                                                    java.lang.Boolean isQueue)
                                             throws javax.jms.JMSException
This is a JMS spec independent method to create a Connection. Please be cautious when making any changes

Parameters:
conFac - the ConnectionFactory to use
user - optional user name
pass - optional password
jmsSpec11 - should we use JMS 1.1 API ?
isQueue - is this to deal with a Queue?
Returns:
a JMS Connection as requested
Throws:
javax.jms.JMSException - on errors, to be handled and logged by the caller

createSession

public static javax.jms.Session createSession(javax.jms.Connection connection,
                                              boolean transacted,
                                              int ackMode,
                                              boolean jmsSpec11,
                                              java.lang.Boolean isQueue)
                                       throws javax.jms.JMSException
This is a JMS spec independent method to create a Session. Please be cautious when making any changes

Parameters:
connection - the JMS Connection
transacted - should the session be transacted?
ackMode - the ACK mode for the session
jmsSpec11 - should we use the JMS 1.1 API?
isQueue - is this Session to deal with a Queue?
Returns:
a Session created for the given information
Throws:
javax.jms.JMSException - on errors, to be handled and logged by the caller

createConsumer

public static javax.jms.MessageConsumer createConsumer(javax.jms.Session session,
                                                       javax.jms.Destination destination,
                                                       java.lang.Boolean isQueue,
                                                       java.lang.String subscriberName,
                                                       java.lang.String messageSelector,
                                                       boolean pubSubNoLocal,
                                                       boolean isDurable,
                                                       boolean jmsSpec11)
                                                throws javax.jms.JMSException
This is a JMS spec independent method to create a MessageConsumer. Please be cautious when making any changes

Parameters:
session - JMS session
destination - the Destination
isQueue - is the Destination a queue?
subscriberName - optional client name to use for a durable subscription to a topic
messageSelector - optional message selector
pubSubNoLocal - should we receive messages sent by us during pub-sub?
isDurable - is this a durable topic subscription?
jmsSpec11 - should we use JMS 1.1 API ?
Returns:
a MessageConsumer to receive messages
Throws:
javax.jms.JMSException - on errors, to be handled and logged by the caller

createProducer

public static javax.jms.MessageProducer createProducer(javax.jms.Session session,
                                                       javax.jms.Destination destination,
                                                       java.lang.Boolean isQueue,
                                                       boolean jmsSpec11)
                                                throws javax.jms.JMSException
This is a JMS spec independent method to create a MessageProducer. Please be cautious when making any changes

Parameters:
session - JMS session
destination - the Destination
isQueue - is the Destination a queue?
jmsSpec11 - should we use JMS 1.1 API ?
Returns:
a MessageProducer to send messages to the given Destination
Throws:
javax.jms.JMSException - on errors, to be handled and logged by the caller

getDestinationTypeAsString

public static java.lang.String getDestinationTypeAsString(int destType)
Return a String representation of the destination type

Parameters:
destType - the destination type indicator int
Returns:
a descriptive String

lookupDestination

public static javax.jms.Destination lookupDestination(javax.naming.Context context,
                                                      java.lang.String destinationName,
                                                      java.lang.String destinationType)
                                               throws javax.naming.NamingException
Return the JMS destination with the given destination name looked up from the context

Parameters:
context - the Context to lookup
destinationName - name of the destination to be looked up
destinationType - type of the destination to be looked up
Returns:
the JMS destination, or null if it does not exist
Throws:
javax.naming.NamingException


Copyright © 2004-2009 The Apache Software Foundation. All Rights Reserved.