From dda7c66e6fb4be55da622c3c91a2f1f12cbaf93d Mon Sep 17 00:00:00 2001 From: Ed Merks Date: Mon, 11 Jan 2021 12:21:41 +0100 Subject: [PATCH] [569513] Setting up platform-ui SDK environment fails. https://bugs.eclipse.org/bugs/show_bug.cgi?id=569513 --- .../feature.xml | 2 +- .../pom.xml | 2 +- .../META-INF/MANIFEST.MF | 6 ++--- plugins/org.eclipse.oomph.setup.core/pom.xml | 2 +- .../internal/core/SetupTaskPerformer.java | 23 +++++++++++++++++++ .../META-INF/MANIFEST.MF | 4 ++-- .../META-INF/MANIFEST.MF | 16 ++++++------- plugins/org.eclipse.oomph.setup.ui/pom.xml | 2 +- .../oomph/setup/ui/wizards/ProgressPage.java | 18 +++++++++++++++ 9 files changed, 58 insertions(+), 17 deletions(-) diff --git a/features/org.eclipse.oomph.setup.core-feature/feature.xml b/features/org.eclipse.oomph.setup.core-feature/feature.xml index ca8e57c5e..d44a7b5c4 100644 --- a/features/org.eclipse.oomph.setup.core-feature/feature.xml +++ b/features/org.eclipse.oomph.setup.core-feature/feature.xml @@ -12,7 +12,7 @@ diff --git a/features/org.eclipse.oomph.setup.core-feature/pom.xml b/features/org.eclipse.oomph.setup.core-feature/pom.xml index 15c7aae68..562db8cd9 100644 --- a/features/org.eclipse.oomph.setup.core-feature/pom.xml +++ b/features/org.eclipse.oomph.setup.core-feature/pom.xml @@ -20,6 +20,6 @@ org.eclipse.oomph.features org.eclipse.oomph.setup.core - 1.18.0-SNAPSHOT + 1.19.0-SNAPSHOT eclipse-feature diff --git a/plugins/org.eclipse.oomph.setup.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.setup.core/META-INF/MANIFEST.MF index f22a9441e..4f9ca1f65 100644 --- a/plugins/org.eclipse.oomph.setup.core/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.oomph.setup.core/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.oomph.setup.core;singleton:=true -Bundle-Version: 1.18.0.qualifier +Bundle-Version: 1.19.0.qualifier Bundle-ClassPath: . Bundle-Name: %pluginName Bundle-Vendor: %providerName @@ -39,7 +39,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.net;bundle-version="[1.2.0,2.0.0)" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.oomph.setup.internal.core;version="1.18.0";x-internal:=true, - org.eclipse.oomph.setup.internal.core.util;version="1.18.0";x-internal:=true +Export-Package: org.eclipse.oomph.setup.internal.core;version="1.19.0";x-internal:=true, + org.eclipse.oomph.setup.internal.core.util;version="1.19.0";x-internal:=true Bundle-Activator: org.eclipse.oomph.setup.internal.core.SetupCorePlugin$Implementation Automatic-Module-Name: org.eclipse.oomph.setup.core diff --git a/plugins/org.eclipse.oomph.setup.core/pom.xml b/plugins/org.eclipse.oomph.setup.core/pom.xml index e0ea96df0..09a9679e5 100644 --- a/plugins/org.eclipse.oomph.setup.core/pom.xml +++ b/plugins/org.eclipse.oomph.setup.core/pom.xml @@ -20,7 +20,7 @@ org.eclipse.oomph org.eclipse.oomph.setup.core - 1.18.0-SNAPSHOT + 1.19.0-SNAPSHOT eclipse-plugin diff --git a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java index 068104f94..5bb958a25 100644 --- a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java +++ b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java @@ -72,6 +72,7 @@ import org.eclipse.oomph.setup.util.SetupUtil; import org.eclipse.oomph.setup.util.StringExpander; import org.eclipse.oomph.util.CollectionUtil; +import org.eclipse.oomph.util.IORuntimeException; import org.eclipse.oomph.util.IOUtil; import org.eclipse.oomph.util.MonitorUtil; import org.eclipse.oomph.util.OS; @@ -260,6 +261,8 @@ public class SetupTaskPerformer extends AbstractSetupTaskContext private boolean hasSuccessfullyPerformed; + private boolean hasProductIniVMArg; + private File logFile; public SetupTaskPerformer(URIConverter uriConverter, SetupPrompter prompter, Trigger trigger, SetupContext setupContext, Stream stream) @@ -280,6 +283,11 @@ public String getVMPath() return getPrompter().getVMPath(); } + public boolean hasProductIniVMArg() + { + return hasProductIniVMArg; + } + public boolean hasSuccessfullyPerformed() { return hasSuccessfullyPerformed; @@ -3722,6 +3730,21 @@ private void performPostBootstrapTasks(IProgressMonitor monitor) throws Exceptio { monitor.worked(1); } + + File iniFile = new File(getProductLocation(), getLauncherName() + ".ini"); //$NON-NLS-1$ + if (iniFile.exists()) + { + try + { + // Read the existing ini file with the system's default encoding, like the native launcher does. + List contents = IOUtil.readLines(iniFile, null); + hasProductIniVMArg = contents.contains("-vm"); //$NON-NLS-1$ + } + catch (IORuntimeException ex) + { + //$FALL-THROUGH$ + } + } } private void performTriggeredSetupTasks(IProgressMonitor monitor) throws Exception diff --git a/plugins/org.eclipse.oomph.setup.installer/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.setup.installer/META-INF/MANIFEST.MF index 4512ccfdc..558b927df 100644 --- a/plugins/org.eclipse.oomph.setup.installer/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.oomph.setup.installer/META-INF/MANIFEST.MF @@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)", org.eclipse.oomph.setup;bundle-version="[1.18.0,2.0.0)", org.eclipse.oomph.setup.edit;bundle-version="[1.15.0,2.0.0)", - org.eclipse.oomph.setup.ui;bundle-version="[1.19.0,2.0.0)", + org.eclipse.oomph.setup.ui;bundle-version="[1.20.0,2.0.0)", org.eclipse.equinox.p2.operations;bundle-version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.metadata;bundle-version="[2.0.0,3.0.0)", org.eclipse.equinox.p2.core;bundle-version="[2.0.0,3.0.0)", @@ -26,7 +26,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.oomph.ui;bundle-version="[1.15.0,2.0.0)", org.eclipse.oomph.p2.ui;bundle-version="[1.15.0,2.0.0)", org.eclipse.oomph.setup.p2;bundle-version="[1.16.0,2.0.0)", - org.eclipse.oomph.setup.core;bundle-version="[1.18.0,2.0.0)", + org.eclipse.oomph.setup.core;bundle-version="[1.19.0,2.0.0)", org.eclipse.oomph.jreinfo.ui;bundle-version="[1.12.0,2.0.0)", org.eclipse.help;bundle-version="[3.5.0,4.0.0)", org.eclipse.ui.net;bundle-version="[1.0.0,2.0.0)", diff --git a/plugins/org.eclipse.oomph.setup.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.setup.ui/META-INF/MANIFEST.MF index 93b067d96..d10809ab5 100644 --- a/plugins/org.eclipse.oomph.setup.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.oomph.setup.ui/META-INF/MANIFEST.MF @@ -2,17 +2,17 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.oomph.setup.ui;singleton:=true -Bundle-Version: 1.19.0.qualifier +Bundle-Version: 1.20.0.qualifier Bundle-ClassPath: . Bundle-Activator: org.eclipse.oomph.setup.ui.SetupUIPlugin$Implementation Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.oomph.setup.ui;version="1.19.0";x-internal:=true, - org.eclipse.oomph.setup.ui.actions;version="1.19.0";x-internal:=true, - org.eclipse.oomph.setup.ui.recorder;version="1.19.0";x-internal:=true, - org.eclipse.oomph.setup.ui.synchronizer;version="1.19.0";x-internal:=true, - org.eclipse.oomph.setup.ui.wizards;version="1.19.0";x-internal:=true +Export-Package: org.eclipse.oomph.setup.ui;version="1.20.0";x-internal:=true, + org.eclipse.oomph.setup.ui.actions;version="1.20.0";x-internal:=true, + org.eclipse.oomph.setup.ui.recorder;version="1.20.0";x-internal:=true, + org.eclipse.oomph.setup.ui.synchronizer;version="1.20.0";x-internal:=true, + org.eclipse.oomph.setup.ui.wizards;version="1.20.0";x-internal:=true Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)", org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)", @@ -26,14 +26,14 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", org.eclipse.nebula.widgets.tablecombo;bundle-version="[1.0.0,2.0.0)", org.eclipse.emf.ecore.xmi;bundle-version="[2.10.0,3.0.0)";visibility:=reexport, org.eclipse.emf.edit.ui;bundle-version="[2.10.0,3.0.0)";visibility:=reexport, - org.eclipse.oomph.setup.core;bundle-version="[1.18.0,2.0.0)";visibility:=reexport, + org.eclipse.oomph.setup.core;bundle-version="[1.19.0,2.0.0)";visibility:=reexport, org.eclipse.oomph.setup.edit;bundle-version="[1.15.0,2.0.0)";visibility:=reexport, org.eclipse.oomph.setup.p2.edit;bundle-version="[1.13.0,2.0.0)", org.eclipse.oomph.setup.sync;bundle-version="[1.13.0,2.0.0)", org.eclipse.oomph.ui;bundle-version="[1.15.0,2.0.0)", org.eclipse.oomph.p2.edit;bundle-version="[1.14.0,2.0.0)";visibility:=reexport, org.eclipse.oomph.p2.core;bundle-version="[1.17.0,2.0.0)", - org.eclipse.oomph.p2.ui;bundle-version="[1.14.0,2.0.0)", + org.eclipse.oomph.p2.ui;bundle-version="[1.15.0,2.0.0)", org.eclipse.oomph.jreinfo.ui;bundle-version="[1.12.0,2.0.0)", org.eclipse.oomph.preferences;bundle-version="[1.12.0,2.0.0)" Bundle-ActivationPolicy: lazy diff --git a/plugins/org.eclipse.oomph.setup.ui/pom.xml b/plugins/org.eclipse.oomph.setup.ui/pom.xml index 295136a48..b73230a55 100644 --- a/plugins/org.eclipse.oomph.setup.ui/pom.xml +++ b/plugins/org.eclipse.oomph.setup.ui/pom.xml @@ -20,7 +20,7 @@ org.eclipse.oomph org.eclipse.oomph.setup.ui - 1.19.0-SNAPSHOT + 1.20.0-SNAPSHOT eclipse-plugin diff --git a/plugins/org.eclipse.oomph.setup.ui/src/org/eclipse/oomph/setup/ui/wizards/ProgressPage.java b/plugins/org.eclipse.oomph.setup.ui/src/org/eclipse/oomph/setup/ui/wizards/ProgressPage.java index e831c51ce..faa84e6a8 100644 --- a/plugins/org.eclipse.oomph.setup.ui/src/org/eclipse/oomph/setup/ui/wizards/ProgressPage.java +++ b/plugins/org.eclipse.oomph.setup.ui/src/org/eclipse/oomph/setup/ui/wizards/ProgressPage.java @@ -14,6 +14,8 @@ import org.eclipse.oomph.internal.setup.SetupProperties; import org.eclipse.oomph.internal.ui.AccessUtil; import org.eclipse.oomph.internal.ui.OomphAdapterFactoryContentProvider; +import org.eclipse.oomph.jreinfo.JRE; +import org.eclipse.oomph.jreinfo.JREManager; import org.eclipse.oomph.p2.core.CertificateConfirmer; import org.eclipse.oomph.setup.CertificatePolicy; import org.eclipse.oomph.setup.Installation; @@ -1090,6 +1092,22 @@ public static boolean launchProduct(SetupTaskPerformer performer) throws Excepti File executable = info.getExecutable(); command.add(executable.toString()); + // This is to ensure that if there is no -vm argument, the product should be launched with the system JRE and not the JRE of the installer, + // which is likely a minimized JustJ JRE. + if (!performer.hasProductIniVMArg()) + { + JRE systemJRE = JREManager.INSTANCE.getSystemJRE(); + if (systemJRE != null) + { + File javaHome = systemJRE.getJavaHome(); + if (javaHome != null) + { + command.add("-vm"); //$NON-NLS-1$ + command.add(new File(javaHome, "bin").toString()); //$NON-NLS-1$ + } + } + } + File ws = performer.getWorkspaceLocation(); if (ws != null) {