diff options
author | Daniel LeBerre | 2009-04-15 20:46:57 +0000 |
---|---|---|
committer | Daniel LeBerre | 2009-04-15 20:46:57 +0000 |
commit | 32a358b5d1c490b11c6a0007c8de000dabf86eef (patch) | |
tree | c9b36fcd9492214d07e4b5418497df6f1fe6f3ed /bundles/org.eclipse.equinox.p2.director/src/org | |
parent | 2d4e63a855ac9ba8e13e6cc504537126d286a3a3 (diff) | |
download | rt.equinox.p2-32a358b5d1c490b11c6a0007c8de000dabf86eef.tar.gz rt.equinox.p2-32a358b5d1c490b11c6a0007c8de000dabf86eef.tar.xz rt.equinox.p2-32a358b5d1c490b11c6a0007c8de000dabf86eef.zip |
Bug 270683 [director] Improve explanation for patches
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.director/src/org')
4 files changed, 39 insertions, 14 deletions
diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java index d01a55b89..5ad4e5c2f 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java @@ -17,27 +17,47 @@ import org.eclipse.osgi.util.NLS; public abstract class Explanation implements Comparable { - public static class HardRequirement extends Explanation { + public static class PatchedHardRequirement extends Explanation { public final IInstallableUnit iu; public final IInstallableUnitPatch patch; public final IRequiredCapability req; - public HardRequirement(IInstallableUnit iu, IInstallableUnitPatch patch) { + public PatchedHardRequirement(IInstallableUnit iu, IInstallableUnitPatch patch) { this.iu = iu; this.req = null; this.patch = patch; } - public HardRequirement(IInstallableUnit iu, IRequiredCapability req) { + public PatchedHardRequirement(IInstallableUnit iu, IRequiredCapability req, IInstallableUnitPatch patch) { this.iu = iu; this.req = req; - this.patch = null; + this.patch = patch; + } + + public int orderValue() { + return 6; } - public HardRequirement(IInstallableUnit iu, IRequiredCapability req, IInstallableUnitPatch patch) { + public IStatus toStatus() { + MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Explanation_unsatisfied, null); + final String fromString = "Patched " + patch.toString() + ' ' + iu;//$NON-NLS-1$ + result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, fromString))); + result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_to, req))); + return result; + } + + public String toString() { + return NLS.bind(Messages.Explanation_patchedHardDependency, new Object[] {patch, iu, req}); + } + } + + public static class HardRequirement extends Explanation { + public final IInstallableUnit iu; + public final IRequiredCapability req; + + public HardRequirement(IInstallableUnit iu, IRequiredCapability req) { this.iu = iu; this.req = req; - this.patch = patch; } public int orderValue() { @@ -46,15 +66,13 @@ public abstract class Explanation implements Comparable { public IStatus toStatus() { MultiStatus result = new MultiStatus(DirectorActivator.PI_DIRECTOR, 1, Messages.Explanation_unsatisfied, null); - final String fromString = (patch == null ? "" : patch.toString() + ' ') + iu;//$NON-NLS-1$ - result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, fromString))); + result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_from, iu))); result.add(new Status(IStatus.ERROR, DirectorActivator.PI_DIRECTOR, NLS.bind(Messages.Explanation_to, req))); return result; } public String toString() { - final String fromString = (patch == null ? "" : patch.toString() + ' ') + iu;//$NON-NLS-1$ - return NLS.bind(Messages.Explanation_hardDependency, fromString, req); + return NLS.bind(Messages.Explanation_hardDependency, iu, req); } } @@ -108,7 +126,11 @@ public abstract class Explanation implements Comparable { } public String toString() { - return NLS.bind(Messages.Explanation_missingRequired, iu, req); + String filter = req.getFilter(); + if (filter == null) { + return NLS.bind(Messages.Explanation_missingRequired, iu, req); + } + return NLS.bind(Messages.Explanation_missingRequiredFilter, new Object[] {filter, iu, req}); } } @@ -146,7 +168,6 @@ public abstract class Explanation implements Comparable { public static final Explanation OPTIONAL_REQUIREMENT = new Explanation() { public int orderValue() { - // TODO Auto-generated method stub return 6; } diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java index a79bec113..f22232a6f 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java @@ -37,7 +37,9 @@ public class Messages extends NLS { public static String Explanation_alreadyInstalled; public static String Explanation_from; public static String Explanation_hardDependency; + public static String Explanation_patchedHardDependency; public static String Explanation_missingRequired; + public static String Explanation_missingRequiredFilter; public static String Explanation_optionalDependency; public static String Explanation_rootMissing; public static String Explanation_rootSingleton; diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java index 3a815e2d0..616d604f3 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java @@ -426,7 +426,7 @@ public class Projector { explanation = new Explanation.IUToInstall(reqIu); } } else { - explanation = new Explanation.HardRequirement(iu, req, patch); + explanation = new Explanation.PatchedHardRequirement(iu, req, patch); } createImplication(new Object[] {patch, iu}, matches, explanation); } @@ -445,7 +445,7 @@ public class Projector { List matches = getApplicableMatches(req); if (!req.isOptional()) { if (matches.isEmpty()) { - dependencyHelper.implication(new Object[] {iu}).implies(patch).named(new Explanation.HardRequirement(iu, (IInstallableUnitPatch) null)); + dependencyHelper.implication(new Object[] {iu}).implies(patch).named(new Explanation.HardRequirement(iu, null)); } else { matches.add(patch); IInstallableUnit reqIu = (IInstallableUnit) picker.query(new CapabilityQuery(req), new Collector(), null).iterator().next(); diff --git a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties index 34ecacfeb..e7c7db985 100644 --- a/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties +++ b/bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties @@ -24,7 +24,9 @@ Director_Unsatisfied_Dependency=\ Explanation_alreadyInstalled=Software currently installed: {0} Explanation_from=From: {0} Explanation_hardDependency=Cannot satisfy dependency: {0} depends on: {1} +Explanation_patchedHardDependency=Cannot satisfy patched ({0}) dependency: {1} depends on: {2} Explanation_missingRequired=Missing requirement: {0} requires ''{1}'' but it could not be found +Explanation_missingRequiredFilter=Missing requirement for filter {0}: {1} requires ''{2}'' but it could not be found Explanation_optionalDependency=Optional dependency Explanation_rootMissing=Cannot complete the install because one or more required items could not be found. Explanation_rootSingleton=Cannot complete the install because of a conflicting dependency. |