/** * Factory method for creating a new template for InOnly message exchanges */ public JmsOperations createInOnlyTemplate() { return configuration.createInOnlyTemplate(this, pubSubDomain, destinationName); }
public JmsOperations getMetadataJmsOperations(JmsEndpoint endpoint) { if (metadataJmsOperations == null) { metadataJmsOperations = getJmsOperations(); if (metadataJmsOperations == null) { metadataJmsOperations = createInOnlyTemplate(endpoint, false, null); } } return metadataJmsOperations; }
public List<Exchange> getExchanges() { if (queueBrowseStrategy == null) { return Collections.emptyList(); } String queue = getDestinationName(); JmsOperations template = getConfiguration().createInOnlyTemplate(this, false, queue); return queueBrowseStrategy.browse(template, queue, this); }
/** * Creates a {@link JmsOperations} object used for request/response using a request timeout value */ public JmsOperations createInOutTemplate(JmsEndpoint endpoint, boolean pubSubDomain, String destination, long requestTimeout) { JmsOperations answer = createInOnlyTemplate(endpoint, pubSubDomain, destination); if (answer instanceof JmsTemplate && requestTimeout > 0) { JmsTemplate jmsTemplate = (JmsTemplate) answer; jmsTemplate.setExplicitQosEnabled(true); // prefer to use timeToLive over requestTimeout if both specified long ttl = timeToLive > 0 ? timeToLive : requestTimeout; if (ttl > 0 && !isDisableTimeToLive()) { // only use TTL if not disabled jmsTemplate.setTimeToLive(ttl); } jmsTemplate.setSessionTransacted(isTransactedInOut()); if (isTransactedInOut()) { jmsTemplate.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED); } else { if (acknowledgementMode >= 0) { jmsTemplate.setSessionAcknowledgeMode(acknowledgementMode); } else if (acknowledgementModeName != null) { jmsTemplate.setSessionAcknowledgeModeName(acknowledgementModeName); } else { // default to AUTO jmsTemplate.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE); } } } return answer; }