Class StandardJarScanner

  • All Implemented Interfaces:

    public class StandardJarScanner
    extends java.lang.Object
    implements JarScanner
    The default JarScanner implementation scans the WEB-INF/lib directory followed by the provided classloader and then works up the classloader hierarchy. This implementation is sufficient to meet the requirements of the Servlet 3.0 specification as well as to provide a number of Tomcat specific extensions. The extensions are:
    • Scanning the classloader hierarchy (enabled by default)
    • Testing all files to see if they are JARs (disabled by default)
    • Testing all directories to see if they are exploded JARs (disabled by default)
    All of the extensions may be controlled via configuration.
    • Constructor Detail

      • StandardJarScanner

        public StandardJarScanner()
    • Method Detail

      • isScanClassPath

        public boolean isScanClassPath()
      • setScanClassPath

        public void setScanClassPath​(boolean scanClassPath)
      • isScanManifest

        public boolean isScanManifest()
      • setScanManifest

        public void setScanManifest​(boolean scanManifest)
      • isScanAllFiles

        public boolean isScanAllFiles()
      • setScanAllFiles

        public void setScanAllFiles​(boolean scanAllFiles)
      • isScanAllDirectories

        public boolean isScanAllDirectories()
      • setScanAllDirectories

        public void setScanAllDirectories​(boolean scanAllDirectories)
      • isScanBootstrapClassPath

        public boolean isScanBootstrapClassPath()
      • setScanBootstrapClassPath

        public void setScanBootstrapClassPath​(boolean scanBootstrapClassPath)
      • scan

        public void scan​(JarScanType scanType,
                         ServletContext context,
                         JarScannerCallback callback)
        Scan the provided ServletContext and class loader for JAR files. Each JAR file found will be passed to the callback handler to be processed.
        Specified by:
        scan in interface JarScanner
        scanType - The type of JAR scan to perform. This is passed to the filter which uses it to determine how to filter the results
        context - The ServletContext - used to locate and access WEB-INF/lib
        callback - The handler to process any JARs found
      • processURLs

        protected void processURLs​(JarScanType scanType,
                                   JarScannerCallback callback,
                                   java.util.Set<> processedURLs,
                                   boolean isWebapp,
                                   java.util.Deque<> classPathUrlsToProcess)
      • addClassPath

        protected void addClassPath​(java.util.Deque<> classPathUrlsToProcess)
      • process

        protected void process​(JarScanType scanType,
                               JarScannerCallback callback,
                               java.lang.String webappPath,
                               boolean isWebapp,
                               java.util.Deque<> classPathUrlsToProcess)