public abstract class ServiceSupport extends Object implements StatefulService
SuspendableService
in case they support suspend/resume.
Important: You should override the lifecycle methods that start with do, eg doStart()
},
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.Modifier and Type | Field and Description |
---|---|
protected AtomicBoolean |
shutdown |
protected AtomicBoolean |
shuttingdown |
protected AtomicBoolean |
started |
protected AtomicBoolean |
starting |
protected AtomicBoolean |
stopped |
protected AtomicBoolean |
stopping |
protected AtomicBoolean |
suspended |
protected AtomicBoolean |
suspending |
Constructor and Description |
---|
ServiceSupport() |
Modifier and Type | Method and Description |
---|---|
protected void |
doResume()
Implementations override this method to support customized suspend/resume.
|
protected void |
doShutdown()
Implementations override this method to perform customized shutdown.
|
protected abstract void |
doStart()
Implementations override this method to support customized start/stop.
|
protected abstract void |
doStop()
Implementations override this method to support customized start/stop.
|
protected void |
doSuspend()
Implementations override this method to support customized suspend/resume.
|
ServiceStatus |
getStatus()
Returns the current status
|
String |
getVersion()
Returns the version of this service
|
boolean |
isRunAllowed()
Helper methods so the service knows if it should keep running.
|
boolean |
isStarted()
Whether the service is started
|
boolean |
isStarting()
Whether the service is starting
|
boolean |
isStopped()
Whether the service is stopped
|
boolean |
isStopping()
Whether the service is stopping
|
boolean |
isStoppingOrStopped()
Is the service in progress of being stopped or already stopped
|
boolean |
isSuspended()
Tests whether the service is suspended or not.
|
boolean |
isSuspending()
Whether the service is suspending
|
boolean |
isSuspendingOrSuspended()
Is the service in progress of being suspended or already suspended
|
void |
resume()
|
void |
shutdown()
|
void |
start()
|
void |
stop()
|
void |
suspend()
|
protected final AtomicBoolean started
protected final AtomicBoolean starting
protected final AtomicBoolean stopping
protected final AtomicBoolean stopped
protected final AtomicBoolean suspending
protected final AtomicBoolean suspended
protected final AtomicBoolean shuttingdown
protected final AtomicBoolean shutdown
public ServiceSupport()
public void start() throws Exception
doStart()
,
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.public void stop() throws Exception
doStart()
,
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.public void suspend() throws Exception
doStart()
,
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.suspend
in interface SuspendableService
Exception
- is thrown if suspending failedpublic void resume() throws Exception
doStart()
,
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.resume
in interface SuspendableService
Exception
- is thrown if resuming failedpublic void shutdown() throws Exception
doStart()
,
doStop()
, etc. where you implement your logic. The methods start()
, stop()
should
NOT be overriden as they are used internally to keep track of the state of this service and properly
invoke the operation in a safe manner.shutdown
in interface ShutdownableService
Exception
- thrown if shutting down failedpublic ServiceStatus getStatus()
StatefulService
getStatus
in interface StatefulService
public boolean isStarted()
StatefulService
isStarted
in interface StatefulService
public boolean isStarting()
StatefulService
isStarting
in interface StatefulService
public boolean isStopping()
StatefulService
isStopping
in interface StatefulService
public boolean isStopped()
StatefulService
isStopped
in interface StatefulService
public boolean isSuspending()
StatefulService
isSuspending
in interface StatefulService
public boolean isSuspended()
SuspendableService
isSuspended
in interface SuspendableService
public boolean isRunAllowed()
StatefulService
isRunAllowed
in interface StatefulService
public boolean isStoppingOrStopped()
public boolean isSuspendingOrSuspended()
protected abstract void doStart() throws Exception
doStop()
for more details.protected abstract void doStop() throws Exception
doStop()
method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext
is shutting down.protected void doSuspend() throws Exception
Exception
protected void doResume() throws Exception
Exception
protected void doShutdown() throws Exception
Exception
public String getVersion()
StatefulService
getVersion
in interface StatefulService
Apache Camel