diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/SourcePollingChannelAdapterFactoryBean.java b/spring-integration-core/src/main/java/org/springframework/integration/config/SourcePollingChannelAdapterFactoryBean.java index b41e5c3035..1eaf5d6aaf 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/SourcePollingChannelAdapterFactoryBean.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/SourcePollingChannelAdapterFactoryBean.java @@ -16,6 +16,7 @@ package org.springframework.integration.config; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; @@ -24,11 +25,13 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.SmartLifecycle; -import org.springframework.messaging.MessageChannel; import org.springframework.integration.core.MessageSource; import org.springframework.integration.endpoint.SourcePollingChannelAdapter; import org.springframework.integration.scheduling.PollerMetadata; +import org.springframework.messaging.MessageChannel; +import org.springframework.messaging.core.DestinationResolutionException; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; /** * FactoryBean for creating a SourcePollingChannelAdapter instance. @@ -44,6 +47,8 @@ public class SourcePollingChannelAdapterFactoryBean implements FactoryBean replyMessage, final Object replyChannelHeaderValue) { + private void sendReplyMessage(Message replyMessage, final Object replyChannelHeaderValue) { if (logger.isDebugEnabled()) { logger.debug("handler '" + this + "' sending reply Message: " + replyMessage); } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/ContentEnricher.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/ContentEnricher.java index dffa01255b..c3aab18846 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/ContentEnricher.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/ContentEnricher.java @@ -37,6 +37,7 @@ import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHandlingException; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; +import org.springframework.util.StringUtils; /** * Content Enricher is a Message Transformer that can augment a message's payload @@ -68,8 +69,12 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem private volatile MessageChannel requestChannel; + private volatile String requestChannelName; + private volatile MessageChannel replyChannel; + private volatile String replyChannelName; + private volatile Gateway gateway = null; private volatile Long requestTimeout; @@ -123,6 +128,10 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem this.requestChannel = requestChannel; } + public void setRequestChannelName(String requestChannelName) { + this.requestChannelName = requestChannelName; + } + /** * Sets the content enricher's reply channel. If not specified, yet the request * channel is set, an anonymous reply channel will automatically created @@ -134,6 +143,10 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem this.replyChannel = replyChannel; } + public void setReplyChannelName(String replyChannelName) { + this.replyChannelName = replyChannelName; + } + /** * Set the timeout value for sending request messages. If not explicitly * configured, the default is one second. @@ -207,6 +220,16 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem */ @Override protected void doInit() { + if (StringUtils.hasText(this.requestChannelName)) { + Assert.isNull(this.requestChannel, "'requestChannelName' and 'requestChannel' are mutually exclusive."); + this.requestChannel = this.getBeanFactory().getBean(this.requestChannelName, MessageChannel.class); + } + + if (StringUtils.hasText(this.replyChannelName)) { + Assert.isNull(this.replyChannel, "'replyChannelName' and 'replyChannel' are mutually exclusive."); + this.replyChannel = this.getBeanFactory().getBean(this.replyChannelName, MessageChannel.class); + } + if (this.replyChannel != null) { Assert.notNull(this.requestChannel, "If the replyChannel is set, then the requestChannel must not be null"); } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/AbstractHeaderValueMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/AbstractHeaderValueMessageProcessor.java index dc36a41ac9..49005bf979 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/AbstractHeaderValueMessageProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/AbstractHeaderValueMessageProcessor.java @@ -21,7 +21,7 @@ package org.springframework.integration.transformer.support; * @author Artem Bilan * @since 3.0 */ -abstract class AbstractHeaderValueMessageProcessor implements HeaderValueMessageProcessor { +public abstract class AbstractHeaderValueMessageProcessor implements HeaderValueMessageProcessor { // null indicates no explicit setting private volatile Boolean overwrite = null; diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/ExpressionEvaluatingHeaderValueMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/ExpressionEvaluatingHeaderValueMessageProcessor.java index 0d2204a7f4..1e0941567b 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/ExpressionEvaluatingHeaderValueMessageProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/ExpressionEvaluatingHeaderValueMessageProcessor.java @@ -30,7 +30,7 @@ import org.springframework.messaging.Message; * @author Artem Bilan * @since 3.0 */ -class ExpressionEvaluatingHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor +public class ExpressionEvaluatingHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor implements BeanFactoryAware { private static final ExpressionParser expressionParser = new SpelExpressionParser(new SpelParserConfiguration( diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/MessageProcessingHeaderValueMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/MessageProcessingHeaderValueMessageProcessor.java index c29b7e6e65..1729cc08c6 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/MessageProcessingHeaderValueMessageProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/MessageProcessingHeaderValueMessageProcessor.java @@ -25,7 +25,7 @@ import org.springframework.messaging.Message; * @author Artem Bilan * @since 3.0 */ -class MessageProcessingHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor { +public class MessageProcessingHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor { private final MessageProcessor targetProcessor; diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/StaticHeaderValueMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/StaticHeaderValueMessageProcessor.java index b64792fd9b..c49519731f 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/StaticHeaderValueMessageProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/support/StaticHeaderValueMessageProcessor.java @@ -23,7 +23,7 @@ import org.springframework.messaging.Message; * @author Artem Bilan * @since 3.0 */ -class StaticHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor { +public class StaticHeaderValueMessageProcessor extends AbstractHeaderValueMessageProcessor { private final T value;