Class WebInfConfiguration

    • Field Detail

      • RESOURCE_DIRS

        public static final String RESOURCE_DIRS
        If set, to a list of URLs, these resources are added to the context resource base as a resource collection.
        See Also:
        Constant Field Values
      • _preUnpackBaseResource

        protected org.eclipse.jetty.util.resource.Resource _preUnpackBaseResource
    • Constructor Detail

      • WebInfConfiguration

        public WebInfConfiguration()
    • Method Detail

      • findAndFilterContainerPaths

        public void findAndFilterContainerPaths​(WebAppContext context)
                                         throws Exception
        Find jars and directories that are on the container's classpath and apply an optional filter. The filter is a pattern applied to the full jar or directory names. If there is no pattern, then no jar or dir is considered to match. Those jars that do match will be later examined for META-INF information and annotations. To find them, examine the classloaders in the hierarchy above the webapp classloader that are URLClassLoaders. For jdk-9 we also look at the java.class.path, and the jdk.module.path.
        Parameters:
        context - the WebAppContext being deployed
        Throws:
        Exception - if unable to apply optional filtering on the container's classpath
      • findAndFilterWebAppPaths

        public void findAndFilterWebAppPaths​(WebAppContext context)
                                      throws Exception
        Finds the jars that are either physically or virtually in WEB-INF/lib, and applies an optional filter to their full pathnames. The filter selects which jars will later be examined for META-INF information and annotations. If there is no pattern, then all jars are considered selected.
        Parameters:
        context - the WebAppContext being deployed
        Throws:
        Exception - if unable to find the jars or apply filtering
      • resolveTempDirectory

        public void resolveTempDirectory​(WebAppContext context)
                                  throws Exception
        Get a temporary directory in which to unpack the war etc etc. The algorithm for determining this is to check these alternatives in the order shown:

        A. Try to use an explicit directory specifically for this webapp:

        1. Iff an explicit directory is set for this webapp, use it. Set delete on exit depends on value of persistTempDirectory.
        2. Iff javax.servlet.context.tempdir context attribute is set for this webapp && exists && writeable, then use it. Set delete on exit depends on value of persistTempDirectory.

        B. Create a directory based on global settings. The new directory will be called "Jetty-"+host+"-"+port+"__"+context+"-"+virtualhost+"-"+randomdigits+".dir"

        If the user has specified the context attribute org.eclipse.jetty.webapp.basetempdir, the directory specified by this attribute will be the parent of the temp dir created. Otherwise, the parent dir is ${java.io.tmpdir}. Set delete on exit depends on value of persistTempDirectory.

        Parameters:
        context - the context to resolve the temp directory from
        Throws:
        Exception - if unable to resolve the temp directory
      • configureTempDirectory

        public void configureTempDirectory​(File dir,
                                           WebAppContext context)
      • getCanonicalNameForWebAppTmpDir

        public static String getCanonicalNameForWebAppTmpDir​(WebAppContext context)
        Create a canonical name for a webapp temp directory.

        The form of the name is:

        "jetty-"+host+"-"+port+"-"+resourceBase+"-_"+context+"-"+virtualhost+"-"+randomdigits+".dir"
        host and port uniquely identify the server context and virtual host uniquely identify the webapp randomdigits ensure every tmp directory is unique
        Parameters:
        context - the context to get the canonical name from
        Returns:
        the canonical name for the webapp temp directory
      • findJars

        protected List<org.eclipse.jetty.util.resource.Resource> findJars​(WebAppContext context)
                                                                   throws Exception
        Look for jars that should be treated as if they are in WEB-INF/lib
        Parameters:
        context - the context to find the jars in
        Returns:
        the list of jar resources found within context
        Throws:
        Exception - if unable to find the jars
      • findWebInfLibJars

        protected List<org.eclipse.jetty.util.resource.Resource> findWebInfLibJars​(WebAppContext context)
                                                                            throws Exception
        Look for jars in WEB-INF/lib
        Parameters:
        context - the context to find the lib jars in
        Returns:
        the list of jars as Resource, or null
        Throws:
        Exception - if unable to scan for lib jars
      • findExtraClasspathJars

        protected List<org.eclipse.jetty.util.resource.Resource> findExtraClasspathJars​(WebAppContext context)
                                                                                 throws Exception
        Get jars from WebAppContext.getExtraClasspath as resources
        Parameters:
        context - the context to find extra classpath jars in
        Returns:
        the list of Resources with the extra classpath, or null if not found
        Throws:
        Exception - if unable to find the extra classpath jars
      • findWebInfClassesDir

        protected org.eclipse.jetty.util.resource.Resource findWebInfClassesDir​(WebAppContext context)
                                                                         throws Exception
        Get WEB-INF/classes dir
        Parameters:
        context - the context to look for the WEB-INF/classes directory
        Returns:
        the Resource for the WEB-INF/classes directory
        Throws:
        Exception - if unable to find the WEB-INF/classes directory
      • findExtraClasspathDirs

        protected List<org.eclipse.jetty.util.resource.Resource> findExtraClasspathDirs​(WebAppContext context)
                                                                                 throws Exception
        Get class dirs from WebAppContext.getExtraClasspath as resources
        Parameters:
        context - the context to look for extra classpaths in
        Returns:
        the list of Resources to the extra classpath
        Throws:
        Exception - if unable to find the extra classpaths