INT-1263, more MessageHistory related changes

This commit is contained in:
Oleg Zhurakousky
2010-09-22 22:18:45 -04:00
parent d7e1041ed4
commit 0be4d2ef60
15 changed files with 78 additions and 19 deletions

View File

@@ -88,15 +88,6 @@ public class MessageHistory implements List<Properties> {
return this.components.contains(o); return this.components.contains(o);
} }
public boolean containsComponent(String name) {
for (Properties properties : components) {
if (properties.getProperty("name").equals(name)){
return true;
}
}
return false;
}
public boolean containsAll(Collection<?> c) { public boolean containsAll(Collection<?> c) {
return this.components.containsAll(c); return this.components.containsAll(c);
} }

View File

@@ -117,8 +117,6 @@ public class HttpInboundChannelAdapterParserTests {
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "postOnlyAdapter", 0); Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "postOnlyAdapter", 0);
assertNotNull(componentHistoryRecord); assertNotNull(componentHistoryRecord);
assertEquals("http:inbound-channel-adapter", componentHistoryRecord.get("type")); assertEquals("http:inbound-channel-adapter", componentHistoryRecord.get("type"));
//System.out.println(componentHistoryRecord);
assertTrue(history.containsComponent("postOnlyAdapter"));
assertNotNull(message); assertNotNull(message);
assertEquals("test", message.getPayload()); assertEquals("test", message.getPayload());
} }

View File

@@ -189,4 +189,7 @@ public class TcpOutboundGateway extends AbstractReplyProducingMessageHandler
public void setReplyChannel(MessageChannel replyChannel) { public void setReplyChannel(MessageChannel replyChannel) {
this.setOutputChannel(replyChannel); this.setOutputChannel(replyChannel);
} }
public String getComponentType(){
return "ip:tcp-outbound-gateway";
}
} }

View File

@@ -85,4 +85,7 @@ public class TcpReceivingChannelAdapter
return false; return false;
} }
public String getComponentType(){
return "ip:tcp-inbound-channel-adapter";
}
} }

View File

@@ -161,4 +161,7 @@ public class TcpSendingMessageHandler extends AbstractMessageHandler implements
public void removeDeadConnection(TcpConnection connection) { public void removeDeadConnection(TcpConnection connection) {
connections.remove(connection.getConnectionId()); connections.remove(connection.getConnectionId());
} }
public String getComponentType(){
return "ip:tcp-outbound-channel-adapter";
}
} }

View File

@@ -342,4 +342,8 @@ public class UnicastSendingMessageHandler extends
public void setTaskExecutor(Executor taskExecutor) { public void setTaskExecutor(Executor taskExecutor) {
this.taskExecutor = taskExecutor; this.taskExecutor = taskExecutor;
} }
public String getComponentType(){
return "ip:udp-outbound-channel-adapter";
}
} }

View File

