Package org.apache.camel.support.service
Class BaseService
java.lang.Object
org.apache.camel.support.service.BaseService
- Direct Known Subclasses:
ServiceSupport
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 implement
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 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
FieldsModifier and TypeFieldDescriptionprotected static final byte
protected static final byte
protected static final byte
protected static final byte
protected final Lock
protected static final byte
protected static final byte
protected static final byte
protected static final byte
protected static final byte
protected byte
protected static final byte
protected static final byte
protected static final byte
protected static final byte
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
build()
protected void
doBuild()
Optional build phase of the service.protected void
Implementations override this method to perform any action upon failure.protected void
doInit()
Initialize the service.protected AutoCloseable
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
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
Implementations override this method to support customized suspend/resume.protected void
protected Lock
void
init()
boolean
isBuild()
boolean
isInit()
boolean
isNew()
boolean
boolean
boolean
boolean
boolean
Is the service in progress of being suspended or already suspendedboolean
boolean
boolean
Is the service in progress of being stopped or already stoppedboolean
boolean
boolean
Is the service in progress of being suspended or already suspendedvoid
resume()
void
shutdown()
void
start()
void
stop()
void
suspend()
-
Field Details
-
NEW
protected static final byte NEW- See Also:
-
BUILT
protected static final byte BUILT- See Also:
-
INITIALIZING
protected static final byte INITIALIZING- See Also:
-
INITIALIZED
protected static final byte INITIALIZED- See Also:
-
STARTING
protected static final byte STARTING- See Also:
-
STARTED
protected static final byte STARTED- See Also:
-
SUSPENDING
protected static final byte SUSPENDING- See Also:
-
SUSPENDED
protected static final byte SUSPENDED- See Also:
-
STOPPING
protected static final byte STOPPING- See Also:
-
STOPPED
protected static final byte STOPPED- See Also:
-
SHUTTING_DOWN
protected static final byte SHUTTING_DOWN- See Also:
-
SHUTDOWN
protected static final byte SHUTDOWN- See Also:
-
FAILED
protected static final byte FAILED- See Also:
-
lock
-
status
protected volatile byte status
-
-
Constructor Details
-
BaseService
public BaseService()
-
-
Method Details
-
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
-
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
-
doBuild
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
Initialize the service. This method will only be called once before starting.- Throws:
Exception
-
doStart
Implementations override this method to support customized start/stop. Important: SeedoStop()
for more details.- Throws:
Exception
- See Also:
-
doStop
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.- Throws:
Exception
- See Also:
-
doSuspend
Implementations override this method to support customized suspend/resume.- Throws:
Exception
-
doResume
Implementations override this method to support customized suspend/resume.- Throws:
Exception
-
doShutdown
Implementations override this method to perform customized shutdown.- Throws:
Exception
-
doFail
Implementations override this method to perform any action upon failure. -
doLifecycleChange
Implementations may return an object that will be closed when the lifecycle action is completed. -
getInternalLock
-