Interface Archiver

All Known Implementing Classes:
AbstractArchiver, AbstractZipArchiver, BZip2Archiver, DelgatingArchiver, DirectoryArchiver, DryRunArchiver, EarArchiver, GZipArchiver, JarArchiver, JarToolModularJarArchiver, ModularJarArchiver, NoOpArchiver, TarArchiver, TrackingArchiver, WarArchiver, XZArchiver, ZipArchiver

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

      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:
      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
      fileSet - the fileSet to add
      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

      Map<String,ArchiveEntry> getFiles()
      Deprecated.
    • 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

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

      Date getLastModifiedDate()
      Since:
      4.2.0
    • 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
    • configureReproducible

      void configureReproducible(Date lastModifiedDate)
      Configure the archiver to create archives in a reproducible way (see Reproducible Builds).

      This will configure:

      • reproducible archive entries order,
      • defined entries timestamp
      • and reproducible entries Unix mode.
      Parameters:
      lastModifiedDate - the date to use for archive entries last modified time
      Since:
      4.2.0