From 49558ea82f52e1af93f2acba4bb9355614713fd9 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 16 Jun 2010 21:52:07 +0000 Subject: [PATCH] INT-1184 added bean resolution support for expression based transformers --- .../AbstractMessageProcessingTransformer.java | 3 +++ ...pelTransformerIntegrationTests-context.xml | 12 +++++----- .../SpelTransformerIntegrationTests.java | 24 +++++++++++++------ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transformer/AbstractMessageProcessingTransformer.java b/spring-integration-core/src/main/java/org/springframework/integration/transformer/AbstractMessageProcessingTransformer.java index 3ff969b045..8622d1c2b5 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transformer/AbstractMessageProcessingTransformer.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transformer/AbstractMessageProcessingTransformer.java @@ -43,6 +43,9 @@ public abstract class AbstractMessageProcessingTransformer implements Transforme public void setBeanFactory(BeanFactory beanFactory) { + if (this.messageProcessor instanceof BeanFactoryAware) { + ((BeanFactoryAware) this.messageProcessor).setBeanFactory(beanFactory); + } ConversionService conversionService = IntegrationContextUtils.getConversionService(beanFactory); if (conversionService != null && this.messageProcessor instanceof AbstractMessageProcessor) { ((AbstractMessageProcessor) this.messageProcessor).setConversionService(conversionService); diff --git a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests-context.xml index af615d2291..dc11192418 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests-context.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests-context.xml @@ -1,20 +1,20 @@ - - - - + + + - + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests.java b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests.java index 68deb62834..0769f5e4ee 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/transformer/SpelTransformerIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * 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. @@ -37,22 +37,32 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) public class SpelTransformerIntegrationTests { - @Autowired @Qualifier("input") - private MessageChannel input; + @Autowired + private MessageChannel simpleInput; + + @Autowired + private MessageChannel beanResolvingInput; @Autowired @Qualifier("output") private PollableChannel output; @Test - public void transform() { - Message message = MessageBuilder.withPayload(new TestBean()) - .setHeader("bar", 123).build(); - this.input.send(message); + public void simple() { + Message message = MessageBuilder.withPayload(new TestBean()).setHeader("bar", 123).build(); + this.simpleInput.send(message); Message result = output.receive(0); assertEquals("test123", result.getPayload()); } + @Test + public void beanResolving() { + Message message = MessageBuilder.withPayload("foo").build(); + this.beanResolvingInput.send(message); + Message result = output.receive(0); + assertEquals("testFOO", result.getPayload()); + } + static class TestBean {