Interface JcrPackage

All Superinterfaces:
AutoCloseable, Comparable<JcrPackage>
All Known Implementing Classes:
JcrPackageImpl

@ProviderType public interface JcrPackage extends Comparable<JcrPackage>, AutoCloseable
A Vault package stored in the repository. Needs to be closed in case getPackage(), extract(ImportOptions) or install(ImportOptions) has been called.
  • Field Details

  • Method Details

    • getDefinition

      @Nullable @Nullable JcrPackageDefinition getDefinition() throws RepositoryException
      Returns the package definition of this package
      Returns:
      the package definition or null if this package is not valid.
      Throws:
      RepositoryException - if an error occurs
    • isValid

      boolean isValid()
      Checks if the underlying node contains the correct structure.
      Returns:
      true if this package is valid.
    • getNode

      @Nullable @Nullable Node getNode()
      Returns the underlying node
      Returns:
      the node
    • isSealed

      boolean isSealed()
      Checks if this package is sealed. this is the case, if it was not modified since it was unwrapped.
      Returns:
      true if this package is sealed.
    • getPackage

      @NotNull @NotNull VaultPackage getPackage() throws RepositoryException, IOException
      Returns the vault package stored in the data of this package. Opens the package implicitly therefore close() needs to be afterwards. This is potentially a costly operation as this requires uncompressing the ZIP stream (and potentially creating temporary files) therefore prefer using getDefinition() whenever possible to access meta data.
      Returns:
      the package, this is closed when close() is called on this package
      Throws:
      RepositoryException - if an error occurs
      IOException - if an I/O error occurs
    • extract

      void extract(@NotNull @NotNull ImportOptions opts) throws RepositoryException, PackageException, IOException
      Extracts the package contents to the repository. Opens the package implicitly therefore close() needs to be afterwards.
      Parameters:
      opts - import options
      Throws:
      RepositoryException - if a repository error during installation occurs.
      PackageException - if an error during packaging occurs
      IllegalStateException - if the package is not valid.
      IOException - if an I/O error occurs
      Since:
      2.3.14
    • install

      void install(@NotNull @NotNull ImportOptions opts) throws RepositoryException, PackageException, IOException
      Installs the package contents to the repository but creates a snapshot if necessary. Opens the package implicitly therefore close() needs to be afterwards.
      Parameters:
      opts - import options
      Throws:
      RepositoryException - if a repository error during installation occurs.
      PackageException - if an error during packaging occurs
      IllegalStateException - if the package is not valid.
      IOException - if an I/O error occurs
      Since:
      2.3.14
    • extractSubpackages

      @NotNull @NotNull PackageId[] extractSubpackages(@NotNull @NotNull ImportOptions opts) throws RepositoryException, PackageException, IOException
      Processes this package and extracts all sub packages. No content of this package or its sub packages is extracted and not snapshots are taken. If ImportOptions.isNonRecursive() is true, then only the direct sub packages are extracted. The extraction ensures that the sub packages have a dependency to their parent package.
      Parameters:
      opts - import options
      Returns:
      the list of subpackages that were extracted
      Throws:
      RepositoryException - if a repository error during installation occurs.
      PackageException - if an error during packaging occurs
      IllegalStateException - if the package is not valid.
      IOException - if an I/O error occurs
      Since:
      3.1.32
    • getUnresolvedDependencies

      @NotNull @NotNull Dependency[] getUnresolvedDependencies() throws RepositoryException
      Returns the dependencies that are not resolved. If the DependencyHandling is set to strict, the package will not installed if any unresolved dependencies are listed.
      Returns:
      the array of unresolved dependencies.
      Throws:
      RepositoryException - if an error accessing the repository occurrs
      Since:
      3.1.32
    • getResolvedDependencies

      @NotNull @NotNull PackageId[] getResolvedDependencies() throws RepositoryException
      Returns a list of the installed packages that this package depends on.
      Returns:
      the array of resolved dependencies
      Throws:
      RepositoryException - if an error accessing the repository occurrs
      Since:
      3.1.32
    • snapshot

      @Nullable @Nullable JcrPackage snapshot(@NotNull @NotNull ExportOptions opts, boolean replace) throws RepositoryException, PackageException, IOException
      Creates a snapshot of this package.
      Parameters:
      opts - export options
      replace - if true any existing snapshot is replaced.
      Returns:
      a package that represents the snapshot of this package or null if it wasn't created.
      Throws:
      RepositoryException - if a repository error during installation occurs.
      PackageException - if an error during packaging occurs
      IllegalStateException - if the package is not valid.
      IOException - if an I/O error occurs
      Since:
      2.0
    • getSnapshot

      @Nullable @Nullable JcrPackage getSnapshot() throws RepositoryException
      Returns the snapshot that was taken when installing this package.
      Returns:
      the snapshot package or null
      Throws:
      RepositoryException - if an error occurs.
      Since:
      2.0
    • uninstall

      void uninstall(@NotNull @NotNull ImportOptions opts) throws RepositoryException, PackageException, IOException
      Reverts the changes of a prior installation of this package.
      Parameters:
      opts - import options
      Throws:
      RepositoryException - if a repository error during installation occurs.
      PackageException - if an error during packaging occurs or if no snapshot is available.
      IllegalStateException - if the package is not valid.
      PackageException - if no snapshot is present and ImportOptions.isStrict(boolean) returns true.
      IOException - if an I/O error occurs
      Since:
      2.3.14
    • verifyId

      @Deprecated boolean verifyId(boolean autoFix, boolean autoSave) throws RepositoryException
      Deprecated.
      As of 3.1.42, the storage location is implementation details.
      Checks if the package id is correct in respect to the installation path and adjusts it accordingly.
      Parameters:
      autoFix - true to automatically fix the id
      autoSave - true to save changes immediately
      Returns:
      true if id is correct.
      Throws:
      RepositoryException - if an error occurs.
      Since:
      2.2.18
    • isInstalled

      boolean isInstalled() throws RepositoryException
      Checks if this package is installed. Note: the default implementation only checks the JcrPackageDefinition.getLastUnpacked() date. If the package is replaced since it was installed. this method will return false.
      Returns:
      true if this package is installed.
      Throws:
      RepositoryException - if an error occurs.
      Since:
      2.4.6
    • isEmpty

      boolean isEmpty()
      Checks if the package has content.
      Returns:
      true if this package doesn't have content
      Since:
      3.1.40
    • getSize

      long getSize()
      Returns the size of the underlying package.
      Returns:
      the size in bytes or -1 if not valid.
    • close

      void close()
      Closes this package and destroys all temporary data. Only necessary to call when getPackage(), extract(ImportOptions) or install(ImportOptions) has been called. Is a no-op when none of these methods have been called on this package.
      Specified by:
      close in interface AutoCloseable
    • getData

      @Nullable @Nullable Property getData() throws RepositoryException
      Returns the jcr:data property of the package
      Returns:
      the jcr:data property
      Throws:
      RepositoryException - if an error occurrs
    • getDefNode

      @Nullable @Nullable Node getDefNode() throws RepositoryException
      Returns the definition node or null if not exists
      Returns:
      the definition node.
      Throws:
      RepositoryException - if an error occurrs