Class LifecycleMBeanBase

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
All Implemented Interfaces:
MBeanRegistration, JmxEnabled, Lifecycle
Direct Known Subclasses:
Connector, ContainerBase, FailedContext, ManagerBase, MapperListener, NamingResourcesImpl, RealmBase, SimpleTcpCluster, StandardRoot, StandardServer, StandardService, StandardThreadExecutor, StandardVirtualThreadExecutor, ValveBase, WebappLoader

public abstract class LifecycleMBeanBase extends LifecycleBase implements JmxEnabled
  • Field Details

  • Constructor Details

    • LifecycleMBeanBase

      public LifecycleMBeanBase()
  • Method Details

    • initInternal

      protected void initInternal() throws LifecycleException
      Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
      Specified by:
      initInternal in class LifecycleBase
      Throws:
      LifecycleException - If the initialisation fails
    • destroyInternal

      protected void destroyInternal() throws LifecycleException
      Sub-classes wishing to perform additional clean-up should override this method, ensuring that super.destroyInternal() is the last call in the overriding method.
      Specified by:
      destroyInternal in class LifecycleBase
      Throws:
      LifecycleException - If the destruction fails
    • setDomain

      public final void setDomain(String domain)
      Specify the domain under which this component should be registered. Used with components that cannot (easily) navigate the component hierarchy to determine the correct domain to use.
      Specified by:
      setDomain in interface JmxEnabled
      Parameters:
      domain - The name of the domain under which this component should be registered
    • getDomain

      public final String getDomain()
      Obtain the domain under which this component will be / has been registered.
      Specified by:
      getDomain in interface JmxEnabled
      Returns:
      the domain under which this component will be / has been registered.
    • getDomainInternal

      protected abstract String getDomainInternal()
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Returns:
      The name of the domain to use to register MBeans.
    • getObjectName

      public final ObjectName getObjectName()
      Obtain the name under which this component has been registered with JMX.
      Specified by:
      getObjectName in interface JmxEnabled
      Returns:
      the name under which this component has been registered with JMX.
    • getObjectNameKeyProperties

      protected abstract String getObjectNameKeyProperties()
      Allow sub-classes to specify the key properties component of the ObjectName that will be used to register this component.
      Returns:
      The string representation of the key properties component of the desired ObjectName
    • register

      protected final ObjectName register(Object obj, String objectNameKeyProperties)
      Utility method to enable sub-classes to easily register additional components that don't implement JmxEnabled with an MBean server.
      Note: This method should only be used once initInternal() has been called and before destroyInternal() has been called.
      Parameters:
      obj - The object the register
      objectNameKeyProperties - The key properties component of the object name to use to register the object
      Returns:
      The name used to register the object
    • unregister

      protected final void unregister(String objectNameKeyProperties)
      Utility method to enable sub-classes to easily unregister additional components that don't implement JmxEnabled with an MBean server.
      Note: This method should only be used once initInternal() has been called and before destroyInternal() has been called.
      Parameters:
      objectNameKeyProperties - The key properties component of the object name to use to unregister the object
    • unregister

      protected final void unregister(ObjectName on)
      Utility method to enable sub-classes to easily unregister additional components that don't implement JmxEnabled with an MBean server.
      Note: This method should only be used once initInternal() has been called and before destroyInternal() has been called.
      Parameters:
      on - The name of the component to unregister
    • postDeregister

      public final void postDeregister()
      Not used - NOOP.
      Specified by:
      postDeregister in interface MBeanRegistration
    • postRegister

      public final void postRegister(Boolean registrationDone)
      Not used - NOOP.
      Specified by:
      postRegister in interface MBeanRegistration
    • preDeregister

      public final void preDeregister() throws Exception
      Not used - NOOP.
      Specified by:
      preDeregister in interface MBeanRegistration
      Throws:
      Exception
    • preRegister

      public final ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
      Allows the object to be registered with an alternative MBeanServer and/or ObjectName.
      Specified by:
      preRegister in interface MBeanRegistration
      Throws:
      Exception