javadoc.com.google.common.base.Service.html Maven / Gradle / Ivy
Service (Guava: Google Core Libraries for Java - release 05)
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
com.google.common.base
Interface Service
- All Known Implementing Classes:
- AbstractExecutionThreadService, AbstractIdleService, AbstractService, ForwardingService
@Beta
public interface Service
An object with an operational state, plus asynchronous start()
and
stop()
lifecycle methods to transfer into and out of this state.
Example services include webservers, RPC servers and timers. The normal
lifecycle of a service is:
Service.State.NEW
->Service.State.STARTING
->Service.State.RUNNING
->Service.State.STOPPING
->Service.State.TERMINATED
Service.State.FAILED
, and its behavior is undefined. Such a service cannot be
started nor stopped.
Implementors of this interface are strongly encouraged to extend AbstractService
or AbstractExecutionThreadService
, which make
the threading and state management easier.
- Since:
- 1
- Author:
- Jesse Wilson
Nested Class Summary | |
---|---|
static class |
Service.State
The lifecycle states of a service. |
Method Summary | |
---|---|
boolean |
isRunning()
Returns true if this service is running . |
Future<Service.State> |
start()
If the service state is Service.State.NEW , this initiates service startup
and returns immediately. |
Service.State |
startAndWait()
Initiates service startup (if necessary), returning once the service has finished starting. |
Service.State |
state()
Returns the lifecycle state of the service. |
Future<Service.State> |
stop()
If the service is Service.State.STARTING or Service.State.RUNNING , this
initiates service shutdown and returns immediately. |
Service.State |
stopAndWait()
Initiates service shutdown (if necessary), returning once the service has finished stopping. |
Method Detail |
---|
start
Future<Service.State> start()
- If the service state is
Service.State.NEW
, this initiates service startup and returns immediately. If the service has already been started, this method returns immediately without taking action. A stopped service may not be restarted.- Returns:
- a future for the startup result, regardless of whether this call
initiated startup. Calling
Future.get()
will block until the service has finished starting, and returns one ofService.State.RUNNING
,Service.State.STOPPING
orService.State.TERMINATED
. If the service fails to start,Future.get()
will throw anExecutionException
, and the service's state will beService.State.FAILED
. If it has already finished starting,Future.get()
returns immediately. Cancelling the returned future is unsupported and always returnsfalse
.
startAndWait
Service.State startAndWait()
- Initiates service startup (if necessary), returning once the service has
finished starting. Unlike calling
start().get()
, this method throws no checked exceptions.- Returns:
- the state of the service when startup finished.
- Throws:
InterruptedRuntimeException
- if the thread was interrupted while waiting for the service to finish starting up.RuntimeException
- if startup failed
isRunning
boolean isRunning()
- Returns
true
if this service isrunning
.
state
Service.State state()
- Returns the lifecycle state of the service.
stop
Future<Service.State> stop()
- If the service is
Service.State.STARTING
orService.State.RUNNING
, this initiates service shutdown and returns immediately. If this isService.State.NEW
, it isterminated
without having been started nor stopped. If the service has already been stopped, this method returns immediately without taking action.- Returns:
- a future for the shutdown result, regardless of whether this call
initiated shutdown. Calling
Future.get()
will block until the service has finished shutting down, and either returnsService.State.TERMINATED
or throws anExecutionException
. If it has already finished stopping,Future.get()
returns immediately. Cancelling this future is unsupported and always returnsfalse
.
stopAndWait
Service.State stopAndWait()
- Initiates service shutdown (if necessary), returning once the service has
finished stopping. If this is
Service.State.STARTING
, startup will be cancelled. If this isService.State.NEW
, it isterminated
without having been started nor stopped. Unlike callingstop().get()
, this method throws no checked exceptions.- Returns:
- the state of the service when shutdown finished.
- Throws:
InterruptedRuntimeException
- if the thread was interrupted while waiting for the service to finish shutting down.RuntimeException
- if shutdown failed
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |