org.mule.transport.jms
Class JmsConnector

java.lang.Object
  extended by org.mule.transport.AbstractConnector
      extended by org.mule.transport.jms.JmsConnector
All Implemented Interfaces:
ExceptionListener, EventListener, javax.resource.spi.work.WorkListener, org.mule.api.context.MuleContextAware, org.mule.api.context.notification.ConnectionNotificationListener, org.mule.api.context.notification.ServerNotificationListener, org.mule.api.lifecycle.Disposable, org.mule.api.lifecycle.Initialisable, org.mule.api.lifecycle.Lifecycle, org.mule.api.lifecycle.Startable, org.mule.api.lifecycle.Stoppable, org.mule.api.NamedObject, org.mule.api.transport.Connectable, org.mule.api.transport.Connector
Direct Known Subclasses:
ActiveMQJmsConnector, WeblogicJmsConnector, WebsphereJmsConnector

public class JmsConnector
extends org.mule.transport.AbstractConnector
implements org.mule.api.context.notification.ConnectionNotificationListener

JmsConnector is a JMS 1.0.2b compliant connector that can be used by a Mule endpoint. The connector supports all JMS functionality including topics and queues, durable subscribers, acknowledgement modes and local transactions.


Field Summary
static String JMS
           
 String password
           
 String username
           
 
Fields inherited from class org.mule.transport.AbstractConnector
connected, connecting, connectionStrategy, createMultipleTransactedReceivers, DEFAULT_NUM_CONCURRENT_TX_RECEIVERS, dispatcherFactory, dispatchers, disposed, disposing, exceptionListener, initialised, logger, muleContext, name, numberOfConcurrentTransactedReceivers, receivers, requesterFactory, requesters, serviceDescriptor, serviceOverrides, sessionHandler, started, startOnConnect
 
Fields inherited from interface org.mule.api.transport.Connector
INT_VALUE_NOT_SET
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Startable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Stoppable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
JmsConnector()
           
 
Method Summary
 void close(MessageConsumer consumer)
          Closes the MessageConsumer
 void close(MessageProducer producer)
          Closes the MessageProducer
 void close(Session session)
          Closes the MuleSession
 void close(TemporaryQueue tempQueue)
          Closes the TemporaryQueue
 void close(TemporaryTopic tempTopic)
          Closes the TemporaryTopic
 void closeQuietly(MessageConsumer consumer)
          Closes the MessageConsumer without throwing an exception (an error message is logged instead).
 void closeQuietly(MessageProducer producer)
          Closes the MessageProducer without throwing an exception (an error message is logged instead).
 void closeQuietly(Session session)
          Closes the MuleSession without throwing an exception (an error message is logged instead).
 void closeQuietly(TemporaryQueue tempQueue)
          Closes the TemporaryQueue without throwing an exception (an error message is logged instead).
 void closeQuietly(TemporaryTopic tempTopic)
          Closes the TemporaryTopic without throwing an exception (an error message is logged instead).
protected  Connection createConnection()
           
protected  void doConnect()
           
protected  void doDisconnect()
           
protected  void doDispose()
           
protected  void doInitialise()
           
protected  void doStart()
           
protected  void doStop()
           
 int getAcknowledgementMode()
           
 String getClientId()
           
 Connection getConnection()
           
 ConnectionFactory getConnectionFactory()
           
protected  ConnectionFactory getDefaultConnectionFactory()
          Override this method to provide a default ConnectionFactory for a vendor-specific JMS Connector.
 JmsSupport getJmsSupport()
           
 int getMaxRedelivery()
           
 org.mule.api.transport.MessageAdapter getMessageAdapter(Object message)
           
 String getPassword()
           
 String getProtocol()
           
protected  Object getReceiverKey(org.mule.api.service.Service service, org.mule.api.endpoint.ImmutableEndpoint endpoint)
           
 RedeliveryHandler getRedeliveryHandler()
           
 org.mule.api.transport.ReplyToHandler getReplyToHandler()
           
 Session getSession(boolean transacted, boolean topic)
           
 Session getSession(org.mule.api.endpoint.ImmutableEndpoint endpoint)
           
 Session getSessionFromTransaction()
           
 String getSpecification()
           
 JmsTopicResolver getTopicResolver()
          Getter for property 'topicResolver'.
 String getUsername()
           
 boolean isCacheJmsSessions()
           
 boolean isDurable()
           
 boolean isEagerConsumer()
          Getter for property 'eagerConsumer'.
 boolean isHonorQosHeaders()
          Gets the value of honorQosHeaders property.
 boolean isNoLocal()
           
 boolean isPersistentDelivery()
           
 boolean isRecoverJmsConnections()
           
 boolean isRemoteSyncEnabled()
           
 void onNotification(org.mule.api.context.notification.ServerNotification notification)
           
 Message preProcessMessage(Message message, Session session)
          This method may be overridden in order to apply pre-processing to the message as soon as it arrives.
 void setAcknowledgementMode(int acknowledgementMode)
           
 void setCacheJmsSessions(boolean cacheJmsSessions)
           
 void setClientId(String clientId)
           
