From a15a9600b76c6fe9950f718cfe37c0d6e33f2711 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 10 Nov 2009 04:52:56 +0000 Subject: [PATCH] SPR-5507 AbstractJmsListeningContainer now implements SmartLifecycle instead of ApplicationListener. --- .../listener/AbstractJmsListeningContainer.java | 17 ++++++----------- .../SimpleMessageListenerContainerTests.java | 11 +++++++---- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/org.springframework.jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java b/org.springframework.jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java index 7d47beabce0..69ed8db595e 100644 --- a/org.springframework.jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java +++ b/org.springframework.jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java @@ -25,10 +25,7 @@ import javax.jms.JMSException; import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.DisposableBean; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.ApplicationListener; -import org.springframework.context.Lifecycle; -import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.SmartLifecycle; import org.springframework.jms.JmsException; import org.springframework.jms.connection.ConnectionFactoryUtils; import org.springframework.jms.support.JmsUtils; @@ -62,7 +59,7 @@ import org.springframework.util.ClassUtils; * @see #doShutdown() */ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccessor - implements Lifecycle, ApplicationListener, BeanNameAware, DisposableBean { + implements SmartLifecycle, BeanNameAware, DisposableBean { private String clientId; @@ -115,6 +112,10 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess this.autoStartup = autoStartup; } + public boolean isAutoStartup() { + return this.autoStartup; + } + public void setBeanName(String beanName) { this.beanName = beanName; } @@ -137,12 +138,6 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess initialize(); } - public void onApplicationEvent(ApplicationEvent event) { - if (event instanceof ContextRefreshedEvent && this.autoStartup) { - this.start(); - } - } - /** * Validate the configuration of this container. *

The default implementation is empty. To be overridden in subclasses. diff --git a/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java index 32b5f3578ad..18e47584a48 100644 --- a/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java @@ -35,8 +35,7 @@ import org.easymock.internal.AlwaysMatcher; import org.junit.Before; import org.junit.Test; -import org.springframework.context.event.ContextRefreshedEvent; -import org.springframework.context.support.StaticApplicationContext; +import org.springframework.context.support.GenericApplicationContext; import org.springframework.core.task.TaskExecutor; import org.springframework.jms.StubQueue; import org.springframework.util.ErrorHandler; @@ -130,7 +129,9 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener this.container.setMessageListener(new TestMessageListener()); this.container.setAutoStartup(false); this.container.afterPropertiesSet(); - this.container.onApplicationEvent(new ContextRefreshedEvent(new StaticApplicationContext())); + GenericApplicationContext context = new GenericApplicationContext(); + context.getBeanFactory().registerSingleton("messageListenerContainer", this.container); + context.refresh(); mockMessageConsumer.verify(); mockSession.verify(); @@ -181,7 +182,9 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener this.container.setMessageListener(new TestMessageListener()); this.container.afterPropertiesSet(); - this.container.onApplicationEvent(new ContextRefreshedEvent(new StaticApplicationContext())); + GenericApplicationContext context = new GenericApplicationContext(); + context.getBeanFactory().registerSingleton("messageListenerContainer", this.container); + context.refresh(); mockMessageConsumer.verify(); mockSession.verify();