Fix strict deps handling of the default package. -- MOS_MIGRATED_REVID=139159834
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 8523afa..8fcf057 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
@@ -14,6 +14,8 @@ package com.google.devtools.build.buildjar.javac.plugins.dependency; +import static java.util.stream.Collectors.toCollection; + import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.base.Splitter; @@ -22,6 +24,7 @@ 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 +38,6 @@ 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 +84,7 @@ 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 +110,7 @@ this.usedClasspath = new HashSet<>(); this.fixMessage = fixMessage; this.exemptGenerators = exemptGenerators; - this.packages = new TreeSet<>(); + this.packages = new HashSet<>(); } /** @@ -144,7 +146,14 @@ deps.setRuleLabel(targetLabel); } deps.setSuccess(successful); - deps.addAllContainedPackage(packages); + + deps.addAllContainedPackage( + packages + .stream() + .map(pkg -> pkg.isUnnamed() ? "" : pkg.getQualifiedName().toString()) + .sorted() + .collect(toCollection(ArrayList::new))); + // Filter using the original classpath, to preserve ordering. for (String entry : classpath.split(":")) { if (explicitDependenciesMap.containsKey(entry)) { @@ -201,7 +210,7 @@ } /** 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 1c08f2b..8c2c19d 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
@@ -155,7 +155,7 @@ } 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;