org.springframework.jms.connection
Class JmsTransactionManager102

java.lang.Object
  extended by org.springframework.transaction.support.AbstractPlatformTransactionManager
      extended by org.springframework.jms.connection.JmsTransactionManager
          extended by org.springframework.jms.connection.JmsTransactionManager102
All Implemented Interfaces:
Serializable, PlatformTransactionManager

public class JmsTransactionManager102
extends JmsTransactionManager

A subclass of JmsTransactionManager that uses the JMS 1.0.2 specification, rather than the JMS 1.1 methods used by JmsTransactionManager itself. This class can be used for JMS 1.0.2 providers, offering the same API as JmsTransactionManager does for JMS 1.1 providers.

You need to set the pubSubDomain property accordingly, as this class will always create either QueueConnections/QueueSessions or TopicConnections/TopicSessions.

Since:
1.1
Author:
Juergen Hoeller
See Also:
JmsTransactionManager.setConnectionFactory(javax.jms.ConnectionFactory), setPubSubDomain(boolean), Serialized Form

Field Summary
 
Fields inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
 
Constructor Summary
JmsTransactionManager102()
          Create a new JmsTransactionManager102 for bean-style usage.
JmsTransactionManager102(ConnectionFactory connectionFactory, boolean pubSubDomain)
          Create a new JmsTransactionManager102, given a ConnectionFactory.
 
Method Summary
 void afterPropertiesSet()
          In addition to checking if the connection factory is set, make sure that the supplied connection factory is of the appropriate type for the specified destination type: QueueConnectionFactory for queues, and TopicConnectionFactory for topics.
protected  Connection createConnection()
          This implementation overrides the superclass method to use JMS 1.0.2 API.
protected  Session createSession(Connection con)
          This implementation overrides the superclass method to use JMS 1.0.2 API.
 boolean isPubSubDomain()
          Return whether the Publish/Subscribe domain (Topics) is used.
 void setPubSubDomain(boolean pubSubDomain)
          Configure the JmsTransactionManager102 with knowledge of the JMS domain used.
 
Methods inherited from class org.springframework.jms.connection.JmsTransactionManager
doBegin, doCleanupAfterCompletion, doCommit, doGetTransaction, doResume, doRollback, doSetRollbackOnly, doSuspend, getConnectionFactory, isExistingTransaction, setConnectionFactory
 
Methods inherited from class org.springframework.transaction.support.AbstractPlatformTransactionManager
commit, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, registerAfterCompletionWithExistingTransaction, rollback, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionSynchronization, setTransactionSynchronizationName, shouldCommitOnGlobalRollbackOnly, useSavepointForNestedTransaction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JmsTransactionManager102

public JmsTransactionManager102()
Create a new JmsTransactionManager102 for bean-style usage.

Note: The ConnectionFactory has to be set before using the instance. This constructor can be used to prepare a JmsTemplate via a BeanFactory, typically setting the ConnectionFactory via setConnectionFactory.

See Also:
JmsTransactionManager.setConnectionFactory(javax.jms.ConnectionFactory)

JmsTransactionManager102

public JmsTransactionManager102(ConnectionFactory connectionFactory,
                                boolean pubSubDomain)
Create a new JmsTransactionManager102, given a ConnectionFactory.

Parameters:
connectionFactory - the ConnectionFactory to manage transactions for
pubSubDomain - whether the Publish/Subscribe domain (Topics) or Point-to-Point domain (Queues) should be used
See Also:
setPubSubDomain(boolean)
Method Detail

setPubSubDomain

public void setPubSubDomain(boolean pubSubDomain)
Configure the JmsTransactionManager102 with knowledge of the JMS domain used. This tells the JMS 1.0.2 provider which class hierarchy to use for creating Connections and Sessions. Default is Point-to-Point (Queues).

Parameters:
pubSubDomain - true for Publish/Subscribe domain (Topics), false for Point-to-Point domain (Queues)

isPubSubDomain

public boolean isPubSubDomain()
Return whether the Publish/Subscribe domain (Topics) is used. Otherwise, the Point-to-Point domain (Queues) is used.


afterPropertiesSet

public void afterPropertiesSet()
In addition to checking if the connection factory is set, make sure that the supplied connection factory is of the appropriate type for the specified destination type: QueueConnectionFactory for queues, and TopicConnectionFactory for topics.

Overrides:
afterPropertiesSet in class JmsTransactionManager

createConnection

protected Connection createConnection()
                               throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.

Overrides:
createConnection in class JmsTransactionManager
Returns:
the new JMS Connection
Throws:
JMSException - if thrown by JMS API methods

createSession

protected Session createSession(Connection con)
                         throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.

Overrides:
createSession in class JmsTransactionManager
Parameters:
con - the JMS Connection to create a Session for
Returns:
the new JMS Session
Throws:
JMSException - if thrown by JMS API methods


Copyright (c) 2002-2007 The Spring Framework Project.