org.apache.catalina.core

## Class StandardEngine

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

- All Implemented Interfaces:
    MBeanRegistration, Container, Engine, JmxEnabled, Lifecycle

      public class StandardEngine
      extends ContainerBase
      implements Engine

  Standard implementation of the Engine interface. Each child container must be a Host implementation to process the specific fully qualified host name of that virtual host.
  You can set the jvmRoute direct or with the System.property jvmRoute.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `StandardEngine.AccessLogListener`
    `protected static class` | `StandardEngine.NoopAccessLog`

    - ### Nested classes/interfaces inherited from class org.apache.catalina.core.ContainerBase

      `ContainerBase.ContainerBackgroundProcessor, ContainerBase.PrivilegedAddChild`

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

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.core.ContainerBase

      `accessLog, backgroundProcessorDelay, children, cluster, listeners, logger, logName, name, parent, parentClassLoader, pipeline, sm, startChildren, startStopExecutor, support`

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

      `mserver`

    - ### Fields inherited from interface org.apache.catalina.Container

      `ADD_CHILD_EVENT, ADD_VALVE_EVENT, REMOVE_CHILD_EVENT, REMOVE_VALVE_EVENT`

    - ### 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
    `StandardEngine()` Create a new StandardEngine component with the default basic Valve.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addChild(Container child)` Add a child Container, only if the proposed child is an implementation of Host.
    `File` | `getCatalinaBase()` Obtain the location of CATALINA_BASE.
    `File` | `getCatalinaHome()` Obtain the location of CATALINA_HOME.
    `String` | `getDefaultHost()` Return the default host.
    `protected String` | `getDomainInternal()` Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `String` | `getJvmRoute()` Retrieve the cluster-wide unique identifier for this Engine.
    `protected 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.
    `Realm` | `getRealm()` Obtain the configured Realm and provide a default Realm implementation when no explicit configuration is set.
    `Service` | `getService()` Return the `Service` with which we are associated (if any).
    `protected void` | `initInternal()` Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
    `void` | `logAccess(Request request, Response response, long time, boolean useDefault)` Override the default implementation.
    `void` | `setDefaultHost(String host)` Set the default host.
    `void` | `setJvmRoute(String routeId)` Set the cluster-wide unique identifier for this Engine.
    `void` | `setParent(Container container)` Disallow any attempt to set a parent for this Container, since an Engine is supposed to be at the top of the Container hierarchy.
    `void` | `setService(Service service)` Set the `Service` with which we are associated (if any).
    `protected void` | `startInternal()` Start this component and implement the requirements of `LifecycleBase.startInternal()`.

    - ### Methods inherited from class org.apache.catalina.core.ContainerBase

      `addContainerListener, addPropertyChangeListener, addValve, backgroundProcess, destroyInternal, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getChildren, getCluster, getClusterInternal, getLogger, getLogName, getMBeanKeyProperties, getName, getParent, getPipeline, getRealmInternal, getStartChildren, getStartStopThreads, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParentClassLoader, setRealm, setStartChildren, setStartStopThreads, stopInternal, threadStart, threadStop, toString`

    - ### 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, init, removeLifecycleListener, setState, setState, 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.Container

      `addContainerListener, addPropertyChangeListener, backgroundProcess, findChild, findChildren, findContainerListeners, fireContainerEvent, getAccessLog, getBackgroundProcessorDelay, getCluster, getDomain, getLogger, getLogName, getMBeanKeyProperties, getName, getObjectName, getParent, getPipeline, getStartStopThreads, removeChild, removeContainerListener, removePropertyChangeListener, setBackgroundProcessorDelay, setCluster, setName, setParentClassLoader, setRealm, setStartStopThreads`

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

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

