diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/helloworld/helloWorldDemo.xml b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/helloworld/helloWorldDemo.xml index b818e53a87..b06e7200e2 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/helloworld/helloWorldDemo.xml +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/helloworld/helloWorldDemo.xml @@ -7,7 +7,10 @@ http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-1.0.xsd"> - + + + + - + secured.* diff --git a/org.springframework.integration.security/src/test/java/org/springframework/integration/security/endpoint/EndpointSecurityIntegrationTest-context.xml b/org.springframework.integration.security/src/test/java/org/springframework/integration/security/endpoint/EndpointSecurityIntegrationTest-context.xml index 384bd48ccd..66cec45cdc 100644 --- a/org.springframework.integration.security/src/test/java/org/springframework/integration/security/endpoint/EndpointSecurityIntegrationTest-context.xml +++ b/org.springframework.integration.security/src/test/java/org/springframework/integration/security/endpoint/EndpointSecurityIntegrationTest-context.xml @@ -11,7 +11,7 @@ http://www.springframework.org/schema/integration-security http://www.springframework.org/schema/integration/spring-integration-security-1.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> - + diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/bus/DefaultMessageBus.java b/org.springframework.integration/src/main/java/org/springframework/integration/bus/DefaultMessageBus.java index bfcf6fad27..8e7a06e5ae 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/bus/DefaultMessageBus.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/bus/DefaultMessageBus.java @@ -96,8 +96,6 @@ public class DefaultMessageBus implements MessageBus, ApplicationContextAware, A private volatile boolean configureAsyncEventMulticaster = false; - private volatile boolean autoCreateChannels = false; - private volatile boolean autoStartup = true; private volatile boolean initialized; @@ -146,14 +144,6 @@ public class DefaultMessageBus implements MessageBus, ApplicationContextAware, A this.autoStartup = autoStartup; } - /** - * Set whether the bus should automatically create a channel when a - * subscription contains the name of a previously unregistered channel. - */ - public void setAutoCreateChannels(boolean autoCreateChannels) { - this.autoCreateChannels = autoCreateChannels; - } - /** * Set whether the bus should configure its asynchronous task executor * to also be used by the ApplicationContext's 'applicationEventMulticaster'. @@ -297,15 +287,25 @@ public class DefaultMessageBus implements MessageBus, ApplicationContextAware, A } MessageTarget target = endpoint.getTarget(); if (target == null) { - target = this.lookupOrCreateChannel(endpoint.getOutputChannelName()); - if (target != null) { + String outputChannelName = endpoint.getOutputChannelName(); + if (outputChannelName != null) { + target = this.lookupChannel(outputChannelName); + if (target == null) { + throw new ConfigurationException("cannot activate endpoint '" + endpoint + + "', unable to resolve output-channel '" + outputChannelName + "'"); + } endpoint.setTarget(target); } } MessageSource source = endpoint.getSource(); if (source == null) { - source = this.lookupOrCreateChannel(endpoint.getInputChannelName()); - if (source != null) { + String inputChannelName = endpoint.getInputChannelName(); + if (inputChannelName != null) { + source = this.lookupChannel(inputChannelName); + if (source == null) { + throw new ConfigurationException("cannot activate endpoint '" + endpoint + + "', unable to resolve input-channel '" + inputChannelName + "'"); + } endpoint.setSource(source); } } @@ -332,25 +332,6 @@ public class DefaultMessageBus implements MessageBus, ApplicationContextAware, A } } - private MessageChannel lookupOrCreateChannel(String channelName) { - if (channelName == null) { - return null; - } - MessageChannel channel = this.lookupChannel(channelName); - if (channel == null) { - if (!this.autoCreateChannels) { - throw new ConfigurationException("Cannot activate endpoint, unknown channel '" + channelName - + "'. Consider enabling the 'autoCreateChannels' option for the message bus."); - } - if (this.logger.isInfoEnabled()) { - logger.info("auto-creating channel '" + channelName + "'"); - } - channel = channelFactory.getChannel(channelName, null); - this.registerChannel(channel); - } - return channel; - } - private void registerGateway(String name, MessagingGateway gateway) { if (gateway instanceof Lifecycle) { this.lifecycleEndpoints.add((Lifecycle) gateway); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd index 6dfac88838..50ef413b20 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd @@ -32,7 +32,6 @@ - diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/MessageBusParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/MessageBusParserTests.java index 5b24768a47..981f7012f0 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/MessageBusParserTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/MessageBusParserTests.java @@ -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 endpoint = new DefaultEndpoint(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; diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java index a751b21e68..3f3ff20bb6 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/MessagingAnnotationPostProcessorTests.java @@ -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) diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/simpleAnnotatedEndpointWithAutoCreateChannelTests.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/simpleAnnotatedEndpointWithAutoCreateChannelTests.xml deleted file mode 100644 index b920f03eaa..0000000000 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/annotation/simpleAnnotatedEndpointWithAutoCreateChannelTests.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/messageBusWithAutoCreateChannels.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/messageBusWithAutoCreateChannels.xml deleted file mode 100644 index 45f87854ac..0000000000 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/messageBusWithAutoCreateChannels.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - -