This commit is contained in:
Jonas Partner
2008-10-23 10:00:45 +00:00
parent 8c997381c7
commit aaec86a88c
7 changed files with 161 additions and 2 deletions

View File

@@ -46,7 +46,7 @@ public class JmsOutboundGateway extends AbstractReplyProducingMessageConsumer im
private volatile Queue jmsQueue;
private volatile MessageConverter messageConverter;
private volatile MessageConverter messageConverter = new HeaderMappingMessageConverter(new SimpleMessageConverter());
private final JmsTemplate jmsTemplate = new JmsTemplate();
@@ -63,10 +63,14 @@ public class JmsOutboundGateway extends AbstractReplyProducingMessageConsumer im
this.setOutputChannel(replyChannel);
}
public void setMessageConverter(MessageConverter messageConverter) {
Assert.notNull(messageConverter, "'messageConverter' must not be null");
this.messageConverter = messageConverter;
}
public void afterPropertiesSet() {
this.jmsTemplate.afterPropertiesSet();
Assert.notNull(this.jmsQueue, "jmsQueue must not be null");
this.messageConverter = new HeaderMappingMessageConverter(new SimpleMessageConverter());
}
@Override

View File

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.xml.AbstractConsumerEndpointParser;
import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
import org.springframework.integration.jms.JmsOutboundGateway;
import org.springframework.util.StringUtils;
/**
* Parser for the <outbound-gateway> element of the integration 'jms' namespace.
@@ -42,6 +43,7 @@ public class JmsOutboundGatewayParser extends AbstractConsumerEndpointParser {
builder.addPropertyReference("connectionFactory", element.getAttribute("connection-factory"));
builder.addPropertyReference("jmsQueue", element.getAttribute("jms-queue"));
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "reply-channel");
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "message-converter");
return builder;
}

View File

@@ -76,6 +76,7 @@
<xsd:attribute name="reply-timeout" type="xsd:long"/>
<xsd:attribute name="jms-queue" type="xsd:string" use="required"/>
<xsd:attribute name="connection-factory" type="xsd:string" default="connectionFactory"/>
<xsd:attribute name="message-converter" type="xsd:string"/>
</xsd:complexType>
</xsd:element>