@@ -154,6 +154,8 @@ public class ParserUnitTests {
assertEquals(30, dfa.getPropertyValue("soReceiveBufferSize")); assertEquals(30, dfa.getPropertyValue("soReceiveBufferSize"));
assertEquals(31, dfa.getPropertyValue("soSendBufferSize")); assertEquals(31, dfa.getPropertyValue("soSendBufferSize"));
assertEquals(32, dfa.getPropertyValue("soTimeout")); assertEquals(32, dfa.getPropertyValue("soTimeout"));
assertEquals("testInUdp",udpIn.getComponentName());
assertEquals("ip:udp-inbound-channel-adapter", udpIn.getComponentType());
assertEquals("127.0.0.1", dfa.getPropertyValue("localAddress")); assertEquals("127.0.0.1", dfa.getPropertyValue("localAddress"));
assertSame(taskExecutor, dfa.getPropertyValue("taskExecutor")); assertSame(taskExecutor, dfa.getPropertyValue("taskExecutor"));
} }
@@ -176,6 +178,8 @@ public class ParserUnitTests {
public void testInTcp() { public void testInTcp() {
DirectFieldAccessor dfa = new DirectFieldAccessor(tcpIn); DirectFieldAccessor dfa = new DirectFieldAccessor(tcpIn);
assertSame(cfS1, dfa.getPropertyValue("serverConnectionFactory")); assertSame(cfS1, dfa.getPropertyValue("serverConnectionFactory"));
assertEquals("testInTcp",tcpIn.getComponentName());
assertEquals("ip:tcp-inbound-channel-adapter", tcpIn.getComponentType());
} }
@Test @Test
@@ -197,6 +201,8 @@ public class ParserUnitTests {
assertEquals(54, dfa.getPropertyValue("soTimeout")); assertEquals(54, dfa.getPropertyValue("soTimeout"));
assertEquals("127.0.0.1", dfa.getPropertyValue("localAddress")); assertEquals("127.0.0.1", dfa.getPropertyValue("localAddress"));
assertSame(taskExecutor, dfa.getPropertyValue("taskExecutor")); assertSame(taskExecutor, dfa.getPropertyValue("taskExecutor"));
assertEquals("testOutUdp",udpOut.getComponentName());
assertEquals("ip:udp-outbound-channel-adapter", udpOut.getComponentType());
} }
@Test @Test
@@ -223,6 +229,8 @@ public class ParserUnitTests {
public void testOutTcp() { public void testOutTcp() {
DirectFieldAccessor dfa = new DirectFieldAccessor(tcpOut); DirectFieldAccessor dfa = new DirectFieldAccessor(tcpOut);
assertSame(cfC1, dfa.getPropertyValue("clientConnectionFactory")); assertSame(cfC1, dfa.getPropertyValue("clientConnectionFactory"));
assertEquals("testOutTcpNio",tcpOut.getComponentName());
assertEquals("ip:tcp-outbound-channel-adapter", tcpOut.getComponentType());
} }
@Test @Test
@@ -230,6 +238,8 @@ public class ParserUnitTests {
DirectFieldAccessor dfa = new DirectFieldAccessor(tcpInboundGateway); DirectFieldAccessor dfa = new DirectFieldAccessor(tcpInboundGateway);
assertSame(cfS2, dfa.getPropertyValue("connectionFactory")); assertSame(cfS2, dfa.getPropertyValue("connectionFactory"));
assertEquals(456L, dfa.getPropertyValue("replyTimeout")); assertEquals(456L, dfa.getPropertyValue("replyTimeout"));
assertEquals("inGateway",tcpInboundGateway.getComponentName());
assertEquals("ip:tcp-inbound-gateway", tcpInboundGateway.getComponentType());
} }
@Test @Test
@@ -238,6 +248,8 @@ public class ParserUnitTests {
assertSame(cfC2, dfa.getPropertyValue("connectionFactory")); assertSame(cfC2, dfa.getPropertyValue("connectionFactory"));
assertEquals(234L, dfa.getPropertyValue("requestTimeout")); assertEquals(234L, dfa.getPropertyValue("requestTimeout"));
assertEquals(567L, dfa.getPropertyValue("replyTimeout")); assertEquals(567L, dfa.getPropertyValue("replyTimeout"));
assertEquals("outGateway",tcpOutboundGateway.getComponentName());
assertEquals("ip:tcp-outbound-gateway", tcpOutboundGateway.getComponentType());
} }
@Test @Test

View File

@@ -21,6 +21,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import java.util.Properties;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -32,6 +34,7 @@ import org.springframework.integration.MessageChannel;
import org.springframework.integration.channel.QueueChannel; import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.history.MessageHistory; import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.support.MessageBuilder; import org.springframework.integration.support.MessageBuilder;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -74,7 +77,10 @@ public class SharedConnectionTests {
QueueChannel replies = ctx.getBean("replies", QueueChannel.class); QueueChannel replies = ctx.getBean("replies", QueueChannel.class);
Message<?> message = replies.receive(10000); Message<?> message = replies.receive(10000);
MessageHistory history = MessageHistory.read(message); MessageHistory history = MessageHistory.read(message);
assertTrue(history.containsComponent("inboundClient")); assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "inboundClient", 0);
assertNotNull(componentHistoryRecord);
assertEquals("ip:tcp-inbound-channel-adapter", componentHistoryRecord.getProperty("type"));
assertNotNull(message); assertNotNull(message);
assertEquals("Test", message.getPayload()); assertEquals("Test", message.getPayload());
} }

View File

