INT-1257, INT-1263 Refactoring Message History (work in progress): Removed MessageHistoryWriter. Added MessageHistory.

This commit is contained in:
Mark Fisher
2010-08-25 19:25:26 +00:00
parent 85eaa2688f
commit 1c8da6f251
12 changed files with 293 additions and 142 deletions

View File

@@ -27,8 +27,8 @@ import javax.jms.Session;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.integration.Message;
import org.springframework.integration.context.MessageHistoryWriter;
import org.springframework.integration.core.MessageBuilder;
import org.springframework.integration.core.MessageHistory;
import org.springframework.integration.gateway.AbstractMessagingGateway;
import org.springframework.jms.listener.SessionAwareMessageListener;
import org.springframework.jms.support.converter.MessageConverter;
@@ -223,7 +223,7 @@ public class ChannelPublishingJmsMessageListener extends AbstractMessagingGatewa
Message<?> requestMessage = (object instanceof Message<?>) ?
MessageBuilder.fromMessage((Message<?>) object).copyHeaders(headers).build() :
MessageBuilder.withPayload(object).copyHeaders(headers).build();
requestMessage = MessageHistoryWriter.writeHistory(this, requestMessage);
requestMessage = MessageHistory.addComponentToHistory(requestMessage, this);
if (!this.expectReply) {
this.send(requestMessage);
}

View File

@@ -23,8 +23,8 @@ import javax.jms.Destination;
import org.springframework.integration.Message;
import org.springframework.integration.MessagingException;
import org.springframework.integration.context.MessageHistoryWriter;
import org.springframework.integration.core.MessageBuilder;
import org.springframework.integration.core.MessageHistory;
import org.springframework.integration.core.MessageSource;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.support.converter.MessageConverter;
@@ -88,7 +88,7 @@ public class JmsDestinationPollingSource extends AbstractJmsTemplateBasedAdapter
MessageBuilder<Object> builder = (convertedObject instanceof Message)
? MessageBuilder.fromMessage((Message<Object>) convertedObject) : MessageBuilder.withPayload(convertedObject);
convertedMessage = builder.copyHeadersIfAbsent(mappedHeaders).build();
convertedMessage = MessageHistoryWriter.writeHistory(this, convertedMessage);
convertedMessage = MessageHistory.addComponentToHistory(convertedMessage, this);
}
catch (Exception e) {
throw new MessagingException(e.getMessage(), e);

View File

@@ -20,8 +20,8 @@ import javax.jms.JMSException;
import org.springframework.core.Ordered;
import org.springframework.integration.Message;
import org.springframework.integration.context.MessageHistoryWriter;
import org.springframework.integration.core.MessageHandler;
import org.springframework.integration.core.MessageHistory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessagePostProcessor;
@@ -63,7 +63,7 @@ public class JmsSendingMessageHandler extends AbstractJmsTemplateBasedAdapter im
if (message == null) {
throw new IllegalArgumentException("message must not be null");
}
final Message<?> messageToSend = MessageHistoryWriter.writeHistory(this, message);
final Message<?> messageToSend = MessageHistory.addComponentToHistory(message, this);
this.getJmsTemplate().convertAndSend(messageToSend, new MessagePostProcessor() {
public javax.jms.Message postProcessMessage(javax.jms.Message jmsMessage)
throws JMSException {

View File

@@ -35,10 +35,10 @@ import org.springframework.integration.Message;
import org.springframework.integration.MessageHeaders;
import org.springframework.integration.MessagingException;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.context.MessageHistoryWriter;
import org.springframework.integration.context.NamedComponent;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.core.MessageHandler;
import org.springframework.integration.core.MessageHistory;
import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.core.StringMessage;
import org.springframework.integration.core.SubscribableChannel;
@@ -61,11 +61,11 @@ public class JmsMessageHistoryTests {
Message<?> message = jmsInputChannel.receive(5000);
Iterator<Properties> historyIterator = message.getHeaders().getHistory().iterator();
Properties event = historyIterator.next();
assertEquals("jms:inbound-channel-adapter", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("sampleJmsInboundAdapter", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("jms:inbound-channel-adapter", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("sampleJmsInboundAdapter", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("channel", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("jmsInputChannel", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("jmsInputChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
}
@Test @Ignore
@@ -78,17 +78,17 @@ public class JmsMessageHistoryTests {
Message<?> message = jmsInputChannel.receive(50000);
Iterator<Properties> historyIterator = message.getHeaders().getHistory().iterator();
Properties event = historyIterator.next();
assertEquals("channel", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("outbound-channel", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("outbound-channel", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("jms:outbound-channel-adapter", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("jmsOutbound", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("jms:outbound-channel-adapter", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("jmsOutbound", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("jms:inbound-channel-adapter", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("sampleJmsInboundAdapter", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("jms:inbound-channel-adapter", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("sampleJmsInboundAdapter", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("channel", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("jmsInputChannel", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("channel", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("jmsInputChannel", event.getProperty(MessageHistory.NAME_PROPERTY));
}
@Test @Ignore
@@ -101,20 +101,20 @@ public class JmsMessageHistoryTests {
public void handleMessage(Message<?> message) {
Iterator<Properties> historyIterator = message.getHeaders().getHistory().iterator();
Properties event = historyIterator.next();
assertEquals("gateway", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("sampleGateway", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("gateway", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("sampleGateway", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("publish-subscribe-channel", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("channel-a", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("publish-subscribe-channel", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("channel-a", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("jms:outbound-gateway", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("jmsOutbound", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("jms:outbound-gateway", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("jmsOutbound", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("jms:inbound-gateway", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("jmsInbound", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("jms:inbound-gateway", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("jmsInbound", event.getProperty(MessageHistory.NAME_PROPERTY));
event = historyIterator.next();
assertEquals("publish-subscribe-channel", event.getProperty(MessageHistoryWriter.TYPE_PROPERTY));
assertEquals("inbound-jms-channel", event.getProperty(MessageHistoryWriter.NAME_PROPERTY));
assertEquals("publish-subscribe-channel", event.getProperty(MessageHistory.TYPE_PROPERTY));
assertEquals("inbound-jms-channel", event.getProperty(MessageHistory.NAME_PROPERTY));
MessageChannel channel = (MessageChannel) message.getHeaders().getReplyChannel();
channel.send(new StringMessage("OK"));