# Interface Service

All Superinterfaces:
  `Lifecycle`

All Known Implementing Classes:
  `StandardService`

public interface Service extends Lifecycle
A Service is a group of one or more Connectors that share a single Container to process their incoming requests. This arrangement allows, for example, a non-SSL and SSL connector to share the same population of web apps.

A given JVM can contain any number of Service instances; however, they are completely independent of each other and share only the basic JVM facilities and classes on the system class path.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Lifecycle

  `Lifecycle.SingleUse`

- ## Field Summary

  ### Fields inherited from interface Lifecycle

  `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addConnector(Connector connector)`
  Add a new Connector to the set of defined Connectors, and associate it with this Service's Container.
  `void`
  `addExecutor(Executor ex)`
  Adds a named executor to the service
  `Connector[]`
  `findConnectors()`
  Find and return the set of Connectors associated with this Service.
  `Executor[]`
  `findExecutors()`
  Retrieves all executors
  `Engine`
  `getContainer()`
  Returns the `Engine` that handles requests for all `Connectors` associated with this Service.
  `String`
  `getDomain()`
  Returns the domain under which this container will be / has been registered.
  `Executor`
  `getExecutor(String name)`
  Retrieves executor by name, null if not found
  `Mapper`
  `getMapper()`
  Returns the mapper associated with this Service.
  `String`
  `getName()`
  Returns the name of this Service.
  `ClassLoader`
  `getParentClassLoader()`
  Returns the parent class loader for this component.
  `Server`
  `getServer()`
  Returns the `Server` with which we are associated (if any).
  `void`
  `removeConnector(Connector connector)`
  Remove the specified Connector from the set associated from this Service.
  `void`
  `removeExecutor(Executor ex)`
  Removes an executor from the service
  `void`
  `setContainer(Engine engine)`
  Set the `Engine` that handles requests for all `Connectors` associated with this Service.
  `void`
  `setName(String name)`
  Set the name of this Service.
  `void`
  `setParentClassLoader(ClassLoader parent)`
  Set the parent class loader for this service.
  `void`
  `setServer(Server server)`
  Set the `Server` with which we are associated (if any).

  ### Methods inherited from interface Lifecycle

  `addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

- ## Method Details

  - ### getContainer

    Engine getContainer()
    Returns the `Engine` that handles requests for all `Connectors` associated with this Service.
    Returns:
      the Engine

  - ### setContainer

    void setContainer(Engine engine)
    Set the `Engine` that handles requests for all `Connectors` associated with this Service.
    Parameters:
      `engine` - The new Engine

  - ### getName

    String getName()
    Returns the name of this Service.
    Returns:
      the service name

  - ### setName

    void setName(String name)
    Set the name of this Service.
    Parameters:
      `name` - The new service name

  - ### getServer

    Server getServer()
    Returns the `Server` with which we are associated (if any).
    Returns:
      the associated Server

  - ### setServer

    void setServer(Server server)
    Set the `Server` with which we are associated (if any).
    Parameters:
      `server` - The server that owns this Service

  - ### getParentClassLoader

    ClassLoader getParentClassLoader()
    Returns the parent class loader for this component. If not set, return `getServer()` `Server.getParentClassLoader()`. If no server has been set, return the system class loader.
    Returns:
      the parent class loader

  - ### setParentClassLoader

    void setParentClassLoader(ClassLoader parent)
    Set the parent class loader for this service.
    Parameters:
      `parent` - The new parent class loader

  - ### getDomain

    String getDomain()
    Returns the domain under which this container will be / has been registered.
    Returns:
      the domain name

  - ### addConnector

    void addConnector(Connector connector)
    Add a new Connector to the set of defined Connectors, and associate it with this Service's Container.
    Parameters:
      `connector` - The Connector to be added

  - ### findConnectors

    Connector[] findConnectors()
    Find and return the set of Connectors associated with this Service.
    Returns:
      the array of associated Connectors

  - ### removeConnector

    void removeConnector(Connector connector)
    Remove the specified Connector from the set associated from this Service. The removed Connector will also be disassociated from our Container.
    Parameters:
      `connector` - The Connector to be removed

  - ### addExecutor

    void addExecutor(Executor ex)
    Adds a named executor to the service
    Parameters:
      `ex` - Executor

  - ### findExecutors

    Executor[] findExecutors()
    Retrieves all executors
    Returns:
      Executor[]

  - ### getExecutor

    Executor getExecutor(String name)
    Retrieves executor by name, null if not found
    Parameters:
      `name` - String
    Returns:
      Executor

  - ### removeExecutor

    void removeExecutor(Executor ex)
    Removes an executor from the service
    Parameters:
      `ex` - Executor

  - ### getMapper

    Mapper getMapper()
    Returns the mapper associated with this Service.
    Returns:
      the mapper