Connector (Apache Tomcat 9.0.37 API Documentation)

org.apache.catalina.connector

## Class Connector

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.connector.Connector

- All Implemented Interfaces:
    MBeanRegistration, JmxEnabled, Lifecycle

      public class Connector
      extends LifecycleMBeanBase

  Implementation of a Coyote connector.
  Author:
    Craig R. McClanahan, Remy Maucherat

- - ### 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 Adapter` | `adapter` Coyote adapter.
    `protected boolean` | `allowTrace` Do we allow TRACE ?
    `protected long` | `asyncTimeout` Default timeout for asynchronous requests (ms).
    `protected boolean` | `discardFacades` The flag that controls recycling of the facades of the request processing objects.
    `protected boolean` | `enableLookups` The "enable DNS lookups" flag for this Connector.
    `static String` | `INTERNAL_EXECUTOR_NAME`
    `protected int` | `maxParameterCount` The maximum number of parameters (GET plus POST) which will be automatically parsed by the container. 10000 by default.
    `protected int` | `maxPostSize` Maximum size of a POST which will be automatically parsed by the container. 2MB by default.
    `protected int` | `maxSavePostSize` Maximum size of a POST which will be saved by the container during authentication. 4kB by default
    `protected String` | `parseBodyMethods` Comma-separated list of HTTP methods that will be parsed according to POST-style rules for application/x-www-form-urlencoded request bodies.
    `protected HashSet<String>` | `parseBodyMethodsSet` A Set of methods determined by `parseBodyMethods`.
    `protected ProtocolHandler` | `protocolHandler` Coyote protocol handler.
    `protected String` | `protocolHandlerClassName` Coyote Protocol handler class name.
    `protected String` | `proxyName` The server name to which we should pretend requests to this Connector were directed.
    `protected int` | `proxyPort` The server port to which we should pretend requests to this Connector were directed.
    `static boolean` | `RECYCLE_FACADES` Alternate flag to enable recycling of facades.
    `protected int` | `redirectPort` The redirect port for non-SSL to SSL redirects.
    `protected String` | `scheme` The request scheme that will be set on all requests received through this connector.
    `protected boolean` | `secure` The secure connection flag that will be set on all requests received through this connector.
    `protected Service` | `service` The `Service` we are associated with (if any).
    `protected static StringManager` | `sm` The string manager for this package.
    `protected boolean` | `useBodyEncodingForURI` URI encoding as body.
    `protected boolean` | `useIPVHosts` Flag to use IP-based virtual hosting.
    `protected boolean` | `xpoweredBy` Is generation of X-Powered-By response header enabled/disabled?

    - ### 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
    `Connector()` Defaults to using HTTP/1.1 NIO implementation.
    `Connector(ProtocolHandler protocolHandler)`
    `Connector(String protocol)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSslHostConfig(SSLHostConfig sslHostConfig)`
    `void` | `addUpgradeProtocol(UpgradeProtocol upgradeProtocol)`
    `protected String` | `createObjectNameKeyProperties(String type)`
    `Request` | `createRequest()` Create (or allocate) and return a Request object suitable for specifying the contents of a Request to the responsible Container.
    `Response` | `createResponse()` Create (or allocate) and return a Response object suitable for receiving the contents of a Response from the responsible Container.
    `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.
    `SSLHostConfig[]` | `findSslHostConfigs()`
    `UpgradeProtocol[]` | `findUpgradeProtocols()`
    `boolean` | `getAllowTrace()`
    `long` | `getAsyncTimeout()`
    `Object` | `getAttribute(String name)` Deprecated. Use `getProperty(String)`. This will be removed in Tomcat 10 onwards.
    `boolean` | `getDiscardFacades()`
    `protected String` | `getDomainInternal()` Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `boolean` | `getEnableLookups()`
    `String` | `getEncodedSolidusHandling()`
    `EncodedSolidusHandling` | `getEncodedSolidusHandlingInternal()`
    `String` | `getExecutorName()`
    `int` | `getLocalPort()`
    `int` | `getMaxCookieCount()`
    `int` | `getMaxParameterCount()`
    `int` | `getMaxPostSize()`
    `int` | `getMaxSavePostSize()`
    `protected String` | `getObjectNameKeyProperties()` Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `String` | `getParseBodyMethods()`
    `int` | `getPort()`
    `int` | `getPortOffset()`
    `int` | `getPortWithOffset()`
    `Object` | `getProperty(String name)` Return a property from the protocol handler.
    `String` | `getProtocol()`
    `ProtocolHandler` | `getProtocolHandler()`
    `String` | `getProtocolHandlerClassName()`
    `String` | `getProxyName()`
    `int` | `getProxyPort()`
    `int` | `getRedirectPort()`
    `int` | `getRedirectPortWithOffset()`
    `String` | `getScheme()`
    `boolean` | `getSecure()`
    `Service` | `getService()`
    `Charset` | `getURICharset()`
    `String` | `getURIEncoding()`
    `boolean` | `getUseBodyEncodingForURI()`
    `boolean` | `getUseIPVHosts()` Test if IP-based virtual hosting is enabled.
    `boolean` | `getXpoweredBy()` Indicates whether the generation of an X-Powered-By response header for Servlet-generated responses is enabled or disabled for this Connector.
    `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.
    `protected boolean` | `isParseBodyMethod(String method)`
    `void` | `pause()` Pause the connector.
    `void` | `resume()` Resume the connector.
    `void` | `setAllowTrace(boolean allowTrace)` Set the allowTrace flag, to disable or enable the TRACE HTTP method.
    `void` | `setAsyncTimeout(long asyncTimeout)` Set the default timeout for async requests.
    `void` | `setAttribute(String name, Object value)` Deprecated. Use `setProperty(String, String)`. This will be removed in Tomcat 10 onwards.
    `void` | `setDiscardFacades(boolean discardFacades)` Set the recycling strategy for the object facades.
    `void` | `setEnableLookups(boolean enableLookups)` Set the "enable DNS lookups" flag.
    `void` | `setEncodedSolidusHandling(String encodedSolidusHandling)`
    `void` | `setMaxCookieCount(int maxCookieCount)`
    `void` | `setMaxParameterCount(int maxParameterCount)` Set the maximum number of parameters (GET plus POST) that will be automatically parsed by the container.
    `void` | `setMaxPostSize(int maxPostSize)` Set the maximum size of a POST which will be automatically parsed by the container.
    `void` | `setMaxSavePostSize(int maxSavePostSize)` Set the maximum size of a POST which will be saved by the container during authentication.
    `void` | `setParseBodyMethods(String methods)` Set list of HTTP methods which should allow body parameter parsing.
    `void` | `setPort(int port)` Set the port number on which we listen for requests.
    `void` | `setPortOffset(int portOffset)`
    `boolean` | `setProperty(String name, String value)` Set a property on the protocol handler.
    `void` | `setProxyName(String proxyName)` Set the proxy server name for this Connector.
    `void` | `setProxyPort(int proxyPort)` Set the proxy server port for this Connector.
    `void` | `setRedirectPort(int redirectPort)` Set the redirect port number.
    `void` | `setScheme(String scheme)` Set the scheme that will be assigned to requests received through this connector.
    `void` | `setSecure(boolean secure)` Set the secure connection flag that will be assigned to requests received through this connector.
    `void` | `setService(Service service)` Set the `Service` with which we are associated (if any).
    `void` | `setURIEncoding(String URIEncoding)` Set the URI encoding to be used for the URI.
    `void` | `setUseBodyEncodingForURI(boolean useBodyEncodingForURI)` Set if the entity body encoding should be used for the URI.
    `void` | `setUseIPVHosts(boolean useIPVHosts)` Enable the use of IP-based virtual hosting.
    `void` | `setXpoweredBy(boolean xpoweredBy)` Enables or disables the generation of an X-Powered-By header (with value Servlet/2.5) for all servlet-generated responses returned by this Connector.
    `protected void` | `startInternal()` Begin processing requests via this Connector.
    `protected void` | `stopInternal()` Terminate processing requests via this Connector.
    `String` | `toString()` Provide a useful toString() implementation as it may be used when logging Lifecycle errors to identify the component.

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

      `getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, 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`

