Class AprLifecycleListener

java.lang.Object
org.apache.catalina.core.AprLifecycleListener
All Implemented Interfaces:
LifecycleListener

public class AprLifecycleListener extends Object implements LifecycleListener
Implementation of LifecycleListener that will init and destroy APR.

This listener must only be nested within Server elements.

Only one instance of the APR/Native library may be loaded per JVM. Loading multiple instances will trigger a JVM crash - typically when the Connectors are destroyed. This listener utilises reference counting to ensure that only one instance of the APR/Native library is loaded at any one time.

If multiple listener configurations are found, only the first one initialised will be used.

Since:
4.1
  • Field Details

    • sm

      protected static final StringManager sm
      The string manager for this package.
    • TCN_REQUIRED_MAJOR

      protected static final int TCN_REQUIRED_MAJOR
      Required major version of Tomcat Native.
      See Also:
    • TCN_REQUIRED_MINOR

      protected static final int TCN_REQUIRED_MINOR
      Required minor version of Tomcat Native.
      See Also:
    • TCN_REQUIRED_PATCH

      protected static final int TCN_REQUIRED_PATCH
      Required patch version of Tomcat Native.
      See Also:
    • SSLEngine

      protected static String SSLEngine
      SSL engine configuration.
    • FIPSMode

      protected static String FIPSMode
      FIPS mode configuration.
    • SSLRandomSeed

      protected static String SSLRandomSeed
      SSL random seed source.
    • sslInitialized

      protected static boolean sslInitialized
      Indicates whether SSL has been initialized.
    • fipsModeActive

      protected static boolean fipsModeActive
      Indicates whether FIPS mode is currently active.
  • Constructor Details

    • AprLifecycleListener

      public AprLifecycleListener()
      Constructs a new AprLifecycleListener.
  • Method Details

    • isAprAvailable

      public static boolean isAprAvailable()
      Checks APR availability, initializing if necessary.
      Returns:
      true if APR is available
    • getInstalledTcnVersion

      public static String getInstalledTcnVersion()
      Get the installed Tomcat Native version string, if available.
      Returns:
      the version string, or null if APR is not available
    • getInstalledAprVersion

      public static String getInstalledAprVersion()
      Get the installed APR version string, if available.
      Returns:
      the APR version string, or null if APR is not available
    • getInstalledOpenSslVersion

      public static String getInstalledOpenSslVersion()
      Get the installed OpenSSL version string (via APR), if available.
      Returns:
      the OpenSSL version string, or null if not available
    • getTcnVersionWarning

      public static String getTcnVersionWarning()
      Get a warning message if the installed Tomcat Native version is older than recommended. This performs the same version check used during Tomcat startup.
      Returns:
      a warning message if the installed version is outdated, or null if the version is acceptable or APR is not available
    • lifecycleEvent

      public void lifecycleEvent(LifecycleEvent event)
      Primary entry point for startup and shutdown events.
      Specified by:
      lifecycleEvent in interface LifecycleListener
      Parameters:
      event - The event that has occurred
    • getSSLEngine

      public String getSSLEngine()
      Returns the SSL engine configuration.
      Returns:
      the SSL engine configuration
    • setSSLEngine

      public void setSSLEngine(String SSLEngine)
      Sets the SSL engine configuration.
      Parameters:
      SSLEngine - the SSL engine configuration
    • getSSLRandomSeed

      public String getSSLRandomSeed()
      Returns the SSL random seed source.
      Returns:
      the SSL random seed source
    • setSSLRandomSeed

      public void setSSLRandomSeed(String SSLRandomSeed)
      Sets the SSL random seed source.
      Parameters:
      SSLRandomSeed - the SSL random seed source
    • getFIPSMode

      public String getFIPSMode()
      Returns the FIPS mode configuration.
      Returns:
      the FIPS mode configuration
    • setFIPSMode

      public void setFIPSMode(String FIPSMode)
      Sets the FIPS mode configuration.
      Parameters:
      FIPSMode - the FIPS mode configuration
    • isFIPSModeActive

      public boolean isFIPSModeActive()
      Returns whether FIPS mode is currently active.
      Returns:
      true if FIPS mode is active
    • setUseOpenSSL

      public void setUseOpenSSL(boolean useOpenSSL)
      Configures whether to use OpenSSL.
      Parameters:
      useOpenSSL - true to use OpenSSL
    • getUseOpenSSL

      public static boolean getUseOpenSSL()
      Returns whether OpenSSL is in use.
      Returns:
      true if OpenSSL is in use
    • isInstanceCreated

      public static boolean isInstanceCreated()
      Returns whether an APR instance has been created.
      Returns:
      true if an APR instance has been created