Boards Manager: contributions MAY miss tools, but we missed to consider this case. Fixes #3248

This commit is contained in:
Federico Fissore 2015-05-29 14:16:26 +02:00
parent 31290179e7
commit 1b7574a8b9
3 changed files with 11 additions and 3 deletions

View File

@ -93,6 +93,6 @@ public abstract class ContributedPlatform extends DownloadableContribution {
@Override @Override
public String toString() { public String toString() {
return getParsedVersion(); return getName() + " " + getParsedVersion();
} }
} }

View File

@ -40,6 +40,7 @@ public abstract class ContributedToolReference {
public ContributedTool resolve(Collection<ContributedPackage> packages) { public ContributedTool resolve(Collection<ContributedPackage> packages) {
for (ContributedPackage pack : packages) { for (ContributedPackage pack : packages) {
assert pack.getTools() != null;
for (ContributedTool tool : pack.getTools()) for (ContributedTool tool : pack.getTools())
if (tool.getName().equals(getName()) && if (tool.getName().equals(getName()) &&
tool.getVersion().equals(getVersion()) && tool.getVersion().equals(getVersion()) &&
@ -54,4 +55,4 @@ public abstract class ContributedToolReference {
return "name=" + getName() + " version=" + getVersion() + " packager=" + return "name=" + getName() + " version=" + getVersion() + " packager=" +
getPackager(); getPackager();
} }
} }

View File

@ -91,13 +91,20 @@ public class ContributionsIndexer {
} }
List<ContributedPackage> packages = index.getPackages(); List<ContributedPackage> packages = index.getPackages();
Collection<ContributedPackage> packagesWithTools = Collections2.filter(packages, new Predicate<ContributedPackage>() {
@Override
public boolean apply(ContributedPackage input) {
return input.getTools() != null;
}
});
for (ContributedPackage pack : packages) { for (ContributedPackage pack : packages) {
for (ContributedPlatform platform : pack.getPlatforms()) { for (ContributedPlatform platform : pack.getPlatforms()) {
// Set a reference to parent packages // Set a reference to parent packages
platform.setParentPackage(pack); platform.setParentPackage(pack);
// Resolve tools dependencies (works also as a check for file integrity) // Resolve tools dependencies (works also as a check for file integrity)
platform.resolveToolsDependencies(packages); platform.resolveToolsDependencies(packagesWithTools);
} }
} }