|
|
|
@ -17,6 +17,7 @@ |
|
|
|
package org.springframework.jms.core; |
|
|
|
package org.springframework.jms.core; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
import javax.jms.ConnectionFactory; |
|
|
|
import javax.jms.Destination; |
|
|
|
import javax.jms.Destination; |
|
|
|
import javax.jms.JMSException; |
|
|
|
import javax.jms.JMSException; |
|
|
|
import javax.jms.Session; |
|
|
|
import javax.jms.Session; |
|
|
|
@ -39,6 +40,7 @@ import org.springframework.util.Assert; |
|
|
|
* An implementation of {@link JmsMessageOperations}. |
|
|
|
* An implementation of {@link JmsMessageOperations}. |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Stephane Nicoll |
|
|
|
* @author Stephane Nicoll |
|
|
|
|
|
|
|
* @author Juergen Hoeller |
|
|
|
* @since 4.1 |
|
|
|
* @since 4.1 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination> |
|
|
|
public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination> |
|
|
|
@ -53,13 +55,22 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination> |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Constructor for use with bean properties. |
|
|
|
* Constructor for use with bean properties. |
|
|
|
* Requires {@link #setJmsTemplate} to be called. |
|
|
|
* Requires {@link #setConnectionFactory} or {@link #setJmsTemplate} to be called. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public JmsMessagingTemplate() { |
|
|
|
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) { |
|
|
|
public JmsMessagingTemplate(JmsTemplate jmsTemplate) { |
|
|
|
Assert.notNull("JmsTemplate must not be null"); |
|
|
|
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. |
|
|
|
* Set the {@link JmsTemplate} to use. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ -92,6 +124,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination> |
|
|
|
* @see org.springframework.jms.support.converter.MessagingMessageConverter |
|
|
|
* @see org.springframework.jms.support.converter.MessagingMessageConverter |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public void setJmsMessageConverter(MessageConverter jmsMessageConverter) { |
|
|
|
public void setJmsMessageConverter(MessageConverter jmsMessageConverter) { |
|
|
|
|
|
|
|
Assert.notNull(jmsMessageConverter, "MessageConverter must not be null"); |
|
|
|
this.jmsMessageConverter = jmsMessageConverter; |
|
|
|
this.jmsMessageConverter = jmsMessageConverter; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -122,8 +155,7 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate<Destination> |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void afterPropertiesSet() { |
|
|
|
public void afterPropertiesSet() { |
|
|
|
Assert.notNull(getJmsTemplate(), "Property 'jmsTemplate' is required"); |
|
|
|
Assert.notNull(getJmsTemplate(), "Property 'connectionFactory' or 'jmsTemplate' is required"); |
|
|
|
Assert.notNull(getJmsMessageConverter(), "Property 'jmsMessageConverter' is required"); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|