Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel LeBerre2009-04-15 20:46:57 +0000
committerDaniel LeBerre2009-04-15 20:46:57 +0000
commit32a358b5d1c490b11c6a0007c8de000dabf86eef (patch)
treec9b36fcd9492214d07e4b5418497df6f1fe6f3ed /bundles/org.eclipse.equinox.p2.director/src/org
parent2d4e63a855ac9ba8e13e6cc504537126d286a3a3 (diff)
downloadrt.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')
-rw-r--r--bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Explanation.java45
-rw-r--r--bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Messages.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/Projector.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.director/src/org/eclipse/equinox/internal/p2/director/messages.properties2
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.

Back to the top