diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java
index 8ab1e9ee48..98f02328bd 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/config/xml/PollerParser.java
@@ -221,10 +221,8 @@ public class PollerParser extends AbstractBeanDefinitionParser {
txInterceptorBuilder.addPropertyValue("transactionAttributeSource", attributeSourceBuilder.getBeanDefinition());
BeanDefinitionBuilder txAdvisorBuilder = BeanDefinitionBuilder.genericBeanDefinition(TX_PKG_PREFIX + ".TransactionAttributeSourceAdvisor");
txAdvisorBuilder.addConstructorArgValue(txInterceptorBuilder.getBeanDefinition());
- String txInterceptorName =
- BeanDefinitionReaderUtils.registerWithGeneratedName(txAdvisorBuilder.getBeanDefinition(), parserContext.getRegistry());
-
- targetBuilder.addPropertyReference("transactionAdvisor", txInterceptorName);
+
+ targetBuilder.addPropertyValue("transactionAdvisor", txAdvisorBuilder.getBeanDefinition());
}
/**
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig-context.xml
new file mode 100644
index 0000000000..5a5ffb596c
--- /dev/null
+++ b/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig-context.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig.java b/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig.java
new file mode 100644
index 0000000000..e38e4b85b9
--- /dev/null
+++ b/spring-integration-core/src/test/java/org/springframework/integration/dispatcher/TransactionalPollerWithMixedAopConfig.java
@@ -0,0 +1,46 @@
+/**
+ *
+ */
+package org.springframework.integration.dispatcher;
+
+import static junit.framework.Assert.assertTrue;
+
+import org.aopalliance.intercept.MethodInterceptor;
+import org.aopalliance.intercept.MethodInvocation;
+import org.junit.Test;
+import org.springframework.aop.framework.Advised;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * @author Oleg Zhurakousky
+ *
+ * This test was influenced by INT-1483 where by registering TX Advisor
+ * in the BeanFactory while having resent resulted in
+ * TX Advisor being applied on all beans in AC
+ */
+public class TransactionalPollerWithMixedAopConfig {
+
+ @Test
+ public void validateTransactionalProxyIsolationToThePollerOnly(){
+ ApplicationContext context =
+ new ClassPathXmlApplicationContext("TransactionalPollerWithMixedAopConfig-context.xml", this.getClass());
+
+ assertTrue(!(context.getBean("foo") instanceof Advised));
+ assertTrue(!(context.getBean("inputChannel") instanceof Advised));
+ }
+
+ public static class SampleService{
+ public void foo(String payload){}
+ }
+
+ public static class Foo{
+ public Foo(String value){}
+ }
+
+ public static class SampleAdvice implements MethodInterceptor{
+ public Object invoke(MethodInvocation invocation) throws Throwable {
+ return invocation.proceed();
+ }
+ }
+}