Class ServiceControllerImpl.StartContextImpl
- java.lang.Object
-
- org.jboss.msc.service.ServiceControllerImpl.StartContextImpl
-
- All Implemented Interfaces:
java.util.concurrent.Executor
,LifecycleContext
,StartContext
- Enclosing class:
- ServiceControllerImpl<S>
private class ServiceControllerImpl.StartContextImpl extends java.lang.Object implements StartContext
-
-
Field Summary
Fields Modifier and Type Field Description private long
startNanos
private ServiceControllerImpl.ContextState
state
-
Constructor Summary
Constructors Modifier Constructor Description private
StartContextImpl(long startNanos)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
asynchronous()
Call within the service lifecycle method to trigger an asynchronous lifecycle action.void
complete()
Call when either synchronous or asynchronous lifecycle action is complete.void
execute(java.lang.Runnable command)
Execute a task asynchronously using the MSC task executor.void
failed(StartException reason)
Call when start lifecycle action has failed for some reason.ServiceTarget
getChildTarget()
Get a service target which may be used to add child services.ServiceController<?>
getController()
Get the associated service controller.long
getElapsedTime()
Get the amount of time elapsed since the start or stop was initiated, in nanoseconds.
-
-
-
Field Detail
-
state
private ServiceControllerImpl.ContextState state
-
startNanos
private final long startNanos
-
-
Method Detail
-
failed
public void failed(StartException reason) throws java.lang.IllegalStateException
Description copied from interface:StartContext
Call when start lifecycle action has failed for some reason.- Specified by:
failed
in interfaceStartContext
- Parameters:
reason
- the reason for the failure- Throws:
java.lang.IllegalStateException
- if called afterStartContext.complete()
was called
-
getChildTarget
public ServiceTarget getChildTarget()
Description copied from interface:StartContext
Get a service target which may be used to add child services. Child services have an implicit dependency on their parent, and are automatically removed when the parent service stops (or if the parent service fails during startup).Any listeners added directly to this service target will be added to child services when they are installed. Listeners added directly to this service target will be applied recursively to descendants as well, as long as the listener exists on this service target. To avoid this recursive behavior, apply listeners to any sub-target of this this target (see
ServiceTarget.subTarget()
for more information about sub-targets).Note that any listeners existing on the starting service are not applied to child services automatically; they must be explicitly added to the child service target.
- Specified by:
getChildTarget
in interfaceStartContext
- Returns:
- the child target
-
asynchronous
public void asynchronous() throws java.lang.IllegalStateException
Description copied from interface:StartContext
Call within the service lifecycle method to trigger an asynchronous lifecycle action. This action will not be considered complete until indicated so by calling eitherStartContext.complete()
orStartContext.failed(StartException)
method on this interface.- Specified by:
asynchronous
in interfaceLifecycleContext
- Specified by:
asynchronous
in interfaceStartContext
- Throws:
java.lang.IllegalStateException
- if called twice in a row
-
complete
public void complete() throws java.lang.IllegalStateException
Description copied from interface:StartContext
Call when either synchronous or asynchronous lifecycle action is complete.- Specified by:
complete
in interfaceLifecycleContext
- Specified by:
complete
in interfaceStartContext
- Throws:
java.lang.IllegalStateException
- if called afterStartContext.failed(StartException)
was called or if called twice in a row
-
getElapsedTime
public long getElapsedTime()
Description copied from interface:LifecycleContext
Get the amount of time elapsed since the start or stop was initiated, in nanoseconds.- Specified by:
getElapsedTime
in interfaceLifecycleContext
- Returns:
- the elapsed time
-
getController
public ServiceController<?> getController()
Description copied from interface:LifecycleContext
Get the associated service controller.- Specified by:
getController
in interfaceLifecycleContext
- Returns:
- the service controller
-
execute
public void execute(java.lang.Runnable command)
Description copied from interface:LifecycleContext
Execute a task asynchronously using the MSC task executor.Note: This method should not be used for executing tasks that may block, particularly from within a service's
Service.start(StartContext)
orService.stop(StopContext)
methods. Seethe Service class javadoc
for further details.- Specified by:
execute
in interfacejava.util.concurrent.Executor
- Specified by:
execute
in interfaceLifecycleContext
- Parameters:
command
- the command to execute
-
-