@Override public String getId() { return localPackage.getId(); }
@Deprecated @Override public void setPackageState(LocalPackage pkg, int state) throws PackageException { persistence.updateState(pkg.getId(), state); pkg.setState(state); }
protected static void removePackage(PackageUpdateService pus, LocalPackage pkg) throws PackageException { log.info(String.format("Removing package %s before update...", pkg.getId())); if (pkg.getPackageState().isInstalled()) { // First remove it to allow SNAPSHOT upgrade log.info("Uninstalling " + pkg.getId()); Task uninstallTask = pkg.getUninstallTask(); try { performTask(uninstallTask); } catch (PackageException e) { uninstallTask.rollback(); throw e; } } pus.removePackage(pkg.getId()); }
/** * Run UninstallTask of given local package * * @since 5.6 * @param localPackage Package to uninstall * @return {@link UninstallTask} of {@code localPackage} * @throws PackageException If uninstall fails. A rollback is done before the exception is raised. */ protected Task performUninstall(LocalPackage localPackage) throws PackageException { log.info("Uninstalling " + localPackage.getId()); Task uninstallTask = localPackage.getUninstallTask(); try { uninstallTask.run(null); } catch (PackageException e) { log.error("Error during uninstall of " + localPackage.getId(), e); uninstallTask.rollback(); throw e; } return uninstallTask; }
/** * Run UninstallTask of given local package * * @since 5.6 * @param localPackage Package to uninstall * @return {@link UninstallTask} of {@code localPackage} * @throws PackageException If uninstall fails. A rollback is done before the exception is raised. */ protected Task performUninstall(LocalPackage localPackage) throws PackageException { log.info("Uninstalling " + localPackage.getId()); Task uninstallTask = localPackage.getUninstallTask(); try { uninstallTask.run(null); } catch (PackageException e) { log.error("Error during uninstall of " + localPackage.getId(), e); uninstallTask.rollback(); throw e; } return uninstallTask; }
@Override public void setPackageState(LocalPackage pkg, PackageState state) throws PackageException { persistence.updateState(pkg.getId(), state); pkg.setState(state); }
protected static void removePackage(PackageUpdateService pus, LocalPackage pkg) throws PackageException { log.info("Removing package {} before update...", pkg.getId()); if (pkg.getPackageState().isInstalled()) { // First remove it to allow SNAPSHOT upgrade log.info("Uninstalling {}", pkg.getId()); Task uninstallTask = pkg.getUninstallTask(); try { performTask(uninstallTask); } catch (PackageException e) { uninstallTask.rollback(); throw e; } } pus.removePackage(pkg.getId()); }
@Override @SuppressWarnings("hiding") public void initialize(LocalPackage pkg, boolean restart) throws PackageException { this.pkg = pkg; this.restart = restart; env.put(PKG_ID, pkg.getId()); env.put(PKG_NAME, pkg.getName()); env.put(PKG_VERSION, pkg.getVersion().toString()); env.put(PKG_ROOT, pkg.getData().getRoot().getAbsolutePath()); if (log.isDebugEnabled()) { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final PrintStream outPrint = new PrintStream(out); MapUtils.debugPrint(outPrint, null, env); log.debug(out.toString()); } }
protected LocalPackage validateInstall(ValidationStatus status) throws PackageException { LocalPackage oldpkg = service.getActivePackage(pkg.getName()); if (oldpkg != null) { if (oldpkg.getPackageState() == PackageState.INSTALLING) { status.addWarning("A package with the same name: " + oldpkg.getId() + " is being installing. Try again later."); } else { status.addWarning("The package " + oldpkg.getId() + " will be uninstalled!"); } return oldpkg; } return null; }
protected static void performTask(Task task) throws PackageException { ValidationStatus validationStatus = task.validate(); if (validationStatus.hasErrors()) { throw new PackageException( "Failed to validate package " + task.getPackage().getId() + " -> " + validationStatus.getErrors()); } if (validationStatus.hasWarnings()) { log.warn("Got warnings on package validation {} -> {}", () -> task.getPackage().getId(), validationStatus::getWarnings); } task.run(null); }
protected void performTask(Task task) throws PackageException { ValidationStatus validationStatus = task.validate(); if (validationStatus.hasErrors()) { throw new PackageException( "Failed to validate package " + task.getPackage().getId() + " -> " + validationStatus.getErrors()); } if (validationStatus.hasWarnings()) { log.warn("Got warnings on package validation " + task.getPackage().getId() + " -> " + validationStatus.getWarnings()); } task.run(null); }
protected void performTask(Task task) throws PackageException { ValidationStatus validationStatus = task.validate(); if (validationStatus.hasErrors()) { throw new PackageException("Failed to validate package " + task.getPackage().getId() + " -> " + validationStatus.getErrors()); } if (validationStatus.hasWarnings()) { log.warn("Got warnings on package validation " + task.getPackage().getId() + " -> " + validationStatus.getWarnings()); } task.run(null); } }
protected static void performTask(Task task) throws PackageException { ValidationStatus validationStatus = task.validate(); if (validationStatus.hasErrors()) { throw new PackageException("Failed to validate package " + task.getPackage().getId() + " -> " + validationStatus.getErrors()); } if (validationStatus.hasWarnings()) { log.warn("Got warnings on package validation " + task.getPackage().getId() + " -> " + validationStatus.getWarnings()); } task.run(null); } }
protected void performTask(Task task) throws PackageException { ValidationStatus validationStatus = task.validate(); if (validationStatus.hasErrors()) { throw new PackageException("Failed to validate package " + task.getPackage().getId() + " -> " + validationStatus.getErrors()); } if (validationStatus.hasWarnings()) { log.warn("Got warnings on package validation " + task.getPackage().getId() + " -> " + validationStatus.getWarnings()); } task.run(null); } }
public boolean pkgPurge() throws PackageException { List<String> localNames = new ArrayList<>(); // Remove packages in DOWNLOADED state first // This will avoid extending the CUDF universe needlessly for (LocalPackage pkg : service.getPackages()) { if (pkg.getPackageState() == PackageState.DOWNLOADED) { pkgRemove(pkg.getId()); } } // Process the remaining packages for (LocalPackage pkg : service.getPackages()) { localNames.add(pkg.getName()); } return pkgRequest(null, null, null, localNames, true, false); }
protected FileTime getLastUpdateDate() { if (lastUpdate == null) { DownloadablePackage snapshotPkg = getStudioProjectSnapshot(); if (snapshotPkg != null) { PackageUpdateService pus = Framework.getLocalService(PackageUpdateService.class); try { LocalPackage pkg = pus.getPackage(snapshotPkg.getId()); if (pkg != null) { lastUpdate = pus.getInstallDate(pkg.getId()); } } catch (PackageException e) { log.error(e); } } } return lastUpdate; }
protected FileTime getLastUpdateDate() { if (lastUpdate == null) { DownloadablePackage snapshotPkg = getStudioProjectSnapshot(); if (snapshotPkg != null) { PackageUpdateService pus = Framework.getService(PackageUpdateService.class); try { LocalPackage pkg = pus.getPackage(snapshotPkg.getId()); if (pkg != null) { lastUpdate = pus.getInstallDate(pkg.getId()); } } catch (PackageException e) { log.error(e); } } } return lastUpdate; }
protected Rollback updateFile(Task task, File fileToUpdate, UpdateManager mgr) throws PackageException { UpdateOptions opt = UpdateOptions.newInstance(task.getPackage().getId(), fileToUpdate, todir); if (opt == null) { return null; } opt.setAllowDowngrade(allowDowngrade); opt.setUpgradeOnly(upgradeOnly); opt.deleteOnExit = removeOnExit; try { RollbackOptions r = mgr.update(opt); return new Rollback(r); } catch (VersionAlreadyExistException e) { // should never happen log.error(e, e); return null; } }
@Override protected Command doRun(Task task, Map<String, String> prefs) throws PackageException { UpdateManager mgr = ((AbstractTask) task).getUpdateManager(); RollbackOptions opt = new RollbackOptions(task.getPackage().getId(), key, version); File rollbackTarget = mgr.getRollbackTarget(opt); if (rollbackTarget != null) { Command undeploy = getUndeployCommand(rollbackTarget); if (undeploy != null) { undeploy.run(task, prefs); } } opt.setDeleteOnExit(deleteOnExit); mgr.rollback(opt); return null; }
@Override public synchronized void run(Map<String, String> params) throws PackageException { if (isInstallTask()) { LocalPackage oldpkg = service.getActivePackage(pkg.getName()); if (oldpkg != null) { if (oldpkg.getPackageState() == PackageState.INSTALLING) { throw new PackageException("Another package with the same name is installing: " + oldpkg.getName()); } else { // uninstall it. Task utask = oldpkg.getUninstallTask(); try { utask.run(new HashMap<>()); } catch (PackageException e) { utask.rollback(); throw new PackageException("Failed to uninstall: " + oldpkg.getId() + ". Cannot continue installation of " + pkg.getId(), e); } } } } service.setPackageState(pkg, PackageState.INSTALLING); saveParams(params); doRun(params); taskDone(); if (updateMgrLoaded) { updateMgr.store(); } }