added NamedComponent interface, continuing simplification of MessageHistory

This commit is contained in:
Mark Fisher
2010-04-30 20:11:18 +00:00
parent 6ef9eece71
commit 43dd81ff45
20 changed files with 131 additions and 76 deletions

View File

@@ -73,6 +73,7 @@ public class SimpleMessagingGatewayTests {
@Test
public void sendMessage() {
expect(messageMock.getHeaders()).andReturn(new MessageHeaders(null));
expect(requestChannel.send(messageMock)).andReturn(true);
replay(allmocks);
this.simpleMessagingGateway.send(messageMock);
@@ -81,6 +82,7 @@ public class SimpleMessagingGatewayTests {
@Test(expected=MessageDeliveryException.class)
public void sendMessage_failure() {
expect(messageMock.getHeaders()).andReturn(new MessageHeaders(null));
expect(requestChannel.send(messageMock)).andReturn(false);
replay(allmocks);
this.simpleMessagingGateway.send(messageMock);

View File

@@ -39,7 +39,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithPayload() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test" });
assertEquals("test", message.getPayload());
}
@@ -47,14 +47,14 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithTooManyParameters() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.toMessage(new Object[] { "test" , "oops" });
}
@Test(expected = IllegalArgumentException.class)
public void toMessageWithEmptyParameterArray() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.toMessage(new Object[] {});
}
@@ -62,7 +62,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeader() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -72,7 +72,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.toMessage(new Object[] { "test", null });
}
@@ -80,7 +80,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithValueProvided() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -90,7 +90,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
assertNull(message.getHeaders().get("foo"));
@@ -100,7 +100,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("abc", 123);
headers.put("def", 456);
@@ -114,7 +114,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndNullHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
}
@@ -123,7 +123,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMapWithNonStringKey() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Map<Integer, String> headers = new HashMap<Integer, String>();
headers.put(123, "abc");
mapper.toMessage(new Object[] { "test", headers });
@@ -132,7 +132,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameter() throws Exception {
Method method = TestService.class.getMethod("sendMessage", Message.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage });
assertEquals("test message", message.getPayload());
@@ -141,7 +141,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndHeader() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -151,7 +151,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithMessageParameterAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
mapper.toMessage(new Object[] { inputMessage, null });
}
@@ -159,7 +159,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -169,7 +169,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithNull() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, null });
assertEquals("test message", message.getPayload());
@@ -179,14 +179,14 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void noArgs() throws Exception {
Method method = TestService.class.getMethod("noArgs", new Class<?>[] {});
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.toMessage(new Object[] {});
}
@Test(expected = IllegalArgumentException.class)
public void onlyHeaders() throws Exception {
Method method = TestService.class.getMethod("onlyHeaders", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.toMessage(new Object[] { "abc", "def" });
}

View File

@@ -22,6 +22,8 @@ import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.springframework.integration.context.NamedComponent;
/**
* @author Oleg Zhurakousky
* @since 2.0
@@ -36,11 +38,19 @@ public class MessageHistoryTests {
public void testConcurrentModificationsOnObjectMethods() throws Exception{
final MessageHistory history = new MessageHistory();
final MessageHistory otherHistory = new MessageHistory();
final NamedComponent component = new NamedComponent() {
public String getComponentType() {
return "testType";
}
public String getComponentName() {
return "testName";
}
};
executor.execute(new Runnable() {
public void run() {
for (int i = 0; i < times; i++) {
history.addEvent("testName", "testType");
otherHistory.addEvent("testName", "testType");
history.addEvent(component);
otherHistory.addEvent(component);
}
}
});

View File

@@ -31,10 +31,10 @@ import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.integration.channel.AbstractMessageChannel;
import org.springframework.integration.channel.BeanFactoryChannelResolver;
import org.springframework.integration.channel.MessagePublishingErrorHandler;
import org.springframework.integration.context.IntegrationContextUtils;
import org.springframework.integration.context.NamedComponent;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.endpoint.AbstractEndpoint;
@@ -129,12 +129,12 @@ public abstract class TestUtils {
}
public void registerChannel(String channelName, MessageChannel channel) {
if (channel instanceof AbstractMessageChannel && ((AbstractMessageChannel) channel).getName() != null) {
if (channel instanceof NamedComponent && ((NamedComponent) channel).getComponentName() != null) {
if (channelName == null) {
channelName = ((AbstractMessageChannel) channel).getName();
channelName = ((NamedComponent) channel).getComponentName();
}
else {
Assert.isTrue(((AbstractMessageChannel) channel).getName().equals(channelName),
Assert.isTrue(((NamedComponent) channel).getComponentName().equals(channelName),
"channel name has already been set with a conflicting value");
}
}