Class WebAppProvider

  • All Implemented Interfaces:
    AppProvider, org.eclipse.jetty.util.component.LifeCycle

    @ManagedObject("Provider for start-up deployement of webapps based on presence in directory")
    public class WebAppProvider
    extends ScanningAppProvider
    The webapps directory scanning provider.

    This provider scans one or more directories (typically "webapps") for contexts to deploy, which may be:

    • A standard WAR file (must end in ".war")
    • A directory containing an expanded WAR file
    • A directory containing static content
    • An XML descriptor in XmlConfiguration format that configures a ContextHandler instance

    To avoid double deployments and allow flexibility of the content of the scanned directories, the provider implements some heuristics to ignore some files found in the scans:

    • Hidden files (starting with ".") are ignored
    • Directories with names ending in ".d" are ignored
    • If a directory and a WAR file exist ( eg foo/ and foo.war) then the directory is assumed to be the unpacked WAR and only the WAR is deployed (which may reused the unpacked directory)
    • If a directory and a matching XML file exist ( eg foo/ and foo.xml) then the directory is assumed to be an unpacked WAR and only the XML is deployed (which may used the directory in it's configuration)
    • If a WAR file and a matching XML exist (eg foo.war and foo.xml) then the WAR is assumed to be configured by the XML and only the XML is deployed.

    For XML configured contexts, the ID map will contain a reference to the Server instance called "Server" and properties for the webapp file as "jetty.webapp" and directory as "jetty.webapps".

    • Constructor Detail

      • WebAppProvider

        public WebAppProvider()
    • Method Detail

      • isExtractWars

        @ManagedAttribute("extract war files")
        public boolean isExtractWars()
        Get the extractWars.
        Returns:
        the extractWars
      • setExtractWars

        public void setExtractWars​(boolean extractWars)
        Set the extractWars.
        Parameters:
        extractWars - the extractWars to set
      • isParentLoaderPriority

        @ManagedAttribute("parent classloader has priority")
        public boolean isParentLoaderPriority()
        Get the parentLoaderPriority.
        Returns:
        the parentLoaderPriority
      • setParentLoaderPriority

        public void setParentLoaderPriority​(boolean parentLoaderPriority)
        Set the parentLoaderPriority.
        Parameters:
        parentLoaderPriority - the parentLoaderPriority to set
      • getDefaultsDescriptor

        @ManagedAttribute("default descriptor for webapps")
        public String getDefaultsDescriptor()
        Get the defaultsDescriptor.
        Returns:
        the defaultsDescriptor
      • setDefaultsDescriptor

        public void setDefaultsDescriptor​(String defaultsDescriptor)
        Set the defaultsDescriptor.
        Parameters:
        defaultsDescriptor - the defaultsDescriptor to set
      • setConfigurationManager

        public void setConfigurationManager​(ConfigurationManager configurationManager)
        Set the configurationManager.
        Parameters:
        configurationManager - the configurationManager to set
      • setConfigurationClasses

        public void setConfigurationClasses​(String[] configurations)
        Parameters:
        configurations - The configuration class names.
      • getConfigurationClasses

        @ManagedAttribute("configuration classes for webapps to be processed through")
        public String[] getConfigurationClasses()
      • setTempDir

        public void setTempDir​(File directory)
        Set the Work directory where unpacked WAR files are managed from.

        Default is the same as the java.io.tmpdir System Property.

        Parameters:
        directory - the new work directory
      • getTempDir

        @ManagedAttribute("temp directory for use, null if no user set temp directory")
        public File getTempDir()
        Get the user supplied Work Directory.
        Returns:
        the user supplied work directory (null if user has not set Temp Directory yet)
      • initializeWebAppContextDefaults

        protected void initializeWebAppContextDefaults​(org.eclipse.jetty.webapp.WebAppContext webapp)
      • createContextHandler

        public org.eclipse.jetty.server.handler.ContextHandler createContextHandler​(App app)
                                                                             throws Exception
        Description copied from interface: AppProvider
        Create a ContextHandler for an App
        Parameters:
        app - The App
        Returns:
        A ContextHandler
        Throws:
        IOException - if unable to create context
        Exception - if unable to create context