Package org.apache.camel.support.service
Class BaseService
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- Direct Known Subclasses:
ServiceSupport
public abstract class BaseService extends Object
A useful base class which ensures that a service is only initialized once and provides some helper methods for enquiring of its status. Implementations can extend this base class and implementSuspendableService
in case they support suspend/resume. Important: You should override the lifecycle methods that start with do, egdoStart()
},doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
-
Field Summary
Fields Modifier and Type Field Description protected static byte
BUILT
protected static byte
FAILED
protected static byte
INITIALIZED
protected static byte
INITIALIZING
protected Object
lock
protected static byte
NEW
protected static byte
SHUTDOWN
protected static byte
SHUTTING_DOWN
protected static byte
STARTED
protected static byte
STARTING
protected byte
status
protected static byte
STOPPED
protected static byte
STOPPING
protected static byte
SUSPENDED
protected static byte
SUSPENDING
-
Constructor Summary
Constructors Constructor Description BaseService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
build()
protected void
doBuild()
Optional build phase of the service.protected void
doFail(Exception e)
Implementations override this method to perform any action upon failure.protected void
doInit()
Initialize the service.protected AutoCloseable
doLifecycleChange()
Implementations may return an object that will be closed when the lifecycle action is completed.protected void
doResume()
Implementations override this method to support customized suspend/resume.protected void
doShutdown()
Implementations override this method to perform customized shutdown.protected void
doStart()
Implementations override this method to support customized start/stop.protected void
doStop()
Implementations override this method to support customized start/stop.protected void
doSuspend()
Implementations override this method to support customized suspend/resume.protected void
fail(Exception e)
ServiceStatus
getStatus()
void
init()
boolean
isBuild()
boolean
isInit()
boolean
isNew()
boolean
isRunAllowed()
boolean
isShutdown()
boolean
isStarted()
boolean
isStarting()
boolean
isStartingOrStarted()
Is the service in progress of being suspended or already suspendedboolean
isStopped()
boolean
isStopping()
boolean
isStoppingOrStopped()
Is the service in progress of being stopped or already stoppedboolean
isSuspended()
boolean
isSuspending()
boolean
isSuspendingOrSuspended()
Is the service in progress of being suspended or already suspendedvoid
resume()
void
shutdown()
void
start()
void
stop()
void
suspend()
-
-
-
Field Detail
-
NEW
protected static final byte NEW
- See Also:
- Constant Field Values
-
BUILT
protected static final byte BUILT
- See Also:
- Constant Field Values
-
INITIALIZING
protected static final byte INITIALIZING
- See Also:
- Constant Field Values
-
INITIALIZED
protected static final byte INITIALIZED
- See Also:
- Constant Field Values
-
STARTING
protected static final byte STARTING
- See Also:
- Constant Field Values
-
STARTED
protected static final byte STARTED
- See Also:
- Constant Field Values
-
SUSPENDING
protected static final byte SUSPENDING
- See Also:
- Constant Field Values
-
SUSPENDED
protected static final byte SUSPENDED
- See Also:
- Constant Field Values
-
STOPPING
protected static final byte STOPPING
- See Also:
- Constant Field Values
-
STOPPED
protected static final byte STOPPED
- See Also:
- Constant Field Values
-
SHUTTING_DOWN
protected static final byte SHUTTING_DOWN
- See Also:
- Constant Field Values
-
SHUTDOWN
protected static final byte SHUTDOWN
- See Also:
- Constant Field Values
-
FAILED
protected static final byte FAILED
- See Also:
- Constant Field Values
-
lock
protected final Object lock
-
status
protected volatile byte status
-
-
Method Detail
-
build
public void build()
-
init
public void init()
-
start
public void start()
Important: You should override the lifecycle methods that start with do, egdoStart()
,doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
stop
public void stop()
Important: You should override the lifecycle methods that start with do, egdoStart()
,doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
suspend
public void suspend()
Important: You should override the lifecycle methods that start with do, egdoStart()
,doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
resume
public void resume()
Important: You should override the lifecycle methods that start with do, egdoStart()
,doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
shutdown
public void shutdown()
Important: You should override the lifecycle methods that start with do, egdoStart()
,doStop()
, etc. where you implement your logic. The methodsstart()
,stop()
should NOT be overridden as they are used internally to keep track of the state of this service and properly invoke the operation in a safe manner.
-
getStatus
public ServiceStatus getStatus()
-
isNew
public boolean isNew()
-
isBuild
public boolean isBuild()
-
isInit
public boolean isInit()
-
isStarted
public boolean isStarted()
-
isStarting
public boolean isStarting()
-
isStopping
public boolean isStopping()
-
isStopped
public boolean isStopped()
-
isSuspending
public boolean isSuspending()
-
isSuspended
public boolean isSuspended()
-
isRunAllowed
public boolean isRunAllowed()
-
isShutdown
public boolean isShutdown()
-
isStoppingOrStopped
public boolean isStoppingOrStopped()
Is the service in progress of being stopped or already stopped
-
isSuspendingOrSuspended
public boolean isSuspendingOrSuspended()
Is the service in progress of being suspended or already suspended
-
isStartingOrStarted
public boolean isStartingOrStarted()
Is the service in progress of being suspended or already suspended
-
fail
protected void fail(Exception e)
-
doBuild
protected void doBuild() throws Exception
Optional build phase of the service. This method will only be called by frameworks which supports pre-building projects such as camel-quarkus.- Throws:
Exception
-
doInit
protected void doInit() throws Exception
Initialize the service. This method will only be called once before starting.- Throws:
Exception
-
doStart
protected void doStart() throws Exception
Implementations override this method to support customized start/stop. Important: SeedoStop()
for more details.
-
doStop
protected void doStop() throws Exception
Implementations override this method to support customized start/stop. Important: Camel will invoke thisdoStop()
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 whenCamelContext
is shutting down.
-
doSuspend
protected void doSuspend() throws Exception
Implementations override this method to support customized suspend/resume.- Throws:
Exception
-
doResume
protected void doResume() throws Exception
Implementations override this method to support customized suspend/resume.- Throws:
Exception
-
doShutdown
protected void doShutdown() throws Exception
Implementations override this method to perform customized shutdown.- Throws:
Exception
-
doFail
protected void doFail(Exception e)
Implementations override this method to perform any action upon failure.
-
doLifecycleChange
protected AutoCloseable doLifecycleChange()
Implementations may return an object that will be closed when the lifecycle action is completed.
-
-