Browse Source

SPR-5507 AbstractJmsListeningContainer now implements SmartLifecycle instead of ApplicationListener.

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2310 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/head
Mark Fisher 16 years ago
parent
commit
19799237e9
  1. 17
      org.springframework.jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java
  2. 11
      org.springframework.jms/src/test/java/org/springframework/jms/listener/SimpleMessageListenerContainerTests.java

17
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.BeanNameAware;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationEvent; import org.springframework.context.SmartLifecycle;
import org.springframework.context.ApplicationListener;
import org.springframework.context.Lifecycle;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.jms.JmsException; import org.springframework.jms.JmsException;
import org.springframework.jms.connection.ConnectionFactoryUtils; import org.springframework.jms.connection.ConnectionFactoryUtils;
import org.springframework.jms.support.JmsUtils; import org.springframework.jms.support.JmsUtils;
@ -62,7 +59,7 @@ import org.springframework.util.ClassUtils;
* @see #doShutdown() * @see #doShutdown()
*/ */
public abstract class AbstractJmsListeningContainer extends JmsDestinationAccessor public abstract class AbstractJmsListeningContainer extends JmsDestinationAccessor
implements Lifecycle, ApplicationListener<ApplicationEvent>, BeanNameAware, DisposableBean { implements SmartLifecycle, BeanNameAware, DisposableBean {
private String clientId; private String clientId;
@ -115,6 +112,10 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess
this.autoStartup = autoStartup; this.autoStartup = autoStartup;
} }
public boolean isAutoStartup() {
return this.autoStartup;
}
public void setBeanName(String beanName) { public void setBeanName(String beanName) {
this.beanName = beanName; this.beanName = beanName;
} }
@ -137,12 +138,6 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess
initialize(); initialize();
} }
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ContextRefreshedEvent && this.autoStartup) {
this.start();
}
}
/** /**
* Validate the configuration of this container. * Validate the configuration of this container.
* <p>The default implementation is empty. To be overridden in subclasses. * <p>The default implementation is empty. To be overridden in subclasses.

11
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.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.support.GenericApplicationContext;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.core.task.TaskExecutor; import org.springframework.core.task.TaskExecutor;
import org.springframework.jms.StubQueue; import org.springframework.jms.StubQueue;
import org.springframework.util.ErrorHandler; import org.springframework.util.ErrorHandler;
@ -130,7 +129,9 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener
this.container.setMessageListener(new TestMessageListener()); this.container.setMessageListener(new TestMessageListener());
this.container.setAutoStartup(false); this.container.setAutoStartup(false);
this.container.afterPropertiesSet(); this.container.afterPropertiesSet();
this.container.onApplicationEvent(new ContextRefreshedEvent(new StaticApplicationContext())); GenericApplicationContext context = new GenericApplicationContext();
context.getBeanFactory().registerSingleton("messageListenerContainer", this.container);
context.refresh();
mockMessageConsumer.verify(); mockMessageConsumer.verify();
mockSession.verify(); mockSession.verify();
@ -181,7 +182,9 @@ public class SimpleMessageListenerContainerTests extends AbstractMessageListener
this.container.setMessageListener(new TestMessageListener()); this.container.setMessageListener(new TestMessageListener());
this.container.afterPropertiesSet(); this.container.afterPropertiesSet();
this.container.onApplicationEvent(new ContextRefreshedEvent(new StaticApplicationContext())); GenericApplicationContext context = new GenericApplicationContext();
context.getBeanFactory().registerSingleton("messageListenerContainer", this.container);
context.refresh();
mockMessageConsumer.verify(); mockMessageConsumer.verify();
mockSession.verify(); mockSession.verify();

Loading…
Cancel
Save