@CheckForNull @Override public Calendar getInstallationTime() { try { JcrPackageDefinition def = pkg.getDefinition(); return def == null ? null : def.getLastUnpacked(); } catch (RepositoryException e) { throw new IllegalStateException(e); } }
public JcrRegisteredPackage(JcrPackage pkg) throws IOException, RepositoryException { this.pkg = pkg; this.vltPkg = pkg.getPackage(); }
/** * {@inheritDoc} */ @Override public void assemble(JcrPackage pack, ProgressTrackerListener listener) throws PackageException, RepositoryException, IOException { pack.verifyId(true, true); assemble(pack.getNode(), pack.getDefinition(), listener); }
@Override public void installPackage(@Nonnull Session session, @Nonnull RegisteredPackage pkg, @Nonnull ImportOptions opts, boolean extract) throws IOException, PackageException { try (JcrPackage jcrPkg = ((JcrRegisteredPackage) pkg).getJcrPackage()) { if (extract) { jcrPkg.extract(opts); } else { jcrPkg.install(opts); } } catch (RepositoryException e) { throw new IOException(e); } }
private void processPackage(Session admin, JcrPackageManager manager, JcrPackage jcrPackage, final boolean preInstall) throws IOException, PackageException, RepositoryException { final PackageId packageId = jcrPackage.getPackage().getId(); final Session inspectSession = SessionFacade.findBestWrapper(admin, false); final ProgressTrackerListener tracker = options.setListener(tracker); List<PackageId> subpacks = Arrays.asList(jcrPackage.extractSubpackages(options)); final VaultPackage vaultPackage = jcrPackage.getPackage(); if (!vaultPackage.isValid()) { throw new PackageException("Package is not valid: " + packageId); jcrPackage.extract(options); admin.save(); jcrPackage.close();
/** * Get a JSONObject from the JCR package configured for the Angular model. * * @param jcrPackage The JCR Package to retrieve data from. * @return the JSON Object configured for the Angular model. * @throws JSONException * @throws RepositoryException * @throws IOException */ private JSONObject getJsonFromJcrPackage(final JcrPackage jcrPackage) throws JSONException, RepositoryException, IOException { final JSONObject json = new JSONObject(); final SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); json.put(JSON_SIZE_PROPERTY, getSize(jcrPackage.getPackage().getSize())); json.put(JSON_DATE_PROPERTY, dateFormat.format(jcrPackage.getPackage().getCreated().getTime())); json.put(JSON_NAME_PROPERTY, jcrPackage.getDefinition().getId().getName()); json.put(JSON_PATH_PROPERTY, jcrPackage.getNode().getPath()); json.put(JSON_ID_PROPERTY, jcrPackage.getDefinition().getId().toString()); return json; }
List<PackageId> subPackages = snap == null ? def.getSubPackages() : ((JcrPackageDefinitionImpl) snap.getDefinition()).getSubPackages(); JcrPackage pack = packMgr.open(id); if (pack != null) { if (pack.getSnapshot() == null) { log.warn("Unable to uninstall sub package {}. Snapshot missing.", id); } else { pack.uninstall(opts); opts.getListener().onMessage(ProgressTrackerListener.Mode.TEXT, "Uninstalling package from snapshot " + snap.getDefinition().getId(), ""); snap.extract(opts); snap.getNode().remove(); s.save();
public WorkspaceFilter prepare(final WorkspaceFilter originalFilter) throws RepositoryException { for (JcrPackage pkg: mgr.listPackages(originalFilter)) { if (pkg.isValid() && pkg.getSize() > 0) { subPackages.put(pkg.getDefinition().getId(), pkg.getNode().getPath()); if (pkg.isValid() && pkg.getSize() > 0) { subPackages.put(pkg.getDefinition().getId(), pkg.getNode().getPath());
try { Object[] values = { pkg.getDefinition().getId().toString(), pkg.getSize(), pkg.isInstalled(), pkg.getDefinition().getLastUnpacked() == null ? null : pkg.getDefinition().getLastUnpacked().getTime(), pkg.getDefinition().getLastUnpackedBy() }; packageData.put(new CompositeDataSupport(packageType, packageItemNames, values)); log.warn("Can't add composite data", e); pkg.close();
/** * {@inheritDoc} */ public String getSuccessJSON(final JcrPackage jcrPackage) throws RepositoryException { final JsonObject json = new JsonObject(); json.addProperty(KEY_STATUS, "success"); json.addProperty(KEY_PATH, jcrPackage.getNode().getPath()); JsonArray filterSetsArray = new JsonArray(); json.add(KEY_FILTER_SETS, filterSetsArray); final List<PathFilterSet> filterSets = jcrPackage.getDefinition().getMetaInf().getFilter().getFilterSets(); for (final PathFilterSet filterSet : filterSets) { final JsonObject jsonFilterSet = new JsonObject(); jsonFilterSet.addProperty(KEY_IMPORT_MODE, filterSet.getImportMode().name()); jsonFilterSet.addProperty(KEY_ROOT_PATH, filterSet.getRoot()); filterSetsArray.add(jsonFilterSet); } return json.toString(); }
private void processPackageFile(Session admin, JcrPackageManager manager, final File file, final boolean preInstall) throws AbortedScanException { JcrPackage jcrPackage = null; try { jcrPackage = manager.upload(file, false, true, null, true); final PackageId packageId = jcrPackage.getPackage().getId(); if (!preInstall) { progressChecks.forEach(handler -> { try { handler.identifyPackage(packageId, file); } catch (Exception e) { getErrorListener().onListenerException(e, handler, packageId); } }); } processPackage(admin, manager, jcrPackage, preInstall); } catch (IOException | PackageException | RepositoryException e) { throw new AbortedScanException(e, file); } finally { if (jcrPackage != null) { jcrPackage.close(); } } }
@Override public void close() { vltPkg.close(); vltPkg = null; pkg.close(); pkg = null; }
JcrPackageDefinition listedPackageDef = listedPackage.getDefinition(); if (listedPackageDef == null) { continue; if (pName.equals(listedPackageId.getName()) && listedPackage.isValid() && listedPackage.isInstalled() && listedPackageId.getVersion().compareTo(pVersion) > 0) { newerPackageIdPerSubPackage.put(pId, listedPackageId); ((JcrPackageDefinitionImpl) snap.getDefinition()).setSubPackages(subIds);
@SuppressWarnings("resource") @Override public void remove(@Nonnull PackageId id) throws IOException, NoSuchPackageException { JcrRegisteredPackage pkg = (JcrRegisteredPackage) open(id); if (pkg == null) { throw new NoSuchPackageException().setId(id); } JcrPackage pack = pkg.getJcrPackage(); try { JcrPackage snap = pack.getSnapshot(); if (snap != null) { snap.getNode().remove(); } pack.getNode().remove(); session.save(); } catch (RepositoryException e) { throw new IOException(e); } dispatch(PackageEvent.Type.REMOVE, id, null); }
/** * {@inheritDoc} */ private void validateSubPackages(JcrPackageDefinitionImpl def) throws RepositoryException, PackageException { List<JcrPackage> subs = listPackages(def.getMetaInf().getFilter()); PackageId id = def.getId(); for (JcrPackage p: subs) { // check if not include itself if (p.getDefinition().getId().equals(id)) { throw new PackageException("A package cannot include itself. Check filter definition."); } if (!p.isSealed()) { throw new PackageException("Only sealed (built) sub packages allowed: " + p.getDefinition().getId()); } } }
/** * {@inheritDoc} */ public void removePackage(final JcrPackageManager jcrPackageManager, final String groupName, final String name, final String version) throws RepositoryException { final PackageId packageId = new PackageId(groupName, name, version); final JcrPackage jcrPackage = jcrPackageManager.open(packageId); if (jcrPackage != null && jcrPackage.getNode() != null) { jcrPackage.getNode().remove(); jcrPackage.getNode().getSession().save(); } else { log.debug("Nothing to remove at: ", packageId.getInstallationPath()); } }
/** * {@inheritDoc} */ public List<String> getContents(final JcrPackage jcrPackage) throws IOException, RepositoryException, PackageException { JcrPackageCoverageProgressListener jcrPackageCoverageProgressListener = new JcrPackageCoverageProgressListener(); ImportOptions importOptions = new ImportOptions(); importOptions.setDryRun(true); importOptions.setListener(jcrPackageCoverageProgressListener); jcrPackage.extract(importOptions); return jcrPackageCoverageProgressListener.getCoverage(); }
final ImportOptions opts = VltUtils.getImportOptions(aclHandling, importMode); jcrPackage.install(opts); result = true; } catch (RepositoryException | PackageException | IOException e) {