org.apache.catalina.core

## Class StandardService

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.core.StandardService

- All Implemented Interfaces:
    MBeanRegistration, JmxEnabled, Lifecycle, Service

      public class StandardService
      extends LifecycleMBeanBase
      implements Service

  Standard implementation of the `Service` interface. The associated Container is generally an instance of Engine, but this is not required.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

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

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Connector[]` | `connectors` The set of Connectors associated with this Service.
    `protected ArrayList<Executor>` | `executors`
    `protected Mapper` | `mapper` Mapper.
    `protected MapperListener` | `mapperListener` Mapper listener.
    `protected PropertyChangeSupport` | `support` The property change support for this component.

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StandardService()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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
    `void` | `addPropertyChangeListener(PropertyChangeListener listener)` Add a property change listener to this component.
    `protected void` | `destroyInternal()` Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
    `Connector[]` | `findConnectors()` Find and return the set of Connectors associated with this Service.
    `Executor[]` | `findExecutors()` Retrieves all executors
    `ObjectName[]` | `getConnectorNames()`
    `Engine` | `getContainer()`
    `protected String` | `getDomainInternal()` Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `Executor` | `getExecutor(String executorName)` Retrieves executor by name, null if not found
    `Mapper` | `getMapper()`
    `String` | `getName()` Return the name of this Service.
    `String` | `getObjectNameKeyProperties()` Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `ClassLoader` | `getParentClassLoader()` Return the parent class loader for this component.
    `Server` | `getServer()` Return the `Server` with which we are associated (if any).
    `protected void` | `initInternal()` Invoke a pre-startup initialization.
    `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` | `removePropertyChangeListener(PropertyChangeListener listener)` Remove a property change listener from this component.
    `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 server.
    `void` | `setServer(Server server)` Set the `Server` with which we are associated (if any).
    `protected void` | `startInternal()` Start nested components (`Executor`s, `Connector`s and `Container`s) and implement the requirements of `LifecycleBase.startInternal()`.
    `protected void` | `stopInternal()` Stop nested components (`Executor`s, `Connector`s and `Container`s) and implement the requirements of `LifecycleBase.stopInternal()`.
    `String` | `toString()` Return a String representation of this component.

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.Service

      `getDomain`

    - ### Methods inherited from interface org.apache.catalina.Lifecycle

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

- - ### Field Detail

    - #### support

          protected final PropertyChangeSupport support

      The property change support for this component.

    - #### connectors

          protected Connector[] connectors

      The set of Connectors associated with this Service.

    - #### executors

          protected final ArrayList<Executor> executors

    - #### mapper

          protected final Mapper mapper

      Mapper.

    - #### mapperListener

          protected final MapperListener mapperListener

      Mapper listener.

  - ### Constructor Detail

    - #### StandardService

          public StandardService()

  - ### Method Detail

    - #### getMapper

          public Mapper getMapper()

      Specified by:
        `getMapper` in interface `Service`
      Returns:
        the mapper associated with this Service.

    - #### getContainer

          public Engine getContainer()

      Specified by:
        `getContainer` in interface `Service`
      Returns:
        the `Engine` that handles requests for all `Connectors` associated with this Service.

    - #### setContainer

          public void setContainer(Engine engine)

      Description copied from interface: `Service`
      Set the `Engine` that handles requests for all `Connectors` associated with this Service.
      Specified by:
        `setContainer` in interface `Service`
      Parameters:
        `engine` - The new Engine

    - #### getName

          public String getName()

      Return the name of this Service.
      Specified by:
        `getName` in interface `Service`
      Returns:
        the name of this Service.

    - #### setName

          public void setName(String name)

      Set the name of this Service.
      Specified by:
        `setName` in interface `Service`
      Parameters:
        `name` - The new service name

    - #### getServer

          public Server getServer()

      Return the `Server` with which we are associated (if any).
      Specified by:
        `getServer` in interface `Service`
      Returns:
        the `Server` with which we are associated (if any).

    - #### setServer

          public void setServer(Server server)

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

    - #### addConnector

          public void addConnector(Connector connector)

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

    - #### getConnectorNames

          public ObjectName[] getConnectorNames()

    - #### addPropertyChangeListener

          public void addPropertyChangeListener(PropertyChangeListener listener)

      Add a property change listener to this component.
      Parameters:
        `listener` - The listener to add

    - #### findConnectors

          public Connector[] findConnectors()

      Find and return the set of Connectors associated with this Service.
      Specified by:
        `findConnectors` in interface `Service`
      Returns:
        the set of associated Connectors

    - #### removeConnector

          public 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.
      Specified by:
        `removeConnector` in interface `Service`
      Parameters:
        `connector` - The Connector to be removed

    - #### removePropertyChangeListener

          public void removePropertyChangeListener(PropertyChangeListener listener)

      Remove a property change listener from this component.
      Parameters:
        `listener` - The listener to remove

    - #### toString

          public String toString()

      Return a String representation of this component.
      Overrides:
        `toString` in class `Object`

    - #### addExecutor

          public void addExecutor(Executor ex)

      Adds a named executor to the service
      Specified by:
        `addExecutor` in interface `Service`
      Parameters:
        `ex` - Executor

    - #### findExecutors

          public Executor[] findExecutors()

      Retrieves all executors
      Specified by:
        `findExecutors` in interface `Service`
      Returns:
        Executor[]

    - #### getExecutor

          public Executor getExecutor(String executorName)

      Retrieves executor by name, null if not found
      Specified by:
        `getExecutor` in interface `Service`
      Parameters:
        `executorName` - String
      Returns:
        Executor

    - #### removeExecutor

          public void removeExecutor(Executor ex)

      Removes an executor from the service
      Specified by:
        `removeExecutor` in interface `Service`
      Parameters:
        `ex` - Executor

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start nested components (`Executor`s, `Connector`s and `Container`s) and implement the requirements of `LifecycleBase.startInternal()`.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Stop nested components (`Executor`s, `Connector`s and `Container`s) and implement the requirements of `LifecycleBase.stopInternal()`.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that needs to be reported

    - #### initInternal

          protected void initInternal()
                               throws LifecycleException

      Invoke a pre-startup initialization. This is used to allow connectors to bind to restricted ports under Unix operating environments.
      Overrides:
        `initInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the initialisation fails

    - #### destroyInternal

          protected void destroyInternal()
                                  throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
      Overrides:
        `destroyInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the destruction fails

    - #### getParentClassLoader

          public ClassLoader getParentClassLoader()

      Return the parent class loader for this component.
      Specified by:
        `getParentClassLoader` in interface `Service`
      Returns:
        the parent class loader for this component. If not set, return `Service.getServer()` `Server.getParentClassLoader()`. If no server has been set, return the system class loader.

    - #### setParentClassLoader

          public void setParentClassLoader(ClassLoader parent)

      Set the parent class loader for this server.
      Specified by:
        `setParentClassLoader` in interface `Service`
      Parameters:
        `parent` - The new parent class loader

    - #### getDomainInternal

          protected String getDomainInternal()

      Description copied from class: `LifecycleMBeanBase`
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Specified by:
        `getDomainInternal` in class `LifecycleMBeanBase`
      Returns:
        The name of the domain to use to register MBeans.

    - #### getObjectNameKeyProperties

          public final String getObjectNameKeyProperties()

      Description copied from class: `LifecycleMBeanBase`
      Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
      Specified by:
        `getObjectNameKeyProperties` in class `LifecycleMBeanBase`
      Returns:
        The string representation of the key properties component of the desired `ObjectName`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.