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