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
Modifier and Type
Field
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 final 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. 2 MiB by default.
`protected int`
`maxSavePostSize`
Maximum size of a POST which will be saved by the container during authentication. 4 KiB 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 int`
`port`
The port number on which we listen for requests.
`protected final 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 final boolean`
`RECYCLE_FACADES`
Alternate flag to enable recycling of facades.
`protected int`
`redirectPort`
The redirect port for non-SSL to SSL redirects.
`protected static final HashMap<String,String>`
`replacements`
`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 final StringManager`
`sm`
The string manager for this package.
`protected String`
`URIEncoding`
Deprecated.
This will be removed in 9.0.x onwards
`protected String`
`URIEncodingLower`
Deprecated.
This will be removed in 9.0.x onwards
`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
Description
`Connector()`
`Connector(String protocol)`

## Method Summary

Modifier and Type
Method
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)`.
`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()`
`String`
`getURIEncodingLower()`
Deprecated.
This will be removed in 9.0.x onwards
`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)`.
`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`
`setProtocol(String protocol)`
Deprecated.
Will be removed in Tomcat 9.
`void`
`setProtocolHandlerClassName(String protocolHandlerClassName)`
Deprecated.
Will be removed in Tomcat 9.
`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`

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

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

### port

protected int port
The port number on which we listen for requests.

### 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. 2 MiB by default.

### maxSavePostSize

protected int maxSavePostSize
Maximum size of a POST which will be saved by the container during authentication. 4 KiB 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 String protocolHandlerClassName
Coyote Protocol handler class name. Defaults to the Coyote HTTP/1.1 protocolHandler.

### protocolHandler

protected final ProtocolHandler protocolHandler
Coyote protocol handler.

### adapter

protected Adapter adapter
Coyote adapter.

### URIEncoding

@Deprecated protected String URIEncoding
Deprecated.
This will be removed in 9.0.x onwards
URI encoding.

### URIEncodingLower

@Deprecated protected String URIEncodingLower
Deprecated.
This will be removed in 9.0.x onwards

### useBodyEncodingForURI

protected boolean useBodyEncodingForURI
URI encoding as body.

### replacements

protected static final HashMap<String,String> replacements

## Constructor Details

### Connector

public Connector()

### Connector

public Connector(String protocol)

## Method Details

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

### setProtocol

@Deprecated public void setProtocol(String protocol)
Deprecated.
Will be removed in Tomcat 9. Protocol must be configured via the constructor
Set the Coyote protocol which will be used by the connector.

Parameters:
  `protocol` - The Coyote protocol name

### getProtocolHandlerClassName

public String getProtocolHandlerClassName()

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

### setProtocolHandlerClassName

@Deprecated public void setProtocolHandlerClassName(String protocolHandlerClassName)
Deprecated.
Will be removed in Tomcat 9. Protocol must be configured via the constructor
Set the class name of the Coyote protocol handler which will be used by the connector.

Parameters:
  `protocolHandlerClassName` - The new class name

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

### getURIEncodingLower

@Deprecated public String getURIEncodingLower()
Deprecated.
This will be removed in 9.0.x onwards

Returns:
  the character encoding to be used for the URI using lower 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`