Removed EndpointTrigger, EndpointPoller, and EndpointVisitor. MessageBus now schedules PollingDispatchers for endpoints.

This commit is contained in:
Mark Fisher
2008-08-05 01:59:35 +00:00
parent 46b37df03d
commit 9f3e7d3d24
13 changed files with 146 additions and 375 deletions

View File

@@ -23,11 +23,7 @@ import java.io.ByteArrayInputStream;
import org.junit.Test;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.endpoint.SourceEndpoint;
import org.springframework.integration.endpoint.TriggerMessage;
import org.springframework.integration.message.Message;
import org.springframework.integration.scheduling.PollingSchedule;
/**
* @author Mark Fisher
@@ -38,69 +34,48 @@ public class ByteStreamSourceTests {
public void testEndOfStream() {
byte[] bytes = new byte[] {1,2,3};
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
QueueChannel channel = new QueueChannel();
ByteStreamSource source = new ByteStreamSource(stream);
SourceEndpoint endpoint = new SourceEndpoint(source);
endpoint.setTarget(channel);
endpoint.afterPropertiesSet();
endpoint.send(new TriggerMessage());
Message<?> message1 = channel.receive(500);
Message<?> message1 = source.receive();
byte[] payload = (byte[]) message1.getPayload();
assertEquals(3, payload.length);
assertEquals(1, payload[0]);
assertEquals(2, payload[1]);
assertEquals(3, payload[2]);
Message<?> message2 = channel.receive(0);
Message<?> message2 = source.receive();
assertNull(message2);
endpoint.send(new TriggerMessage());
Message<?> message3 = channel.receive(0);
assertNull(message3);
}
@Test
public void testByteArrayIsTruncated() {
byte[] bytes = new byte[] {0,1,2,3,4,5};
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
QueueChannel channel = new QueueChannel();
ByteStreamSource source = new ByteStreamSource(stream);
source.setBytesPerMessage(4);
PollingSchedule schedule = new PollingSchedule(1000);
schedule.setInitialDelay(10000);
SourceEndpoint endpoint = new SourceEndpoint(source);
endpoint.setTarget(channel);
endpoint.afterPropertiesSet();
endpoint.send(new TriggerMessage());
Message<?> message1 = channel.receive(0);
Message<?> message1 = source.receive();
assertEquals(4, ((byte[]) message1.getPayload()).length);
Message<?> message2 = channel.receive(0);
assertNull(message2);
endpoint.send(new TriggerMessage());
Message<?> message3 = channel.receive(0);
assertEquals(2, ((byte[]) message3.getPayload()).length);
Message<?> message2 = source.receive();
assertEquals(2, ((byte[]) message2.getPayload()).length);
Message<?> message3 = source.receive();
assertNull(message3);
}
@Test
public void testByteArrayIsNotTruncated() {
byte[] bytes = new byte[] {0,1,2,3,4,5};
ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
QueueChannel channel = new QueueChannel();
ByteStreamSource source = new ByteStreamSource(stream);
source.setBytesPerMessage(4);
source.setShouldTruncate(false);
PollingSchedule schedule = new PollingSchedule(1000);
schedule.setInitialDelay(10000);
SourceEndpoint endpoint = new SourceEndpoint(source);
endpoint.setTarget(channel);
endpoint.afterPropertiesSet();
endpoint.send(new TriggerMessage());
Message<?> message1 = channel.receive(0);
Message<?> message1 = source.receive();
assertEquals(4, ((byte[]) message1.getPayload()).length);
Message<?> message2 = channel.receive(0);
assertNull(message2);
endpoint.send(new TriggerMessage());
Message<?> message3 = channel.receive(0);
assertEquals(4, ((byte[]) message3.getPayload()).length);
assertEquals(0, ((byte[]) message3.getPayload())[3]);
Message<?> message2 = source.receive();
assertEquals(4, ((byte[]) message2.getPayload()).length);
assertEquals(4, ((byte[]) message2.getPayload())[0]);
assertEquals(5, ((byte[]) message2.getPayload())[1]);
assertEquals(0, ((byte[]) message2.getPayload())[2]);
assertEquals(0, ((byte[]) message2.getPayload())[3]);
Message<?> message3 = source.receive();
assertNull(message3);
}
}

View File

@@ -44,7 +44,7 @@ public class ByteStreamTargetTests {
@Before
public void initialize() {
this.channel = new QueueChannel(10);
this.dispatcher = new PollingDispatcher(channel, new BroadcastingDispatcher(), new PollingSchedule(0));
this.dispatcher = new PollingDispatcher(channel, new PollingSchedule(0), new BroadcastingDispatcher());
}
@@ -74,8 +74,8 @@ public class ByteStreamTargetTests {
public void testMaxMessagesPerTaskSameAsMessageCount() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(3);
dispatcher.addTarget(target);
dispatcher.setMaxMessagesPerPoll(3);
dispatcher.subscribe(target);
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);
@@ -90,8 +90,8 @@ public class ByteStreamTargetTests {
public void testMaxMessagesPerTaskLessThanMessageCount() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.addTarget(target);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.subscribe(target);
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);
@@ -105,9 +105,9 @@ public class ByteStreamTargetTests {
public void testMaxMessagesPerTaskExceedsMessageCount() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(5);
dispatcher.setMaxMessagesPerPoll(5);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
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);
@@ -121,9 +121,9 @@ public class ByteStreamTargetTests {
public void testMaxMessagesLessThanMessageCountWithMultipleDispatches() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
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);
@@ -142,9 +142,9 @@ public class ByteStreamTargetTests {
public void testMaxMessagesExceedsMessageCountWithMultipleDispatches() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(5);
dispatcher.setMaxMessagesPerPoll(5);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
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);
@@ -162,9 +162,9 @@ public class ByteStreamTargetTests {
public void testStreamResetBetweenDispatches() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
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);
@@ -182,9 +182,9 @@ public class ByteStreamTargetTests {
public void testStreamWriteBetweenDispatches() throws IOException {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
ByteStreamTarget target = new ByteStreamTarget(stream);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
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);

View File

@@ -23,11 +23,7 @@ import java.io.StringReader;
import org.junit.Test;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.endpoint.SourceEndpoint;
import org.springframework.integration.endpoint.TriggerMessage;
import org.springframework.integration.message.Message;
import org.springframework.integration.scheduling.PollingSchedule;
/**
* @author Mark Fisher
@@ -37,21 +33,11 @@ public class CharacterStreamSourceTests {
@Test
public void testEndOfStream() {
StringReader reader = new StringReader("test");
QueueChannel channel = new QueueChannel();
CharacterStreamSource source = new CharacterStreamSource(reader);
PollingSchedule schedule = new PollingSchedule(1000);
schedule.setInitialDelay(10000);
SourceEndpoint endpoint = new SourceEndpoint(source);
endpoint.setTarget(channel);
endpoint.afterPropertiesSet();
endpoint.send(new TriggerMessage());
Message<?> message1 = channel.receive(0);
Message<?> message1 = source.receive();
assertEquals("test", message1.getPayload());
Message<?> message2 = channel.receive(0);
Message<?> message2 = source.receive();
assertNull(message2);
endpoint.send(new TriggerMessage());
Message<?> message3 = channel.receive(0);
assertNull(message3);
}
}

View File

@@ -43,7 +43,7 @@ public class CharacterStreamTargetTests {
@Before
public void initialize() {
this.channel = new QueueChannel(10);
this.dispatcher = new PollingDispatcher(channel, new BroadcastingDispatcher(), new PollingSchedule(0));
this.dispatcher = new PollingDispatcher(channel, new PollingSchedule(0), new BroadcastingDispatcher());
}
@@ -59,7 +59,8 @@ public class CharacterStreamTargetTests {
public void testTwoStringsAndNoNewLinesByDefault() {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
dispatcher.setMaxMessagesPerPoll(1);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
@@ -73,7 +74,8 @@ public class CharacterStreamTargetTests {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
target.setShouldAppendNewLine(true);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
dispatcher.setMaxMessagesPerPoll(1);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
@@ -87,8 +89,8 @@ public class CharacterStreamTargetTests {
public void testMaxMessagesPerTaskSameAsMessageCount() {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.addTarget(target);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.subscribe(target);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
dispatcher.run();
@@ -99,9 +101,9 @@ public class CharacterStreamTargetTests {
public void testMaxMessagesPerTaskExceedsMessageCountWithAppendedNewLines() {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
dispatcher.setMaxMessagesPerTask(10);
dispatcher.setMaxMessagesPerPoll(10);
dispatcher.setReceiveTimeout(0);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
target.setShouldAppendNewLine(true);
channel.send(new StringMessage("foo"), 0);
channel.send(new StringMessage("bar"), 0);
@@ -114,7 +116,8 @@ public class CharacterStreamTargetTests {
public void testSingleNonStringObject() {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
dispatcher.addTarget(target);
dispatcher.subscribe(target);
dispatcher.setMaxMessagesPerPoll(1);
TestObject testObject = new TestObject("foo");
channel.send(new GenericMessage<TestObject>(testObject));
dispatcher.run();
@@ -126,8 +129,8 @@ public class CharacterStreamTargetTests {
StringWriter writer = new StringWriter();
CharacterStreamTarget target = new CharacterStreamTarget(writer);
dispatcher.setReceiveTimeout(0);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.addTarget(target);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.subscribe(target);
TestObject testObject1 = new TestObject("foo");
TestObject testObject2 = new TestObject("bar");
channel.send(new GenericMessage<TestObject>(testObject1), 0);
@@ -142,8 +145,8 @@ public class CharacterStreamTargetTests {
CharacterStreamTarget target = new CharacterStreamTarget(writer);
target.setShouldAppendNewLine(true);
dispatcher.setReceiveTimeout(0);
dispatcher.setMaxMessagesPerTask(2);
dispatcher.addTarget(target);
dispatcher.setMaxMessagesPerPoll(2);
dispatcher.subscribe(target);
TestObject testObject1 = new TestObject("foo");
TestObject testObject2 = new TestObject("bar");
channel.send(new GenericMessage<TestObject>(testObject1), 0);