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 @@
-
-
-
-
-
-