@@ -57,5 +57,9 @@
<version>5.3.0</version> <version>5.3.0</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-test</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -50,6 +50,7 @@ public class ChannelPublishingJmsMessageListener extends MessagingGatewaySupport
implements SessionAwareMessageListener<javax.jms.Message>, InitializingBean { implements SessionAwareMessageListener<javax.jms.Message>, InitializingBean {
private volatile boolean expectReply; private volatile boolean expectReply;
private volatile String componentType = "jms:inbound-gateway";
private volatile MessageConverter messageConverter = new SimpleMessageConverter(); private volatile MessageConverter messageConverter = new SimpleMessageConverter();
@@ -72,9 +73,11 @@ public class ChannelPublishingJmsMessageListener extends MessagingGatewaySupport
private volatile JmsHeaderMapper headerMapper = new DefaultJmsHeaderMapper(); private volatile JmsHeaderMapper headerMapper = new DefaultJmsHeaderMapper();
public String getComponentType(){ public String getComponentType(){
return "jms:inbound-gateway"; return componentType;
}
void setComponentType(String componentType){
this.componentType = componentType;
} }
/** /**
* Specify whether a JMS reply Message is expected. * Specify whether a JMS reply Message is expected.
*/ */

View File

@@ -54,6 +54,7 @@ public class JmsMessageDrivenEndpoint extends AbstractEndpoint implements Dispos
this.listenerContainer.afterPropertiesSet(); this.listenerContainer.afterPropertiesSet();
} }
listener.setComponentName(this.getComponentName()); listener.setComponentName(this.getComponentName());
listener.setComponentType("jms:message-driven-channel-adapter");
} }
@Override @Override
@@ -75,4 +76,8 @@ public class JmsMessageDrivenEndpoint extends AbstractEndpoint implements Dispos
this.listenerContainer.destroy(); this.listenerContainer.destroy();
} }
public String getComponetType(){
return "jms:message-driven-channel-adapter";
}
} }

View File

@@ -20,6 +20,8 @@ import static junit.framework.Assert.assertTrue;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import java.util.Properties;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.BeanCreationException; import org.springframework.beans.factory.BeanCreationException;
@@ -29,6 +31,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.Message; import org.springframework.integration.Message;
import org.springframework.integration.core.PollableChannel; import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.history.MessageHistory; import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.test.util.TestUtils;
/** /**
* @author Mark Fisher * @author Mark Fisher
@@ -44,7 +47,10 @@ public class JmsInboundChannelAdapterParserTests {
PollableChannel output = (PollableChannel) context.getBean("output"); PollableChannel output = (PollableChannel) context.getBean("output");
Message<?> message = output.receive(timeoutOnReceive); Message<?> message = output.receive(timeoutOnReceive);
MessageHistory history = MessageHistory.read(message); MessageHistory history = MessageHistory.read(message);
assertTrue(history.containsComponent("inboundAdapter")); assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "inboundAdapter", 0);
assertNotNull(componentHistoryRecord);
assertEquals("jms:inbound-channel-adapter", componentHistoryRecord.get("type"));
assertNotNull("message should not be null", message); assertNotNull("message should not be null", message);
assertEquals("polling-test", message.getPayload()); assertEquals("polling-test", message.getPayload());
} }

View File

@@ -21,6 +21,8 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import java.util.Properties;
import javax.jms.DeliveryMode; import javax.jms.DeliveryMode;
import org.junit.Test; import org.junit.Test;
@@ -33,6 +35,7 @@ import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.history.HistoryWritingMessagePostProcessor; import org.springframework.integration.history.HistoryWritingMessagePostProcessor;
import org.springframework.integration.history.MessageHistory; import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.jms.JmsMessageDrivenEndpoint; import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.jms.connection.JmsTransactionManager; import org.springframework.jms.connection.JmsTransactionManager;
import org.springframework.jms.listener.AbstractMessageListenerContainer; import org.springframework.jms.listener.AbstractMessageListenerContainer;
import org.springframework.jms.support.destination.JmsDestinationAccessor; import org.springframework.jms.support.destination.JmsDestinationAccessor;
@@ -52,7 +55,10 @@ public class JmsInboundGatewayParserTests {
context.start(); context.start();
Message<?> message = channel.receive(3000); Message<?> message = channel.receive(3000);
MessageHistory history = MessageHistory.read(message); MessageHistory history = MessageHistory.read(message);
assertTrue(history.containsComponent("jmsGateway")); assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "jmsGateway", 0);
assertNotNull(componentHistoryRecord);
assertEquals("jms:inbound-gateway", componentHistoryRecord.get("type"));
assertNotNull("message should not be null", message); assertNotNull("message should not be null", message);
assertEquals("message-driven-test", message.getPayload()); assertEquals("message-driven-test", message.getPayload());
context.stop(); context.stop();

View File

@@ -20,6 +20,8 @@ import static junit.framework.Assert.assertTrue;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import java.util.Properties;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.DirectFieldAccessor;
@@ -28,6 +30,7 @@ import org.springframework.integration.Message;
import org.springframework.integration.core.PollableChannel; import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.history.MessageHistory; import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.jms.JmsMessageDrivenEndpoint; import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.jms.support.destination.JmsDestinationAccessor; import org.springframework.jms.support.destination.JmsDestinationAccessor;
/** /**
@@ -35,7 +38,7 @@ import org.springframework.jms.support.destination.JmsDestinationAccessor;
*/ */
public class JmsMessageDrivenChannelAdapterParserTests { public class JmsMessageDrivenChannelAdapterParserTests {
long timeoutOnReceive = 3000; long timeoutOnReceive = 300000;
@Test @Test
public void adapterWithMessageSelector() { public void adapterWithMessageSelector() {
@@ -44,7 +47,12 @@ public class JmsMessageDrivenChannelAdapterParserTests {
PollableChannel output = (PollableChannel) context.getBean("output2"); PollableChannel output = (PollableChannel) context.getBean("output2");
Message<?> message = output.receive(timeoutOnReceive); Message<?> message = output.receive(timeoutOnReceive);
MessageHistory history = MessageHistory.read(message); MessageHistory history = MessageHistory.read(message);
assertTrue(history.containsComponent("messageDrivenAdapter")); assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "messageDrivenAdapter", 0);
assertNotNull(componentHistoryRecord);
JmsMessageDrivenEndpoint o = context.getBean("messageDrivenAdapter", JmsMessageDrivenEndpoint.class);
System.out.println(o.getComponentType());
assertEquals("jms:message-driven-channel-adapter", componentHistoryRecord.get("type"));
assertNotNull("message should not be null", message); assertNotNull("message should not be null", message);
assertEquals("test [with selector: TestProperty = 'foo']", message.getPayload()); assertEquals("test [with selector: TestProperty = 'foo']", message.getPayload());
} }

View File

@@ -16,11 +16,14 @@
package org.springframework.integration.jms.config; package org.springframework.integration.jms.config;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import java.util.Properties;
import org.junit.Test; import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.DirectFieldAccessor;
@@ -36,6 +39,7 @@ import org.springframework.integration.endpoint.PollingConsumer;
import org.springframework.integration.history.MessageHistory; import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.jms.JmsOutboundGateway; import org.springframework.integration.jms.JmsOutboundGateway;
import org.springframework.integration.jms.StubMessageConverter; import org.springframework.integration.jms.StubMessageConverter;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.jms.support.converter.MessageConverter; import org.springframework.jms.support.converter.MessageConverter;
/** /**
@@ -77,7 +81,10 @@ public class JmsOutboundGatewayParserTests {
MessageHandler handler = new MessageHandler() { MessageHandler handler = new MessageHandler() {
public void handleMessage(Message<?> message) throws MessagingException { public void handleMessage(Message<?> message) throws MessagingException {
MessageHistory history = MessageHistory.read(message); MessageHistory history = MessageHistory.read(message);
assertTrue(history.containsComponent("inboundGateway")); assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "inboundGateway", 0);
assertNotNull(componentHistoryRecord);
assertEquals("jms:inbound-gateway", componentHistoryRecord.get("type"));
new MessagingTemplate((MessageChannel) message.getHeaders().getReplyChannel()).send(message); new MessagingTemplate((MessageChannel) message.getHeaders().getReplyChannel()).send(message);
} }
}; };