From ea1cb133841d9b2d9cb6fb7d8cf8fdb0d1095347 Mon Sep 17 00:00:00 2001 From: Roland Grunberg Date: Thu, 7 Apr 2016 10:23:49 -0400 Subject: [PATCH] Support reading BundleInfo from p2 Droplets enabled installations. --- ui/org.eclipse.pde.core/META-INF/MANIFEST.MF | 3 ++- .../src/org/eclipse/pde/internal/core/P2Utils.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF index 7c20994..ab702e3 100644 --- eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF +++ eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF @@ -102,5 +102,6 @@ Require-Bundle: org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)" Eclipse-LazyStart: true Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Import-Package: com.ibm.icu.util +Import-Package: com.ibm.icu.util, + org.eclipse.equinox.internal.simpleconfigurator.utils Bundle-ActivationPolicy: lazy diff --git eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java index fbd4b81..ce4589d 100644 --- eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java +++ eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java @@ -17,6 +17,8 @@ import java.net.URL; import java.util.*; +import java.net.URI; import org.eclipse.core.runtime.*; import org.eclipse.equinox.frameworkadmin.BundleInfo; +import org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorUtils; import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.IProvisioningAgentProvider; import org.eclipse.equinox.p2.engine.*; @@ -108,7 +109,16 @@ public class P2Utils { try { URL bundlesTxt = new URL(configurationArea.getProtocol(), configurationArea.getHost(), new File(configurationArea.getFile(), SimpleConfiguratorManipulator.BUNDLES_INFO_PATH).getAbsolutePath()); File home = basePath.toFile(); - BundleInfo bundles[] = getBundlesFromFile(bundlesTxt, home); + List ibundleList = SimpleConfiguratorUtils.readConfiguration(bundlesTxt, home.toURI()); + List bundleList = new ArrayList(); + for (org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo b : ibundleList) { + URI location = b.getLocation(); + if (!location.isAbsolute() && b.getBaseLocation() != null) + location = URIUtil.makeAbsolute(location, b.getBaseLocation()); + BundleInfo binfo = new BundleInfo(b.getSymbolicName(), b.getVersion(), location, b.getStartLevel(), b.isMarkedAsStarted()); + bundleList.add(binfo); + } + BundleInfo[] bundles = bundleList.toArray(new BundleInfo[0]); if (bundles == null || bundles.length == 0) { return null; } -- 2.5.5