public abstract class ConnectionManagerSupport extends Object implements SmartLifecycle
start()
and disconnects on stop()
.
If setAutoStartup(boolean)
is set to true
this will be done
automatically when the Spring ApplicationContext
is refreshed.Modifier and Type | Field and Description |
---|---|
protected Log |
logger |
DEFAULT_PHASE
Constructor and Description |
---|
ConnectionManagerSupport(String uriTemplate,
Object... uriVariables) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
closeConnection()
Subclasses implement this to close the connection.
|
int |
getPhase()
Return the phase in which this endpoint connection factory will be auto-connected
and stopped.
|
protected URI |
getUri() |
boolean |
isAutoStartup()
Return the value for the 'autoStartup' property.
|
abstract boolean |
isConnected()
Whether the connection is open/
true or closed/false . |
boolean |
isRunning()
Return whether this ConnectionManager has been started.
|
protected abstract void |
openConnection()
Subclasses implement this to actually establish the connection.
|
void |
setAutoStartup(boolean autoStartup)
Set whether to auto-connect to the remote endpoint after this connection manager
has been initialized and the Spring context has been refreshed.
|
void |
setPhase(int phase)
Specify the phase in which a connection should be established to the remote
endpoint and subsequently closed.
|
void |
start()
Start the WebSocket connection.
|
protected void |
startInternal() |
void |
stop()
Stop this component, typically in a synchronous fashion, such that the component is
fully stopped upon return of this method.
|
void |
stop(Runnable callback)
Indicates that a Lifecycle component must stop if it is currently running.
|
protected void |
stopInternal() |
protected final Log logger
protected URI getUri()
public void setAutoStartup(boolean autoStartup)
Default is "false".
public boolean isAutoStartup()
isAutoStartup
in interface SmartLifecycle
Lifecycle.start()
,
SmartLifecycle.getPhase()
,
LifecycleProcessor.onRefresh()
,
ConfigurableApplicationContext.refresh()
public void setPhase(int phase)
public int getPhase()
getPhase
in interface Phased
getPhase
in interface SmartLifecycle
SmartLifecycle.isAutoStartup()
,
Lifecycle.start()
,
SmartLifecycle.stop(Runnable)
,
DefaultLifecycleProcessor.getPhase(Lifecycle)
public final void start()
start
in interface Lifecycle
SmartLifecycle.isAutoStartup()
protected void startInternal()
public final void stop()
Lifecycle
SmartLifecycle
and its stop(Runnable)
variant when asynchronous stop behavior is necessary.
Note that this stop notification is not guaranteed to come before destruction:
On regular shutdown, Lifecycle
beans will first receive a stop notification
before the general destruction callbacks are being propagated; however, on hot
refresh during a context's lifetime or on aborted refresh attempts, a given bean's
destroy method will be called without any consideration of stop signals upfront.
Should not throw an exception if the component is not running (not 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)
,
DisposableBean.destroy()
public final void stop(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
the implementation of this method.
The default implementation delegates to Lifecycle.stop()
and immediately
triggers the given callback in the calling thread. Note that there is no
synchronization between the two, so custom implementations may at least
want to put the same steps within their common lifecycle monitor (if any).
stop
in interface SmartLifecycle
Lifecycle.stop()
,
SmartLifecycle.getPhase()
public boolean isRunning()
public abstract boolean isConnected()
true
or closed/false
.protected abstract void openConnection()