Package org.apache.tomcat
Interface Jar
-
- All Superinterfaces:
java.lang.AutoCloseable
- All Known Implementing Classes:
AbstractInputStreamJar
,JarFileUrlJar
,JarFileUrlNestedJar
,ReferenceCountedJar
,UrlJar
public interface Jar extends java.lang.AutoCloseable
Provides an abstraction for use by the various classes that need to scan JARs. The classes provided by the JRE for accessing JARs (JarFile
andJarInputStream
) have significantly different performance characteristics depending on the form of the URL used to access the JAR. For file based JARURL
s,JarFile
is faster but for non-file basedURL
s,JarFile
creates a copy of the JAR in the temporary directory soJarInputStream
is faster.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
Close any resources associated with this JAR.boolean
exists(java.lang.String name)
Determine if the given resource in present in the JAR.java.io.InputStream
getEntryInputStream()
Obtains the input stream for the current entry.java.lang.String
getEntryName()
Obtains the name of the current entry.java.io.InputStream
getInputStream(java.lang.String name)
Obtain anInputStream
for a given entry in a JAR.java.net.URL
getJarFileURL()
long
getLastModified(java.lang.String name)
Obtain the last modified time for the given resource in the JAR.java.util.jar.Manifest
getManifest()
Obtain the manifest for the JAR file.java.lang.String
getURL(java.lang.String entry)
Obtain, in String form, the URL for an entry in this JAR.void
nextEntry()
Moves the internal pointer to the next entry in the JAR.void
reset()
Resets the internal pointer used to track JAR entries to the beginning of the JAR.
-
-
-
Method Detail
-
getJarFileURL
java.net.URL getJarFileURL()
- Returns:
- The URL for accessing the JAR file.
-
getInputStream
java.io.InputStream getInputStream(java.lang.String name) throws java.io.IOException
Obtain anInputStream
for a given entry in a JAR. The caller is responsible for closing the stream.- Parameters:
name
- Entry to obtain anInputStream
for- Returns:
- An
InputStream
for the specified entry or null if the entry does not exist - Throws:
java.io.IOException
- if an I/O error occurs while processing the JAR file
-
getLastModified
long getLastModified(java.lang.String name) throws java.io.IOException
Obtain the last modified time for the given resource in the JAR.- Parameters:
name
- Entry to obtain the modification time for- Returns:
- The time (in the same format as
System.currentTimeMillis()
that the resource was last modified. Returns -1 if the entry does not exist - Throws:
java.io.IOException
- if an I/O error occurs while processing the JAR file
-
exists
boolean exists(java.lang.String name) throws java.io.IOException
Determine if the given resource in present in the JAR.- Parameters:
name
- Entry to look for- Returns:
true
if the entry is present in the JAR, otherwisefalse
- Throws:
java.io.IOException
- if an I/O error occurs while processing the JAR file
-
close
void close()
Close any resources associated with this JAR.- Specified by:
close
in interfacejava.lang.AutoCloseable
-
nextEntry
void nextEntry()
Moves the internal pointer to the next entry in the JAR.
-
getEntryName
java.lang.String getEntryName()
Obtains the name of the current entry.- Returns:
- The entry name
-
getEntryInputStream
java.io.InputStream getEntryInputStream() throws java.io.IOException
Obtains the input stream for the current entry.- Returns:
- The input stream
- Throws:
java.io.IOException
- If the stream cannot be obtained
-
getURL
java.lang.String getURL(java.lang.String entry)
Obtain, in String form, the URL for an entry in this JAR. Note that for JARs nested in WAR files, the Tomcat specific war:file:... form will not be used, rather the jar:jar:file:... form (that the JRE does not understand will be used). Note that this means that any code using these URLs will need to understand the jar:jar:file:... form and use theJarFactory
to ensure resources are accessed correctly.- Parameters:
entry
- The entry to generate the URL for- Returns:
- a URL for the specified entry in the JAR
-
getManifest
java.util.jar.Manifest getManifest() throws java.io.IOException
Obtain the manifest for the JAR file.- Returns:
- The manifest for this JAR file.
- Throws:
java.io.IOException
- If an I/O error occurs trying to obtain the manifest
-
reset
void reset() throws java.io.IOException
Resets the internal pointer used to track JAR entries to the beginning of the JAR.- Throws:
java.io.IOException
- If the pointer cannot be reset
-
-