diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/ExpressionControlBusFactoryBean.java b/spring-integration-core/src/main/java/org/springframework/integration/config/ExpressionControlBusFactoryBean.java index a5f4925dfa..3efcd7b3db 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/ExpressionControlBusFactoryBean.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/ExpressionControlBusFactoryBean.java @@ -14,8 +14,8 @@ package org.springframework.integration.config; import org.springframework.expression.BeanResolver; -import org.springframework.integration.control.ControlBusMessageProcessor; import org.springframework.integration.core.MessageHandler; +import org.springframework.integration.handler.ExpressionPayloadMessageProcessor; import org.springframework.integration.handler.ServiceActivatingHandler; /** @@ -30,10 +30,10 @@ public class ExpressionControlBusFactoryBean extends AbstractSimpleMessageHandle private volatile BeanResolver beanResolver; - private final ControlBusMessageProcessor processor; + private final ExpressionPayloadMessageProcessor processor; - public ExpressionControlBusFactoryBean(ControlBusMessageProcessor processor) { + public ExpressionControlBusFactoryBean(ExpressionPayloadMessageProcessor processor) { this.processor = processor; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/ControlBusParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/ControlBusParser.java index 385590b215..b9560f3587 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/ControlBusParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/ControlBusParser.java @@ -15,12 +15,9 @@ package org.springframework.integration.config.xml; import org.w3c.dom.Element; -import org.springframework.beans.BeanMetadataElement; -import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; /** * @author Dave Syer @@ -31,24 +28,14 @@ public class ControlBusParser extends AbstractConsumerEndpointParser { @Override protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) { - BeanDefinitionBuilder builder = BeanDefinitionBuilder - .genericBeanDefinition("org.springframework.integration.config.ExpressionControlBusFactoryBean"); - builder.addConstructorArgValue(new RootBeanDefinition("org.springframework.integration.control.ControlBusMessageProcessor")); - BeanMetadataElement beanResolver = getBeanResolver(element, parserContext); - if (beanResolver!=null) { - builder.addPropertyValue("beanResolver", beanResolver); - } + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( + "org.springframework.integration.config.ExpressionControlBusFactoryBean"); + builder.addConstructorArgValue(new RootBeanDefinition( + "org.springframework.integration.handler.ExpressionPayloadMessageProcessor")); + IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "bean-resolver"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "send-timeout"); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "order"); return builder; } - protected BeanMetadataElement getBeanResolver(Element element, ParserContext parserContext) { - String ref = element.getAttribute("bean-resolver"); - if (!StringUtils.hasText(ref)) { - return null; - } - return new RuntimeBeanReference(ref); - } - } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/control/ControlBusMessageProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/control/ControlBusMessageProcessor.java deleted file mode 100644 index 18babbf19a..0000000000 --- a/spring-integration-core/src/main/java/org/springframework/integration/control/ControlBusMessageProcessor.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2002-2010 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - */ - -package org.springframework.integration.control; - -import org.springframework.expression.Expression; -import org.springframework.integration.Message; -import org.springframework.integration.handler.AbstractMessageProcessor; - -/** - * A MessageProcessor implementation that expects an Expression or expressionString - * as the Message payload. When processing, it simply evaluates that expression. - * - * @author Dave Syer - * @author Mark Fisher - * @since 2.0 - */ -public class ControlBusMessageProcessor extends AbstractMessageProcessor { - - /** - * Evaluates the Message payload expression. - * @throws IllegalArgumentException if the payload is not an Exception or String - */ - public Object processMessage(Message message) { - Object expression = message.getPayload(); - if (expression instanceof Expression) { - return evaluateExpression((Expression) expression, message); - } - if (expression instanceof String) { - return evaluateExpression((String) expression, message); - } - throw new IllegalArgumentException("Message payload must be an Expression instance or an expression String."); - } - -}