From 58c5138ec045818bd595c8e44d5d523133549eea Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Sat, 8 May 2010 22:35:42 +0000 Subject: [PATCH] replaced Transformer object with a SpEL expression --- .../loanbroker/BanksChannelSelector.java | 21 +++++++------- .../integration/loanbroker/Transformer.java | 29 ------------------- .../main/resources/shark-detector-config.xml | 6 ++-- 3 files changed, 13 insertions(+), 43 deletions(-) delete mode 100644 spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/Transformer.java diff --git a/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/BanksChannelSelector.java b/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/BanksChannelSelector.java index 807f0594d3..72b6fd94a0 100644 --- a/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/BanksChannelSelector.java +++ b/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/BanksChannelSelector.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.Set; import org.apache.log4j.Logger; -import org.springframework.expression.EvaluationContext; + import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -37,27 +37,32 @@ import org.springframework.integration.core.Message; * channels if customer's credit score (retrieved from message header 'CREDIT_SCORE') is above 780. * * @author Oleg Zhurakousky + * @author Mark Fisher */ public class BanksChannelSelector { private static Logger logger = Logger.getLogger(BanksChannelSelector.class); - private Map bankChannelPool; + private static final ExpressionParser parser = new SpelExpressionParser(); + + + private volatile Expression routingExpression; + + private final StandardEvaluationContext evaluationContext = new StandardEvaluationContext(); - private String routingExpression; /** * @param bankChannelPool */ public BanksChannelSelector(Map bankChannelPool) { - this.bankChannelPool = bankChannelPool; + this.evaluationContext.setVariable("banks", bankChannelPool); } /** * @param routingExpression */ public void setRoutingExpression(String routingExpression) { - this.routingExpression = routingExpression; + this.routingExpression = parser.parseExpression(routingExpression); } /** @@ -66,11 +71,7 @@ public class BanksChannelSelector { */ @SuppressWarnings("unchecked") public Set selectBankChannels(Message message) { - EvaluationContext context = new StandardEvaluationContext(message); - context.setVariable("banks", bankChannelPool); - ExpressionParser parser = new SpelExpressionParser(); - Expression expression = parser.parseExpression(routingExpression); - Set bankChannels = (Set) expression.getValue(context); + Set bankChannels = (Set) routingExpression.getValue(this.evaluationContext, message); logger.debug("selected bank channels: " + bankChannels); return bankChannels; } diff --git a/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/Transformer.java b/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/Transformer.java deleted file mode 100644 index d64e609cc0..0000000000 --- a/spring-integration-samples/loan-broker/src/main/java/org/springframework/integration/loanbroker/Transformer.java +++ /dev/null @@ -1,29 +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.loanbroker; - -import org.springframework.integration.loanbroker.domain.LoanQuote; - -/** - * @author Gary Russell - */ -public class Transformer { - - public String transformShark(LoanQuote quote) { - return quote.getLender() + "," + quote.getRate(); - } -} diff --git a/spring-integration-samples/loan-broker/src/main/resources/shark-detector-config.xml b/spring-integration-samples/loan-broker/src/main/resources/shark-detector-config.xml index 5b95e6555d..bdcee7504e 100644 --- a/spring-integration-samples/loan-broker/src/main/resources/shark-detector-config.xml +++ b/spring-integration-samples/loan-broker/src/main/resources/shark-detector-config.xml @@ -22,12 +22,10 @@ - - -