From 77a8e37786d4dfbd30c375aadb027e296ee8dd44 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Fri, 3 Jul 2009 16:59:49 +0000 Subject: [PATCH] INT-708 ConsumerEndpointFactoryBean now implements Lifecycle and delegates calls to its endpoint instance --- .../config/ConsumerEndpointFactoryBean.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/ConsumerEndpointFactoryBean.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/ConsumerEndpointFactoryBean.java index 06c9bb4335..4fec45f139 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/ConsumerEndpointFactoryBean.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/ConsumerEndpointFactoryBean.java @@ -24,6 +24,7 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; +import org.springframework.context.Lifecycle; import org.springframework.integration.channel.PollableChannel; import org.springframework.integration.channel.SubscribableChannel; import org.springframework.integration.context.IntegrationContextUtils; @@ -38,7 +39,8 @@ import org.springframework.util.Assert; /** * @author Mark Fisher */ -public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationListener { +public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAware, BeanNameAware, + InitializingBean, Lifecycle, ApplicationListener { private volatile MessageHandler handler; @@ -160,6 +162,30 @@ public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAwar } } + /* + * Lifecycle implementation + */ + + public boolean isRunning() { + return (this.endpoint != null ? this.endpoint.isRunning() : false); + } + + public void start() { + if (this.endpoint != null) { + this.endpoint.start(); + } + } + + public void stop() { + if (this.endpoint != null) { + this.endpoint.stop(); + } + } + + /* + * ApplicationListener implementation + */ + public void onApplicationEvent(ApplicationEvent event) { if (this.endpoint instanceof ApplicationListener) { ((ApplicationListener) this.endpoint).onApplicationEvent(event);