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