Bug 330463 - Optimize manifest TouchPointData memory footprint for MetadataRepositories
diff --git a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
index dd1c720..52afe4b 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.metadata;singleton:=true
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 2.0.1.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.metadata.MetadataActivator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -19,7 +19,8 @@
org.eclipse.equinox.p2.operations,
org.eclipse.equinox.p2.publisher,
org.eclipse.equinox.p2.ql,
- org.eclipse.equinox.p2.ui",
+ org.eclipse.equinox.p2.ui,
+ org.eclipse.equinox.p2.touchpoint.eclipse",
org.eclipse.equinox.internal.p2.metadata.expression;
x-friends:="org.eclipse.equinox.p2.artifact.repository,
org.eclipse.equinox.p2.directorywatcher,
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java
index d203ecd..84bf1dc 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -75,7 +75,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isMarkedStarted(manipulator, osgiTarget, false));
@@ -121,7 +121,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isMarkedStarted(manipulator, osgiTarget, false));
@@ -170,7 +170,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isMarkedStarted(manipulator, osgiTarget, false));
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java
index 2dd7d42..371615c 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -75,7 +75,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isStartLevel(manipulator, osgiTarget, -1));
@@ -121,7 +121,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isStartLevel(manipulator, osgiTarget, -1));
@@ -170,7 +170,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(isStartLevel(manipulator, osgiTarget, -1));
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java
index 70d7f78..7c705b5 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -75,7 +75,7 @@
Manipulator manipulator = (Manipulator) parameters.get(EclipseTouchpoint.PARM_MANIPULATOR);
assertNotNull(manipulator);
- BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, Util.getManifest(iu.getTouchpointData()));
+ BundleInfo bundleInfo = Util.createBundleInfo(osgiTarget, iu);
manipulator.getConfigData().addBundle(bundleInfo);
assertTrue(inBundles(manipulator, osgiTarget));
UninstallBundleAction action = new UninstallBundleAction();
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java
index 2e1176e..4e3e786 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -12,15 +12,12 @@
import java.io.File;
import java.net.MalformedURLException;
-import java.util.Collections;
import java.util.Properties;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.equinox.internal.p2.touchpoint.eclipse.Util;
import org.eclipse.equinox.p2.core.IAgentLocation;
import org.eclipse.equinox.p2.engine.IProfile;
-import org.eclipse.equinox.p2.metadata.ITouchpointData;
-import org.eclipse.equinox.p2.metadata.MetadataFactory;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
/**
@@ -54,9 +51,4 @@
IProfile profile = createProfile("test", props);
assertEquals(cacheDir.toURL().toExternalForm(), Util.getBundlePoolLocation(getAgent(), profile).toString());
}
-
- public void testMissingManifest() {
- ITouchpointData emptyData = MetadataFactory.createTouchpointData(Collections.EMPTY_MAP);
- assertNull(Util.getManifest(Collections.singletonList(emptyData)));
- }
}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
index a39151a..62fcbed 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.touchpoint.eclipse;singleton:=true
-Bundle-Version: 2.0.2.qualifier
+Bundle-Version: 2.0.3.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.touchpoint.eclipse.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -20,6 +20,7 @@
org.eclipse.equinox.internal.p2.core.helpers,
org.eclipse.equinox.internal.p2.engine,
org.eclipse.equinox.internal.p2.garbagecollector,
+ org.eclipse.equinox.internal.p2.metadata,
org.eclipse.equinox.internal.provisional.frameworkadmin,
org.eclipse.equinox.internal.provisional.p2.director;resolution:=optional,
org.eclipse.equinox.internal.provisional.p2.repository,
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
index d0cb5c6..982e90f 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java
@@ -12,12 +12,14 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.touchpoint.eclipse;
-import java.io.*;
+import java.io.File;
+import java.io.IOException;
import java.net.*;
import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.equinox.frameworkadmin.BundleInfo;
import org.eclipse.equinox.internal.p2.core.helpers.*;
+import org.eclipse.equinox.internal.p2.metadata.IRequiredCapability;
import org.eclipse.equinox.p2.core.*;
import org.eclipse.equinox.p2.engine.IProfile;
import org.eclipse.equinox.p2.metadata.*;
@@ -25,10 +27,7 @@
import org.eclipse.equinox.p2.repository.artifact.*;
import org.eclipse.osgi.service.datalocation.Location;
import org.eclipse.osgi.service.environment.EnvironmentInfo;
-import org.eclipse.osgi.util.ManifestElement;
import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
public class Util {
@@ -157,43 +156,48 @@
return listProperty;
}
- public static BundleInfo createBundleInfo(File bundleFile, String manifest) {
+ public static BundleInfo createBundleInfo(File bundleFile, IInstallableUnit unit) {
BundleInfo bundleInfo = new BundleInfo();
if (bundleFile != null)
bundleInfo.setLocation(bundleFile.toURI());
- bundleInfo.setManifest(manifest);
- try {
- @SuppressWarnings("unchecked")
- Map<String, String> headers = ManifestElement.parseBundleManifest(new ByteArrayInputStream(manifest.getBytes("UTF-8")), new HashMap<String, String>()); //$NON-NLS-1$
- ManifestElement[] element = ManifestElement.parseHeader("bsn", headers.get(Constants.BUNDLE_SYMBOLICNAME)); //$NON-NLS-1$
- if (element == null || element.length == 0)
- return null;
- bundleInfo.setSymbolicName(element[0].getValue());
-
- String version = headers.get(Constants.BUNDLE_VERSION);
- if (version == null)
- return null;
- // convert to a Version object first to ensure we are consistent with our version number w.r.t.
- // padding zeros at the end
- bundleInfo.setVersion(Version.parseVersion(version).toString());
-
- String fragmentHost = headers.get(Constants.FRAGMENT_HOST);
- if (fragmentHost != null)
- bundleInfo.setFragmentHost(fragmentHost.trim());
-
- } catch (BundleException e) {
- // unexpected
- LogHelper.log(new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e));
- return null;
- } catch (IOException e) {
- // unexpected
- LogHelper.log(new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e));
- return null;
+ Collection<IProvidedCapability> capabilities = unit.getProvidedCapabilities();
+ for (IProvidedCapability capability : capabilities) {
+ String nameSpace = capability.getNamespace();
+ if (nameSpace.equals("osgi.bundle")) { //$NON-NLS-1$
+ bundleInfo.setSymbolicName(capability.getName());
+ bundleInfo.setVersion(capability.getVersion().toString());
+ } else if (nameSpace.equals("osgi.fragment")) { //$NON-NLS-1$
+ String fragmentName = capability.getName();
+ String fragmentHost = getFragmentHost(unit, fragmentName);
+ // shouldn't happen as long as the metadata is well-formed
+ if (fragmentHost == null)
+ LogHelper.log(createError("Unable to find fragment host for IU: " + unit)); //$NON-NLS-1$
+ else
+ bundleInfo.setFragmentHost(fragmentHost);
+ bundleInfo.setVersion(capability.getVersion().toString());
+ }
}
return bundleInfo;
}
+ private static String getFragmentHost(IInstallableUnit unit, String fragmentName) {
+ Collection<IRequirement> requires = unit.getRequirements();
+ for (IRequirement iRequirement : requires) {
+ if (iRequirement instanceof IRequiredCapability) {
+ IRequiredCapability requiredCapability = (IRequiredCapability) iRequirement;
+ if (fragmentName.equals(requiredCapability.getName())) {
+ String fragmentHost = requiredCapability.getName();
+ if (!requiredCapability.getRange().toString().equals("0.0.0")) { //$NON-NLS-1$
+ fragmentHost += ";bundle-version=\"" + requiredCapability.getRange() + '"'; //$NON-NLS-1$
+ }
+ return fragmentHost;
+ }
+ }
+ }
+ return null;
+ }
+
public static File getArtifactFile(IProvisioningAgent agent, IArtifactKey artifactKey, IProfile profile) {
IFileArtifactRepository aggregatedView = getAggregatedBundleRepository(agent, profile);
File bundleJar = aggregatedView.getArtifactFile(artifactKey);
@@ -314,18 +318,6 @@
return null;
}
- public static String getManifest(Collection<ITouchpointData> data) {
- for (ITouchpointData td : data) {
- ITouchpointInstruction manifestInstruction = td.getInstruction("manifest"); //$NON-NLS-1$
- if (manifestInstruction == null)
- return null;
- String manifest = manifestInstruction.getBody();
- if (manifest != null && manifest.length() > 0)
- return manifest;
- }
- return null;
- }
-
public static IStatus createError(String message) {
return createError(message, null);
}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
index fab1f90..4a2ecfe 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
+ * Copyright (c) 2008, 2010 IBM Corporation and others. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@@ -69,12 +69,7 @@
if (bundleFile == null || !bundleFile.exists())
return Util.createError(NLS.bind(Messages.artifact_file_not_found, artifactKey));
- //By now we always have the manifest in the touchpoint data
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
manipulator.getConfigData().addBundle(bundleInfo);
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
index 52e1f68..832c147 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -47,11 +47,7 @@
// the bundleFile might be null here, that's OK.
File bundleFile = Util.getArtifactFile(agent, artifactKey, profile);
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
@@ -87,11 +83,7 @@
// the bundleFile might be null here, that's OK.
File bundleFile = Util.getArtifactFile(agent, artifactKey, profile);
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
index 9d2f3c4..9452c71 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -46,11 +46,7 @@
// the bundleFile might be null here, that's OK.
File bundleFile = Util.getArtifactFile(agent, artifactKey, profile);
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
@@ -90,11 +86,7 @@
// the bundleFile might be null here, that's OK.
File bundleFile = Util.getArtifactFile(agent, artifactKey, profile);
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
index 0d40709..a20aae9 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others. All rights reserved. This
+ * Copyright (c) 2008, 2010 IBM Corporation and others. All rights reserved. This
* program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@@ -68,11 +68,7 @@
// the bundleFile might be null here, that's OK.
File bundleFile = Util.getArtifactFile(agent, artifactKey, profile);
- String manifest = Util.getManifest(iu.getTouchpointData());
- if (manifest == null)
- return Util.createError(NLS.bind(Messages.missing_manifest, iu));
-
- BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, manifest);
+ BundleInfo bundleInfo = Util.createBundleInfo(bundleFile, iu);
if (bundleInfo == null)
return Util.createError(NLS.bind(Messages.failed_bundleinfo, iu));
manipulator.getConfigData().removeBundle(bundleInfo);