diff options
2 files changed, 20 insertions, 6 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java index 8523afa495..80ea962836 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/DependencyModule.java @@ -15,13 +15,17 @@ package com.google.devtools.build.buildjar.javac.plugins.dependency; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.Verify; +import com.google.common.collect.FluentIterable; +import com.google.common.collect.Ordering; import com.google.devtools.build.buildjar.JarOwner; import com.google.devtools.build.buildjar.javac.plugins.BlazeJavaCompilerPlugin; import com.google.devtools.build.lib.view.proto.Deps; import com.google.devtools.build.lib.view.proto.Deps.Dependency.Kind; +import com.sun.tools.javac.code.Symbol.PackageSymbol; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; @@ -35,7 +39,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeSet; /** * Wrapper class for managing dependencies on top of @@ -82,7 +85,7 @@ public final class DependencyModule { Set<String> requiredClasspath; private final FixMessage fixMessage; private final Set<String> exemptGenerators; - private final Set<String> packages; + private final Set<PackageSymbol> packages; DependencyModule( StrictJavaDeps strictJavaDeps, @@ -108,7 +111,7 @@ public final class DependencyModule { this.usedClasspath = new HashSet<>(); this.fixMessage = fixMessage; this.exemptGenerators = exemptGenerators; - this.packages = new TreeSet<>(); + this.packages = new HashSet<>(); } /** @@ -144,7 +147,18 @@ public final class DependencyModule { deps.setRuleLabel(targetLabel); } deps.setSuccess(successful); - deps.addAllContainedPackage(packages); + + deps.addAllContainedPackage( + FluentIterable.from(packages) + .transform( + new Function<PackageSymbol, String>() { + @Override + public String apply(PackageSymbol pkg) { + return pkg.isUnnamed() ? "" : pkg.getQualifiedName().toString(); + } + }) + .toSortedList(Ordering.natural())); + // Filter using the original classpath, to preserve ordering. for (String entry : classpath.split(":")) { if (explicitDependenciesMap.containsKey(entry)) { @@ -201,7 +215,7 @@ public final class DependencyModule { } /** Adds a package to the set of packages built by this target. */ - public boolean addPackage(String packge) { + public boolean addPackage(PackageSymbol packge) { return packages.add(packge); } diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java index 20ec2d15a1..504a37dcea 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java @@ -154,7 +154,7 @@ public final class StrictJavaDepsPlugin extends BlazeJavaCompilerPlugin { } if (toplevels.add(env.toplevel)) { checkingTreeScanner.scan(env.toplevel.getImports()); - dependencyModule.addPackage(env.toplevel.packge.toString()); + dependencyModule.addPackage(env.toplevel.packge); } } finally { checkingTreeScanner.isStrictDepsExempt = previousExemption; |