diff --git a/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyControlBusFactoryBean.java b/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyControlBusFactoryBean.java index b0e2eccbeb..715d1b7049 100644 --- a/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyControlBusFactoryBean.java +++ b/spring-integration-groovy/src/main/java/org/springframework/integration/groovy/config/GroovyControlBusFactoryBean.java @@ -17,7 +17,7 @@ import java.util.HashMap; import java.util.Map; import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.ListableBeanFactory; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.context.Lifecycle; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.integration.Message; @@ -73,10 +73,11 @@ public class GroovyControlBusFactoryBean extends AbstractSimpleMessageHandlerFac private static class ManagedBeansScriptVariableGenerator implements ScriptVariableGenerator { - private final ListableBeanFactory beanFactory; + private final ConfigurableListableBeanFactory beanFactory; public ManagedBeansScriptVariableGenerator(BeanFactory beanFactory) { - this.beanFactory = (beanFactory instanceof ListableBeanFactory) ? (ListableBeanFactory) beanFactory : null; + this.beanFactory = (beanFactory instanceof ConfigurableListableBeanFactory) + ? (ConfigurableListableBeanFactory) beanFactory : null; } public Map generateScriptVariables(Message message) { @@ -84,11 +85,13 @@ public class GroovyControlBusFactoryBean extends AbstractSimpleMessageHandlerFac variables.put("headers", message.getHeaders()); if (this.beanFactory != null) { for (String name : this.beanFactory.getBeanDefinitionNames()) { - Object bean = this.beanFactory.getBean(name); - if (bean instanceof Lifecycle || - bean instanceof CustomizableThreadCreator || - (AnnotationUtils.findAnnotation(bean.getClass(), ManagedResource.class) != null)) { - variables.put(name, bean); + if (!this.beanFactory.getBeanDefinition(name).isAbstract()) { + Object bean = this.beanFactory.getBean(name); + if (bean instanceof Lifecycle || + bean instanceof CustomizableThreadCreator || + (AnnotationUtils.findAnnotation(bean.getClass(), ManagedResource.class) != null)) { + variables.put(name, bean); + } } } }