protected  void setConnection(Connection connection)
           
 void setConnectionFactory(ConnectionFactory connectionFactory)
           
 void setDurable(boolean durable)
           
 void setEagerConsumer(boolean eagerConsumer)
          A value of true will create a consumer on connect, in contrast to lazy instantiation in the poll loop.
 void setHonorQosHeaders(boolean honorQosHeaders)
          Sets honorQosHeaders property, which determines whether JmsMessageDispatcher should honor incoming message's QoS headers (JMSPriority, JMSDeliveryMode).
 void setJmsSupport(JmsSupport jmsSupport)
           
 void setMaxRedelivery(int maxRedelivery)
           
 void setNoLocal(boolean noLocal)
           
 void setPassword(String password)
           
 void setPersistentDelivery(boolean persistentDelivery)
           
 void setRecoverJmsConnections(boolean recover)
           
 void setRedeliveryHandler(RedeliveryHandler redeliveryHandler)
           
 void setSpecification(String specification)
           
 void setTopicResolver(JmsTopicResolver topicResolver)
          Setter for property 'topicResolver'.
 void setUsername(String username)
           
 boolean supportsProperty(String property)
          This method may be overridden in case a certain JMS implementation does not support all the standard JMS properties.
 
Methods inherited from class org.mule.transport.AbstractConnector
checkDisposed, connect, createReceiver, destroyReceiver, disconnect, dispatch, dispose, disposeDispatchers, disposeReceivers, disposeRequesters, disposeWorkManagers, exceptionThrown, fireNotification, getConnectEventId, getConnectionDescription, getConnectionStrategy, getDefaultInboundTransformers, getDefaultOutboundTransformers, getDefaultResponseTransformers, getDispatcherFactory, getDispatcherThreadingProfile, getDispatcherWorkManager, getExceptionListener, getMaxDispatchersActive, getMaxRequestersActive, getMuleContext, getName, getNumberOfConcurrentTransactedReceivers, getOutputStream, getReceiver, getReceivers, getReceivers, getReceiverThreadingProfile, getReceiverWorkManager, getRequesterFactory, getRequesterThreadingProfile, getRequesterWorkManager, getScheduler, getServiceDescriptor, getServiceOverrides, getSessionHandler, getSupportedProtocols, handleException, handleWorkException, initFromServiceDescriptor, initialise, initialiseFromUrl, initWorkManagers, isConnected, isCreateMultipleTransactedReceivers, isDisposed, isDisposing, isEnableMessageEvents, isStarted, isSyncEnabled, lookupReceiver, registerListener, registerSupportedProtocol, registerSupportedProtocolWithoutPrefix, request, request, send, setConnectionStrategy, setCreateMultipleTransactedReceivers, setDispatcherFactory, setDispatcherThreadingProfile, setDynamicNotification, setExceptionListener, setMaxDispatchersActive, setMaxRequestersActive, setMuleContext, setName, setNumberOfConcurrentTransactedReceivers, setReceiverThreadingProfile, setRequesterFactory, setRequesterThreadingProfile, setServiceOverrides, setSessionHandler, setSupportedProtocols, setupDispatchReturn, setupRequestReturn, start, stop, supportsProtocol, toString, unregisterListener, unregisterSupportedProtocol, updateCachedNotificationHandler, workAccepted, workCompleted, workRejected, workStarted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

JMS

public static final String JMS
See Also:
Constant Field Values

username

public String username

password

public String password
Constructor Detail

JmsConnector

public JmsConnector()
Method Detail

getProtocol

public String getProtocol()
Specified by:
getProtocol in interface org.mule.api.transport.Connector

doInitialise

protected void doInitialise()
                     throws org.mule.api.lifecycle.InitialisationException
