@CheckForNull @Override public Calendar getInstallationTime() { try { JcrPackageDefinition def = pkg.getDefinition(); return def == null ? null : def.getLastUnpacked(); } catch (RepositoryException e) { throw new IllegalStateException(e); } }
/** * Sorts the packages by the dependency order * @param packages packages to sort * @param <T> Type of the collection. * @throws CyclicDependencyException if a cyclic dependency is detected * @throws javax.jcr.RepositoryException if an repository error occurs */ public static <T extends JcrPackage> void sortPackages(Collection<T> packages) throws CyclicDependencyException, RepositoryException { Map<PackageId, Dependency[]> list = new LinkedHashMap<PackageId, Dependency[]>(); Map<PackageId, JcrPackage> byId = new LinkedHashMap<PackageId, JcrPackage>(); for (JcrPackage pack: packages) { PackageId id = pack.getDefinition().getId(); list.put(id, pack.getDefinition().getDependencies()); byId.put(id, pack); } packages.clear(); for (PackageId id: resolve(list)) { packages.add((T) byId.remove(id)); } }
/** * {@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(); }
/** * {@inheritDoc} */ public int compareTo(JcrPackage o) { try { JcrPackageDefinition d1 = getDefinition(); JcrPackageDefinition d2 = o.getDefinition(); return d1.getId().compareTo(d2.getId()); } catch (Exception e) { log.error("error during compare: {}", e.toString()); return 0; } }
/** * {@inheritDoc} */ @Override public void remove(JcrPackage pack) throws RepositoryException { try { registry.remove(pack.getDefinition().getId()); } catch (IOException e) { throw unwrapRepositoryException(e); } catch (NoSuchPackageException e) { // old implementation ignored this ignore } }
/** * {@inheritDoc} */ @Override public void assemble(JcrPackage pack, ProgressTrackerListener listener) throws PackageException, RepositoryException, IOException { pack.verifyId(true, true); assemble(pack.getNode(), pack.getDefinition(), listener); }
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));
final Node dstParentNode = jcrPackage.getDefinition().getNode(); final Session session = dstParentNode.getSession(); if (useDefault) {
final String packageId; try { JcrPackageDefinition packageDefinition = jcrPackage.getDefinition(); if (packageDefinition == null) { throw new RepositoryException("Could not determine the ID for just replicated package (package invalid?)");
|| jcrPackage.getDefinition() == null || jcrPackage.getDefinition().getId() == null) { continue; } else if (!StringUtils.equals(name, jcrPackage.getDefinition().getId().getName())) { final Version packageVersion = jcrPackage.getDefinition().getId().getVersion();
/** * 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; }
/** * {@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()); } } }
JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) pack.getDefinition(); def.sealForRewrap(now);
/** * {@inheritDoc} */ public JcrPackage createPackageFromPathFilterSets(final Collection<PathFilterSet> pathFilterSets, final Session session, final String groupName, final String name, String version, final ConflictResolution conflictResolution, final Map<String, String> packageDefinitionProperties) throws IOException, RepositoryException { final JcrPackageManager jcrPackageManager = packaging.getPackageManager(session); if (ConflictResolution.Replace.equals(conflictResolution)) { this.removePackage(jcrPackageManager, groupName, name, version); } else if (ConflictResolution.IncrementVersion.equals(conflictResolution)) { version = this.getNextVersion(jcrPackageManager, groupName, name, version).toString(); } final JcrPackage jcrPackage = jcrPackageManager.create(groupName, name, version); final JcrPackageDefinition jcrPackageDefinition = jcrPackage.getDefinition(); final DefaultWorkspaceFilter workspaceFilter = new DefaultWorkspaceFilter(); for (final PathFilterSet pathFilterSet : pathFilterSets) { workspaceFilter.add(pathFilterSet); } jcrPackageDefinition.setFilter(workspaceFilter, true); for (final Map.Entry<String, String> entry : packageDefinitionProperties.entrySet()) { jcrPackageDefinition.set(entry.getKey(), entry.getValue(), false); } session.save(); return jcrPackage; }
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()); for (JcrPackage pkg: mgr.listPackages(filter)) { if (pkg.isValid() && pkg.getSize() > 0) { subPackages.put(pkg.getDefinition().getId(), pkg.getNode().getPath());
JcrPackageDefinitionImpl oldDef = (JcrPackageDefinitionImpl) oldPackage.getDefinition(); if (oldDef != null) { state = oldDef.getState(); try { jcrPack = createNew(parent, pid, pkg, false); JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) jcrPack.getDefinition(); if (state != null && def != null) { def.setState(state);
throw new PackageException("Package is not valid."); if (pack.getSize() > 0 && !pack.getDefinition().isUnwrapped()) { throw new PackageException("Package definition not unwrapped."); JcrPackageDefinition def = pack.getDefinition(); PackageId id = def.getId(); PackageId newId = new PackageId(
Node folder = packMgr.mkdir(parentPath, true); JcrPackage snap = mgr.createNew(folder, id, null, true); JcrPackageDefinitionImpl snapDef = (JcrPackageDefinitionImpl) snap.getDefinition(); snapDef.setId(id, false); snapDef.setFilter(filter, false);
@Override protected Iterator<Resource> computeOutput() throws Exception { Iterator<Resource> output = EMPTY_ITERATOR; init(); if (properties.get(PN_FILTERCOLLECTIONMODE, false)){ Resource filterResource = getInput(); if (filterResource != null || !checkExistence){ if (filters == null){ filters = new DefaultWorkspaceFilter(); } //we take as a filter either computed resource, either configured path, as if resource, //is null, check existence has been configured to be false String filter = filterResource != null ? filterResource.getPath() : getComputedPath(); filters.add(new PathFilterSet(filter)); jcrPackage.getDefinition().setFilter(filters, true); output = IteratorUtils.singletonIterator(getInput()); } } return output; }
List<PackageId> subPackages = snap == null ? def.getSubPackages() : ((JcrPackageDefinitionImpl) snap.getDefinition()).getSubPackages(); opts.getListener().onMessage(ProgressTrackerListener.Mode.TEXT, "Uninstalling package from snapshot " + snap.getDefinition().getId(), "");