org.springframework.jms.core

Class JmsTemplate102

Implemented Interfaces:
InitializingBean, JmsOperations

public class JmsTemplate102
extends JmsTemplate

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

You must specify the domain or style of messaging to be either Point-to-Point (Queues) or Publish/Subscribe (Topics), using the "pubSubDomain" property. Point-to-Point (Queues) is the default domain.

The "pubSubDomain" property is an important setting due to the use of similar but seperate class hierarchies in the JMS 1.0.2 API. JMS 1.1 provides a new domain-independent API that allows for easy mix-and-match use of Point-to-Point and Publish/Subscribe domain.

This template uses a DynamicDestinationResolver and a SimpleMessageConverter102 as default strategies for resolving a destination name or converting a message, respectively.

Since:
1.1
See Also:
JmsTemplate102, JmsTemplate102, JmsTemplate, DynamicDestinationResolver, SimpleMessageConverter102, Queue, Topic, QueueSession, TopicSession, QueueSender, TopicPublisher, QueueReceiver, TopicSubscriber

Field Summary

Fields inherited from class org.springframework.jms.core.JmsTemplate

DEFAULT_RECEIVE_TIMEOUT

Fields inherited from class org.springframework.jms.support.JmsAccessor

logger

Constructor Summary

JmsTemplate102()
Create a new JmsTemplate102 for bean-style usage.
JmsTemplate102(ConnectionFactory connectionFactory, boolean pubSubDomain)
Create a new JmsTemplate102, 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 MessageConsumer
createConsumer(Session session, Destination destination, String messageSelector)
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.
protected MessageProducer
doCreateProducer(Session session, Destination destination)
This implementation overrides the superclass method to use JMS 1.0.2 API.
protected void
doSend(MessageProducer producer, Message message)
This implementation overrides the superclass method to use JMS 1.0.2 API.
protected void
initDefaultStrategies()
Initialize the default implementations for the template's strategies: DynamicDestinationResolver and SimpleMessageConverter102.
protected boolean
isClientAcknowledge(Session session)
This implementation overrides the superclass method to avoid using JMS 1.1's Session getAcknowledgeMode() method.

Methods inherited from class org.springframework.jms.core.JmsTemplate

convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, convertAndSend, createConnection, createConsumer, createProducer, createSession, doConvertFromMessage, doCreateProducer, doReceive, doReceive, doSend, doSend, execute, execute, execute, getDefaultDestination, getDefaultDestinationName, getDeliveryMode, getMessageConverter, getPriority, getReceiveTimeout, getTimeToLive, initDefaultStrategies, isClientAcknowledge, isExplicitQosEnabled, isMessageIdEnabled, isMessageTimestampEnabled, isPubSubNoLocal, receive, receive, receive, receiveAndConvert, receiveAndConvert, receiveAndConvert, receiveSelected, receiveSelected, receiveSelected, receiveSelectedAndConvert, receiveSelectedAndConvert, receiveSelectedAndConvert, send, send, send, setDefaultDestination, setDefaultDestinationName, setDeliveryMode, setDeliveryPersistent, setExplicitQosEnabled, setMessageConverter, setMessageIdEnabled, setMessageTimestampEnabled, setPriority, setPubSubNoLocal, setReceiveTimeout, setTimeToLive

Methods inherited from class org.springframework.jms.support.destination.JmsDestinationAccessor

getDestinationResolver, isPubSubDomain, resolveDestinationName, setDestinationResolver, setPubSubDomain

Methods inherited from class org.springframework.jms.support.JmsAccessor

afterPropertiesSet, convertJmsAccessException, getConnectionFactory, getSessionAcknowledgeMode, isSessionTransacted, setConnectionFactory, setSessionAcknowledgeMode, setSessionAcknowledgeModeName, setSessionTransacted

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

JmsTemplate102

public JmsTemplate102()
Create a new JmsTemplate102 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:
JmsTemplate102

JmsTemplate102

public JmsTemplate102(ConnectionFactory connectionFactory,
                      boolean pubSubDomain)
Create a new JmsTemplate102, given a ConnectionFactory.
Parameters:
connectionFactory - the ConnectionFactory to obtain connections from
pubSubDomain - whether the Publish/Subscribe domain (Topics) or Point-to-Point domain (Queues) should be used
See Also:
JmsTemplate102
Usages and Demos :

View More Examples of JmsTemplate102(ConnectionFactory connectionFactory,boolean pubSubDomain)
   1:         TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
   2:         JmsTemplate jt = new JmsTemplate102(cf, false);
   3:         jt.execute(new SessionCallback() {
   4:         ...
   5:         TransactionStatus ts = tm.getTransaction(new DefaultTransactionDefinition());
   6:         JmsTemplate jt = new JmsTemplate102(cf, true);
   7:         jt.execute(new SessionCallback() {
   8:             public Object doInJms(Session sess) {
   9:                 assertTrue(sess == session);

View Full Code Here

Method Details

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.
Specified by:
afterPropertiesSet in interface InitializingBean
Overrides:
afterPropertiesSet in interface JmsAccessor

createConnection

protected Connection createConnection()
            throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.
Overrides:
createConnection in interface JmsTemplate

createConsumer

protected MessageConsumer createConsumer(Session session,
                                         Destination destination,
                                         String messageSelector)
            throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.
Overrides:
createConsumer in interface JmsTemplate

createSession

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

doCreateProducer

protected MessageProducer doCreateProducer(Session session,
                                           Destination destination)
            throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.
Overrides:
doCreateProducer in interface JmsTemplate

doSend

protected void doSend(MessageProducer producer,
                      Message message)
            throws JMSException
This implementation overrides the superclass method to use JMS 1.0.2 API.
Overrides:
doSend in interface JmsTemplate

initDefaultStrategies

protected void initDefaultStrategies()
Initialize the default implementations for the template's strategies: DynamicDestinationResolver and SimpleMessageConverter102.
Overrides:
initDefaultStrategies in interface JmsTemplate
See Also:
JmsTemplate102, JmsTemplate102, DynamicDestinationResolver, SimpleMessageConverter102

isClientAcknowledge

protected boolean isClientAcknowledge(Session session)
            throws JMSException
This implementation overrides the superclass method to avoid using JMS 1.1's Session getAcknowledgeMode() method. The best we can do here is to check the setting on the template.
Overrides:
isClientAcknowledge in interface JmsTemplate