Added support for a 'destinationResolver' property reference for the inbound JMS Channel Adapter including namespace support (INT-488).

This commit is contained in:
Mark Fisher
2008-11-22 18:21:03 +00:00
parent 8772fd8169
commit ea5e66c7a4
2 changed files with 11 additions and 2 deletions

View File

@@ -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;
}

View File

@@ -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());
}