- - ### Field Detail

    - #### RECYCLE_FACADES

          public static final boolean RECYCLE_FACADES

      Alternate flag to enable recycling of facades.

    - #### INTERNAL_EXECUTOR_NAME

          public static final String INTERNAL_EXECUTOR_NAME

      See Also:
        Constant Field Values

    - #### service

          protected Service service

      The `Service` we are associated with (if any).

    - #### allowTrace

          protected boolean allowTrace

      Do we allow TRACE ?

    - #### asyncTimeout

          protected long asyncTimeout

      Default timeout for asynchronous requests (ms).

    - #### enableLookups

          protected boolean enableLookups

      The "enable DNS lookups" flag for this Connector.

    - #### xpoweredBy

          protected boolean xpoweredBy

      Is generation of X-Powered-By response header enabled/disabled?

    - #### proxyName

          protected String proxyName

      The server name to which we should pretend requests to this Connector were directed. This is useful when operating Tomcat behind a proxy server, so that redirects get constructed accurately. If not specified, the server name included in the `Host` header is used.

    - #### proxyPort

          protected int proxyPort

      The server port to which we should pretend requests to this Connector were directed. This is useful when operating Tomcat behind a proxy server, so that redirects get constructed accurately. If not specified, the port number specified by the `port` property is used.

    - #### discardFacades

          protected boolean discardFacades

      The flag that controls recycling of the facades of the request processing objects. If set to `true` the object facades will be discarded when the request is recycled. If the security manager is enabled, this setting is ignored and object facades are always discarded.

    - #### redirectPort

          protected int redirectPort

      The redirect port for non-SSL to SSL redirects.

    - #### scheme

          protected String scheme

      The request scheme that will be set on all requests received through this connector.

    - #### secure

          protected boolean secure

      The secure connection flag that will be set on all requests received through this connector.

    - #### sm

          protected static final StringManager sm

      The string manager for this package.

    - #### maxParameterCount

          protected int maxParameterCount

      The maximum number of parameters (GET plus POST) which will be automatically parsed by the container. 10000 by default. A value of less than 0 means no limit.

    - #### maxPostSize

          protected int maxPostSize

      Maximum size of a POST which will be automatically parsed by the container. 2MB by default.

    - #### maxSavePostSize

          protected int maxSavePostSize

      Maximum size of a POST which will be saved by the container during authentication. 4kB by default

    - #### parseBodyMethods

          protected String parseBodyMethods

      Comma-separated list of HTTP methods that will be parsed according to POST-style rules for application/x-www-form-urlencoded request bodies.

    - #### parseBodyMethodsSet

          protected HashSet<String> parseBodyMethodsSet

      A Set of methods determined by `parseBodyMethods`.

    - #### useIPVHosts

          protected boolean useIPVHosts

      Flag to use IP-based virtual hosting.

    - #### protocolHandlerClassName

          protected final String protocolHandlerClassName

      Coyote Protocol handler class name. See `Connector()` for current default.

    - #### protocolHandler

          protected final ProtocolHandler protocolHandler

      Coyote protocol handler.

    - #### adapter

          protected Adapter adapter

      Coyote adapter.

    - #### useBodyEncodingForURI

          protected boolean useBodyEncodingForURI

      URI encoding as body.

  - ### Constructor Detail

    - #### Connector

          public Connector()

      Defaults to using HTTP/1.1 NIO implementation.

    - #### Connector

          public Connector(String protocol)

    - #### Connector

          public Connector(ProtocolHandler protocolHandler)

  - ### Method Detail

    - #### getProperty

          public Object getProperty(String name)

      Return a property from the protocol handler.
      Parameters:
        `name` - the property name
      Returns:
        the property value

    - #### setProperty

          public boolean setProperty(String name,
                                     String value)

      Set a property on the protocol handler.
      Parameters:
        `name` - the property name
        `value` - the property value
      Returns:
        `true` if the property was successfully set

    - #### getAttribute

          @Deprecated
          public Object getAttribute(String name)

      Deprecated. Use `getProperty(String)`. This will be removed in Tomcat 10 onwards.
      Return a property from the protocol handler.
      Parameters:
        `name` - the property name
      Returns:
        the property value

    - #### setAttribute

          @Deprecated
          public void setAttribute(String name,
                                                Object value)

      Deprecated. Use `setProperty(String, String)`. This will be removed in Tomcat 10 onwards.
      Set a property on the protocol handler.
      Parameters:
        `name` - the property name
        `value` - the property value

    - #### getService

          public Service getService()

      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).
      Parameters:
        `service` - The service that owns this Engine

    - #### getAllowTrace

          public boolean getAllowTrace()

      Returns:
        `true` if the TRACE method is allowed. Default value is `false`.

    - #### setAllowTrace

          public void setAllowTrace(boolean allowTrace)

      Set the allowTrace flag, to disable or enable the TRACE HTTP method.
      Parameters:
        `allowTrace` - The new allowTrace flag

    - #### getAsyncTimeout

          public long getAsyncTimeout()

      Returns:
        the default timeout for async requests in ms.

    - #### setAsyncTimeout

          public void setAsyncTimeout(long asyncTimeout)

      Set the default timeout for async requests.
      Parameters:
        `asyncTimeout` - The new timeout in ms.

    - #### getDiscardFacades

          public boolean getDiscardFacades()

      Returns:
        `true` if the object facades are discarded, either when the discardFacades value is `true` or when the security manager is enabled.

    - #### setDiscardFacades

          public void setDiscardFacades(boolean discardFacades)

      Set the recycling strategy for the object facades.
      Parameters:
        `discardFacades` - the new value of the flag

    - #### getEnableLookups

          public boolean getEnableLookups()

      Returns:
        the "enable DNS lookups" flag.

    - #### setEnableLookups

          public void setEnableLookups(boolean enableLookups)

      Set the "enable DNS lookups" flag.
      Parameters:
        `enableLookups` - The new "enable DNS lookups" flag value

    - #### getMaxCookieCount

          public int getMaxCookieCount()

    - #### setMaxCookieCount

          public void setMaxCookieCount(int maxCookieCount)

    - #### getMaxParameterCount

          public int getMaxParameterCount()

      Returns:
        the maximum number of parameters (GET plus POST) that will be automatically parsed by the container. A value of less than 0 means no limit.

    - #### setMaxParameterCount

          public void setMaxParameterCount(int maxParameterCount)

      Set the maximum number of parameters (GET plus POST) that will be automatically parsed by the container. A value of less than 0 means no limit.
      Parameters:
        `maxParameterCount` - The new setting

    - #### getMaxPostSize

          public int getMaxPostSize()

      Returns:
        the maximum size of a POST which will be automatically parsed by the container.

    - #### setMaxPostSize

          public void setMaxPostSize(int maxPostSize)

      Set the maximum size of a POST which will be automatically parsed by the container.
      Parameters:
        `maxPostSize` - The new maximum size in bytes of a POST which will be automatically parsed by the container

    - #### getMaxSavePostSize

          public int getMaxSavePostSize()

      Returns:
        the maximum size of a POST which will be saved by the container during authentication.

    - #### setMaxSavePostSize

          public void setMaxSavePostSize(int maxSavePostSize)

      Set the maximum size of a POST which will be saved by the container during authentication.
      Parameters:
        `maxSavePostSize` - The new maximum size in bytes of a POST which will be saved by the container during authentication.

    - #### getParseBodyMethods

          public String getParseBodyMethods()

      Returns:
        the HTTP methods which will support body parameters parsing

    - #### setParseBodyMethods

          public void setParseBodyMethods(String methods)

      Set list of HTTP methods which should allow body parameter parsing. This defaults to `POST`.
      Parameters:
        `methods` - Comma separated list of HTTP method names

    - #### isParseBodyMethod

          protected boolean isParseBodyMethod(String method)

    - #### getPort

          public int getPort()

      Returns:
        the port number on which this connector is configured to listen for requests. The special value of 0 means select a random free port when the socket is bound.

    - #### setPort

          public void setPort(int port)

      Set the port number on which we listen for requests.
      Parameters:
        `port` - The new port number

    - #### getPortOffset

          public int getPortOffset()

    - #### setPortOffset

          public void setPortOffset(int portOffset)

    - #### getPortWithOffset

          public int getPortWithOffset()

    - #### getLocalPort

          public int getLocalPort()

      Returns:
        the port number on which this connector is listening to requests. If the special value for `getPort()` of zero is used then this method will report the actual port bound.

    - #### getProtocol

          public String getProtocol()

      Returns:
        the Coyote protocol handler in use.

    - #### getProtocolHandlerClassName

          public String getProtocolHandlerClassName()

      Returns:
        the class name of the Coyote protocol handler in use.

    - #### getProtocolHandler

          public ProtocolHandler getProtocolHandler()

      Returns:
        the protocol handler associated with the connector.

    - #### getProxyName

          public String getProxyName()

      Returns:
        the proxy server name for this Connector.

    - #### setProxyName

          public void setProxyName(String proxyName)

      Set the proxy server name for this Connector.
      Parameters:
        `proxyName` - The new proxy server name

    - #### getProxyPort

          public int getProxyPort()

      Returns:
        the proxy server port for this Connector.

    - #### setProxyPort

          public void setProxyPort(int proxyPort)

      Set the proxy server port for this Connector.
      Parameters:
        `proxyPort` - The new proxy server port

    - #### getRedirectPort

          public int getRedirectPort()

      Returns:
        the port number to which a request should be redirected if it comes in on a non-SSL port and is subject to a security constraint with a transport guarantee that requires SSL.

    - #### setRedirectPort

          public void setRedirectPort(int redirectPort)

      Set the redirect port number.
      Parameters:
        `redirectPort` - The redirect port number (non-SSL to SSL)

    - #### getRedirectPortWithOffset

          public int getRedirectPortWithOffset()

    - #### getScheme

          public String getScheme()

      Returns:
        the scheme that will be assigned to requests received through this connector. Default value is "http".

    - #### setScheme

          public void setScheme(String scheme)

      Set the scheme that will be assigned to requests received through this connector.
      Parameters:
        `scheme` - The new scheme

    - #### getSecure

          public boolean getSecure()

      Returns:
        the secure connection flag that will be assigned to requests received through this connector. Default value is "false".

    - #### setSecure

          public void setSecure(boolean secure)

      Set the secure connection flag that will be assigned to requests received through this connector.
      Parameters:
        `secure` - The new secure connection flag

    - #### getURIEncoding

          public String getURIEncoding()

      Returns:
        the name of character encoding to be used for the URI using the original case.

    - #### getURICharset

          public Charset getURICharset()

      Returns:
        The Charset to use to convert raw URI bytes (after %nn decoding) to characters. This will never be null

    - #### setURIEncoding

          public void setURIEncoding(String URIEncoding)

      Set the URI encoding to be used for the URI.
      Parameters:
        `URIEncoding` - The new URI character encoding.

    - #### getUseBodyEncodingForURI

          public boolean getUseBodyEncodingForURI()

      Returns:
        the true if the entity body encoding should be used for the URI.

    - #### setUseBodyEncodingForURI

          public void setUseBodyEncodingForURI(boolean useBodyEncodingForURI)

      Set if the entity body encoding should be used for the URI.
      Parameters:
        `useBodyEncodingForURI` - The new value for the flag.

    - #### getXpoweredBy

          public boolean getXpoweredBy()

      Indicates whether the generation of an X-Powered-By response header for Servlet-generated responses is enabled or disabled for this Connector.
      Returns:
        `true` if generation of X-Powered-By response header is enabled, false otherwise

    - #### setXpoweredBy

          public void setXpoweredBy(boolean xpoweredBy)

      Enables or disables the generation of an X-Powered-By header (with value Servlet/2.5) for all servlet-generated responses returned by this Connector.
      Parameters:
        `xpoweredBy` - true if generation of X-Powered-By response header is to be enabled, false otherwise

    - #### setUseIPVHosts

          public void setUseIPVHosts(boolean useIPVHosts)

      Enable the use of IP-based virtual hosting.
      Parameters:
        `useIPVHosts` - `true` if Hosts are identified by IP, `false` if Hosts are identified by name.

    - #### getUseIPVHosts

          public boolean getUseIPVHosts()

      Test if IP-based virtual hosting is enabled.
      Returns:
        `true` if IP vhosts are enabled

    - #### getExecutorName

          public String getExecutorName()

    - #### addSslHostConfig

          public void addSslHostConfig(SSLHostConfig sslHostConfig)

    - #### findSslHostConfigs

          public SSLHostConfig[] findSslHostConfigs()

    - #### addUpgradeProtocol

          public void addUpgradeProtocol(UpgradeProtocol upgradeProtocol)

    - #### findUpgradeProtocols

          public UpgradeProtocol[] findUpgradeProtocols()

    - #### getEncodedSolidusHandling

          public String getEncodedSolidusHandling()

    - #### setEncodedSolidusHandling

          public void setEncodedSolidusHandling(String encodedSolidusHandling)

    - #### getEncodedSolidusHandlingInternal

          public EncodedSolidusHandling getEncodedSolidusHandlingInternal()

    - #### createRequest

          public Request createRequest()

      Create (or allocate) and return a Request object suitable for specifying the contents of a Request to the responsible Container.
      Returns:
        a new Servlet request object

    - #### createResponse

          public Response createResponse()

      Create (or allocate) and return a Response object suitable for receiving the contents of a Response from the responsible Container.
      Returns:
        a new Servlet response object

    - #### createObjectNameKeyProperties

          protected String createObjectNameKeyProperties(String type)

    - #### pause

          public void pause()

      Pause the connector.

    - #### resume

          public void resume()

      Resume the connector.

    - #### 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 `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the initialisation fails

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Begin processing requests via this Connector.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if a fatal startup error occurs

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Terminate processing requests via this Connector.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if a fatal shutdown error occurs

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

    - #### toString

          public String toString()

      Provide a useful toString() implementation as it may be used when logging Lifecycle errors to identify the component.
      Overrides:
        `toString` in class `Object`

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

          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`

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