| diff --git a/plugins/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java b/plugins/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java |
| index 001684f..d482f1c 100644 |
| --- a/plugins/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java |
| +++ b/plugins/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) |
| diff --git a/plugins/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF b/plugins/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF |
| index 067f887..131e3c8 100644 |
| --- a/plugins/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF |
| +++ b/plugins/org.eclipse.equinox.p2.reconciler.dropins/META-INF/MANIFEST.MF |
| @@ -8,7 +8,8 @@ Bundle-Vendor: %providerName |
| Bundle-Localization: plugin |
| Export-Package: org.eclipse.equinox.internal.p2.reconciler.dropins;x-internal:=true |
| Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.5.0,4.0.0)", |
| - org.eclipse.equinox.p2.touchpoint.eclipse;bundle-version="1.0.0" |
| + org.eclipse.equinox.p2.touchpoint.eclipse;bundle-version="1.0.0", |
| + org.eclipse.equinox.p2.metadata |
| Bundle-RequiredExecutionEnvironment: J2SE-1.5, |
| J2SE-1.4, |
| CDC-1.1/Foundation-1.1 |
| diff --git a/plugins/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF b/plugins/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF |
| index 04056a5..7590cde 100644 |
| --- a/plugins/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF |
| +++ b/plugins/org.eclipse.equinox.p2.metadata/META-INF/MANIFEST.MF |
| @@ -20,7 +20,8 @@ Export-Package: org.eclipse.equinox.internal.p2.metadata; |
| org.eclipse.equinox.p2.ql, |
| org.eclipse.equinox.p2.ui, |
| org.eclipse.equinox.p2.touchpoint.eclipse, |
| - org.eclipse.equinox.p2.repository.tools", |
| + org.eclipse.equinox.p2.repository.tools, |
| + org.eclipse.equinox.p2.reconciler.dropins", |
| org.eclipse.equinox.internal.p2.metadata.expression; |
| x-friends:="org.eclipse.equinox.p2.artifact.repository, |
| org.eclipse.equinox.p2.directorywatcher, |