public class JmsListenerEndpointRegistry extends java.lang.Object implements DisposableBean, SmartLifecycle
MessageListenerContainer
instances for the
registered endpoints. Also manages the
lifecycle of the listener containers, in particular within the lifecycle
of the application context.
Contrary to MessageListenerContainer
s created manually, listener
containers managed by registry are not beans in the application context and
are not candidates for autowiring. Use getListenerContainers()
if
you need to access this registry's listener containers for management purposes.
If you need to access to a specific message listener container, use
getListenerContainer(String)
with the id of the endpoint.
JmsListenerEndpoint
,
MessageListenerContainer
,
JmsListenerContainerFactory
Constructor and Description |
---|
JmsListenerEndpointRegistry() |
Modifier and Type | Method and Description |
---|---|
protected MessageListenerContainer |
createListenerContainer(JmsListenerEndpoint endpoint,
JmsListenerContainerFactory<?> factory)
Create and start a new container using the specified factory.
|
void |
destroy()
Invoked by a BeanFactory on destruction of a singleton.
|
MessageListenerContainer |
getListenerContainer(java.lang.String id)
Return the
MessageListenerContainer with the specified id or
null if no such container exists. |
java.util.Collection<MessageListenerContainer> |
getListenerContainers()
Return the managed
MessageListenerContainer instance(s). |
int |
getPhase()
Return the phase value of this object.
|
boolean |
isAutoStartup()
Return whether this Lifecycle component should be started automatically
by the container when the ApplicationContext is refreshed.
|
boolean |
isRunning()
Check whether this component is currently running.
|
void |
registerListenerContainer(JmsListenerEndpoint endpoint,
JmsListenerContainerFactory<?> factory)
Create a message listener container for the given
JmsListenerEndpoint . |
void |
start()
Start this component.
|
void |
stop()
Stop this component, typically in a synchronous fashion, such that
the component is fully stopped upon return of this method.
|
void |
stop(java.lang.Runnable callback)
Indicates that a Lifecycle component must stop if it is currently running.
|
protected final Log logger
public MessageListenerContainer getListenerContainer(java.lang.String id)
MessageListenerContainer
with the specified id or
null
if no such container exists.id
- the id of the containernull
if no container with that id existsJmsListenerEndpoint.getId()
public java.util.Collection<MessageListenerContainer> getListenerContainers()
MessageListenerContainer
instance(s).public void registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory)
JmsListenerEndpoint
.
This create the necessary infrastructure to honor that endpoint with regards to its configuration.
endpoint
- the endpoint to addgetListenerContainers()
,
getListenerContainer(String)
protected MessageListenerContainer createListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory)
public void destroy()
DisposableBean
destroy
in interface DisposableBean
public int getPhase()
Phased
public boolean isAutoStartup()
SmartLifecycle
isAutoStartup
in interface SmartLifecycle
public void start()
Lifecycle
In the case of a container, this will propagate the start signal to all components that apply.
public void stop()
Lifecycle
SmartLifecycle
and its stop(Runnable)
variant in cases where asynchronous stop behavior is necessary.
Should not throw an exception if the component isn't started yet.
In the case of a container, this will propagate the stop signal to all components that apply.
stop
in interface Lifecycle
SmartLifecycle.stop(Runnable)
public void stop(java.lang.Runnable callback)
SmartLifecycle
The provided callback is used by the LifecycleProcessor
to support an
ordered, and potentially concurrent, shutdown of all components having a
common shutdown order value. The callback must be executed after
the SmartLifecycle component does indeed stop.
The LifecycleProcessor
will call only this variant of the
stop
method; i.e. Lifecycle.stop()
will not be called for
SmartLifecycle
implementations unless explicitly delegated to within
this method.
stop
in interface SmartLifecycle
public boolean isRunning()
Lifecycle
In the case of a container, this will return true
only if all components that apply are currently running.