diff options
author | Pascal Rapicault | 2012-07-10 11:35:24 +0000 |
---|---|---|
committer | Pascal Rapicault | 2012-07-10 11:35:24 +0000 |
commit | fd760bcb9b71263cce6970964de85a434a5a4d50 (patch) | |
tree | 8d704bc820732a9392e3af46323c133727b64839 /bundles/org.eclipse.equinox.p2.reconciler.dropins/src | |
parent | e066cc8029207bcba85498aae0c80d90030955fe (diff) | |
download | rt.equinox.p2-fd760bcb9b71263cce6970964de85a434a5a4d50.tar.gz rt.equinox.p2-fd760bcb9b71263cce6970964de85a434a5a4d50.tar.xz rt.equinox.p2-fd760bcb9b71263cce6970964de85a434a5a4d50.zip |
Bug 251167 - [reconciler] Deleted dropins content remains in profilev20120710-113524
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.reconciler.dropins/src')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java index 001684fd9..337d41a86 100644 --- a/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java +++ b/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java @@ -10,6 +10,8 @@ ******************************************************************************/ package org.eclipse.equinox.internal.p2.reconciler.dropins; +import org.eclipse.equinox.p2.metadata.IRequirement; + import java.io.*; import java.net.*; import java.util.*; @@ -18,6 +20,7 @@ import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.core.helpers.*; import org.eclipse.equinox.internal.p2.director.ProfileChangeRequest; import org.eclipse.equinox.internal.p2.extensionlocation.Constants; +import org.eclipse.equinox.internal.p2.metadata.RequiredCapability; import org.eclipse.equinox.internal.provisional.configurator.Configurator; import org.eclipse.equinox.internal.provisional.p2.directorywatcher.RepositoryListener; import org.eclipse.equinox.p2.core.IProvisioningAgent; @@ -123,6 +126,15 @@ public class ProfileSynchronizer { if (moveResult.getSeverity() == IStatus.ERROR || moveResult.getSeverity() == IStatus.CANCEL) return moveResult; + if (!request.getRemovals().isEmpty()) { + Collection<IRequirement> requirements = new ArrayList<IRequirement>(); + for (IInstallableUnit unit : request.getRemovals()) { + RequiredCapability req = new RequiredCapability(IInstallableUnit.NAMESPACE_IU_ID, unit.getId(), new VersionRange(unit.getVersion(), true, unit.getVersion(), true), null, 0, 0, false, null); + requirements.add(req); + } + request.addExtraRequirements(requirements); + } + // now create a plan for the rest of the work and execute it IStatus addRemoveResult = performAddRemove(request, context, monitor); if (addRemoveResult.getSeverity() == IStatus.ERROR || addRemoveResult.getSeverity() == IStatus.CANCEL) |