Package 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
`protected Adapter` `adapter` Coyote adapter.
`protected boolean` `allowBackslash` If this is `true` the '\' character will be permitted as a path delimiter.
`protected boolean` `allowTrace` Do we allow TRACE ?
`protected long` `asyncTimeout` Default timeout for asynchronous requests (ms).
`protected String` `configuredProtocol` Name of the protocol that was configured.
`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.
`protected boolean` `enforceEncodingInGetWriter` If this is `true` then a call to `Response.getWriter()` if no character encoding has been specified will result in subsequent calls to `Response.getCharacterEncoding()` returning `ISO-8859-1` and the `Content-Type` response header will include a `charset=ISO-8859-1` component.
`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.
`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 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
`Connector()` Defaults to using HTTP/1.1 NIO implementation.
`Connector​(String protocol)`
`Connector​(ProtocolHandler protocolHandler)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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` `getAllowBackslash()`
`boolean` `getAllowTrace()`
`long` `getAsyncTimeout()`
`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()`
`boolean` `getEnforceEncodingInGetWriter()`
`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()`
`boolean` `getRejectSuspiciousURIs()`
`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` `setAllowBackslash​(boolean allowBackslash)` Set the allowBackslash flag.
`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` `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` `setEnforceEncodingInGetWriter​(boolean enforceEncodingInGetWriter)` Set the enforceEncodingInGetWriter flag.
`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` `setRejectSuspiciousURIs​(boolean rejectSuspiciousURIs)`
`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

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

#### allowBackslash

    protected boolean allowBackslash

If this is `true` the '\' character will be permitted as a path delimiter. If not specified, the default value of `false` will be used.

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

#### enforceEncodingInGetWriter

    protected boolean enforceEncodingInGetWriter

If this is `true` then a call to `Response.getWriter()` if no character encoding has been specified will result in subsequent calls to `Response.getCharacterEncoding()` returning `ISO-8859-1` and the `Content-Type` response header will include a `charset=ISO-8859-1` component. (SRV.15.2.22.1) If not specified, the default specification compliant value of `true` will be used.

#### 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. The default Tomcat server.xml configures a lower default of 1000. 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.

#### configuredProtocol

    protected final String configuredProtocol

Name of the protocol that was configured.

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

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

#### getAllowBackslash

    public boolean getAllowBackslash()

Returns:
  `true` if backslash characters are allowed in URLs. Default value is `false`.

#### setAllowBackslash

    public void setAllowBackslash​(boolean allowBackslash)

Set the allowBackslash flag.

Parameters:
  `allowBackslash` - the new flag value

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

#### getEnforceEncodingInGetWriter

    public boolean getEnforceEncodingInGetWriter()

Returns:
  `true` if a default character encoding will be set when calling Response.getWriter()

#### setEnforceEncodingInGetWriter

    public void setEnforceEncodingInGetWriter​(boolean enforceEncodingInGetWriter)

Set the enforceEncodingInGetWriter flag.

Parameters:
  `enforceEncodingInGetWriter` - the new 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()

#### getRejectSuspiciousURIs

    public boolean getRejectSuspiciousURIs()

#### setRejectSuspiciousURIs

    public void setRejectSuspiciousURIs​(boolean rejectSuspiciousURIs)

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