Interface Archiver

All Known Implementing Classes:
AbstractArchiver, AbstractZipArchiver, BZip2Archiver, DelgatingArchiver, DirectoryArchiver, DryRunArchiver, EarArchiver, GZipArchiver, JarArchiver, JarToolModularJarArchiver, ModularJarArchiver, NoOpArchiver, RarArchiver, SnappyArchiver, TarArchiver, TarBZip2Archiver, TarGZipArchiver, TarSnappyArchiver, TarXZArchiver, TarZstdArchiver, TBZ2Archiver, TGZArchiver, TrackingArchiver, TXZArchiver, TZstdArchiver, WarArchiver, XZArchiver, ZipArchiver, ZstdArchiver

public interface Archiver
  • Field Details

  • Method Details

    • createArchive

      void createArchive() throws ArchiverException, IOException
      Throws:
      ArchiverException
      IOException
    • addDirectory

      @Deprecated void addDirectory(@Nonnull File directory) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Obsolete, use addFileSet(FileSet).
      Throws:
      ArchiverException
    • addDirectory

      @Deprecated void addDirectory(@Nonnull File directory, String prefix) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Obsolete, use addFileSet(FileSet).
      Throws:
      ArchiverException
    • addDirectory

      @Deprecated void addDirectory(@Nonnull File directory, String[] includes, String[] excludes) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Obsolete, use addFileSet(FileSet).
      Throws:
      ArchiverException
    • addDirectory

      @Deprecated void addDirectory(@Nonnull File directory, String prefix, String[] includes, String[] excludes) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Obsolete, use addFileSet(FileSet).
      Throws:
      ArchiverException
    • addFileSet

      void addFileSet(@Nonnull FileSet fileSet) throws ArchiverException
      Adds the given file set to the archive. This method is basically obsoleting addDirectory(File), addDirectory(File, String), addDirectory(File, String[], String[]), and addDirectory(File, String, String[], String[]). However, as these methods are in widespread use, they cannot easily be deprecated.
      Throws:
      ArchiverException - Adding the file set failed.
      Since:
      1.0-alpha-9
    • addSymlink

      void addSymlink(String symlinkName, String symlinkDestination) throws ArchiverException
      Throws:
      ArchiverException
    • addSymlink

      void addSymlink(String symlinkName, int permissions, String symlinkDestination) throws ArchiverException
      Throws:
      ArchiverException
    • addFile

      void addFile(@Nonnull File inputFile, @Nonnull String destFileName) throws ArchiverException
      Throws:
      ArchiverException
    • addFile

      void addFile(@Nonnull File inputFile, @Nonnull String destFileName, int permissions) throws ArchiverException
      Throws:
      ArchiverException
    • addArchivedFileSet

      @Deprecated void addArchivedFileSet(@Nonnull File archiveFile) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Throws:
      ArchiverException
    • addArchivedFileSet

      @Deprecated void addArchivedFileSet(@Nonnull File archiveFile, String prefix) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Throws:
      ArchiverException
    • addArchivedFileSet

      @Deprecated void addArchivedFileSet(File archiveFile, String[] includes, String[] excludes) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Throws:
      ArchiverException
    • addArchivedFileSet

      @Deprecated void addArchivedFileSet(@Nonnull File archiveFile, String prefix, String[] includes, String[] excludes) throws ArchiverException
      Deprecated.
      Will go away in next major version
      Throws:
      ArchiverException
    • addArchivedFileSet

      void addArchivedFileSet(ArchivedFileSet fileSet) throws ArchiverException
      Adds the given archive file set to the archive. This method is basically obsoleting addArchivedFileSet(File), addArchivedFileSet(File, String[], String[]), and addArchivedFileSet(File, String, String[], String[]). However, as these methods are in widespread use, they cannot easily be deprecated. Stream transformers are supported on this method
      Throws:
      ArchiverException
      Since:
      1.0-alpha-9
    • addArchivedFileSet

      void addArchivedFileSet(ArchivedFileSet fileSet, Charset charset) throws ArchiverException
      Adds the given archive file set to the archive. This method is basically obsoleting addArchivedFileSet(File), addArchivedFileSet(File, String[], String[]), and addArchivedFileSet(File, String, String[], String[]). However, as these methods are in widespread use, they cannot easily be deprecated.
      Parameters:
      fileSet - the fileSet to add
      charset - 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 method
      charset -
      Throws:
      ArchiverException
      Since:
      1.0-alpha-9
    • addResource

      void addResource(org.codehaus.plexus.components.io.resources.PlexusIoResource resource, String destFileName, int permissions) throws ArchiverException
      Adds the given resource collection to the archive. Stream transformers are *not* supported on this method
      Throws:
      ArchiverException
      Since:
      1.0-alpha-10
    • addResources

      void addResources(org.codehaus.plexus.components.io.resources.PlexusIoResourceCollection resources) throws ArchiverException
      Adds the given resource collection to the archive. Stream transformers are supported on this method
      Throws:
      ArchiverException
      Since:
      1.0-alpha-10
    • getDestFile

      File getDestFile()
    • setDestFile

      void setDestFile(File destFile)
    • setFileMode

      void setFileMode(int mode)
    • getFileMode

      int getFileMode()
    • getOverrideFileMode

      int getOverrideFileMode()
    • setDefaultFileMode

      void setDefaultFileMode(int mode)
    • getDefaultFileMode

      int getDefaultFileMode()
    • setDirectoryMode

      void setDirectoryMode(int mode)
      This is the forced mode that should be used regardless if set, otherwise falls back to default.
      Parameters:
      mode -
    • getDirectoryMode

      int getDirectoryMode()
      Gets the forced mode for directories, falling back to default if none is forced.
      Returns:
    • getOverrideDirectoryMode

      int getOverrideDirectoryMode()
    • setDefaultDirectoryMode

      void setDefaultDirectoryMode(int mode)
      This is the "default" value we should use if no other value is specified
      Parameters:
      mode -
    • getDefaultDirectoryMode

      int getDefaultDirectoryMode()
    • getIncludeEmptyDirs

      boolean getIncludeEmptyDirs()
    • setIncludeEmptyDirs

      void setIncludeEmptyDirs(boolean includeEmptyDirs)
    • setDotFileDirectory

      void setDotFileDirectory(File dotFileDirectory)
    • getResources

      Returns an iterator over instances of ArchiveEntry, which have previously been added by calls to addResources(PlexusIoResourceCollection), addResource(PlexusIoResource, String, int), addFileSet(FileSet), etc.
      Throws:
      ArchiverException
      Since:
      1.0-alpha-10
    • getFiles

      Deprecated.
      Returns a map of the files that have been added to the archive.

      Note: The entry names in the map may use platform-specific path separators in the base implementation. However, archive format-specific implementations (such as ZIP-based archivers) should normalize paths according to their format requirements. For example, ZIP archivers normalize to forward slashes as required by the ZIP file specification.

      Returns:
      A map where keys are entry names and values are the corresponding ArchiveEntry objects.
    • isForced

      boolean isForced()

      Returns, 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 isSupportingForced() may be called to check whether an archiver does support uptodate checks.

      Returns:
      true if the target archive should always be created; false otherwise
      See Also:
    • setForced

      void setForced(boolean forced)

      Sets, 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 isSupportingForced() may be called to check whether an archiver does support uptodate checks.

      Parameters:
      forced - true, if the target archive should always be created; false otherwise
      See Also:
    • isSupportingForced

      boolean isSupportingForced()
      Returns, whether the archive supports uptodate checks. If so, you may set setForced(boolean) to true.
      Returns:
      true, if the archiver does support uptodate checks, false otherwise
      See Also:
    • getDuplicateBehavior

      String getDuplicateBehavior()
      Returns the behavior of this archiver when duplicate files are detected.
    • setDuplicateBehavior

      void setDuplicateBehavior(String duplicate)
      Set the behavior of this archiver when duplicate files are detected. One of:
      • add - Add the duplicates to the archive as duplicate entries
      • skip/preserve - Leave the first entry encountered in the archive, skip the new one
      • fail - throw an ArchiverException

      See DUPLICATES_ADD, DUPLICATES_SKIP, DUPLICATES_PRESERVE, DUPLICATES_FAIL.
    • setUseJvmChmod

      @Deprecated void setUseJvmChmod(boolean useJvmChmod)
      Deprecated.
      this setting is now ignored. The jvm is always used.
      to use or not the jvm method for file permissions: user all not active for group permissions
      Parameters:
      useJvmChmod -
      Since:
      1.1
    • isUseJvmChmod

      @Deprecated boolean isUseJvmChmod()
      Deprecated.
      this setting is now ignored. The jvm is always used.
      Returns:
      Since:
      1.1
    • isIgnorePermissions

      boolean isIgnorePermissions()
      Since:
      1.1
    • setIgnorePermissions

      void setIgnorePermissions(boolean ignorePermissions)
      Since:
      1.1
    • setLastModifiedDate

      @Deprecated void setLastModifiedDate(Date lastModifiedDate)
      Deprecated.
      Define forced last modification date for entries (if non null).
      Parameters:
      lastModifiedDate -
      Since:
      4.2.0
    • getLastModifiedDate

      @Deprecated Date getLastModifiedDate()
      Deprecated.
      Since:
      4.2.0
    • setLastModifiedTime

      void setLastModifiedTime(FileTime lastModifiedTime)
      Sets the last modification time of the entries (if non null).
      Parameters:
      lastModifiedTime - to set in the archive entries
      Since:
      4.3.0
      See Also:
    • getLastModifiedTime

      FileTime getLastModifiedTime()
      Returns the last modification time of the archiver.
      Returns:
      The last modification time of the archiver, null if not specified
      Since:
      4.3.0
      See Also:
    • setFilenameComparator

      void setFilenameComparator(Comparator<String> filenameComparator)
      Set filename comparator, used to sort file entries when scanning directories since File.list() does not guarantee any order.
      Since:
      4.2.0
    • setOverrideUid

      void setOverrideUid(int uid)
      Since:
      4.2.0
    • setOverrideUserName

      void setOverrideUserName(String userName)
      Since:
      4.2.0
    • getOverrideUid

      int getOverrideUid()
      Since:
      4.2.0
    • getOverrideUserName

      String getOverrideUserName()
      Since:
      4.2.0
    • setOverrideGid

      void setOverrideGid(int gid)
      Since:
      4.2.0
    • setOverrideGroupName

      void setOverrideGroupName(String groupName)
      Since:
      4.2.0
    • getOverrideGid

      int getOverrideGid()
      Since:
      4.2.0
    • getOverrideGroupName

      String getOverrideGroupName()
      Since:
      4.2.0
    • setUmask

      void setUmask(int umask)
      Since:
      4.7.0
    • getUmask

      int getUmask()
      Since:
      4.7.0
    • configureReproducible

      @Deprecated void configureReproducible(Date lastModifiedDate)
      Deprecated.
      This method is obsolete and will just call configureReproducibleBuild(FileTime) with the Date transformed into FileTime.
      Parameters:
      lastModifiedDate - the date to use for archive entries last modified time
      Since:
      4.2.0
    • configureReproducibleBuild

      void configureReproducibleBuild(FileTime lastModifiedTime)
      Configure the archiver to create archives in a reproducible way (see Reproducible Builds).

      This will configure:

      • reproducible archive entries order,
      • defined entries timestamp
      Parameters:
      lastModifiedTime - The last modification time of the entries
      Since:
      4.3.0
      See Also: