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
public String toString() {
return getParsedVersion();
return getName() + " " + getParsedVersion();
}
}

View File

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

View File

@ -91,13 +91,20 @@ public class ContributionsIndexer {
}
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 (ContributedPlatform platform : pack.getPlatforms()) {
// Set a reference to parent packages
platform.setParentPackage(pack);
// Resolve tools dependencies (works also as a check for file integrity)
platform.resolveToolsDependencies(packages);
platform.resolveToolsDependencies(packagesWithTools);
}
}