public abstract class AbstractArchiver extends org.codehaus.plexus.logging.AbstractLogEnabled implements Archiver, org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable, FinalizerEnabled
DEFAULT_DIR_MODE, DEFAULT_FILE_MODE, DEFAULT_SYMLILNK_MODE, DUPLICATES_ADD, DUPLICATES_FAIL, DUPLICATES_PRESERVE, DUPLICATES_SKIP, DUPLICATES_VALID_BEHAVIORS, ROLE| Constructor and Description |
|---|
AbstractArchiver() |
| Modifier and Type | Method and Description |
|---|---|
void |
addArchivedFileSet(ArchivedFileSet fileSet)
Adds the given archive file set to the archive.
|
void |
addArchivedFileSet(ArchivedFileSet fileSet,
Charset charset)
Adds the given archive file set to the archive.
|
void |
addArchivedFileSet(File archiveFile)
Obsolete, use
Archiver.addArchivedFileSet(ArchivedFileSet). |
void |
addArchivedFileSet(File archiveFile,
String prefix)
Obsolete, use
Archiver.addArchivedFileSet(ArchivedFileSet). |
void |
addArchivedFileSet(File archiveFile,
String[] includes,
String[] excludes)
Obsolete, use
Archiver.addArchivedFileSet(ArchivedFileSet). |
void |
addArchivedFileSet(File archiveFile,
String prefix,
String[] includes,
String[] excludes)
Obsolete, use
Archiver.addArchivedFileSet(ArchivedFileSet). |
void |
addArchiveFinalizer(ArchiveFinalizer finalizer) |
void |
addDirectory(File directory)
Obsolete, use
Archiver.addFileSet(FileSet). |
void |
addDirectory(File directory,
String prefix)
Obsolete, use
Archiver.addFileSet(FileSet). |
void |
addDirectory(File directory,
String[] includes,
String[] excludes)
Obsolete, use
Archiver.addFileSet(FileSet). |
void |
addDirectory(File directory,
String prefix,
String[] includes,
String[] excludes)
Obsolete, use
Archiver.addFileSet(FileSet). |
void |
addFile(File inputFile,
String destFileName) |
void |
addFile(File inputFile,
String destFileName,
int permissions) |
void |
addFileSet(FileSet fileSet)
Adds the given file set to the archive.
|
void |
addResource(org.codehaus.plexus.components.io.resources.PlexusIoResource resource,
String destFileName,
int permissions)
Adds the given resource collection to the archive.
|
void |
addResources(org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection collection)
Adds a resource collection to the archive.
|
void |
addSymlink(String symlinkName,
int permissions,
String symlinkDestination) |
void |
addSymlink(String symlinkName,
String symlinkDestination) |
protected ArchiveEntry |
asArchiveEntry(org.codehaus.plexus.components.io.resources.PlexusIoResource resource,
String destFileName,
int permissions,
org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection collection) |
protected org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection |
asResourceCollection(ArchivedFileSet fileSet,
Charset charset) |
protected boolean |
checkForced() |
protected void |
cleanUp() |
protected abstract void |
close() |
void |
configureReproducible(Date lastModifiedDate)
Configure the archiver to create archives in a reproducible way (see
Reproducible Builds).
|
void |
contextualize(org.codehaus.plexus.context.Context context)
Allows us to pull the ArchiverManager instance out of the container without causing a chicken-and-egg
instantiation/composition problem.
|
void |
createArchive() |
protected abstract void |
execute() |
protected abstract String |
getArchiveType() |
int |
getDefaultDirectoryMode() |
int |
getDefaultFileMode() |
File |
getDestFile() |
int |
getDirectoryMode()
Gets the forced mode for directories, falling back to default if none is forced.
|
String |
getDuplicateBehavior()
Returns the behavior of this archiver when duplicate files are detected.
|
int |
getFileMode() |
Comparator<String> |
getFilenameComparator() |
Map<String,ArchiveEntry> |
getFiles() |
boolean |
getIncludeEmptyDirs() |
Date |
getLastModifiedDate() |
protected org.codehaus.plexus.logging.Logger |
getLogger() |
int |
getOverrideDirectoryMode() |
int |
getOverrideFileMode() |
int |
getOverrideGid() |
String |
getOverrideGroupName() |
int |
getOverrideUid() |
String |
getOverrideUserName() |
int |
getRawDefaultFileMode()
Deprecated.
|
ResourceIterator |
getResources()
Returns an iterator over instances of
ArchiveEntry, which have previously been added by calls to
Archiver.addResources(PlexusIoResourceCollection), Archiver.addResource(PlexusIoResource, String, int),
Archiver.addFileSet(FileSet), etc. |
protected boolean |
hasVirtualFiles() |
boolean |
isForced()
Returns, whether recreating the archive is forced (default).
|
boolean |
isIgnorePermissions() |
boolean |
isSupportingForced()
Returns, whether the archive supports uptodate checks.
|
protected boolean |
isUptodate() |
boolean |
isUseJvmChmod() |
protected Date |
normalizeLastModifiedDate(Date lastModifiedDate)
Normalize last modified time value to get reproducible archive entries, based on
archive binary format (tar uses UTC timestamp but zip uses local time then requires
tweaks to make the value reproducible whatever the current timezone is).
|
protected void |
postCreateArchive()
This method is called after the archive creation
completes successfully (no exceptions are thrown).
|
protected boolean |
revert(StringBuffer messageBuffer) |
protected void |
runArchiveFinalizers() |
void |
setArchiveFinalizers(List<ArchiveFinalizer> archiveFinalizers) |
void |
setDefaultDirectoryMode(int mode)
This is the "default" value we should use if no other value is specified
|
void |
setDefaultFileMode(int mode) |
void |
setDestFile(File destFile) |
void |
setDirectoryMode(int mode)
This is the forced mode that should be used regardless if set, otherwise falls back to default.
|
void |
setDotFileDirectory(File dotFileDirectory) |
void |
setDuplicateBehavior(String duplicate)
Set the behavior of this archiver when duplicate files are detected.
|
void |
setFileMode(int mode) |
void |
setFilenameComparator(Comparator<String> filenameComparator)
Set filename comparator, used to sort file entries when scanning directories since File.list() does not
guarantee any order.
|
void |
setForced(boolean forced)
Sets, whether recreating the archive is forced (default).
|
void |
setIgnorePermissions(boolean ignorePermissions) |
void |
setIncludeEmptyDirs(boolean includeEmptyDirs) |
void |
setLastModifiedDate(Date lastModifiedDate)
Define forced last modification date for entries (if non null).
|
void |
setOverrideGid(int gid) |
void |
setOverrideGroupName(String groupName) |
void |
setOverrideUid(int uid) |
void |
setOverrideUserName(String userName) |
void |
setUseJvmChmod(boolean useJvmChmod)
to use or not the jvm method for file permissions: user all not active for group permissions
|
protected void |
validate() |
public String getDuplicateBehavior()
ArchivergetDuplicateBehavior in interface Archiverpublic void setDuplicateBehavior(String duplicate)
ArchiverArchiverExceptionArchiver.DUPLICATES_ADD, Archiver.DUPLICATES_SKIP, Archiver.DUPLICATES_PRESERVE,
Archiver.DUPLICATES_FAIL.setDuplicateBehavior in interface Archiverpublic final void setFileMode(int mode)
setFileMode in interface Archiverpublic final void setDefaultFileMode(int mode)
setDefaultFileMode in interface Archiverpublic final int getOverrideFileMode()
getOverrideFileMode in interface Archiverpublic final int getFileMode()
getFileMode in interface Archiverpublic final int getDefaultFileMode()
getDefaultFileMode in interface Archiver@Deprecated public final int getRawDefaultFileMode()
Archiver.getDefaultFileMode().public final void setDirectoryMode(int mode)
ArchiversetDirectoryMode in interface Archiverpublic final void setDefaultDirectoryMode(int mode)
ArchiversetDefaultDirectoryMode in interface Archiverpublic final int getOverrideDirectoryMode()
getOverrideDirectoryMode in interface Archiverpublic final int getDirectoryMode()
ArchivergetDirectoryMode in interface Archiverpublic final int getDefaultDirectoryMode()
getDefaultDirectoryMode in interface Archiverpublic boolean getIncludeEmptyDirs()
getIncludeEmptyDirs in interface Archiverpublic void setIncludeEmptyDirs(boolean includeEmptyDirs)
setIncludeEmptyDirs in interface Archiverpublic void addDirectory(@Nonnull File directory) throws ArchiverException
ArchiverArchiver.addFileSet(FileSet).addDirectory in interface ArchiverArchiverExceptionpublic void addDirectory(@Nonnull File directory, String prefix) throws ArchiverException
ArchiverArchiver.addFileSet(FileSet).addDirectory in interface ArchiverArchiverExceptionpublic void addDirectory(@Nonnull File directory, String[] includes, String[] excludes) throws ArchiverException
ArchiverArchiver.addFileSet(FileSet).addDirectory in interface ArchiverArchiverExceptionpublic void addDirectory(@Nonnull File directory, String prefix, String[] includes, String[] excludes) throws ArchiverException
ArchiverArchiver.addFileSet(FileSet).addDirectory in interface ArchiverArchiverExceptionpublic void addFileSet(@Nonnull FileSet fileSet) throws ArchiverException
ArchiverArchiver.addDirectory(File),
Archiver.addDirectory(File, String), Archiver.addDirectory(File, String[], String[]), and
Archiver.addDirectory(File, String, String[], String[]). However, as these methods are in widespread use, they
cannot easily be deprecated.addFileSet in interface ArchiverArchiverException - Adding the file set failed.public void addFile(@Nonnull File inputFile, @Nonnull String destFileName) throws ArchiverException
addFile in interface ArchiverArchiverExceptionpublic void addSymlink(String symlinkName, String symlinkDestination) throws ArchiverException
addSymlink in interface ArchiverArchiverExceptionpublic void addSymlink(String symlinkName, int permissions, String symlinkDestination) throws ArchiverException
addSymlink in interface ArchiverArchiverExceptionprotected ArchiveEntry asArchiveEntry(@Nonnull org.codehaus.plexus.components.io.resources.PlexusIoResource resource, String destFileName, int permissions, org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection collection) throws ArchiverException
ArchiverExceptionpublic void addResource(org.codehaus.plexus.components.io.resources.PlexusIoResource resource,
String destFileName,
int permissions)
throws ArchiverException
ArchiveraddResource in interface ArchiverArchiverExceptionpublic void addFile(@Nonnull File inputFile, @Nonnull String destFileName, int permissions) throws ArchiverException
addFile in interface ArchiverArchiverException@Nonnull public ResourceIterator getResources() throws ArchiverException
ArchiverArchiveEntry, which have previously been added by calls to
Archiver.addResources(PlexusIoResourceCollection), Archiver.addResource(PlexusIoResource, String, int),
Archiver.addFileSet(FileSet), etc.getResources in interface ArchiverArchiverExceptionpublic Map<String,ArchiveEntry> getFiles()
public File getDestFile()
getDestFile in interface Archiverpublic void setDestFile(File destFile)
setDestFile in interface Archiverprotected org.codehaus.plexus.logging.Logger getLogger()
getLogger in class org.codehaus.plexus.logging.AbstractLogEnabledprotected org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection asResourceCollection(ArchivedFileSet fileSet, Charset charset) throws ArchiverException
ArchiverExceptionpublic void addResources(org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection collection)
throws ArchiverException
addResources in interface ArchiverArchiverExceptionpublic void addArchivedFileSet(ArchivedFileSet fileSet) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(File), Archiver.addArchivedFileSet(File, String[], String[]), and
Archiver.addArchivedFileSet(File, String, String[], String[]). However, as these methods are in widespread use,
they cannot easily be deprecated.
Stream transformers are supported on this methodaddArchivedFileSet in interface ArchiverArchiverExceptionpublic void addArchivedFileSet(ArchivedFileSet fileSet, Charset charset) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(File), Archiver.addArchivedFileSet(File, String[], String[]), and
Archiver.addArchivedFileSet(File, String, String[], String[]). However, as these methods are in widespread use,
they cannot easily be deprecated.addArchivedFileSet in interface ArchiverfileSet - the fileSet to addcharset - the encoding to use, particularly useful to specific non-standard filename encodings
for some kinds of archives (for instance zip files)
Stream transformers are supported on this methodArchiverExceptionpublic void addArchivedFileSet(@Nonnull File archiveFile, String prefix, String[] includes, String[] excludes) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(ArchivedFileSet).addArchivedFileSet in interface ArchiverArchiverExceptionpublic void addArchivedFileSet(@Nonnull File archiveFile, String prefix) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(ArchivedFileSet).addArchivedFileSet in interface ArchiverArchiverExceptionpublic void addArchivedFileSet(@Nonnull File archiveFile, String[] includes, String[] excludes) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(ArchivedFileSet).addArchivedFileSet in interface ArchiverArchiverExceptionpublic void addArchivedFileSet(@Nonnull File archiveFile) throws ArchiverException
ArchiverArchiver.addArchivedFileSet(ArchivedFileSet).addArchivedFileSet in interface ArchiverArchiverExceptionpublic void contextualize(org.codehaus.plexus.context.Context context)
throws org.codehaus.plexus.context.ContextException
contextualize in interface org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizableorg.codehaus.plexus.context.ContextExceptionpublic boolean isForced()
ArchiverReturns, whether recreating the archive is forced (default). Setting this option to false means, that the archiver should compare the timestamps of included files with the timestamp of the target archive and rebuild the archive only, if the latter timestamp precedes the former timestamps. Checking for timestamps will typically offer a performance gain (in particular, if the following steps in a build can be suppressed, if an archive isn't recreated) on the cost that you get inaccurate results from time to time. In particular, removal of source files won't be detected.
An archiver doesn't necessarily support checks for uptodate. If so, setting this option to true will simply be
ignored. The method Archiver.isSupportingForced() may be called to check whether an archiver does support
uptodate checks.
isForced in interface ArchiverArchiver.setForced(boolean),
Archiver.isSupportingForced()public void setForced(boolean forced)
ArchiverSets, whether recreating the archive is forced (default). Setting this option to false means, that the archiver should compare the timestamps of included files with the timestamp of the target archive and rebuild the archive only, if the latter timestamp precedes the former timestamps. Checking for timestamps will typically offer a performance gain (in particular, if the following steps in a build can be suppressed, if an archive isn't recreated) on the cost that you get inaccurate results from time to time. In particular, removal of source files won't be detected.
An archiver doesn't necessarily support checks for uptodate. If so, setting this option to true will simply be
ignored. The method Archiver.isSupportingForced() may be called to check whether an archiver does support
uptodate checks.
setForced in interface Archiverforced - true, if the target archive should always be created; false otherwiseArchiver.isForced(),
Archiver.isSupportingForced()public void addArchiveFinalizer(ArchiveFinalizer finalizer)
addArchiveFinalizer in interface FinalizerEnabledpublic void setArchiveFinalizers(List<ArchiveFinalizer> archiveFinalizers)
setArchiveFinalizers in interface FinalizerEnabledpublic void setDotFileDirectory(File dotFileDirectory)
setDotFileDirectory in interface Archiverprotected boolean isUptodate()
throws ArchiverException
ArchiverExceptionprotected boolean checkForced()
throws ArchiverException
ArchiverExceptionpublic boolean isSupportingForced()
ArchiverArchiver.setForced(boolean) to true.isSupportingForced in interface ArchiverArchiver.setForced(boolean),
Archiver.isForced()protected void runArchiveFinalizers()
throws ArchiverException
ArchiverExceptionpublic final void createArchive()
throws ArchiverException,
IOException
createArchive in interface ArchiverArchiverExceptionIOExceptionprotected boolean hasVirtualFiles()
protected boolean revert(StringBuffer messageBuffer)
protected void validate()
throws ArchiverException,
IOException
ArchiverExceptionIOExceptionprotected void postCreateArchive()
throws ArchiverException,
IOException
ArchiverExceptionIOExceptionprotected abstract String getArchiveType()
protected abstract void close()
throws IOException
IOExceptionprotected void cleanUp()
throws IOException
IOExceptionprotected abstract void execute()
throws ArchiverException,
IOException
ArchiverExceptionIOExceptionpublic boolean isUseJvmChmod()
isUseJvmChmod in interface Archiverpublic void setUseJvmChmod(boolean useJvmChmod)
ArchiversetUseJvmChmod in interface Archiverpublic boolean isIgnorePermissions()
isIgnorePermissions in interface Archiverpublic void setIgnorePermissions(boolean ignorePermissions)
setIgnorePermissions in interface Archiverpublic void setLastModifiedDate(Date lastModifiedDate)
ArchiversetLastModifiedDate in interface Archiverpublic Date getLastModifiedDate()
getLastModifiedDate in interface Archiverpublic void setFilenameComparator(Comparator<String> filenameComparator)
ArchiversetFilenameComparator in interface Archiverpublic Comparator<String> getFilenameComparator()
public void setOverrideUid(int uid)
setOverrideUid in interface Archiverpublic void setOverrideUserName(String userName)
setOverrideUserName in interface Archiverpublic int getOverrideUid()
getOverrideUid in interface Archiverpublic String getOverrideUserName()
getOverrideUserName in interface Archiverpublic void setOverrideGid(int gid)
setOverrideGid in interface Archiverpublic void setOverrideGroupName(String groupName)
setOverrideGroupName in interface Archiverpublic int getOverrideGid()
getOverrideGid in interface Archiverpublic String getOverrideGroupName()
getOverrideGroupName in interface Archiverpublic void configureReproducible(Date lastModifiedDate)
ArchiverThis will configure:
configureReproducible in interface ArchiverlastModifiedDate - the date to use for archive entries last modified timeprotected Date normalizeLastModifiedDate(Date lastModifiedDate)
lastModifiedDate - Copyright © 2001–2020 Codehaus Plexus. All rights reserved.