public static DownloadablePackage getSnapshot(List<DownloadablePackage> pkgs) { for (DownloadablePackage pkg : pkgs) { if (isSnapshot(pkg)) { return pkg; } } return null; }
/** * @since 7.10 */ public DownloadablePackage getStudioProjectSnapshot() { if (!studioSnapshotPackageCached) { PackageManager pm = Framework.getLocalService(PackageManager.class); // TODO NXP-16228: should directly request the SNAPSHOT package (if only we knew its name!) List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); studioSnapshotPackage = StudioSnapshotHelper.getSnapshot(pkgs); studioSnapshotPackageCached = true; } return studioSnapshotPackage; }
@GET @Produces("text/html") @Path(value = "studio") public Object getStudio() { PackageManager pm = Framework.getService(PackageManager.class); List<DownloadablePackage> pkgs = pm.listAllStudioRemoteOrLocalPackages(); List<DownloadablePackage> pkgsWithoutSnapshot = StudioSnapshotHelper.removeSnapshot(pkgs); return getView("simpleListing").arg("pkgs", pm.sort(pkgsWithoutSnapshot)) .arg("showCommunityInfo", false) .arg("source", "studio"); }
/** * @since 7.10 */ public DownloadablePackage getStudioProjectSnapshot() { if (!studioSnapshotPackageCached) { PackageManager pm = Framework.getService(PackageManager.class); // TODO NXP-16228: should directly request the SNAPSHOT package (if only we knew its name!) List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); studioSnapshotPackage = StudioSnapshotHelper.getSnapshot(pkgs); studioSnapshotPackageCached = true; } return studioSnapshotPackage; }
@GET @Produces("text/html") @Path(value = "studio") public Object getStudio() { PackageManager pm = Framework.getLocalService(PackageManager.class); List<DownloadablePackage> pkgs = pm.listAllStudioRemoteOrLocalPackages(); List<DownloadablePackage> pkgsWithoutSnapshot = StudioSnapshotHelper.removeSnapshot(pkgs); return getView("simpleListing").arg("pkgs", pm.sort(pkgsWithoutSnapshot)).arg("showCommunityInfo", false).arg( "source", "studio"); }
@OperationMethod public void run() throws Exception { if (updateInProgress) { return; } if (!((NuxeoPrincipal) session.getPrincipal()).isAdministrator()) { throw new NuxeoException("Must be Administrator to use this function"); } List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); DownloadablePackage snapshotPkg = StudioSnapshotHelper.getSnapshot(pkgs); if (snapshotPkg == null) { throw new NuxeoException("No Snapshot Package was found."); } try { updateInProgress = true; hotReloadPackage(snapshotPkg); } finally { updateInProgress = false; } }
public static List<DownloadablePackage> removeSnapshot(List<DownloadablePackage> pkgs) { List<DownloadablePackage> result = new ArrayList<>(); for (DownloadablePackage pkg : pkgs) { if (!isSnapshot(pkg)) { result.add(pkg); } } return result; }
public void installStudioSnapshot() { if (isStudioSnapshopUpdateInProgress) { return; } PackageManager pm = Framework.getLocalService(PackageManager.class); // TODO NXP-16228: should directly request the SNAPSHOT package (if only we knew its name!) List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); DownloadablePackage snapshotPkg = StudioSnapshotHelper.getSnapshot(pkgs); studioSnapshotUpdateError = null; resetStudioSnapshotValidationStatus(); if (snapshotPkg != null) { isStudioSnapshopUpdateInProgress = true; try { StudioAutoInstaller studioAutoInstaller = new StudioAutoInstaller(pm, snapshotPkg.getId(), shouldValidateStudioSnapshot()); studioAutoInstaller.run(); } finally { isStudioSnapshopUpdateInProgress = false; } } else { studioSnapshotUpdateError = translate("label.studio.update.error.noSnapshotPackageFound"); } }
public static List<DownloadablePackage> removeSnapshot(List<DownloadablePackage> pkgs) { return pkgs.stream().filter(pkg -> !isSnapshot(pkg)).collect(Collectors.toList()); }
public void installStudioSnapshot() { if (isStudioSnapshopUpdateInProgress) { return; } PackageManager pm = Framework.getService(PackageManager.class); // TODO NXP-16228: should directly request the SNAPSHOT package (if only we knew its name!) List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); DownloadablePackage snapshotPkg = StudioSnapshotHelper.getSnapshot(pkgs); studioSnapshotUpdateError = null; resetStudioSnapshotValidationStatus(); if (snapshotPkg != null) { isStudioSnapshopUpdateInProgress = true; try { StudioAutoInstaller studioAutoInstaller = new StudioAutoInstaller(pm, snapshotPkg.getId(), shouldValidateStudioSnapshot()); studioAutoInstaller.run(); } finally { isStudioSnapshopUpdateInProgress = false; } } else { studioSnapshotUpdateError = translate("label.studio.update.error.noSnapshotPackageFound"); } }
@OperationMethod public Blob run() throws Exception { try { if (!setInProgress(true)) { return jsonHelper(IN_PROGRESS, "Update in progress.", null); } if (!session.getPrincipal().isAdministrator()) { return jsonHelper(ERROR, "Must be Administrator to use this function.", null); } if (!Framework.isDevModeSet()) { return jsonHelper(ERROR, "You must enable Dev mode to Hot reload your Studio Snapshot package.", null); } List<DownloadablePackage> pkgs = pm.listRemoteAssociatedStudioPackages(); DownloadablePackage snapshotPkg = StudioSnapshotHelper.getSnapshot(pkgs); if (snapshotPkg == null) { return jsonHelper(ERROR, "No Snapshot Package was found.", null); } return hotReloadPackage(snapshotPkg); } catch (RuntimeException e) { throw new OperationException(e); } finally { setInProgress(false); } }