Removed support for 'auto-create-channels' on the MessageBus. All channels must be explicitly created and registered with the bus (INT-247).

This commit is contained in:
Mark Fisher
2008-08-18 17:36:13 +00:00
parent d8c4b0df69
commit 80935d3bd0
9 changed files with 51 additions and 106 deletions

View File

@@ -81,20 +81,6 @@ public class MessageBusParserTests {
bus.registerEndpoint(endpoint);
}
@Test
public void testAutoCreateChannelsEnabled() {
ApplicationContext context = new ClassPathXmlApplicationContext(
"messageBusWithAutoCreateChannels.xml", this.getClass());
MessageBus bus = (MessageBus) context.getBean(MessageBusParser.MESSAGE_BUS_BEAN_NAME);
DefaultEndpoint<MessageHandler> endpoint = new DefaultEndpoint<MessageHandler>(TestHandlers.nullHandler());
endpoint.setBeanName("testEndpoint");
endpoint.setInputChannelName("channelToCreate");
bus.registerEndpoint(endpoint);
bus.start();
assertNotNull(bus.lookupChannel("channelToCreate"));
bus.stop();
}
@Test
public void testMultipleMessageBusElements() {
boolean exceptionThrown = false;

View File

@@ -124,20 +124,6 @@ public class MessagingAnnotationPostProcessorTests {
context.stop();
}
@Test
public void testSimpleHandlerWithAutoCreatedChannels() throws InterruptedException {
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
"simpleAnnotatedEndpointWithAutoCreateChannelTests.xml", this.getClass());
context.start();
ChannelRegistry channelRegistry = (ChannelRegistry) context.getBean("bus");
MessageChannel inputChannel = channelRegistry.lookupChannel("inputChannel");
PollableChannel outputChannel = (PollableChannel) channelRegistry.lookupChannel("outputChannel");
inputChannel.send(new StringMessage("world"));
Message<?> message = outputChannel.receive(1000);
assertEquals("hello world", message.getPayload());
context.stop();
}
@Test
public void testMessageParameterHandler() throws InterruptedException {
AbstractApplicationContext context = new ClassPathXmlApplicationContext("messageParameterAnnotatedEndpointTests.xml", this.getClass());
@@ -222,50 +208,62 @@ public class MessagingAnnotationPostProcessorTests {
@Test
public void testProxiedMessageEndpointAnnotation() {
DefaultMessageBus messageBus = new DefaultMessageBus();
messageBus.setAutoCreateChannels(true);
QueueChannel inputChannel = new QueueChannel();
QueueChannel outputChannel = new QueueChannel();
inputChannel.setBeanName("inputChannel");
outputChannel.setBeanName("outputChannel");
messageBus.registerChannel(inputChannel);
messageBus.registerChannel(outputChannel);
MessagingAnnotationPostProcessor postProcessor = new MessagingAnnotationPostProcessor(messageBus);
postProcessor.afterPropertiesSet();
ProxyFactory proxyFactory = new ProxyFactory(new SimpleAnnotatedEndpoint());
Object proxy = proxyFactory.getProxy();
postProcessor.postProcessAfterInitialization(proxy, "proxy");
messageBus.start();
MessageChannel inputChannel = messageBus.lookupChannel("inputChannel");
PollableChannel outputChannel = (PollableChannel) messageBus.lookupChannel("outputChannel");
inputChannel.send(new StringMessage("world"));
Message<?> message = outputChannel.receive(1000);
assertEquals("hello world", message.getPayload());
messageBus.stop();
}
@Test
public void testMessageEndpointAnnotationInherited() {
DefaultMessageBus messageBus = new DefaultMessageBus();
messageBus.setAutoCreateChannels(true);
QueueChannel inputChannel = new QueueChannel();
QueueChannel outputChannel = new QueueChannel();
inputChannel.setBeanName("inputChannel");
outputChannel.setBeanName("outputChannel");
messageBus.registerChannel(inputChannel);
messageBus.registerChannel(outputChannel);
MessagingAnnotationPostProcessor postProcessor = new MessagingAnnotationPostProcessor(messageBus);
postProcessor.afterPropertiesSet();
postProcessor.postProcessAfterInitialization(new SimpleAnnotatedEndpointSubclass(), "subclass");
messageBus.start();
MessageChannel inputChannel = messageBus.lookupChannel("inputChannel");
PollableChannel outputChannel = (PollableChannel) messageBus.lookupChannel("outputChannel");
inputChannel.send(new StringMessage("world"));
Message<?> message = outputChannel.receive(1000);
assertEquals("hello world", message.getPayload());
messageBus.stop();
}
@Test
public void testMessageEndpointAnnotationInheritedWithProxy() {
DefaultMessageBus messageBus = new DefaultMessageBus();
messageBus.setAutoCreateChannels(true);
QueueChannel inputChannel = new QueueChannel();
QueueChannel outputChannel = new QueueChannel();
inputChannel.setBeanName("inputChannel");
outputChannel.setBeanName("outputChannel");
messageBus.registerChannel(inputChannel);
messageBus.registerChannel(outputChannel);
MessagingAnnotationPostProcessor postProcessor = new MessagingAnnotationPostProcessor(messageBus);
postProcessor.afterPropertiesSet();
ProxyFactory proxyFactory = new ProxyFactory(new SimpleAnnotatedEndpointSubclass());
Object proxy = proxyFactory.getProxy();
postProcessor.postProcessAfterInitialization(proxy, "proxy");
messageBus.start();
MessageChannel inputChannel = messageBus.lookupChannel("inputChannel");
PollableChannel outputChannel = (PollableChannel) messageBus.lookupChannel("outputChannel");
inputChannel.send(new StringMessage("world"));
Message<?> message = outputChannel.receive(1000);
assertEquals("hello world", message.getPayload());
messageBus.stop();
}
@Test
@@ -284,21 +282,26 @@ public class MessagingAnnotationPostProcessorTests {
inputChannel.send(new StringMessage("ABC"));
Message<?> message = outputChannel.receive(1000);
assertEquals("test-ABC", message.getPayload());
messageBus.stop();
}
@Test
public void testMessageEndpointAnnotationInheritedFromInterfaceWithAutoCreatedChannels() {
DefaultMessageBus messageBus = new DefaultMessageBus();
messageBus.setAutoCreateChannels(true);
QueueChannel inputChannel = new QueueChannel();
QueueChannel outputChannel = new QueueChannel();
inputChannel.setBeanName("inputChannel");
outputChannel.setBeanName("outputChannel");
messageBus.registerChannel(inputChannel);
messageBus.registerChannel(outputChannel);
MessagingAnnotationPostProcessor postProcessor = new MessagingAnnotationPostProcessor(messageBus);
postProcessor.afterPropertiesSet();
postProcessor.postProcessAfterInitialization(new SimpleAnnotatedEndpointImplementation(), "impl");
messageBus.start();
MessageChannel inputChannel = messageBus.lookupChannel("inputChannel");
PollableChannel outputChannel = (PollableChannel) messageBus.lookupChannel("outputChannel");
inputChannel.send(new StringMessage("ABC"));
Message<?> message = outputChannel.receive(1000);
assertEquals("test-ABC", message.getPayload());
messageBus.stop();
}
@Test
@@ -319,6 +322,7 @@ public class MessagingAnnotationPostProcessorTests {
inputChannel.send(new StringMessage("ABC"));
Message<?> message = outputChannel.receive(1000);
assertEquals("test-ABC", message.getPayload());
messageBus.stop();
}
@Test
@@ -349,6 +353,7 @@ public class MessagingAnnotationPostProcessorTests {
assertNotNull(message4);
assertEquals("test", message4.getPayload());
assertNull(output.receive(500));
messageBus.stop();
}
@Test(expected=ConfigurationException.class)

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="bus" class="org.springframework.integration.bus.DefaultMessageBus">
<property name="autoCreateChannels" value="true"/>
</bean>
<bean id="endpoint" class="org.springframework.integration.config.annotation.SimpleAnnotatedEndpoint"/>
<bean class="org.springframework.integration.config.annotation.MessagingAnnotationPostProcessor">
<constructor-arg ref="bus"/>
</bean>
</beans>

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd">
<message-bus auto-create-channels="true"/>
</beans:beans>