Straight JmsMessagingTemplate setup based on JMS ConnectionFactory
Issue: SPR-12413
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.jms.core;
|
||||
|
||||
import java.util.Map;
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.jms.Destination;
|
||||
import javax.jms.JMSException;
|
||||
import javax.jms.Session;
|
||||
@@ -39,6 +40,7 @@ import org.springframework.util.Assert;
|
||||
* An implementation of {@link JmsMessageOperations}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @author Juergen Hoeller
|
||||
* @since 4.1
|
||||
*/
|
||||
public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
@@ -53,13 +55,22 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
|
||||
/**
|
||||
* Constructor for use with bean properties.
|
||||
* Requires {@link #setJmsTemplate} to be called.
|
||||
* Requires {@link #setConnectionFactory} or {@link #setJmsTemplate} to be called.
|
||||
*/
|
||||
public JmsMessagingTemplate() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance with the {@link JmsTemplate} to use.
|
||||
* Create a {@code JmsMessagingTemplate} instance with the JMS {@link ConnectionFactory}
|
||||
* to use, implicitly building a {@link JmsTemplate} based on it.
|
||||
* @since 4.1.2
|
||||
*/
|
||||
public JmsMessagingTemplate(ConnectionFactory connectionFactory) {
|
||||
this.jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a {@code JmsMessagingTemplate} instance with the {@link JmsTemplate} to use.
|
||||
*/
|
||||
public JmsMessagingTemplate(JmsTemplate jmsTemplate) {
|
||||
Assert.notNull("JmsTemplate must not be null");
|
||||
@@ -67,6 +78,27 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the ConnectionFactory to use for the underlying {@link JmsTemplate}.
|
||||
* @since 4.1.2
|
||||
*/
|
||||
public void setConnectionFactory(ConnectionFactory connectionFactory) {
|
||||
if (this.jmsTemplate != null) {
|
||||
this.jmsTemplate.setConnectionFactory(connectionFactory);
|
||||
}
|
||||
else {
|
||||
this.jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ConnectionFactory that the underlying {@link JmsTemplate} uses.
|
||||
* @since 4.1.2
|
||||
*/
|
||||
public ConnectionFactory getConnectionFactory() {
|
||||
return (this.jmsTemplate != null ? this.jmsTemplate.getConnectionFactory() : null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@link JmsTemplate} to use.
|
||||
*/
|
||||
@@ -92,6 +124,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
* @see org.springframework.jms.support.converter.MessagingMessageConverter
|
||||
*/
|
||||
public void setJmsMessageConverter(MessageConverter jmsMessageConverter) {
|
||||
Assert.notNull(jmsMessageConverter, "MessageConverter must not be null");
|
||||
this.jmsMessageConverter = jmsMessageConverter;
|
||||
}
|
||||
|
||||
@@ -122,8 +155,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination>
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
Assert.notNull(getJmsTemplate(), "Property 'jmsTemplate' is required");
|
||||
Assert.notNull(getJmsMessageConverter(), "Property 'jmsMessageConverter' is required");
|
||||
Assert.notNull(getJmsTemplate(), "Property 'connectionFactory' or 'jmsTemplate' is required");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user