Specified by:
doInitialise in class org.mule.transport.AbstractConnector
Throws:
org.mule.api.lifecycle.InitialisationException

getDefaultConnectionFactory

protected ConnectionFactory getDefaultConnectionFactory()
Override this method to provide a default ConnectionFactory for a vendor-specific JMS Connector.


doDispose

protected void doDispose()
Specified by:
doDispose in class org.mule.transport.AbstractConnector

createConnection

protected Connection createConnection()
                               throws NamingException,
                                      JMSException,
                                      org.mule.api.lifecycle.InitialisationException
Throws:
NamingException
JMSException
org.mule.api.lifecycle.InitialisationException

doConnect

protected void doConnect()
                  throws org.mule.transport.ConnectException
Specified by:
doConnect in class org.mule.transport.AbstractConnector
Throws:
org.mule.transport.ConnectException

doDisconnect

protected void doDisconnect()
                     throws org.mule.transport.ConnectException
Specified by:
doDisconnect in class org.mule.transport.AbstractConnector
Throws:
org.mule.transport.ConnectException

getMessageAdapter

public org.mule.api.transport.MessageAdapter getMessageAdapter(Object message)
                                                        throws org.mule.api.MessagingException
Specified by:
getMessageAdapter in interface org.mule.api.transport.Connector
Overrides:
getMessageAdapter in class org.mule.transport.AbstractConnector
Throws:
org.mule.api.MessagingException

getReceiverKey

protected Object getReceiverKey(org.mule.api.service.Service service,
                                org.mule.api.endpoint.ImmutableEndpoint endpoint)
Overrides:
getReceiverKey in class org.mule.transport.AbstractConnector

getSessionFromTransaction

public Session getSessionFromTransaction()

getSession

public Session getSession(org.mule.api.endpoint.ImmutableEndpoint endpoint)
                   throws JMSException
Throws:
JMSException

getSession

public Session getSession(boolean transacted,
                          boolean topic)
                   throws JMSException
Throws:
JMSException

doStart

protected void doStart()
                throws org.mule.api.MuleException
Specified by:
doStart in class org.mule.transport.AbstractConnector
Throws:
org.mule.api.MuleException

doStop

protected void doStop()
               throws org.mule.api.MuleException
Specified by:
doStop in class org.mule.transport.AbstractConnector
Throws:
org.mule.api.MuleException

getReplyToHandler

public org.mule.api.transport.ReplyToHandler getReplyToHandler()
Overrides:
getReplyToHandler in class org.mule.transport.AbstractConnector

onNotification

public void onNotification(org.mule.api.context.notification.ServerNotification notification)
Specified by:
onNotification in interface org.mule.api.context.notification.ServerNotificationListener

supportsProperty

public boolean supportsProperty(String property)
This method may be overridden in case a certain JMS implementation does not support all the standard JMS properties.


preProcessMessage

public Message preProcessMessage(Message message,
                                 Session session)
                          throws Exception
This method may be overridden in order to apply pre-processing to the message as soon as it arrives.

Parameters:
message - - the incoming message
session - - the JMS session
Returns:
the preprocessed message
Throws:
Exception

close

public void close(MessageProducer producer)
           throws JMSException
Closes the MessageProducer

Parameters:
producer -
Throws:
JMSException

closeQuietly

public void closeQuietly(MessageProducer producer)
Closes the MessageProducer without throwing an exception (an error message is logged instead).

Parameters:
producer -

close

public void close(MessageConsumer consumer)
           throws JMSException
Closes the MessageConsumer

Parameters:
consumer -
Throws:
JMSException

closeQuietly

public void closeQuietly(MessageConsumer consumer)
Closes the MessageConsumer without throwing an exception (an error message is logged instead).

Parameters:
consumer -

close

public void close(Session session)
           throws JMSException
Closes the MuleSession

Parameters:
session -
Throws:
JMSException

closeQuietly

public void closeQuietly(Session session)
Closes the MuleSession without throwing an exception (an error message is logged instead).

Parameters:
session -

close

public void close(TemporaryQueue tempQueue)
           throws JMSException
Closes the TemporaryQueue

Parameters:
tempQueue -
Throws:
JMSException

closeQuietly

public void closeQuietly(TemporaryQueue tempQueue)
Closes the TemporaryQueue without throwing an exception (an error message is logged instead).

Parameters:
tempQueue -

close

public void close(TemporaryTopic tempTopic)
           throws JMSException
Closes the TemporaryTopic

Parameters:
tempTopic -
Throws:
JMSException

