org.apache.hadoop.service
Class CompositeService

java.lang.Object
  extended by org.apache.hadoop.service.AbstractService
      extended by org.apache.hadoop.service.CompositeService
All Implemented Interfaces:
Closeable, Service

@InterfaceAudience.Public
@InterfaceStability.Evolving
public class CompositeService
extends AbstractService

Composition of services.


Field Summary
protected static boolean STOP_ONLY_STARTED_SERVICES
          Policy on shutdown: attempt to close everything (purest) or only try to close started services (which assumes that the service implementations may not handle the stop() operation except when started.
 
Constructor Summary
CompositeService(String name)
           
 
Method Summary
protected  void addService(Service service)
           
 List<Service> getServices()
          Get an unmodifiable list of services
protected  boolean removeService(Service service)
           
protected  void serviceInit(Configuration conf)
          All initialization code needed by a service.
protected  void serviceStart()
          Actions called during the INITED to STARTED transition.
protected  void serviceStop()
          Actions called during the transition to the STOPPED state.
 
Methods inherited from class org.apache.hadoop.service.AbstractService
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

STOP_ONLY_STARTED_SERVICES

protected static final boolean STOP_ONLY_STARTED_SERVICES
Policy on shutdown: attempt to close everything (purest) or only try to close started services (which assumes that the service implementations may not handle the stop() operation except when started. Irrespective of this policy, if a child service fails during its init() or start() operations, it will have stop() called on it.

See Also:
Constant Field Values
Constructor Detail

CompositeService

public CompositeService(String name)
Method Detail

getServices

public List<Service> getServices()
Get an unmodifiable list of services

Returns:
a list of child services at the time of invocation - added services will not be picked up.

addService

protected void addService(Service service)

removeService

protected boolean removeService(Service service)

serviceInit

protected void serviceInit(Configuration conf)
                    throws Exception
Description copied from class: AbstractService
All initialization code needed by a service. This method will only ever be called once during the lifecycle of a specific service instance. Implementations do not need to be synchronized as the logic in AbstractService.init(Configuration) prevents re-entrancy. The base implementation checks to see if the subclass has created a new configuration instance, and if so, updates the base class value

Overrides:
serviceInit in class AbstractService
Parameters:
conf - configuration
Throws:
Exception - on a failure -these will be caught, possibly wrapped, and wil; trigger a service stop

serviceStart

protected void serviceStart()
                     throws Exception
Description copied from class: AbstractService
Actions called during the INITED to STARTED transition. This method will only ever be called once during the lifecycle of a specific service instance. Implementations do not need to be synchronized as the logic in AbstractService.start() prevents re-entrancy.

Overrides:
serviceStart in class AbstractService
Throws:
Exception - if needed -these will be caught, wrapped, and trigger a service stop

serviceStop

protected void serviceStop()
                    throws Exception
Description copied from class: AbstractService
Actions called during the transition to the STOPPED state. This method will only ever be called once during the lifecycle of a specific service instance. Implementations do not need to be synchronized as the logic in AbstractService.stop() prevents re-entrancy. Implementations MUST write this to be robust against failures, including checks for null references -and for the first failure to not stop other attempts to shut down parts of the service.

Overrides:
serviceStop in class AbstractService
Throws:
Exception - if needed -these will be caught and logged.


Copyright © 2013 Apache Software Foundation. All Rights Reserved.