Loading bundles/es.core.p2/src/info/elexis/server/core/p2/console/ConsoleCommandProvider.java +31 −24 Original line number Diff line number Diff line package info.elexis.server.core.p2.console; import java.util.Arrays; import java.util.Iterator; import org.eclipse.equinox.p2.operations.Update; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; import org.osgi.service.component.annotations.Activate; Loading @@ -25,8 +27,14 @@ public class ConsoleCommandProvider extends AbstractConsoleCommandProvider { executeCommand("p2", ci); } @CmdAdvisor(description = "get possible updates") public void __p2_update_check() { Update[] possibleUpdates = ProvisioningHelper.getPossibleUpdates(); Arrays.asList(possibleUpdates).stream().forEach(c -> ci.println(c)); } @CmdAdvisor(description = "update all installed features") public String __p2_executeUpdate(){ public String __p2_update_execute() { return ProvisioningHelper.updateAllFeatures().getMessage(); } Loading Loading @@ -70,8 +78,7 @@ public class ConsoleCommandProvider extends AbstractConsoleCommandProvider { if (args.hasNext()) { password = args.next(); } return HTTPServiceHelper.doRepositoryAdd(url, user, password).getStatusInfo() .toString(); return HTTPServiceHelper.doRepositoryAdd(url, user, password).getStatusInfo().toString(); } return missingArgument("url [user] [password]"); } Loading bundles/es.core.p2/src/info/elexis/server/core/p2/internal/ProvisioningHelper.java +30 −21 Original line number Diff line number Diff line Loading @@ -107,7 +107,20 @@ public class ProvisioningHelper { registerHttpAuthentication(location, username, password); } public static IStatus updateAllFeatures() { public static Update[] getPossibleUpdates() { UpdateOperation updateOperation = determinePossibleUpdates(); if (updateOperation != null) { return updateOperation.getPossibleUpdates(); } return new Update[] {}; } /** * * @return an {@link UpdateOperation} if updates where found, else * <code>null</code> */ private static UpdateOperation determinePossibleUpdates() { IProvisioningAgent agent = Provisioner.getInstance().getProvisioningAgent(); ProvisioningHelper.refreshRepositories(); Loading @@ -121,30 +134,26 @@ public class ProvisioningHelper { UpdateOperation operation = new UpdateOperation(session, units.toUnmodifiableSet()); IStatus status = operation.resolveModal(new TimeoutProgressMonitor(15000)); log.info("[UPDATE] Check for updates {} | severity {} | code {}", status.getMessage(), status.getSeverity(), status.getCode()); if (status.getSeverity() == Status.ERROR) { StatusUtil.logStatus("determine updates", log, status); } if ((!status.isOK() && status.getCode() == 10000 && status.getSeverity() == 1)) { // no updates available return status; return null; } else { Update[] possibleUpdates = operation.getPossibleUpdates(); for (Update update : possibleUpdates) { log.debug("[UPDATE] Found update {}", update.replacement); return operation; } } if (status.getSeverity() != IStatus.ERROR) { IStatus stat = ProvisioningHelper.performOperation(operation); log.info("[UPDATE] Finished {} | severity {} | code {}", stat.getMessage(), stat.getSeverity(), stat.getCode()); // TODO perform restart } else { log.warn("[UPDATE] FAILED {} | severity {} | code {}", status.getMessage(), status.getSeverity(), status.getCode()); StatusUtil.logStatus(log, status); public static IStatus updateAllFeatures() { UpdateOperation updateOperation = determinePossibleUpdates(); if (updateOperation == null) { return Status.OK_STATUS; } return status; IStatus stat = ProvisioningHelper.performOperation(updateOperation); StatusUtil.logStatus("update finished", log, stat); return stat; } public static Collection<IInstallableUnit> getAllInstalledFeatures() { Loading Loading @@ -204,8 +213,8 @@ public class ProvisioningHelper { /** * * @param featureName * @param install * <code>true</code> to install, <code>false</code> to uninstall * @param install <code>true</code> to install, <code>false</code> to * uninstall * @return */ public static String unInstallFeature(String featureName, boolean install) { Loading targets/es.target/elexis-server.target +2 −2 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?pde?> <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> <target name="Elexis-Server" sequenceNumber="1562681306"> <target name="Elexis-Server" sequenceNumber="1562917366"> <locations> <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit"> <unit id="org.osgi.framework.system.packages.extra" version="1.0.0.20190124-1239"/> Loading Loading @@ -77,7 +77,7 @@ <unit id="com.eclipsesource.jaxrs.provider.swagger.feature.feature.group" version="1.1.1.201905211243"/> <unit id="com.eclipsesource.jaxrs.provider.multipart.feature.feature.group" version="2.2.0.201905211243"/> <unit id="ch.rgw.utility" version="3.8.0.20190425-1427"/> <unit id="ch.elexis.core" version="3.8.0.20190704-0852"/> <unit id="ch.elexis.core" version="3.8.0.20190712-0701"/> <unit id="ch.elexis.core.l10n" version="3.8.0.20190703-1208"/> <unit id="ch.elexis.core.importer.div" version="3.2.0.20190703-1208"/> <unit id="ch.elexis.core.hl7.v2x" version="3.2.0.20190416-1216"/> Loading Loading
bundles/es.core.p2/src/info/elexis/server/core/p2/console/ConsoleCommandProvider.java +31 −24 Original line number Diff line number Diff line package info.elexis.server.core.p2.console; import java.util.Arrays; import java.util.Iterator; import org.eclipse.equinox.p2.operations.Update; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; import org.osgi.service.component.annotations.Activate; Loading @@ -25,8 +27,14 @@ public class ConsoleCommandProvider extends AbstractConsoleCommandProvider { executeCommand("p2", ci); } @CmdAdvisor(description = "get possible updates") public void __p2_update_check() { Update[] possibleUpdates = ProvisioningHelper.getPossibleUpdates(); Arrays.asList(possibleUpdates).stream().forEach(c -> ci.println(c)); } @CmdAdvisor(description = "update all installed features") public String __p2_executeUpdate(){ public String __p2_update_execute() { return ProvisioningHelper.updateAllFeatures().getMessage(); } Loading Loading @@ -70,8 +78,7 @@ public class ConsoleCommandProvider extends AbstractConsoleCommandProvider { if (args.hasNext()) { password = args.next(); } return HTTPServiceHelper.doRepositoryAdd(url, user, password).getStatusInfo() .toString(); return HTTPServiceHelper.doRepositoryAdd(url, user, password).getStatusInfo().toString(); } return missingArgument("url [user] [password]"); } Loading
bundles/es.core.p2/src/info/elexis/server/core/p2/internal/ProvisioningHelper.java +30 −21 Original line number Diff line number Diff line Loading @@ -107,7 +107,20 @@ public class ProvisioningHelper { registerHttpAuthentication(location, username, password); } public static IStatus updateAllFeatures() { public static Update[] getPossibleUpdates() { UpdateOperation updateOperation = determinePossibleUpdates(); if (updateOperation != null) { return updateOperation.getPossibleUpdates(); } return new Update[] {}; } /** * * @return an {@link UpdateOperation} if updates where found, else * <code>null</code> */ private static UpdateOperation determinePossibleUpdates() { IProvisioningAgent agent = Provisioner.getInstance().getProvisioningAgent(); ProvisioningHelper.refreshRepositories(); Loading @@ -121,30 +134,26 @@ public class ProvisioningHelper { UpdateOperation operation = new UpdateOperation(session, units.toUnmodifiableSet()); IStatus status = operation.resolveModal(new TimeoutProgressMonitor(15000)); log.info("[UPDATE] Check for updates {} | severity {} | code {}", status.getMessage(), status.getSeverity(), status.getCode()); if (status.getSeverity() == Status.ERROR) { StatusUtil.logStatus("determine updates", log, status); } if ((!status.isOK() && status.getCode() == 10000 && status.getSeverity() == 1)) { // no updates available return status; return null; } else { Update[] possibleUpdates = operation.getPossibleUpdates(); for (Update update : possibleUpdates) { log.debug("[UPDATE] Found update {}", update.replacement); return operation; } } if (status.getSeverity() != IStatus.ERROR) { IStatus stat = ProvisioningHelper.performOperation(operation); log.info("[UPDATE] Finished {} | severity {} | code {}", stat.getMessage(), stat.getSeverity(), stat.getCode()); // TODO perform restart } else { log.warn("[UPDATE] FAILED {} | severity {} | code {}", status.getMessage(), status.getSeverity(), status.getCode()); StatusUtil.logStatus(log, status); public static IStatus updateAllFeatures() { UpdateOperation updateOperation = determinePossibleUpdates(); if (updateOperation == null) { return Status.OK_STATUS; } return status; IStatus stat = ProvisioningHelper.performOperation(updateOperation); StatusUtil.logStatus("update finished", log, stat); return stat; } public static Collection<IInstallableUnit> getAllInstalledFeatures() { Loading Loading @@ -204,8 +213,8 @@ public class ProvisioningHelper { /** * * @param featureName * @param install * <code>true</code> to install, <code>false</code> to uninstall * @param install <code>true</code> to install, <code>false</code> to * uninstall * @return */ public static String unInstallFeature(String featureName, boolean install) { Loading
targets/es.target/elexis-server.target +2 −2 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?pde?> <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl --> <target name="Elexis-Server" sequenceNumber="1562681306"> <target name="Elexis-Server" sequenceNumber="1562917366"> <locations> <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit"> <unit id="org.osgi.framework.system.packages.extra" version="1.0.0.20190124-1239"/> Loading Loading @@ -77,7 +77,7 @@ <unit id="com.eclipsesource.jaxrs.provider.swagger.feature.feature.group" version="1.1.1.201905211243"/> <unit id="com.eclipsesource.jaxrs.provider.multipart.feature.feature.group" version="2.2.0.201905211243"/> <unit id="ch.rgw.utility" version="3.8.0.20190425-1427"/> <unit id="ch.elexis.core" version="3.8.0.20190704-0852"/> <unit id="ch.elexis.core" version="3.8.0.20190712-0701"/> <unit id="ch.elexis.core.l10n" version="3.8.0.20190703-1208"/> <unit id="ch.elexis.core.importer.div" version="3.2.0.20190703-1208"/> <unit id="ch.elexis.core.hl7.v2x" version="3.2.0.20190416-1216"/> Loading