closeQuietly

public void closeQuietly(TemporaryTopic tempTopic)
Closes the TemporaryTopic without throwing an exception (an error message is logged instead).

Parameters:
tempTopic -

getConnection

public Connection getConnection()
Returns:
Returns the connection.

setConnection

protected void setConnection(Connection connection)

getAcknowledgementMode

public int getAcknowledgementMode()
Returns:
Returns the acknowledgeMode.

setAcknowledgementMode

public void setAcknowledgementMode(int acknowledgementMode)
Parameters:
acknowledgementMode - The acknowledgementMode to set.

isDurable

public boolean isDurable()
Returns:
Returns the durable.

setDurable

public void setDurable(boolean durable)
Parameters:
durable - The durable to set.

isNoLocal

public boolean isNoLocal()
Returns:
Returns the noLocal.

setNoLocal

public void setNoLocal(boolean noLocal)
Parameters:
noLocal - The noLocal to set.

isPersistentDelivery

public boolean isPersistentDelivery()
Returns:
Returns the persistentDelivery.

setPersistentDelivery

public void setPersistentDelivery(boolean persistentDelivery)
Parameters:
persistentDelivery - The persistentDelivery to set.

getJmsSupport

public JmsSupport getJmsSupport()

setJmsSupport

public void setJmsSupport(JmsSupport jmsSupport)

getSpecification

public String getSpecification()

setSpecification

public void setSpecification(String specification)

setRecoverJmsConnections

public void setRecoverJmsConnections(boolean recover)

isRecoverJmsConnections

public boolean isRecoverJmsConnections()

getUsername

public String getUsername()

setUsername

public void setUsername(String username)

getPassword

public String getPassword()

setPassword

public void setPassword(String password)

getClientId

public String getClientId()

setClientId

public void setClientId(String clientId)

getMaxRedelivery

public int getMaxRedelivery()

setMaxRedelivery

public void setMaxRedelivery(int maxRedelivery)

isRemoteSyncEnabled

public boolean isRemoteSyncEnabled()
Specified by:
isRemoteSyncEnabled in interface org.mule.api.transport.Connector
Overrides:
isRemoteSyncEnabled in class org.mule.transport.AbstractConnector

getTopicResolver

public JmsTopicResolver getTopicResolver()
Getter for property 'topicResolver'.

Returns:
Value for property 'topicResolver'.

setTopicResolver

public void setTopicResolver(JmsTopicResolver topicResolver)
Setter for property 'topicResolver'.

Parameters:
topicResolver - Value to set for property 'topicResolver'.

isEagerConsumer

public boolean isEagerConsumer()
Getter for property 'eagerConsumer'. Default is true.

Returns:
Value for property 'eagerConsumer'.
See Also:
eagerConsumer

setEagerConsumer

public void setEagerConsumer(boolean eagerConsumer)
A value of true will create a consumer on connect, in contrast to lazy instantiation in the poll loop. This setting very much depends on the JMS vendor. Affects transactional receivers, typical symptoms are:

Parameters:
eagerConsumer - Value to set for property 'eagerConsumer'.
See Also:
eagerConsumer, XaTransactedJmsMessageReceiver

isCacheJmsSessions

public boolean isCacheJmsSessions()

setCacheJmsSessions

public void setCacheJmsSessions(boolean cacheJmsSessions)

getConnectionFactory

public ConnectionFactory getConnectionFactory()

setConnectionFactory

public void setConnectionFactory(ConnectionFactory connectionFactory)

getRedeliveryHandler

public RedeliveryHandler getRedeliveryHandler()

setRedeliveryHandler

public void setRedeliveryHandler(RedeliveryHandler redeliveryHandler)

setHonorQosHeaders

public void setHonorQosHeaders(boolean honorQosHeaders)
Sets honorQosHeaders property, which determines whether JmsMessageDispatcher should honor incoming message's QoS headers (JMSPriority, JMSDeliveryMode).

Parameters:
honorQosHeaders - true if JmsMessageDispatcher should honor incoming message's QoS headers; otherwise false Default is false, meaning that connector settings will override message headers.

isHonorQosHeaders

public boolean isHonorQosHeaders()
Gets the value of honorQosHeaders property.

Returns:
true if JmsMessageDispatcher should honor incoming message's QoS headers; otherwise false Default is false, meaning that connector settings will override message headers.


Copyright © 2003-2008 MuleSource, Inc.. All Rights Reserved.