Class HostConfig

java.lang.Object
org.apache.catalina.startup.HostConfig
All Implemented Interfaces:
LifecycleListener

public class HostConfig extends Object implements LifecycleListener
Startup event listener for a Host that configures the properties of that Host, and the associated defined contexts.
Author:
Craig R. McClanahan, Remy Maucherat
  • Field Details Link icon

    • sm Link icon

      protected static final StringManager sm
      The string resources for this package.
    • FILE_MODIFICATION_RESOLUTION_MS Link icon

      protected static final long FILE_MODIFICATION_RESOLUTION_MS
      The resolution, in milliseconds, of file modification times.
      See Also:
    • contextClass Link icon

      protected String contextClass
      The Java class name of the Context implementation we should use.
    • host Link icon

      protected Host host
      The Host we are associated with.
    • oname Link icon

      protected ObjectName oname
      The JMX ObjectName of this component.
    • deployXML Link icon

      protected boolean deployXML
      Should we deploy XML Context config files packaged with WAR files and directories?
    • copyXML Link icon

      protected boolean copyXML
      Should XML files be copied to $CATALINA_BASE/conf/<engine>/<host> by default when a web application is deployed?
    • unpackWARs Link icon

      protected boolean unpackWARs
      Should we unpack WAR files when auto-deploying applications in the appBase directory?
    • deployed Link icon

      protected final Map<String,HostConfig.DeployedApplication> deployed
      Map of deployed applications.
    • digester Link icon

      protected Digester digester
      The Digester instance used to parse context descriptors.
    • invalidWars Link icon

      protected final Set<String> invalidWars
      The list of Wars in the appBase to be ignored because they are invalid (e.g. contain /../ sequences).
  • Constructor Details Link icon

    • HostConfig Link icon

      public HostConfig()
  • Method Details Link icon

    • getContextClass Link icon

      public String getContextClass()
      Returns:
      the Context implementation class name.
    • setContextClass Link icon

      public void setContextClass(String contextClass)
      Set the Context implementation class name.
      Parameters:
      contextClass - The new Context implementation class name.
    • isDeployXML Link icon

      public boolean isDeployXML()
      Returns:
      the deploy XML config file flag for this component.
    • setDeployXML Link icon

      public void setDeployXML(boolean deployXML)
      Set the deploy XML config file flag for this component.
      Parameters:
      deployXML - The new deploy XML flag
    • isCopyXML Link icon

      public boolean isCopyXML()
      Returns:
      the copy XML config file flag for this component.
    • setCopyXML Link icon

      public void setCopyXML(boolean copyXML)
      Set the copy XML config file flag for this component.
      Parameters:
      copyXML - The new copy XML flag
    • isUnpackWARs Link icon

      public boolean isUnpackWARs()
      Returns:
      the unpack WARs flag.
    • setUnpackWARs Link icon

      public void setUnpackWARs(boolean unpackWARs)
      Set the unpack WARs flag.
      Parameters:
      unpackWARs - The new unpack WARs flag
    • lifecycleEvent Link icon

      public void lifecycleEvent(LifecycleEvent event)
      Process the START event for an associated Host.
      Specified by:
      lifecycleEvent in interface LifecycleListener
      Parameters:
      event - The lifecycle event that has occurred
    • tryAddServiced Link icon

      public boolean tryAddServiced(String name)
      Add a serviced application to the list and indicates if the application was already present in the list.
      Parameters:
      name - the context name
      Returns:
      true if the application was not already in the list
    • removeServiced Link icon

      public void removeServiced(String name)
      Removed a serviced application from the list.
      Parameters:
      name - the context name
    • getDeploymentTime Link icon

      public long getDeploymentTime(String name)
      Get the instant where an application was deployed.
      Parameters:
      name - the context name
      Returns:
      0L if no application with that name is deployed, or the instant on which the application was deployed
    • isDeployed Link icon

      public boolean isDeployed(String name)
      Has the specified application been deployed? Note applications defined in server.xml will not have been deployed.
      Parameters:
      name - the context name
      Returns:
      true if the application has been deployed and false if the application has not been deployed or does not exist
    • createDigester Link icon

      protected static Digester createDigester(String contextClassName)
      Create the digester which will be used to parse context config files.
      Parameters:
      contextClassName - The class which will be used to create the context instance
      Returns:
      the digester
    • returnCanonicalPath Link icon

      protected File returnCanonicalPath(String path)
    • getConfigBaseName Link icon

      public String getConfigBaseName()
      Get the name of the configBase. For use with JMX management.
      Returns:
      the config base
    • deployApps Link icon

      protected void deployApps()
      Deploy applications for any directories or WAR files that are found in our "application root" directory.
    • filterAppPaths Link icon

      protected String[] filterAppPaths(String[] unfilteredAppPaths)
      Filter the list of application file paths to remove those that match the regular expression defined by Host.getDeployIgnore().
      Parameters:
      unfilteredAppPaths - The list of application paths to filter
      Returns:
      The filtered list of application paths
    • deployApps Link icon

      protected void deployApps(String name)
      Deploy applications for any directories or WAR files that are found in our "application root" directory.

      Note: It is expected that the caller has successfully added the app to servicedSet before calling this method.

      Parameters:
      name - The context name which should be deployed
    • deployDescriptors Link icon

      protected void deployDescriptors(File configBase, String[] files)
      Deploy XML context descriptors.
      Parameters:
      configBase - The config base
      files - The XML descriptors which should be deployed
    • deployDescriptor Link icon

      protected void deployDescriptor(ContextName cn, File contextXml)
      Deploy specified context descriptor.

      Note: It is expected that the caller has successfully added the app to servicedSet before calling this method.

      Parameters:
      cn - The context name
      contextXml - The descriptor
    • deployWARs Link icon

      protected void deployWARs(File appBase, String[] files)
      Deploy WAR files.
      Parameters:
      appBase - The base path for applications
      files - The WARs to deploy
    • deployWAR Link icon

      protected void deployWAR(ContextName cn, File war)
      Deploy packed WAR.

      Note: It is expected that the caller has successfully added the app to servicedSet before calling this method.

      Parameters:
      cn - The context name
      war - The WAR file
    • deployDirectories Link icon

      protected void deployDirectories(File appBase, String[] files)
      Deploy exploded webapps.
      Parameters:
      appBase - The base path for applications
      files - The exploded webapps that should be deployed
    • deployDirectory Link icon

      protected void deployDirectory(ContextName cn, File dir)
      Deploy exploded webapp.

      Note: It is expected that the caller has successfully added the app to servicedSet before calling this method.

      Parameters:
      cn - The context name
      dir - The path to the root folder of the webapp
    • migrateLegacyApps Link icon

      protected void migrateLegacyApps()
    • migrateLegacyApp Link icon

      protected void migrateLegacyApp(File source, File destination)
    • deploymentExists Link icon

      protected boolean deploymentExists(String contextName)
      Check if a webapp is already deployed in this host.
      Parameters:
      contextName - of the context which will be checked
      Returns:
      true if the specified deployment exists
    • addWatchedResources Link icon

      protected void addWatchedResources(HostConfig.DeployedApplication app, String docBase, Context context)
      Add watched resources to the specified Context.
      Parameters:
      app - HostConfig deployed app
      docBase - web app docBase
      context - web application context
    • addGlobalRedeployResources Link icon

      protected void addGlobalRedeployResources(HostConfig.DeployedApplication app)
    • checkResources Link icon

      protected void checkResources(HostConfig.DeployedApplication app, boolean skipFileModificationResolutionCheck)
      Check resources for redeployment and reloading.
      Parameters:
      app - The web application to check
      skipFileModificationResolutionCheck - When checking files for modification should the check that requires that any file modification must have occurred at least as long ago as the resolution of the file time stamp be skipped
    • beforeStart Link icon

      public void beforeStart()
    • start Link icon

      public void start()
      Process a "start" event for this Host.
    • stop Link icon

      public void stop()
      Process a "stop" event for this Host.
    • check Link icon

      protected void check()
      Check status of all webapps.
    • check Link icon

      public void check(String name)
      Check status of a specific web application and reload, redeploy or deploy it as necessary. This method is for use with functionality such as management web applications that upload new/updated web applications and need to trigger the appropriate action to deploy them. This method assumes that any uploading/updating has been completed before this method is called. Any action taken as a result of the checks will complete before this method returns.
      Parameters:
      name - The name of the web application to check
    • checkUndeploy Link icon

      public void checkUndeploy()
      Check for old versions of applications using parallel deployment that are now unused (have no active sessions) and undeploy any that are found.
    • manageApp Link icon

      public void manageApp(Context context)
      Add a new Context to be managed by us. Entry point for the admin webapp, and other JMX Context controllers.
      Parameters:
      context - The context instance
    • unmanageApp Link icon

      public void unmanageApp(String contextName)
      Remove a webapp from our control. Entry point for the admin webapp, and other JMX Context controllers.

      Note: It is expected that the caller has successfully added the app to servicedSet before calling this method.

      Parameters:
      contextName - The context name