- - ### Constructor Detail

    - #### StandardEngine

          public StandardEngine()

      Create a new StandardEngine component with the default basic Valve.

  - ### Method Detail

    - #### getRealm

          public Realm getRealm()

      Obtain the configured Realm and provide a default Realm implementation when no explicit configuration is set.
      Specified by:
        `getRealm` in interface `Container`
      Overrides:
        `getRealm` in class `ContainerBase`
      Returns:
        configured realm, or a `NullRealm` by default

    - #### getDefaultHost

          public String getDefaultHost()

      Return the default host.
      Specified by:
        `getDefaultHost` in interface `Engine`
      Returns:
        the default host name for this Engine.

    - #### setDefaultHost

          public void setDefaultHost(String host)

      Set the default host.
      Specified by:
        `setDefaultHost` in interface `Engine`
      Parameters:
        `host` - The new default host

    - #### setJvmRoute

          public void setJvmRoute(String routeId)

      Set the cluster-wide unique identifier for this Engine. This value is only useful in a load-balancing scenario.

      This property should not be changed once it is set.

      Specified by:
        `setJvmRoute` in interface `Engine`
      Parameters:
        `routeId` - the (new) JVM Route ID. Each Engine within a cluster must have a unique JVM Route ID.

    - #### getJvmRoute

          public String getJvmRoute()

      Retrieve the cluster-wide unique identifier for this Engine. This value is only useful in a load-balancing scenario.
      Specified by:
        `getJvmRoute` in interface `Engine`
      Returns:
        the JvmRouteId for this engine.

    - #### getService

          public Service getService()

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

    - #### setService

          public void setService(Service service)

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

    - #### addChild

          public void addChild(Container child)

      Add a child Container, only if the proposed child is an implementation of Host.
      Specified by:
        `addChild` in interface `Container`
      Overrides:
        `addChild` in class `ContainerBase`
      Parameters:
        `child` - Child container to be added

    - #### setParent

          public void setParent(Container container)

      Disallow any attempt to set a parent for this Container, since an Engine is supposed to be at the top of the Container hierarchy.
      Specified by:
        `setParent` in interface `Container`
      Overrides:
        `setParent` in class `ContainerBase`
      Parameters:
        `container` - Proposed parent Container

    - #### initInternal

          protected void initInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
      Overrides:
        `initInternal` in class `ContainerBase`
      Throws:
        `LifecycleException`

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start this component and implement the requirements of `LifecycleBase.startInternal()`.
      Overrides:
        `startInternal` in class `ContainerBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### logAccess

          public void logAccess(Request request,
                       Response response,
                       long time,
                       boolean useDefault)

      Override the default implementation. If no access log is defined for the Engine, look for one in the Engine's default host and then the default host's ROOT context. If still none is found, return the default NoOp access log.
      Specified by:
        `logAccess` in interface `Container`
      Overrides:
        `logAccess` in class `ContainerBase`
      Parameters:
        `request` - Request (associated with the response) to log
        `response` - Response (associated with the request) to log
        `time` - Time taken to process the request/response in milliseconds (use 0 if not known)
        `useDefault` - Flag that indicates that the request/response should be logged in the engine's default access log

    - #### getParentClassLoader

          public ClassLoader getParentClassLoader()

      Return the parent class loader for this component.
      Specified by:
        `getParentClassLoader` in interface `Container`
      Overrides:
        `getParentClassLoader` in class `ContainerBase`
      Returns:
        the parent class loader for this component. If not set, return `Container.getParent()`.`Container.getParentClassLoader()`. If no parent has been set, return the system class loader.

    - #### getCatalinaBase

          public File getCatalinaBase()

      Description copied from interface: `Container`
      Obtain the location of CATALINA_BASE.
      Specified by:
        `getCatalinaBase` in interface `Container`
      Overrides:
        `getCatalinaBase` in class `ContainerBase`
      Returns:
        The location of CATALINA_BASE.

    - #### getCatalinaHome

          public File getCatalinaHome()

      Description copied from interface: `Container`
      Obtain the location of CATALINA_HOME.
      Specified by:
        `getCatalinaHome` in interface `Container`
      Overrides:
        `getCatalinaHome` in class `ContainerBase`
      Returns:
        The location of CATALINA_HOME.

    - #### getObjectNameKeyProperties

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

    - #### getDomainInternal

          protected String getDomainInternal()

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

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