Added 'taskAdviceChain' and 'dispatchAdviceChain' to PollingSourceEndpoint.

This commit is contained in:
Mark Fisher
2008-04-24 19:57:27 +00:00
parent 467e0f803d
commit cfb0d7e2fd
12 changed files with 451 additions and 159 deletions

View File

@@ -25,7 +25,8 @@ import org.junit.Test;
import org.springframework.integration.channel.DispatcherPolicy;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.dispatcher.PollingDispatcher;
import org.springframework.integration.dispatcher.DefaultPollingDispatcher;
import org.springframework.integration.dispatcher.PollingDispatcherTask;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.StringMessage;
@@ -63,12 +64,12 @@ public class ByteStreamTargetAdapterTests {
DispatcherPolicy dispatcherPolicy = new DispatcherPolicy();
dispatcherPolicy.setMaxMessagesPerTask(3);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result = stream.toByteArray();
assertEquals(9, result.length);
assertEquals(1, result[0]);
@@ -82,12 +83,12 @@ public class ByteStreamTargetAdapterTests {
DispatcherPolicy dispatcherPolicy = new DispatcherPolicy();
dispatcherPolicy.setMaxMessagesPerTask(2);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result = stream.toByteArray();
assertEquals(6, result.length);
assertEquals(1, result[0]);
@@ -101,12 +102,12 @@ public class ByteStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(5);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result = stream.toByteArray();
assertEquals(9, result.length);
assertEquals(1, result[0]);
@@ -120,16 +121,16 @@ public class ByteStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(2);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result1 = stream.toByteArray();
assertEquals(6, result1.length);
assertEquals(1, result1[0]);
dispatcher.run();
task.run();
byte[] result2 = stream.toByteArray();
assertEquals(9, result2.length);
assertEquals(1, result2[0]);
@@ -144,16 +145,16 @@ public class ByteStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(5);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result1 = stream.toByteArray();
assertEquals(9, result1.length);
assertEquals(1, result1[0]);
dispatcher.run();
task.run();
byte[] result2 = stream.toByteArray();
assertEquals(9, result2.length);
assertEquals(1, result2[0]);
@@ -167,16 +168,16 @@ public class ByteStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(2);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result1 = stream.toByteArray();
assertEquals(6, result1.length);
stream.reset();
dispatcher.run();
task.run();
byte[] result2 = stream.toByteArray();
assertEquals(3, result2.length);
assertEquals(7, result2[0]);
@@ -190,17 +191,17 @@ public class ByteStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(2);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new GenericMessage<byte[]>(new byte[] {1,2,3}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {4,5,6}), 0);
channel.send(new GenericMessage<byte[]>(new byte[] {7,8,9}), 0);
dispatcher.run();
task.run();
byte[] result1 = stream.toByteArray();
assertEquals(6, result1.length);
stream.write(new byte[] {123});
stream.flush();
dispatcher.run();
task.run();
byte[] result2 = stream.toByteArray();
assertEquals(10, result2.length);
assertEquals(1, result2[0]);

View File

@@ -25,7 +25,8 @@ import org.junit.Test;
import org.springframework.integration.channel.DispatcherPolicy;
import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.dispatcher.PollingDispatcher;
import org.springframework.integration.dispatcher.DefaultPollingDispatcher;
import org.springframework.integration.dispatcher.PollingDispatcherTask;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.StringMessage;
@@ -47,13 +48,13 @@ public class CharacterStreamTargetAdapterTests {
MessageChannel channel = new QueueChannel();
StringWriter writer = new StringWriter();
CharacterStreamTargetAdapter adapter = new CharacterStreamTargetAdapter(writer);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
task.run();
assertEquals("foo", writer.toString());
dispatcher.run();
task.run();
assertEquals("foobar", writer.toString());
}
@@ -63,14 +64,14 @@ public class CharacterStreamTargetAdapterTests {
StringWriter writer = new StringWriter();
CharacterStreamTargetAdapter adapter = new CharacterStreamTargetAdapter(writer);
adapter.setShouldAppendNewLine(true);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
task.run();
String newLine = System.getProperty("line.separator");
assertEquals("foo" + newLine, writer.toString());
dispatcher.run();
task.run();
assertEquals("foo" + newLine + "bar" + newLine, writer.toString());
}
@@ -81,11 +82,11 @@ public class CharacterStreamTargetAdapterTests {
DispatcherPolicy dispatcherPolicy = new DispatcherPolicy();
dispatcherPolicy.setMaxMessagesPerTask(2);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
task.run();
assertEquals("foobar", writer.toString());
}
@@ -97,12 +98,12 @@ public class CharacterStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(10);
dispatcherPolicy.setReceiveTimeout(0);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
adapter.setShouldAppendNewLine(true);
dispatcher.subscribe(adapter);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
task.run();
String newLine = System.getProperty("line.separator");
assertEquals("foo" + newLine + "bar" + newLine, writer.toString());
}
@@ -112,11 +113,11 @@ public class CharacterStreamTargetAdapterTests {
MessageChannel channel = new QueueChannel();
StringWriter writer = new StringWriter();
CharacterStreamTargetAdapter adapter = new CharacterStreamTargetAdapter(writer);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
TestObject testObject = new TestObject("foo");
channel.send(new GenericMessage<TestObject>(testObject));
dispatcher.run();
task.run();
assertEquals("foo", writer.toString());
}
@@ -128,13 +129,13 @@ public class CharacterStreamTargetAdapterTests {
dispatcherPolicy.setReceiveTimeout(0);
dispatcherPolicy.setMaxMessagesPerTask(2);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
TestObject testObject1 = new TestObject("foo");
TestObject testObject2 = new TestObject("bar");
channel.send(new GenericMessage<TestObject>(testObject1), 0);
channel.send(new GenericMessage<TestObject>(testObject2), 0);
dispatcher.run();
task.run();
assertEquals("foobar", writer.toString());
}
@@ -147,13 +148,13 @@ public class CharacterStreamTargetAdapterTests {
dispatcherPolicy.setMaxMessagesPerTask(2);
QueueChannel channel = new QueueChannel(5, dispatcherPolicy);
adapter.setShouldAppendNewLine(true);
PollingDispatcher dispatcher = new PollingDispatcher(channel, null);
dispatcher.subscribe(adapter);
PollingDispatcherTask task = new PollingDispatcherTask(new DefaultPollingDispatcher(channel), null);
task.getDispatcher().subscribe(adapter);
TestObject testObject1 = new TestObject("foo");
TestObject testObject2 = new TestObject("bar");
channel.send(new GenericMessage<TestObject>(testObject1), 0);
channel.send(new GenericMessage<TestObject>(testObject2), 0);
dispatcher.run();
task.run();
String newLine = System.getProperty("line.separator");
assertEquals("foo" + newLine + "bar" + newLine, writer.toString());
}