SPR-5507 AbstractJmsListeningContainer now implements SmartLifecycle instead of ApplicationListener.
This commit is contained in:
parent
a7c1f6b730
commit
a15a9600b7
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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…
Reference in New Issue