Package org.apache.catalina

## 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.

  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from interface org.apache.catalina.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

    All Methods Instance Methods Abstract Methods
    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()` |
    `String` | `getDomain()` |
    `Executor` | `getExecutor​(String name)` | Retrieves executor by name, null if not found
    `Mapper` | `getMapper()` |
    `String` | `getName()` |
    `ClassLoader` | `getParentClassLoader()` |
    `Server` | `getServer()` |
    `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 org.apache.catalina.Lifecycle

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

- - ### Method Detail

    - #### getContainer

          Engine getContainer()

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

    - #### 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.

    - #### 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).

    - #### 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.

    - #### 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.

    - #### 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 set 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.