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
Direct Known Subclasses:
AddingCompositeService, org.apache.hadoop.registry.client.impl.zk.CuratorService

@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  boolean addIfService(Object object)
          If the passed object is an instance of Service, add it to the list of services managed by this CompositeService
protected  void addService(Service service)
          Add the passed Service to the list of services managed by this CompositeService
 List<Service> getServices()
          Get a cloned 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 a cloned 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)
Add the passed Service to the list of services managed by this CompositeService

Parameters:
service - the Service to be added

addIfService

protected boolean addIfService(Object object)
If the passed object is an instance of Service, add it to the list of services managed by this CompositeService

Parameters:
object -
Returns:
true if a service is added, false otherwise.

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 © 2014 Apache Software Foundation. All Rights Reserved.