diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
index 65f85f9069..4f75709587 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractMessageEndpointParser.java
@@ -48,8 +48,6 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe
protected static final String OUTPUT_CHANNEL_ATTRIBUTE = "output-channel";
- protected static final String RETURN_ADDRESS_OVERRIDES_ATTRIBUTE = "return-address-overrides";
-
private static final String POLLER_ELEMENT = "poller";
private static final String SELECTOR_ATTRIBUTE = "selector";
@@ -114,9 +112,6 @@ public abstract class AbstractMessageEndpointParser extends AbstractSingleBeanDe
builder, element, OUTPUT_CHANNEL_ATTRIBUTE, "outputChannelName");
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, SELECTOR_ATTRIBUTE);
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, ERROR_HANDLER_ATTRIBUTE);
- String returnAddressOverridesAttribute = element.getAttribute(RETURN_ADDRESS_OVERRIDES_ATTRIBUTE);
- boolean returnAddressOverrides = "true".equals(returnAddressOverridesAttribute);
- builder.addPropertyValue("returnAddressOverrides", returnAddressOverrides);
this.postProcessEndpointBean(builder, element, parserContext);
}
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 871ce57e47..8959aeaede 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
@@ -192,7 +192,6 @@
-
diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/AbstractEndpoint.java b/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/AbstractEndpoint.java
index 02e2da9de1..235a8771b2 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/AbstractEndpoint.java
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/AbstractEndpoint.java
@@ -20,6 +20,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanNameAware;
+import org.springframework.integration.channel.ChannelRegistry;
+import org.springframework.integration.channel.ChannelRegistryAware;
import org.springframework.integration.message.Message;
import org.springframework.integration.message.MessageExchangeTemplate;
import org.springframework.integration.message.MessageHandlingException;
@@ -34,7 +36,7 @@ import org.springframework.integration.util.ErrorHandler;
*
* @author Mark Fisher
*/
-public abstract class AbstractEndpoint implements MessageEndpoint, BeanNameAware {
+public abstract class AbstractEndpoint implements MessageEndpoint, ChannelRegistryAware, BeanNameAware {
protected final Log logger = LogFactory.getLog(this.getClass());
@@ -48,6 +50,8 @@ public abstract class AbstractEndpoint implements MessageEndpoint, BeanNameAware
private volatile ErrorHandler errorHandler;
+ private volatile ChannelRegistry channelRegistry;
+
private final MessageExchangeTemplate messageExchangeTemplate = new MessageExchangeTemplate();
@@ -86,6 +90,14 @@ public abstract class AbstractEndpoint implements MessageEndpoint, BeanNameAware
this.schedule = schedule;
}
+ protected ChannelRegistry getChannelRegistry() {
+ return this.channelRegistry;
+ }
+
+ public void setChannelRegistry(ChannelRegistry channelRegistry) {
+ this.channelRegistry = channelRegistry;
+ }
+
protected MessageExchangeTemplate getMessageExchangeTemplate() {
return this.messageExchangeTemplate;
}
diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/DefaultEndpoint.java b/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/DefaultEndpoint.java
index b30493d93f..acd76e3cb0 100644
--- a/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/DefaultEndpoint.java
+++ b/org.springframework.integration/src/main/java/org/springframework/integration/endpoint/DefaultEndpoint.java
@@ -57,12 +57,10 @@ import org.springframework.util.Assert;
*
* @author Mark Fisher
*/
-public class DefaultEndpoint extends AbstractRequestReplyEndpoint implements ChannelRegistryAware {
+public class DefaultEndpoint extends AbstractRequestReplyEndpoint {
private final T handler;
- private volatile ChannelRegistry channelRegistry;
-
private volatile MessageSelector selector;
private final List interceptors = new ArrayList();
@@ -76,10 +74,19 @@ public class DefaultEndpoint extends AbstractRequestRe
this.handler = handler;
}
+
protected T getHandler() {
return this.handler;
}
+ @Override
+ public void setChannelRegistry(ChannelRegistry channelRegistry) {
+ super.setChannelRegistry(channelRegistry);
+ if (this.handler instanceof ChannelRegistryAware) {
+ ((ChannelRegistryAware) this.handler).setChannelRegistry(channelRegistry);
+ }
+ }
+
public void setSelector(MessageSelector selector) {
this.selector = selector;
}
@@ -95,17 +102,6 @@ public class DefaultEndpoint extends AbstractRequestRe
}
}
- public void setChannelRegistry(ChannelRegistry channelRegistry) {
- if (this.handler instanceof ChannelRegistryAware) {
- ((ChannelRegistryAware) this.handler).setChannelRegistry(channelRegistry);
- }
- this.channelRegistry = channelRegistry;
- }
-
- protected ChannelRegistry getChannelRegistry() {
- return this.channelRegistry;
- }
-
/**
* Specify the timeout for sending reply Messages to the reply
* target. The default value indicates an indefinite timeout.
@@ -222,7 +218,7 @@ public class DefaultEndpoint extends AbstractRequestRe
replyTarget = (MessageTarget) targetAttribute;
}
else if (targetAttribute instanceof String) {
- ChannelRegistry registry = getChannelRegistry();
+ ChannelRegistry registry = this.getChannelRegistry();
if (registry != null) {
replyTarget = registry.lookupChannel((String) targetAttribute);
}
@@ -231,11 +227,6 @@ public class DefaultEndpoint extends AbstractRequestRe
return replyTarget;
}
- // TODO: remove
-
- public void setReturnAddressOverrides(boolean returnAddressOverrides) {
- }
-
/**
* Specify the channel where reply Messages should be sent if
* no 'nextTarget' header value is available on the reply Message.
diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/returnAddressTests.xml b/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/returnAddressTests.xml
index 8d8efbea62..acc2945633 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/returnAddressTests.xml
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/endpoint/returnAddressTests.xml
@@ -18,12 +18,8 @@
-
-
-
-
+
+