diff --git a/spring-eai-core/src/main/java/org/springframework/integration/bus/MessageBus.java b/spring-eai-core/src/main/java/org/springframework/integration/bus/MessageBus.java index fac972cd5c..f5da8bce59 100644 --- a/spring-eai-core/src/main/java/org/springframework/integration/bus/MessageBus.java +++ b/spring-eai-core/src/main/java/org/springframework/integration/bus/MessageBus.java @@ -124,6 +124,13 @@ public class MessageBus implements ChannelMapping, ApplicationContextAware, Life public void registerEndpoint(String name, MessageEndpoint endpoint) { this.endpoints.put(name, endpoint); endpoint.setChannelMapping(this); + if (endpoint.getInputChannelName() != null && endpoint.getConsumerPolicy() != null) { + Subscription subscription = new Subscription(); + subscription.setChannel(endpoint.getInputChannelName()); + subscription.setEndpoint(name); + subscription.setPolicy(endpoint.getConsumerPolicy()); + this.activateSubscription(subscription); + } } public void activateSubscription(Subscription subscription) { diff --git a/spring-eai-core/src/main/java/org/springframework/integration/endpoint/MessageEndpoint.java b/spring-eai-core/src/main/java/org/springframework/integration/endpoint/MessageEndpoint.java index 7483fe2418..c615cf9503 100644 --- a/spring-eai-core/src/main/java/org/springframework/integration/endpoint/MessageEndpoint.java +++ b/spring-eai-core/src/main/java/org/springframework/integration/endpoint/MessageEndpoint.java @@ -16,6 +16,7 @@ package org.springframework.integration.endpoint; +import org.springframework.integration.bus.ConsumerPolicy; import org.springframework.integration.channel.ChannelMapping; import org.springframework.integration.message.Message; @@ -28,8 +29,12 @@ public interface MessageEndpoint { void setInputChannelName(String inputChannelName); + String getInputChannelName(); + void setDefaultOutputChannelName(String defaultOutputChannelName); + ConsumerPolicy getConsumerPolicy(); + void setChannelMapping(ChannelMapping channelMapping); void messageReceived(Message message); diff --git a/spring-eai-core/src/test/java/org/springframework/integration/endpoint/adapterBusTests.xml b/spring-eai-core/src/test/java/org/springframework/integration/endpoint/adapterBusTests.xml index 99e3f61715..5103ef0488 100644 --- a/spring-eai-core/src/test/java/org/springframework/integration/endpoint/adapterBusTests.xml +++ b/spring-eai-core/src/test/java/org/springframework/integration/endpoint/adapterBusTests.xml @@ -21,9 +21,16 @@ + + + + + + +