Split MessageSource types into 2 sub-interfaces: PollableSource and SubscribableSource. The MessageChannel hierarchy has also been revised accordingly. DirectChannel and PublishSubscribeChannel are now SubscribableSources, while the other queue-based channels are PollableSources. The PollableChannel interface extends BlockingSource which in turn is an extension of PollableSource that adds timeout-aware methods.

This commit is contained in:
Mark Fisher
2008-07-30 20:48:00 +00:00
parent 759b5f6d0e
commit fa58dc9457
77 changed files with 422 additions and 497 deletions

View File

@@ -10,12 +10,12 @@
<bean id="messageChannel"
class="org.springframework.integration.channel.QueueChannel" />
<si:message-bus error-channel="errors" />
<si:channel id="inputOne" />
<si:channel id="inputTwo" />
<si:channel id="outputOne" />
<si:channel id="outputTwo" />

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,65 +19,66 @@ package org.springframework.integration.xml.config;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.w3c.dom.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.channel.PollableChannel;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.xml.util.XmlTestUtil;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.w3c.dom.Document;
/**
* @author Jonas Partner
*/
@ContextConfiguration
public class XPathRouterParserTests extends AbstractJUnit4SpringContextTests{
@Autowired @Qualifier("inputOne")
MessageChannel inputOne;
@Autowired @Qualifier("inputTwo")
MessageChannel inputTwo;
@Autowired @Qualifier("outputOne")
MessageChannel outputOne;
PollableChannel outputOne;
@Autowired @Qualifier("outputTwo")
MessageChannel outputTwo;
PollableChannel outputTwo;
@Autowired @Qualifier("errors")
MessageChannel errors;
PollableChannel errors;
@SuppressWarnings("unchecked")
@Test
public void testOutputOne() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<name>outputOne</name>");
Document doc = XmlTestUtil.getDocumentForString("<name>outputOne</name>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputOne.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>)outputOne.receive(1000);
GenericMessage<Document> received = (GenericMessage<Document>) outputOne.receive(1000);
assertNotNull("Did not recevie message from outputOne", received);
}
@SuppressWarnings("unchecked")
@Test
public void testOutputTwo() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<name>outputTwo</name>");
Document doc = XmlTestUtil.getDocumentForString("<name>outputTwo</name>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputOne.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>)outputTwo.receive(1000);
GenericMessage<Document> received = (GenericMessage<Document>) outputTwo.receive(1000);
assertNotNull("Did not recevie message from two", received);
}
@SuppressWarnings("unchecked")
@Test
public void testOutputThree() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<name>outputThree</name>");
Document doc = XmlTestUtil.getDocumentForString("<name>outputThree</name>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputOne.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>)errors.receive(1000);
GenericMessage<Document> received = (GenericMessage<Document>) errors.receive(1000);
assertNotNull("Did not recevie message on errors", received);
}
@@ -85,32 +86,31 @@ public class XPathRouterParserTests extends AbstractJUnit4SpringContextTests{
@SuppressWarnings("unchecked")
@Test
public void testOutputOneMulti() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<name>outputOne</name>");
Document doc = XmlTestUtil.getDocumentForString("<name>outputOne</name>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputTwo.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>)outputOne.receive(1000);
GenericMessage<Document> received = (GenericMessage<Document>) outputOne.receive(1000);
assertNotNull("Did not recevie message from outputOne", received);
}
@SuppressWarnings("unchecked")
@Test
public void testOutputOneAndTwoMulti() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<doc><name>outputOne</name><name>outputTwo</name></doc>");
Document doc = XmlTestUtil.getDocumentForString("<doc><name>outputOne</name><name>outputTwo</name></doc>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputTwo.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>)outputTwo.receive(1000);
GenericMessage<Document> received = (GenericMessage<Document>) outputTwo.receive(1000);
assertNotNull("Did not recevie message from two", received);
}
@SuppressWarnings("unchecked")
@Test
public void testOutputThreeMulti() throws Exception{
Document doc =XmlTestUtil.getDocumentForString("<name>outputThree</name>");
Document doc = XmlTestUtil.getDocumentForString("<name>outputThree</name>");
GenericMessage<Document> docMessage = new GenericMessage<Document>(doc);
inputTwo.send(docMessage);
GenericMessage<Document> received = (GenericMessage<Document>) errors.receive(1000);
assertNotNull("Did not recevie message on errors", received);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,13 @@
* limitations under the License.
*/
package org.springframework.integration.router;
package org.springframework.integration.xml.router;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.w3c.dom.Document;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.MessagingException;
import org.springframework.integration.message.StringMessage;
@@ -26,12 +28,9 @@ import org.springframework.integration.xml.router.XPathMultiChannelNameResolver;
import org.springframework.integration.xml.util.XmlTestUtil;
import org.springframework.xml.xpath.XPathExpression;
import org.springframework.xml.xpath.XPathExpressionFactory;
import org.w3c.dom.Document;
/**
*
/**
* @author Jonas Partner
*
*/
public class XPathMultiChannelNameResolverTests {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,13 @@
* limitations under the License.
*/
package org.springframework.integration.router;
package org.springframework.integration.xml.router;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.w3c.dom.Document;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.MessagingException;
import org.springframework.integration.message.StringMessage;
@@ -26,12 +28,9 @@ import org.springframework.integration.xml.router.XPathSingleChannelNameResolver
import org.springframework.integration.xml.util.XmlTestUtil;
import org.springframework.xml.xpath.XPathExpression;
import org.springframework.xml.xpath.XPathExpressionFactory;
import org.w3c.dom.Document;
/**
*
* @author Jonas Partner
*
*/
public class XPathSingleChannelNameResolverTests {