Interface JcrPackageManager

All Superinterfaces:
PackageManager
All Known Implementing Classes:
JcrPackageManagerImpl

@ProviderType public interface JcrPackageManager extends PackageManager
Extends the PackageManager by repository specific operations.
  • Method Details

    • open

      @Nullable @Nullable JcrPackage open(@NotNull @NotNull PackageId id) throws RepositoryException
      Opens a package with the given package id.
      Parameters:
      id - the package id.
      Returns:
      the new package or null it the package does not exist or is not valid.
      Throws:
      RepositoryException - if an error occurs
      Since:
      2.3.22
    • open

      @Nullable @Nullable JcrPackage open(@NotNull @NotNull Node node) throws RepositoryException
      Opens a package that is based on the given node.
      Parameters:
      node - the underlying node
      Returns:
      the new package or null it the package is not valid.
      Throws:
      RepositoryException - if an error occurs
    • open

      @Nullable @Nullable JcrPackage open(@NotNull @NotNull Node node, boolean allowInvalid) throws RepositoryException
      Opens a package that is based on the given node. If allowInvalid is true also invalid packages are returned, but only if the node is file like (i.e. is nt:hierarchyNode and has a jcr:content/jcr:data property).
      Parameters:
      node - the underlying node
      allowInvalid - if true invalid packages are openend, too.
      Returns:
      the new package or null it the package is not valid unless allowInvalid is true.
      Throws:
      RepositoryException - if an error occurs
    • resolve

      @Nullable @Nullable PackageId resolve(@NotNull @NotNull Dependency dependency, boolean onlyInstalled) throws RepositoryException
      Finds the id of the package that matches the given dependency best. If onlyInstalled is true only installed packages are searched.
      Parameters:
      dependency - dependency information
      onlyInstalled - if true only installed packages are searched.
      Returns:
      the id of the matching package or null if not found.
      Throws:
      RepositoryException - if an error occurs
      Since:
      2.4.6
    • usage

      @NotNull @NotNull PackageId[] usage(@NotNull @NotNull PackageId id) throws RepositoryException
      Returns the package ids of installed packages that depend on the given package.
      Parameters:
      id - the package id to search for
      Returns:
      the array of package ids.
      Throws:
      RepositoryException - if an error occurs
      Since:
      3.1.32
    • upload

      @NotNull @NotNull JcrPackage upload(@NotNull @NotNull File file, boolean isTmpFile, boolean replace, @Nullable @Nullable String nameHint) throws RepositoryException, IOException
      Uploads a package. The location is chosen from the installation path of the package. if the package does not provide such a path, the nameHint is respected and the package is placed below the package root. if the package already exists at that path it is not installed and null is returned unless replace is true.
      Parameters:
      file - package file to upload
      isTmpFile - indicates if the given file is a temp file and can be deleted when the package is closed
      replace - if true existing packages are replaced.
      nameHint - hint for the name if package does not provide one
      Returns:
      the new jcr package
      Throws:
      RepositoryException - if an error occurrs
      IOException - if an I/O error occurrs
    • upload

      @NotNull @NotNull JcrPackage upload(@NotNull @NotNull File file, boolean isTmpFile, boolean replace, @Nullable @Nullable String nameHint, boolean strict) throws RepositoryException, IOException
      Uploads a package. The location is chosen from the installation path of the package. if the package does not provide such a path, the nameHint is respected and the package is placed below the package root. if the package already exists at that path it is not uploaded a ItemExistsException is thrown unless replace is true.
      Parameters:
      file - package file to upload
      isTmpFile - indicates if the given file is a temp file and can be deleted when the package is closed
      replace - if true existing packages are replaced.
      nameHint - hint for the name if package does not provide one
      strict - if true import is more strict in regards to errors
      Returns:
      the new jcr package
      Throws:
      RepositoryException - if an error occurrs
      IOException - if an I/O error occurrs
    • upload

      @NotNull @NotNull JcrPackage upload(@NotNull @NotNull InputStream in, boolean replace) throws RepositoryException, IOException
      Uploads a package. The location is chosen from the installation path of the package. if the package does not provide such a path an IOException is thrown. if the package already exists at that path it is not uploaded a ItemExistsException is thrown unless replace is true.
      Parameters:
      in - input stream that provides the content of the package. note that after this method returns, the input stream is closed in any case.
      replace - if true existing packages are replaced.
      Returns:
      the new jcr package
      Throws:
      RepositoryException - if an error occurrs
      IOException - if an I/O error occurrs
    • upload

      @NotNull @NotNull JcrPackage upload(@NotNull @NotNull InputStream in, boolean replace, boolean strict) throws RepositoryException, IOException
      Uploads a package. The location is chosen from the installation path of the package. if the package does not provide such a path an IOException is thrown. if the package already exists at that path it is not uploaded a ItemExistsException is thrown unless replace is true.
      Parameters:
      in - input stream that provides the content of the package. note that after this method returns, the input stream is closed in any case.
      replace - if true existing packages are replaced.
      strict - if true import is more strict in regards to errors
      Returns:
      the new jcr package
      Throws:
      RepositoryException - if an error occurrs
      IOException - if an I/O error occurrs
    • create

      @NotNull @NotNull JcrPackage create(@Nullable @Nullable Node folder, @NotNull @NotNull String name) throws RepositoryException, IOException
      Creates a new package below the given folder.
      Parameters:
      folder - parent folder or null for the package root
      name - name of the new package
      Returns:
      a new jcr package
      Throws:
      RepositoryException - if a repository error occurrs
      IOException - if an I/O exception occurs
    • create

      @NotNull @NotNull JcrPackage create(@NotNull @NotNull String group, @NotNull @NotNull String name) throws RepositoryException, IOException
      Creates a new package with the new group and name.
      Parameters:
      group - group of the new package
      name - name of the new package
      Returns:
      a new jcr package
      Throws:
      RepositoryException - if a repository error occurrs
      IOException - if an I/O exception occurs
      Since:
      2.2.5
    • create

      @NotNull @NotNull JcrPackage create(@NotNull @NotNull String group, @NotNull @NotNull String name, @Nullable @Nullable String version) throws RepositoryException, IOException
      Creates a new package with the new group, name and version.
      Parameters:
      group - group of the new package
      name - name of the new package
      version - version of the new package; can be null
      Returns:
      a new jcr package
      Throws:
      RepositoryException - if a repository error occurrs
      IOException - if an I/O exception occurs
      Since:
      2.3
    • extract

      @NotNull @NotNull PackageId[] extract(@NotNull @NotNull Archive archive, @NotNull @NotNull ImportOptions options, boolean replace) throws RepositoryException, PackageException, IOException
      Extracts a package directly from the given archive without uploading it to the repository first. A package node is created but w/o any content. The resulting package cannot be downloaded, uninstalled or re-installed.

      If the package defines unsatisfied dependencies DependencyHandling might cause the extraction to fail.

      If the package contains sub-packages, they will follow the same behaviour, i.e. they will not be uploaded to the repository but directly installed unless ImportOptions.setNonRecursive(boolean) is set to true, in which case the sub packages will be uploaded.

      The method will throw an ItemExistsException if a package with the same id already exists, unless replace is set to true.

      Parameters:
      archive - the input archive that contains the package.
      options - the import options
      replace - if true existing packages are replaced.
      Returns:
      an array of the package(s) that were extracted.
      Throws:
      RepositoryException - if an error occurs
      IOException - if an I/O error occurrs
      PackageException - if an internal error occurrs
      IOException - if an I/O exception occurs
    • remove

      void remove(@NotNull @NotNull JcrPackage pack) throws RepositoryException
      Removes a package and its snapshots if present.
      Parameters:
      pack - the package to remove
      Throws:
      RepositoryException - if a repository error occurrs
      Since:
      2.2.7
    • rename

      @NotNull @NotNull JcrPackage rename(@NotNull @NotNull JcrPackage pack, @Nullable @Nullable String groupId, @Nullable @Nullable String name) throws PackageException, RepositoryException
      Renames the given package with a new group id and name. Please note that the package is moved and the internal 'path' is adjusted in the definition, but the package is not rewrapped.
      Parameters:
      pack - the package to rename
      groupId - the new group id or null
      name - the new name or null
      Returns:
      the renamed package
      Throws:
      RepositoryException - if an error occurs
      PackageException - if the package is not unwrapped.
      Since:
      2.0
    • rename

      @NotNull @NotNull JcrPackage rename(@NotNull @NotNull JcrPackage pack, @Nullable @Nullable String groupId, @Nullable @Nullable String name, @Nullable @Nullable String version) throws PackageException, RepositoryException
      Renames the given package with a new group id, name and version. Please note that the package is moved and the internal 'path' is adjusted in the definition, but the package is not rewrapped.
      Parameters:
      pack - the package to rename
      groupId - the new group id or null
      name - the new name or null
      version - the new version or null
      Returns:
      the renamed package
      Throws:
      RepositoryException - if an error occurs
      PackageException - if the package is not unwrapped.
      Since:
      2.3
    • assemble

      void assemble(@NotNull @NotNull JcrPackage pack, @Nullable @Nullable ProgressTrackerListener listener) throws PackageException, RepositoryException, IOException
      Assembles a package.
      Parameters:
      pack - the package to assemble
      listener - a progress listener
      Throws:
      PackageException - if a package error occurs
      RepositoryException - if a repository error occurs
      IOException - if an I/O error occurs
    • assemble

      void assemble(@NotNull @NotNull Node packNode, @NotNull @NotNull JcrPackageDefinition definition, @Nullable @Nullable ProgressTrackerListener listener) throws PackageException, RepositoryException, IOException
      Assembles a package.
      Parameters:
      packNode - the node of the package
      definition - the definition of the package
      listener - a progress listener
      Throws:
      PackageException - if a package error occurs
      RepositoryException - if a repository error occurs
      IOException - if an I/O error occurs
    • assemble

      void assemble(@NotNull @NotNull JcrPackageDefinition definition, @Nullable @Nullable ProgressTrackerListener listener, @NotNull @NotNull OutputStream out) throws IOException, RepositoryException, PackageException
      Assembles a package directly to a output stream
      Parameters:
      definition - the definition of the package
      listener - a progress listener
      out - the output stream to write to
      Throws:
      RepositoryException - if a repository error occurs
      IOException - if an I/O error occurs
      PackageException - if a package error occurs
    • rewrap

      void rewrap(@NotNull @NotNull JcrPackage pack, @Nullable @Nullable ProgressTrackerListener listener) throws PackageException, RepositoryException, IOException
      Rewraps the package in respect to its underlying definition.
      Parameters:
      pack - the package to rewrap
      listener - the progress listener
      Throws:
      PackageException - if a package error occurs
      RepositoryException - if a repository error occurs
      IOException - if an I/O error occurs
    • getPackageRoot

      @NotNull @NotNull Node getPackageRoot() throws RepositoryException
      Returns the configured package root node.
      Returns:
      the package root node
      Throws:
      RepositoryException - if an error occurs
    • getPackageRoot

      @Nullable @Nullable Node getPackageRoot(boolean noCreate) throws RepositoryException
      Returns the configured package root node.
      Parameters:
      noCreate - do not create missing root if true
      Returns:
      the package root node or null if not present and noCreate is true.
      Throws:
      RepositoryException - if an error occurs
    • listPackages

      @NotNull @NotNull List<JcrPackage> listPackages() throws RepositoryException
      Returns the list of all packages installed below the package root.
      Returns:
      a list of packages
      Throws:
      RepositoryException - if an error occurs
    • listPackages

      @NotNull @NotNull List<JcrPackage> listPackages(@Nullable @Nullable WorkspaceFilter filter) throws RepositoryException
      Returns the list of all packages installed below the package root that are included in the filter.
      Parameters:
      filter - filter for packages
      Returns:
      a list of packages
      Throws:
      RepositoryException - if an error occurs
    • listPackages

      @NotNull @NotNull List<JcrPackage> listPackages(@Nullable @Nullable String group, boolean built) throws RepositoryException
      Returns the list of all packages installed below the package root that match the given group. if group is null all packages are returned.
      Parameters:
      group - the group filter
      built - if true only packages with size > 0 are listed
      Returns:
      the list of packages
      Throws:
      RepositoryException - if an error occurs