### Eclipse Workspace Patch 1.0 #P org.eclipse.equinox.p2.director Index: src/org/eclipse/equinox/internal/p2/director/Explanation.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java,v retrieving revision 1.10 diff -u -r1.10 Explanation.java --- src/org/eclipse/equinox/internal/p2/director/Explanation.java 19 Apr 2010 06:18:19 -0000 1.10 +++ src/org/eclipse/equinox/internal/p2/director/Explanation.java 21 Apr 2010 20:14:38 -0000 @@ -12,6 +12,7 @@ import java.util.Arrays; import org.eclipse.core.runtime.*; +import org.eclipse.equinox.internal.p2.metadata.IRequiredCapability; import org.eclipse.equinox.p2.metadata.*; import org.eclipse.osgi.util.NLS; @@ -120,11 +121,18 @@ public final IInstallableUnit iu; public final IRequirement req; - public MissingIU(IInstallableUnit iu, IRequirement req) { + private MissingIU(IInstallableUnit iu, IRequirement req) { this.iu = iu; this.req = req; } + public static Explanation create(IInstallableUnit iu, IRequirement req) { + if (req instanceof IRequiredCapability && "A.PDE.Target.Platform".equals(((IRequiredCapability) req).getNamespace())) { + return new TargetPlatformProblem(iu); + } + return new MissingIU(iu, req); + } + public int orderValue() { return 3; } @@ -148,6 +156,30 @@ } } + public static class TargetPlatformProblem extends Explanation { + public final IInstallableUnit iu; + + TargetPlatformProblem(IInstallableUnit iu) { + this.iu = iu; + } + + public int orderValue() { + return 3; + } + + public int shortAnswer() { + return MISSING_REQUIREMENT; + } + + public String toString() { + return NLS.bind(Messages.Director_For_Target, iu); + } + + public IStatus toStatus() { + return new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Director_For_Target, getUserReadableName(iu))); + } + } + public static class MissingGreedyIU extends Explanation { public final IInstallableUnit iu; Index: src/org/eclipse/equinox/internal/p2/director/Messages.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java,v retrieving revision 1.22 diff -u -r1.22 Messages.java --- src/org/eclipse/equinox/internal/p2/director/Messages.java 19 Apr 2010 06:18:18 -0000 1.22 +++ src/org/eclipse/equinox/internal/p2/director/Messages.java 21 Apr 2010 20:14:38 -0000 @@ -30,6 +30,8 @@ public static String Director_Task_Resolving_Dependencies; public static String Director_Unsatisfied_Dependencies; public static String Director_error_applying_configuration; + public static String Director_For_Target; + public static String Director_For_Target_Unselect_Required; public static String Explanation_alreadyInstalled; public static String Explanation_from; Index: src/org/eclipse/equinox/internal/p2/director/Projector.java =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java,v retrieving revision 1.61 diff -u -r1.61 Projector.java --- src/org/eclipse/equinox/internal/p2/director/Projector.java 19 Apr 2010 06:18:19 -0000 1.61 +++ src/org/eclipse/equinox/internal/p2/director/Projector.java 21 Apr 2010 20:14:38 -0000 @@ -367,7 +367,7 @@ if (DEBUG) { Tracing.debug(iu + "=0"); //$NON-NLS-1$ } - dependencyHelper.setFalse(iu, new Explanation.MissingIU(iu, req)); + dependencyHelper.setFalse(iu, Explanation.MissingIU.create(iu, req)); } // Check whether the requirement is applicable Index: src/org/eclipse/equinox/internal/p2/director/messages.properties =================================================================== RCS file: /cvsroot/rt/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties,v retrieving revision 1.27 diff -u -r1.27 messages.properties --- src/org/eclipse/equinox/internal/p2/director/messages.properties 19 Apr 2010 06:18:18 -0000 1.27 +++ src/org/eclipse/equinox/internal/p2/director/messages.properties 21 Apr 2010 20:14:38 -0000 @@ -16,6 +16,8 @@ Director_Unsatisfied_Dependencies=\ Cannot complete the install because some dependencies are not satisfiable Director_error_applying_configuration=Unexpected failure applying configuration after for the installer plan execution. +Director_For_Target = The following software {0} cannot be installed because it is intended for use only in Plug-in Development Environment (PDE) target platforms. Please deselect these items and retry the operation. +Director_For_Target_Unselect_Required = If provisioning a target platform then try disabling the option ''Include required software'' Explanation_alreadyInstalled=Software currently installed: {0} Explanation_from=From: {0}