Class ClasspathElementZip
java.lang.Object
io.github.classgraph.ClasspathElement
io.github.classgraph.ClasspathElementZip
- All Implemented Interfaces:
Comparable<ClasspathElement>
A zip/jarfile classpath element.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringThe automatic module name, derived from the jarfile filename.(package private) LogicalZipFileThe logical zipfile for this classpath element.(package private) StringThe name of the module from theAutomatic-Module-Namemanifest attribute, if one is present in the root of the classpath element.private final NestedJarHandlerThe nested jar handler.private final Stringprivate final ConcurrentHashMap<String, Resource> A map from relative path toResourcefor non-rejected zip entries.A list of all automatic package root prefixes found as prefixes of paths within this zipfile.private StringThe normalized path of the jarfile, "!/"-separated if nested, excluding any package root.Fields inherited from class ClasspathElement
acceptedClassfileResources, acceptedResources, childClasspathElements, classLoader, classpathElementIdx, classpathElementIdxWithinParent, containsSpecificallyAcceptedClasspathElementResourcePath, fileToLastModified, moduleNameFromModuleDescriptor, nestedClasspathRootPrefixes, packageRootPrefix, scanned, scanResult, scanSpec, skipClasspathElement -
Constructor Summary
ConstructorsConstructorDescriptionClasspathElementZip(Scanner.ClasspathEntryWorkUnit workUnit, NestedJarHandler nestedJarHandler, ScanSpec scanSpec) A jarfile classpath element. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturn URI for classpath element, plus URIs for any stripped nested automatic package root prefixes, e.g.(package private) FilegetFile()Get theFilefor the outermost zipfile of this classpath element.Get module name from module descriptor, or get the automatic module name from the manifest file, or derive an automatic module name from the jar name.(package private) ResourcegetResource(String relativePath) Get theResourcefor a given relative path.(package private) URIgetURI()Get the URI for this classpath element.(package private) StringGet the zipfile path.inthashCode()private ResourcenewResource(FastZipEntry zipEntry, String pathRelativeToPackageRoot) Create a newResourceobject for a resource or classfile discovered while scanning paths.(package private) voidopen(WorkQueue<Scanner.ClasspathEntryWorkUnit> workQueue, LogNode log) Determine if this classpath element is valid.(package private) voidScan for path matches within jarfile, and record ZipEntry objects of matching files.toString()Return the classpath element path.Methods inherited from class ClasspathElement
addAcceptedResource, checkResourcePathAcceptReject, compareTo, finishScanPaths, getClassLoader, getNumClassfileMatches, log, log, maskClassfiles, setScanResult
-
Field Details
-
rawPath
-
logicalZipFile
LogicalZipFile logicalZipFileThe logical zipfile for this classpath element. -
zipFilePath
The normalized path of the jarfile, "!/"-separated if nested, excluding any package root. -
relativePathToResource
A map from relative path toResourcefor non-rejected zip entries. -
strippedAutomaticPackageRootPrefixes
-
nestedJarHandler
The nested jar handler. -
moduleNameFromManifestFile
String moduleNameFromManifestFileThe name of the module from theAutomatic-Module-Namemanifest attribute, if one is present in the root of the classpath element. -
derivedAutomaticModuleName
The automatic module name, derived from the jarfile filename.
-
-
Constructor Details
-
ClasspathElementZip
ClasspathElementZip(Scanner.ClasspathEntryWorkUnit workUnit, NestedJarHandler nestedJarHandler, ScanSpec scanSpec) A jarfile classpath element.- Parameters:
workUnit- the work unitnestedJarHandler- the nested jar handlerscanSpec- the scan spec
-
-
Method Details
-
open
void open(WorkQueue<Scanner.ClasspathEntryWorkUnit> workQueue, LogNode log) throws InterruptedException Description copied from class:ClasspathElementDetermine if this classpath element is valid. If it is not valid, sets skipClasspathElement. ForClasspathElementZip, may also open or extract inner jars, and also causes jarfile manifests to be read to look for Class-Path entries. If nested jars or Class-Path entries are found, they are added to the work queue. This method is only run once per classpath element, from a single thread.- Specified by:
openin classClasspathElement- Parameters:
workQueue- the work queuelog- the log- Throws:
InterruptedException- if the thread was interrupted while trying to open the classpath element.
-
newResource
Create a newResourceobject for a resource or classfile discovered while scanning paths.- Parameters:
zipEntry- the zip entrypathRelativeToPackageRoot- the path relative to package root- Returns:
- the resource
-
getResource
Get theResourcefor a given relative path.- Specified by:
getResourcein classClasspathElement- Parameters:
relativePath- The relative path of theResourceto return.- Returns:
- The
Resourcefor the given relative path, or null if relativePath does not exist in this classpath element.
-
scanPaths
Scan for path matches within jarfile, and record ZipEntry objects of matching files.- Specified by:
scanPathsin classClasspathElement- Parameters:
log- the log
-
getModuleName
Get module name from module descriptor, or get the automatic module name from the manifest file, or derive an automatic module name from the jar name.- Specified by:
getModuleNamein classClasspathElement- Returns:
- the module name
-
getZipFilePath
String getZipFilePath()Get the zipfile path.- Returns:
- the path of the zipfile, including any package root.
-
getURI
URI getURI()Description copied from class:ClasspathElementGet the URI for this classpath element.- Specified by:
getURIin classClasspathElement- Returns:
- the URI for the classpath element.
-
getAllURIs
Return URI for classpath element, plus URIs for any stripped nested automatic package root prefixes, e.g. "!/BOOT-INF/classes".- Specified by:
getAllURIsin classClasspathElement- Returns:
- the URI for the classpath element.
-
getFile
File getFile()Get theFilefor the outermost zipfile of this classpath element.- Specified by:
getFilein classClasspathElement- Returns:
- The
Filefor the outermost zipfile of this classpath element, or null if this file was downloaded from a URL directly to RAM, or if the classpath element was backed by a custom filesystem that supports thePathAPI put not theFileAPI.
-
toString
-
equals
-
hashCode
-