### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.metadata Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF,v retrieving revision 1.41 diff -u -r1.41 MANIFEST.MF --- META-INF/MANIFEST.MF 12 Jul 2010 20:29:13 -0000 1.41 +++ META-INF/MANIFEST.MF 17 Nov 2010 21:01:32 -0000 @@ -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, #P org.eclipse.equinox.p2.metadata.repository Index: src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java,v retrieving revision 1.43 diff -u -r1.43 MetadataRepositoryIO.java --- src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java 2 Mar 2010 21:09:17 -0000 1.43 +++ src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java 17 Nov 2010 21:01:32 -0000 @@ -11,11 +11,6 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.metadata.repository; -import org.eclipse.equinox.p2.repository.IRepositoryReference; - -import org.eclipse.equinox.p2.query.QueryUtil; - - import java.io.*; import java.lang.reflect.Constructor; import java.net.MalformedURLException; @@ -32,6 +27,8 @@ import org.eclipse.equinox.p2.core.IProvisioningAgent; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.*; +import org.eclipse.equinox.p2.query.QueryUtil; +import org.eclipse.equinox.p2.repository.IRepositoryReference; import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; import org.eclipse.equinox.p2.repository.metadata.spi.AbstractMetadataRepository; import org.eclipse.equinox.p2.repository.metadata.spi.AbstractMetadataRepository.RepositoryState; @@ -107,7 +104,7 @@ // A format version number for metadata repository XML. public static final Version COMPATIBLE_VERSION = Version.createOSGi(1, 0, 0); public static final Version CURRENT_VERSION = Version.createOSGi(1, 1, 0); - public static final VersionRange XML_TOLERANCE = new VersionRange(COMPATIBLE_VERSION, true, Version.createOSGi(2, 0, 0), false); + public static final VersionRange XML_TOLERANCE = new VersionRange(COMPATIBLE_VERSION, true, Version.createOSGi(3, 0, 0), false); // Constants for processing Instructions public static final String PI_REPOSITORY_TARGET = "metadataRepository"; //$NON-NLS-1$ #P org.eclipse.equinox.p2.tests Index: src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java,v retrieving revision 1.31 diff -u -r1.31 IUPersistenceTest.java --- src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java 6 Apr 2010 01:04:11 -0000 1.31 +++ src/org/eclipse/equinox/p2/tests/metadata/IUPersistenceTest.java 17 Nov 2010 21:01:33 -0000 @@ -135,7 +135,7 @@ private static IMatchExpression filter = InstallableUnit.parseFilter("(& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))"); // not really private static String id = "org.eclipse.osgi.services"; - private static String[][] instructions = new String[][] {new String[] {"manifest", "Manifest-Version: 1.0\\Bundle-Vendor: Eclipse.org\\Bundle-ContactAddress: www.eclipse.org\\...a whole bunch of other manifest content..."}, new String[] {"zipped", "true"}, // + private static String[][] instructions = new String[][] {new String[] {"zipped", "true"}, // new String[] {"configure", "addProgramArg(programArg:-startup);addProgramArg(programArg:@artifact);"}}; // private static String IU_TEST_ELEMENT = "test"; Index: src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java,v retrieving revision 1.13 diff -u -r1.13 MarkStartedActionTest.java --- src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java 4 Mar 2010 17:13:57 -0000 1.13 +++ src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/MarkStartedActionTest.java 17 Nov 2010 21:01:33 -0000 @@ -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)); Index: src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java,v retrieving revision 1.13 diff -u -r1.13 SetStartLevelActionTest.java --- src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java 4 Mar 2010 17:13:57 -0000 1.13 +++ src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/SetStartLevelActionTest.java 17 Nov 2010 21:01:33 -0000 @@ -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)); Index: src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java,v retrieving revision 1.11 diff -u -r1.11 UninstallBundleActionTest.java --- src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java 4 Mar 2010 17:13:57 -0000 1.11 +++ src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UninstallBundleActionTest.java 17 Nov 2010 21:01:33 -0000 @@ -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(); Index: src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java,v retrieving revision 1.11 diff -u -r1.11 UtilTest.java --- src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java 8 Mar 2010 18:40:05 -0000 1.11 +++ src/org/eclipse/equinox/p2/tests/touchpoint/eclipse/UtilTest.java 17 Nov 2010 21:01:33 -0000 @@ -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))); - } } #P org.eclipse.equinox.p2.touchpoint.eclipse Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/META-INF/MANIFEST.MF,v retrieving revision 1.52 diff -u -r1.52 MANIFEST.MF --- META-INF/MANIFEST.MF 23 Sep 2010 19:28:46 -0000 1.52 +++ META-INF/MANIFEST.MF 17 Nov 2010 21:01:33 -0000 @@ -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.repository, org.eclipse.equinox.internal.simpleconfigurator.manipulator, Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java,v retrieving revision 1.80 diff -u -r1.80 Util.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java 4 Oct 2010 13:59:58 -0000 1.80 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/Util.java 17 Nov 2010 21:01:33 -0000 @@ -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,42 +156,44 @@ 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 { - Map headers = ManifestElement.parseBundleManifest(new ByteArrayInputStream(manifest.getBytes("UTF-8")), new HashMap()); //$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 capabilities = unit.getProvidedCapabilities(); + for (IProvidedCapability capability : capabilities) { + String nameSpace = capability.getNamespace(); + if (nameSpace.equals("osgi.bundle")) { //$NON-NLS-1$ + bundleInfo.setSymbolicName(capability.getName()); + } else if (nameSpace.equals("osgi.fragment")) { //$NON-NLS-1$ + String fragmentName = capability.getName(); + bundleInfo.setFragmentHost(getFragmentHost(unit, fragmentName)); + } } + + bundleInfo.setVersion(unit.getVersion().toString()); + return bundleInfo; } + private static String getFragmentHost(IInstallableUnit unit, String fragmentName) { + Collection 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); @@ -313,18 +314,6 @@ return null; } - public static String getManifest(Collection 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); } Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java,v retrieving revision 1.4 diff -u -r1.4 InstallBundleAction.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java 4 Mar 2010 17:13:55 -0000 1.4 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/InstallBundleAction.java 17 Nov 2010 21:01:33 -0000 @@ -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); Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java,v retrieving revision 1.7 diff -u -r1.7 MarkStartedAction.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java 4 Mar 2010 17:13:55 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/MarkStartedAction.java 17 Nov 2010 21:01:33 -0000 @@ -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)); Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java,v retrieving revision 1.7 diff -u -r1.7 SetStartLevelAction.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java 4 Mar 2010 17:13:55 -0000 1.7 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/SetStartLevelAction.java 17 Nov 2010 21:01:33 -0000 @@ -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)); Index: src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java,v retrieving revision 1.4 diff -u -r1.4 UninstallBundleAction.java --- src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java 4 Mar 2010 17:13:55 -0000 1.4 +++ src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/actions/UninstallBundleAction.java 17 Nov 2010 21:01:33 -0000 @@ -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);