INT-1257, changed convinience method to MessageHistory.containsComponent(string), added/modified tests in XML, WS, JMS to validate MessageHistory
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.integration.jms.config;
|
||||
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
@@ -27,6 +28,7 @@ import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.core.PollableChannel;
|
||||
import org.springframework.integration.history.MessageHistory;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
@@ -41,6 +43,8 @@ public class JmsInboundChannelAdapterParserTests {
|
||||
"jmsInboundWithJmsTemplate.xml", this.getClass());
|
||||
PollableChannel output = (PollableChannel) context.getBean("output");
|
||||
Message<?> message = output.receive(timeoutOnReceive);
|
||||
MessageHistory history = MessageHistory.read(message);
|
||||
assertTrue(history.containsComponent("inboundAdapter"));
|
||||
assertNotNull("message should not be null", message);
|
||||
assertEquals("polling-test", message.getPayload());
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ import org.springframework.beans.factory.BeanDefinitionStoreException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.core.PollableChannel;
|
||||
import org.springframework.integration.history.HistoryWritingMessagePostProcessor;
|
||||
import org.springframework.integration.history.MessageHistory;
|
||||
import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
|
||||
import org.springframework.jms.connection.JmsTransactionManager;
|
||||
import org.springframework.jms.listener.AbstractMessageListenerContainer;
|
||||
@@ -49,6 +51,8 @@ public class JmsInboundGatewayParserTests {
|
||||
assertEquals(JmsMessageDrivenEndpoint.class, gateway.getClass());
|
||||
context.start();
|
||||
Message<?> message = channel.receive(3000);
|
||||
MessageHistory history = MessageHistory.read(message);
|
||||
assertTrue(history.containsComponent("jmsGateway"));
|
||||
assertNotNull("message should not be null", message);
|
||||
assertEquals("message-driven-test", message.getPayload());
|
||||
context.stop();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.integration.jms.config;
|
||||
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
@@ -25,6 +26,7 @@ import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.core.PollableChannel;
|
||||
import org.springframework.integration.history.MessageHistory;
|
||||
import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
|
||||
import org.springframework.jms.support.destination.JmsDestinationAccessor;
|
||||
|
||||
@@ -41,6 +43,8 @@ public class JmsMessageDrivenChannelAdapterParserTests {
|
||||
"jmsInboundWithMessageSelector.xml", this.getClass());
|
||||
PollableChannel output = (PollableChannel) context.getBean("output2");
|
||||
Message<?> message = output.receive(timeoutOnReceive);
|
||||
MessageHistory history = MessageHistory.read(message);
|
||||
assertTrue(history.containsComponent("messageDrivenAdapter"));
|
||||
assertNotNull("message should not be null", message);
|
||||
assertEquals("test [with selector: TestProperty = 'foo']", message.getPayload());
|
||||
}
|
||||
|
||||
@@ -17,12 +17,23 @@ package org.springframework.integration.jms.config;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.MessageChannel;
|
||||
import org.springframework.integration.MessagingException;
|
||||
import org.springframework.integration.core.MessageHandler;
|
||||
import org.springframework.integration.core.MessagingTemplate;
|
||||
import org.springframework.integration.core.SubscribableChannel;
|
||||
import org.springframework.integration.endpoint.EventDrivenConsumer;
|
||||
import org.springframework.integration.endpoint.PollingConsumer;
|
||||
import org.springframework.integration.history.MessageHistory;
|
||||
import org.springframework.integration.jms.JmsOutboundGateway;
|
||||
import org.springframework.integration.jms.StubMessageConverter;
|
||||
import org.springframework.jms.support.converter.MessageConverter;
|
||||
@@ -57,16 +68,26 @@ public class JmsOutboundGatewayParserTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void gatewayMaintainsReplyChannel() {
|
||||
public void gatewayMaintainsReplyChannelAndInboundHistory() {
|
||||
ActiveMqTestUtils.prepare();
|
||||
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"gatewayMaintainsReplyChannel.xml", this.getClass());
|
||||
SampleGateway gateway = context.getBean("gateway", SampleGateway.class);
|
||||
SubscribableChannel jmsInput = context.getBean("jmsInput", SubscribableChannel.class);
|
||||
MessageHandler handler = new MessageHandler() {
|
||||
public void handleMessage(Message<?> message) throws MessagingException {
|
||||
MessageHistory history = MessageHistory.read(message);
|
||||
assertTrue(history.containsComponent("inboundGateway"));
|
||||
new MessagingTemplate((MessageChannel) message.getHeaders().getReplyChannel()).send(message);
|
||||
}
|
||||
};
|
||||
handler = spy(handler);
|
||||
jmsInput.subscribe(handler);
|
||||
String result = gateway.echo("hello");
|
||||
assertEquals("HELLO", result);
|
||||
verify(handler, times(1)).handleMessage(Mockito.any(Message.class));
|
||||
assertEquals("hello", result);
|
||||
}
|
||||
|
||||
|
||||
public static interface SampleGateway{
|
||||
public String echo(String value);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.0.xsd"
|
||||
xmlns:int="http://www.springframework.org/schema/integration"
|
||||
xmlns:int-jms="http://www.springframework.org/schema/integration/jms">
|
||||
|
||||
<int:message-history/>
|
||||
|
||||
<int:gateway id="gateway"
|
||||
service-interface="org.springframework.integration.jms.config.JmsOutboundGatewayParserTests$SampleGateway"
|
||||
@@ -13,14 +15,17 @@
|
||||
<int:method name="echo">
|
||||
<int:header name="foo" value="bar"/>
|
||||
</int:method>
|
||||
<int:method name="echoAsMaessage">
|
||||
<int:header name="foo" value="bar"/>
|
||||
</int:method>
|
||||
</int:gateway>
|
||||
|
||||
<int:chain input-channel="requests">
|
||||
<int-jms:outbound-gateway request-destination="requestQueueA"
|
||||
reply-destination="replyQueueB"
|
||||
connection-factory="connectionFactory"
|
||||
receive-timeout="10000"
|
||||
reply-timeout="20000"/>
|
||||
receive-timeout="100000"
|
||||
reply-timeout="200000"/>
|
||||
</int:chain>
|
||||
|
||||
|
||||
@@ -44,11 +49,11 @@
|
||||
<property name="cacheProducers" value="false"/>
|
||||
</bean>
|
||||
|
||||
<int-jms:inbound-gateway request-channel="jmsInput" request-destination="requestQueueA"/>
|
||||
<int-jms:inbound-gateway id="inboundGateway" request-channel="jmsInput" request-destination="requestQueueA"/>
|
||||
|
||||
<int:channel id="jmsInput"/>
|
||||
|
||||
<int:service-activator input-channel="jmsInput">
|
||||
<bean class="org.springframework.integration.jms.config.JmsOutboundGatewayParserTests$SampleService"/>
|
||||
</int:service-activator>
|
||||
<!-- <int:service-activator input-channel="jmsInput">-->
|
||||
<!-- <bean class="org.springframework.integration.jms.config.JmsOutboundGatewayParserTests$SampleService"/>-->
|
||||
<!-- </int:service-activator>-->
|
||||
</beans>
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
http://www.springframework.org/schema/integration/jms
|
||||
http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
|
||||
|
||||
<si:message-history/>
|
||||
|
||||
<si:channel id="requestChannel">
|
||||
<si:queue/>
|
||||
</si:channel>
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
http://www.springframework.org/schema/integration/jms
|
||||
http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
|
||||
|
||||
<jms:inbound-channel-adapter jms-template="jmsTemplate" channel="output"/>
|
||||
<integration:message-history/>
|
||||
|
||||
<jms:inbound-channel-adapter id="inboundAdapter" jms-template="jmsTemplate" channel="output"/>
|
||||
|
||||
<integration:channel id="output">
|
||||
<integration:queue capacity="1"/>
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
http://www.springframework.org/schema/integration/jms
|
||||
http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd">
|
||||
|
||||
<si:message-history/>
|
||||
|
||||
<si:channel id="output1">
|
||||
<si:queue capacity="1"/>
|
||||
</si:channel>
|
||||
|
||||
Reference in New Issue
Block a user