public abstract class AbstractZipArchiver extends AbstractArchiver
Modifier and Type | Field and Description |
---|---|
protected Hashtable<String,String> |
addedDirs |
protected boolean |
addingNewFiles
true when we are adding new files into the Zip file, as opposed
to adding back the unchanged files
|
protected String |
archiveType |
protected boolean |
doubleFilePass |
protected String |
duplicate
Deprecated.
Use
Archiver.setDuplicateBehavior(String) instead. |
protected Hashtable<String,String> |
entries |
protected boolean |
skipWriting |
DEFAULT_DIR_MODE, DEFAULT_FILE_MODE, DUPLICATES_ADD, DUPLICATES_FAIL, DUPLICATES_PRESERVE, DUPLICATES_SKIP, DUPLICATES_VALID_BEHAVIORS, ROLE
Constructor and Description |
---|
AbstractZipArchiver() |
Modifier and Type | Method and Description |
---|---|
protected void |
addParentDirs(File baseDir,
String entry,
ZipOutputStream zOut,
String prefix)
Ensure all parent dirs of a given entry have been added.
|
protected void |
addResources(ResourceIterator resources,
ZipOutputStream zOut)
Add the given resources.
|
protected void |
cleanUp()
Do any clean up necessary to allow this instance to be used again.
|
protected void |
close() |
static long |
copy(InputStream input,
OutputStream output,
int bufferSize) |
protected boolean |
createEmptyZip(File zipFile)
Create an empty zip file
|
protected void |
execute() |
protected void |
finalizeZipOutputStream(ZipOutputStream zOut) |
protected String |
getArchiveType() |
String |
getComment() |
String |
getEncoding() |
protected Map<String,Long> |
getZipEntryNames(File file) |
protected void |
initZipOutputStream(ZipOutputStream zOut)
method for subclasses to override
|
boolean |
isCompress() |
protected boolean |
isFileAdded(ArchiveEntry entry,
Map entries) |
boolean |
isFilesonly() |
protected boolean |
isFileUpdated(ArchiveEntry entry,
Map entries) |
boolean |
isInUpdateMode() |
boolean |
isRecompressAddedZips() |
boolean |
isRoundUp() |
boolean |
isSupportingForced()
method for subclasses to override
|
void |
reset()
Makes this instance reset all attributes to their default
values and forget all children.
|
protected boolean |
revert(StringBuffer messageBuffer) |
void |
setComment(String comment) |
void |
setCompress(boolean compress) |
void |
setEncoding(String encoding) |
void |
setFilesonly(boolean f)
If true, emulate Sun's jar utility by not adding parent directories;
optional, defaults to false.
|
void |
setRecompressAddedZips(boolean recompressAddedZips) |
void |
setRoundUp(boolean r)
Whether the file modification times will be rounded up to the
next even number of seconds.
|
void |
setUpdateMode(boolean update) |
protected void |
zipDir(org.codehaus.plexus.components.io.resources.PlexusIoResource dir,
ZipOutputStream zOut,
String vPath,
int mode) |
protected void |
zipFile(ArchiveEntry entry,
ZipOutputStream zOut,
String vPath)
Method that gets called when adding from java.io.File instances.
|
protected void |
zipFile(InputStream in,
ZipOutputStream zOut,
String vPath,
long lastModified,
File fromArchive,
int mode)
Adds a new entry to the archive, takes care of duplicates as well.
|
addArchivedFileSet, addArchivedFileSet, addArchivedFileSet, addArchivedFileSet, addArchivedFileSet, addArchiveFinalizer, addDirectory, addDirectory, addDirectory, addDirectory, addFile, addFile, addFileSet, addResource, addResources, asArchiveEntry, asArchiveEntry, asResourceCollection, checkForced, contextualize, createArchive, getArchiveFinalizers, getDefaultDirectoryMode, getDefaultFileMode, getDestFile, getDirectoryMode, getDirs, getDuplicateBehavior, getFileMode, getFiles, getIncludeEmptyDirs, getLogger, getOverrideDirectoryMode, getOverrideFileMode, getRawDefaultDirectoryMode, getRawDefaultFileMode, getResources, hasVirtualFiles, isForced, isIgnorePermissions, isUptodate, isUseJvmChmod, runArchiveFinalizers, setArchiveFilters, setArchiveFinalizers, setDefaultDirectoryMode, setDefaultFileMode, setDestFile, setDirectoryMode, setDotFileDirectory, setDuplicateBehavior, setFileMode, setForced, setIgnorePermissions, setIncludeEmptyDirs, setUseJvmChmod, validate
protected String archiveType
protected boolean doubleFilePass
protected boolean skipWriting
protected String duplicate
Archiver.setDuplicateBehavior(String)
instead.protected boolean addingNewFiles
public String getComment()
public void setComment(String comment)
public String getEncoding()
public void setEncoding(String encoding)
public void setCompress(boolean compress)
public boolean isCompress()
public boolean isRecompressAddedZips()
public void setRecompressAddedZips(boolean recompressAddedZips)
public void setUpdateMode(boolean update)
public boolean isInUpdateMode()
public void setFilesonly(boolean f)
f
- true to emilate sun jar utilitypublic boolean isFilesonly()
public void setRoundUp(boolean r)
Zip archives store file modification times with a granularity of two seconds, so the times will either be rounded up or down. If you round down, the archive will always seem out-of-date when you rerun the task, so the default is to round up. Rounding up may lead to a different type of problems like JSPs inside a web archive that seem to be slightly more recent than precompiled pages, rendering precompilation useless.
r
- true to roundpublic boolean isRoundUp()
protected void execute() throws ArchiverException, IOException
execute
in class AbstractArchiver
ArchiverException
IOException
protected void finalizeZipOutputStream(ZipOutputStream zOut) throws IOException, ArchiverException
IOException
ArchiverException
protected Map<String,Long> getZipEntryNames(File file) throws IOException
IOException
protected boolean isFileAdded(ArchiveEntry entry, Map entries)
protected boolean isFileUpdated(ArchiveEntry entry, Map entries)
protected final void addResources(ResourceIterator resources, ZipOutputStream zOut) throws IOException, ArchiverException
resources
- the resources to addzOut
- the stream to write toIOException
ArchiverException
protected final void addParentDirs(File baseDir, String entry, ZipOutputStream zOut, String prefix) throws IOException
IOException
public static long copy(InputStream input, OutputStream output, int bufferSize) throws IOException
IOException
protected void zipFile(InputStream in, ZipOutputStream zOut, String vPath, long lastModified, File fromArchive, int mode) throws IOException, ArchiverException
in
- the stream to read data for the entry from.zOut
- the stream to write to.vPath
- the name this entry shall have in the archive.lastModified
- last modification time for the entry.fromArchive
- the original archive we are copying this
entry from, will be null if we are not copying from an archive.mode
- the Unix permissions to set.IOException
ArchiverException
protected void zipFile(ArchiveEntry entry, ZipOutputStream zOut, String vPath) throws IOException, ArchiverException
This implementation delegates to the six-arg version.
entry
- the file to add to the archivezOut
- the stream to write tovPath
- the name this entry shall have in the archiveIOException
ArchiverException
protected void zipDir(org.codehaus.plexus.components.io.resources.PlexusIoResource dir, ZipOutputStream zOut, String vPath, int mode) throws IOException
IOException
protected boolean createEmptyZip(File zipFile) throws ArchiverException
zipFile
- The fileArchiverException
protected void cleanUp()
When we get here, the Zip file has been closed and all we need to do is to reset some globals.
This method will only reset globals that have been changed during execute(), it will not alter the attributes or nested child elements. If you want to reset the instance so that you can later zip a completely different set of files, you must use the reset method.
cleanUp
in class AbstractArchiver
reset()
public void reset()
cleanUp()
protected void initZipOutputStream(ZipOutputStream zOut) throws IOException, ArchiverException
IOException
ArchiverException
public boolean isSupportingForced()
isSupportingForced
in interface Archiver
isSupportingForced
in class AbstractArchiver
Archiver.setForced(boolean)
,
Archiver.isForced()
protected boolean revert(StringBuffer messageBuffer)
revert
in class AbstractArchiver
protected void close() throws IOException
close
in class AbstractArchiver
IOException
protected String getArchiveType()
getArchiveType
in class AbstractArchiver
Copyright © 2001-2013 Codehaus. All Rights Reserved.