Methods Summary |
---|
public java.io.OutputStream | addEntry(java.lang.String name)
throw new UnsupportedOperationException("Cannot write to an JAR archive open for reading");
|
public void | close()close the abstract archive
if (jarFile!=null) {
jarFile.close();
jarFile=null;
}
if (jarIS!=null) {
jarIS.close();
jarIS=null;
}
|
public void | closeEntry(AbstractArchive os)close a previously returned @see java.io.OutputStream returned
by an addEntry call
throw new UnsupportedOperationException("Cannot write to an JAR archive open for reading");
|
public void | closeEntry()
throw new UnsupportedOperationException("Cannot write to an JAR archive open for reading");
|
public void | create(java.lang.String path)creates a new abstract archive with the given path
throw new UnsupportedOperationException("Cannot write to an JAR archive open for reading");
|
public boolean | delete()deletes the underlying jar file
if (jarFile==null) {
return false;
}
try {
jarFile.close();
jarFile = null;
} catch (IOException ioe) {
return false;
}
return FileUtils.deleteFile(new File(archiveUri));
|
public java.util.Enumeration | entries()
Vector entries = new Vector();
if (parentArchive!=null) {
try {
// reopen the embedded archive and position the input stream
// at the beginning of the desired element
jarIS = new JarInputStream(parentArchive.jarFile.getInputStream(parentArchive.jarFile.getJarEntry(archiveUri)));
JarEntry ze;
do {
ze = jarIS.getNextJarEntry();
if (ze!=null && !ze.isDirectory()) {
entries.add(ze.getName());
}
} while (ze!=null);
jarIS.close();
jarIS = null;
} catch(IOException ioe) {
return null;
}
} else {
try {
if (jarFile==null) {
getJarFile(archiveUri);
}
} catch(IOException ioe) {
return entries.elements();
}
if (jarFile==null) {
return entries.elements();
}
for (Enumeration e = jarFile.entries();e.hasMoreElements();) {
ZipEntry ze = (ZipEntry) e.nextElement();
if (!ze.isDirectory() && !ze.getName().equals(JarFile.MANIFEST_NAME)) {
entries.add(ze.getName());
}
}
}
return entries.elements();
|
public java.util.Enumeration | entries(java.util.Enumeration embeddedArchives)
// jar file are not recursive
return entries();
|
public boolean | exists()
return jarFile!=null;
|
public long | getArchiveSize()Get the size of the archive
if(getArchiveUri() == null) {
return -1;
}
File tmpFile = new File(getArchiveUri());
return(tmpFile.length());
|
public java.lang.String | getArchiveUri()
return archiveUri;
|
public AbstractArchive | getEmbeddedArchive(java.lang.String name)
if (jarFile!=null) {
// for now, I only support one level down embedded archives
InputJarArchive ija = new InputJarArchive();
JarEntry je = jarFile.getJarEntry(name);
if (je!=null) {
JarInputStream jis = new JarInputStream(new BufferedInputStream(jarFile.getInputStream(je)));
ija.archiveUri = name;
ija.jarIS = jis;
ija.parentArchive = this;
return ija;
}
}
return null;
|
public java.io.InputStream | getEntry(java.lang.String entryName)
if (jarFile!=null) {
ZipEntry ze = jarFile.getEntry(entryName);
if (ze!=null) {
return new BufferedInputStream(jarFile.getInputStream(ze));
} else {
return null;
}
} else
if ((parentArchive != null) && (parentArchive.jarFile != null)) {
JarEntry je;
// close the current input stream
if (jarIS!=null) {
jarIS.close();
}
// reopen the embedded archive and position the input stream
// at the beginning of the desired element
JarEntry archiveJarEntry = (archiveUri != null)? parentArchive.jarFile.getJarEntry(archiveUri) : null;
if (archiveJarEntry == null) {
return null;
}
jarIS = new JarInputStream(parentArchive.jarFile.getInputStream(archiveJarEntry));
do {
je = jarIS.getNextJarEntry();
} while (je!=null && !je.getName().equals(entryName));
if (je!=null) {
return new BufferedInputStream(jarIS);
} else {
return null;
}
} else {
return null;
}
|
protected java.util.jar.JarFile | getJarFile(java.lang.String path)
jarFile = null;
try {
File file = new File(path);
if (file.exists()) {
jarFile = new JarFile(file);
}
} catch(IOException e) {
DOLUtils.getDefaultLogger().log(Level.SEVERE, "enterprise.deployment.backend.fileOpenFailure",
new Object[]{path});
// add the additional information about the path
// since the IOException from jdk doesn't include that info
String additionalInfo = localStrings.getString(
"enterprise.deployment.invalid_zip_file", path);
IOException ioe = new IOException(e.getLocalizedMessage() + " -- " + additionalInfo);
ioe.initCause(e);
throw ioe;
}
return jarFile;
|
public java.util.jar.Manifest | getManifest()
if (jarFile!=null) {
return jarFile.getManifest();
}
if (parentArchive!=null) {
// close the current input stream
if (jarIS!=null) {
jarIS.close();
}
// reopen the embedded archive and position the input stream
// at the beginning of the desired element
if (jarIS==null) {
jarIS = new JarInputStream(parentArchive.jarFile.getInputStream(parentArchive.jarFile.getJarEntry(archiveUri)));
}
Manifest m = jarIS.getManifest();
if (m==null) {
java.io.InputStream is = getEntry(java.util.jar.JarFile.MANIFEST_NAME);
if (is!=null) {
m = new Manifest();
m.read(is);
is.close();
}
}
return m;
}
return null;
|
public java.net.URI | getURI()
try {
return ArchiveFactory.prepareArchiveURI(getArchiveUri());
} catch(java.net.URISyntaxException e) {
return null;
} catch (UnsupportedEncodingException uee) {
return null;
} catch (IOException ioe) {
return null;
}
|
public void | open(java.lang.String path)Open an abstract archive
archiveUri = path;
jarFile = getJarFile(path);
|
public java.io.OutputStream | putNextEntry(java.lang.String name)
throw new UnsupportedOperationException("Cannot write to an JAR archive open for reading");
|
public boolean | renameTo(java.lang.String name)rename the underlying jar file
if (jarFile==null) {
return false;
}
try {
jarFile.close();
jarFile = null;
} catch (IOException ioe) {
return false;
}
return FileUtils.renameFile(new File(archiveUri), new File(name));
|