*/
public static JmsTemplate createJmsTemplate(JMSConfiguration jmsConfig, JMSMessageHeadersType headers) {
if (jmsConfig.getJmsTemplate() != null) {
return jmsConfig.getJmsTemplate();
}
JmsTemplate jmsTemplate = jmsConfig.isUseJms11() ? new JmsTemplate() : new JmsTemplate102();
jmsTemplate.setConnectionFactory(jmsConfig.getOrCreateWrappedConnectionFactory());
jmsTemplate.setPubSubDomain(jmsConfig.isPubSubDomain());
if (jmsConfig.getReceiveTimeout() != null) {
jmsTemplate.setReceiveTimeout(jmsConfig.getReceiveTimeout());
}
jmsTemplate.setTimeToLive(jmsConfig.getTimeToLive());
int priority = (headers != null && headers.isSetJMSPriority())
? headers.getJMSPriority() : jmsConfig.getPriority();
jmsTemplate.setPriority(priority);
int deliveryMode = (headers != null && headers.isSetJMSDeliveryMode()) ? headers
.getJMSDeliveryMode() : jmsConfig.getDeliveryMode();
jmsTemplate.setDeliveryMode(deliveryMode);
jmsTemplate.setExplicitQosEnabled(jmsConfig.isExplicitQosEnabled());
jmsTemplate.setSessionTransacted(jmsConfig.isSessionTransacted());
if (jmsConfig.getDestinationResolver() != null) {
jmsTemplate.setDestinationResolver(jmsConfig.getDestinationResolver());
}
return jmsTemplate;
}