From 0258124cb03b9c1045196dea5b07d22a57c549fe Mon Sep 17 00:00:00 2001 From: Gunnar Hillert Date: Thu, 3 Nov 2011 16:33:14 -0400 Subject: [PATCH] INT-2223 - Allow for Enriching Map Payloads see https://jira.springsource.org/browse/INT-2223 --- .../integration/transformer/ContentEnricher.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 268d669816..a11abf4125 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 @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.Map; import org.springframework.context.Lifecycle; +import org.springframework.context.expression.MapAccessor; import org.springframework.expression.Expression; import org.springframework.expression.spel.SpelParserConfiguration; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -36,7 +37,7 @@ import org.springframework.util.ReflectionUtils; /** * Content Enricher is a Message Transformer that invokes any downstream message flow via * its request channel and then applies values from the reply Message to the original payload. - * + * * @author Mark Fisher * @since 2.1 */ @@ -70,6 +71,7 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem if (replyChannel != null) { this.gateway.setReplyChannel(replyChannel); } + this.evaluationContext.addPropertyAccessor(new MapAccessor()); } @@ -123,7 +125,7 @@ public class ContentEnricher extends AbstractReplyProducingMessageHandler implem Expression propertyExpression = entry.getKey(); Expression valueExpression = entry.getValue(); Object value = valueExpression.getValue(this.evaluationContext, replyMessage); - propertyExpression.setValue(targetPayload, value); + propertyExpression.setValue(this.evaluationContext, targetPayload, value); } return targetPayload; }