Added support for a 'destinationResolver' property reference for the inbound JMS Channel Adapter including namespace support (INT-488).
This commit is contained in:
@@ -21,6 +21,7 @@ import javax.jms.Destination;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.jms.core.JmsTemplate;
|
||||
import org.springframework.jms.support.destination.DestinationResolver;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@@ -36,6 +37,8 @@ public abstract class AbstractJmsTemplateBasedAdapter implements InitializingBea
|
||||
|
||||
private volatile String destinationName;
|
||||
|
||||
private volatile DestinationResolver destinationResolver;
|
||||
|
||||
private volatile JmsTemplate jmsTemplate;
|
||||
|
||||
private volatile JmsHeaderMapper headerMapper;
|
||||
@@ -52,13 +55,11 @@ public abstract class AbstractJmsTemplateBasedAdapter implements InitializingBea
|
||||
public AbstractJmsTemplateBasedAdapter(ConnectionFactory connectionFactory, Destination destination) {
|
||||
this.connectionFactory = connectionFactory;
|
||||
this.destination = destination;
|
||||
this.jmsTemplate = createDefaultJmsTemplate();
|
||||
}
|
||||
|
||||
public AbstractJmsTemplateBasedAdapter(ConnectionFactory connectionFactory, String destinationName) {
|
||||
this.connectionFactory = connectionFactory;
|
||||
this.destinationName = destinationName;
|
||||
this.jmsTemplate = createDefaultJmsTemplate();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,6 +82,10 @@ public abstract class AbstractJmsTemplateBasedAdapter implements InitializingBea
|
||||
this.destinationName = destinationName;
|
||||
}
|
||||
|
||||
public void setDestinationResolver(DestinationResolver destinationResolver) {
|
||||
this.destinationResolver = destinationResolver;
|
||||
}
|
||||
|
||||
public void setJmsTemplate(JmsTemplate jmsTemplate) {
|
||||
this.jmsTemplate = jmsTemplate;
|
||||
}
|
||||
@@ -122,6 +127,9 @@ public abstract class AbstractJmsTemplateBasedAdapter implements InitializingBea
|
||||
else {
|
||||
jmsTemplate.setDefaultDestinationName(this.destinationName);
|
||||
}
|
||||
if (this.destinationResolver != null) {
|
||||
jmsTemplate.setDestinationResolver(this.destinationResolver);
|
||||
}
|
||||
return jmsTemplate;
|
||||
}
|
||||
|
||||
|
||||
@@ -79,6 +79,7 @@ public class JmsInboundChannelAdapterParser extends AbstractPollingInboundChanne
|
||||
builder.addPropertyReference(JmsAdapterParserUtils.HEADER_MAPPER_PROPERTY, headerMapper);
|
||||
}
|
||||
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "extract-payload");
|
||||
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "destination-resolver");
|
||||
return BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(), parserContext.getRegistry());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user