aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-04-24 00:59:04 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-24 01:00:10 -0700
commite6febea501c0763b18e31fd2094aab928faf53e5 (patch)
tree77d970e32d344e104c19f16b79c1f7811ce34a86
parent44ae7946052f3a6c4c1042e6b97854fe4c13e626 (diff)
Add getters to JavaCompilationArgsProvider
for direct, transitive, and full compile-time jars; runtime jars; and instrumentation metadata. These are trivial wrappers around the corresponding getters on the recursive and non-recursive JavaCompilationArgs objects. This is a no-op refactoring in preparation for flatting JavaCompilationArgs into JavaCompilationArgsProvider. PiperOrigin-RevId: 194047064
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java51
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java29
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/StrictDepsUtils.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java52
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/JavaInfoSkylarkApiTest.java235
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java57
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java16
23 files changed, 165 insertions, 339 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
index 13879ef534..4efc58365b 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
@@ -514,7 +514,6 @@ public class BazelJavaSemantics implements JavaSemantics {
// dep.getProvider(JavaCompilationArgsProvider.class).getRecursiveJavaCompilationArgs(),
// so we reuse the logic within JavaCompilationArgs to handle both scenarios.
return JavaCompilationArgsProvider.legacyFromTargets(ImmutableList.copyOf(deps))
- .getRecursiveJavaCompilationArgs()
.getRuntimeJars();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
index 7c40011c0a..3d6ac89a1e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
@@ -364,7 +364,7 @@ public final class AndroidBinaryMobileInstall {
JavaTargetAttributes attributes =
new JavaTargetAttributes.Builder(javaSemantics)
- .addRuntimeClassPathEntries(provider.getJavaCompilationArgs().getRuntimeJars())
+ .addRuntimeClassPathEntries(provider.getRuntimeJars())
.build();
Function<Artifact, Artifact> desugaredJars = Functions.identity();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index 6abbb30262..db2e05efe9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -182,7 +182,7 @@ public class AndroidCommon {
builder.addAll(runtimeJars);
for (JavaCompilationArgsProvider provider :
JavaInfo.getProvidersFromListOfTargets(JavaCompilationArgsProvider.class, deps)) {
- builder.addTransitive(provider.getRecursiveJavaCompilationArgs().getRuntimeJars());
+ builder.addTransitive(provider.getRuntimeJars());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index 3ae6f66beb..76d5ff660e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -512,7 +512,6 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
// dep.getProvider(JavaCompilationArgsProvider.class).getRecursiveJavaCompilationArgs(),
// so we reuse the logic within JavaCompilationArgs to handle both scenarios.
return JavaCompilationArgsProvider.legacyFromTargets(ImmutableList.of(deps))
- .getRecursiveJavaCompilationArgs()
.getRuntimeJars();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
index 8af72b21a7..8091451db7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java
@@ -248,9 +248,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
if (javaInfo != null) {
// These are all transitive hjars of dependencies and hjar of the jar itself
NestedSet<Artifact> compileTimeClasspath =
- getJavaCompilationArgsProvider(base, ruleContext)
- .getRecursiveJavaCompilationArgs()
- .getCompileTimeJars();
+ getJavaCompilationArgsProvider(base, ruleContext).getTransitiveCompileTimeJars();
// For android_* targets we need to honor their bootclasspath (nicer in general to do so)
ImmutableList<Artifact> bootclasspath = getBootclasspath(base, ruleContext);
@@ -276,7 +274,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu
WrappingProvider.Helper.getWrappedProvider(
base, JavaProtoLibraryAspectProvider.class, JavaCompilationArgsProvider.class);
if (javaCompilationArgsProvider != null) {
- return javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars();
+ return javaCompilationArgsProvider.getRuntimeJars();
}
}
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index 14e3bbb08f..0ec151e264 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -774,11 +774,10 @@ public class JavaCommon {
private void processRuntimeDeps(JavaTargetAttributes.Builder attributes) {
List<TransitiveInfoCollection> runtimeDepInfo = getRuntimeDeps(ruleContext);
checkRuntimeDeps(ruleContext, runtimeDepInfo);
- JavaCompilationArgs args =
- JavaCompilationArgsProvider.legacyFromTargets(runtimeDepInfo)
- .getRecursiveJavaCompilationArgs();
- attributes.addRuntimeClassPathEntries(args.getRuntimeJars());
- attributes.addInstrumentationMetadataEntries(args.getInstrumentationMetadata());
+ JavaCompilationArgsProvider provider =
+ JavaCompilationArgsProvider.legacyFromTargets(runtimeDepInfo);
+ attributes.addRuntimeClassPathEntries(provider.getRuntimeJars());
+ attributes.addInstrumentationMetadataEntries(provider.getInstrumentationMetadata());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
index 7ca70e2095..390bf340c7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
@@ -54,22 +54,59 @@ public abstract class JavaCompilationArgsProvider implements TransitiveInfoProvi
}
/**
- * Returns non-recursively collected Java compilation information for
- * building this target (called when strict_java_deps = 1).
+ * Non-recursively collected Java compilation information, used when Strict Java Deps is enabled
+ * to implement {@link #getDirectCompileTimeJars}.
*
- * <p>Note that some of the parameters are still collected from the complete
- * transitive closure. The non-recursive collection applies mainly to
- * compile-time jars.
+ * @deprecated use {@link #getDirectCompileTimeJars} instead.
*/
+ @Deprecated
public abstract JavaCompilationArgs getJavaCompilationArgs();
/**
- * Returns recursively collected Java compilation information for building
- * this target (called when strict_java_deps = 0).
+ * Returns recursively collected Java compilation information.
+ *
+ * @deprecated use one of: {@link #getTransitiveCompileTimeJars}, {@link #getRuntimeJars}, {@link
+ * #getInstrumentationMetadata} instead.
*/
+ @Deprecated
public abstract JavaCompilationArgs getRecursiveJavaCompilationArgs();
/**
+ * Returns non-recursively collected compile-time jars. This is the set of jars that compilations
+ * are permitted to reference with Strict Java Deps enabled.
+ */
+ public NestedSet<Artifact> getDirectCompileTimeJars() {
+ return getJavaCompilationArgs().getCompileTimeJars();
+ }
+
+ /**
+ * Returns non-recursively collected, non-interface compile-time jars.
+ *
+ * <p>If you're reading this, you probably want {@link #getTransitiveCompileTimeJars}.
+ */
+ public NestedSet<Artifact> getFullCompileTimeJars() {
+ return getJavaCompilationArgs().getFullCompileTimeJars();
+ }
+
+ /**
+ * Returns recursively collected compile-time jars. This is the compile-time classpath passed to
+ * the compiler.
+ */
+ public NestedSet<Artifact> getTransitiveCompileTimeJars() {
+ return getRecursiveJavaCompilationArgs().getCompileTimeJars();
+ }
+
+ /** Returns recursively collected runtime jars. */
+ public NestedSet<Artifact> getRuntimeJars() {
+ return getRecursiveJavaCompilationArgs().getRuntimeJars();
+ }
+
+ /** Returns recursively collected instrumentation metadata. */
+ public NestedSet<Artifact> getInstrumentationMetadata() {
+ return getRecursiveJavaCompilationArgs().getInstrumentationMetadata();
+ }
+
+ /**
* Returns non-recursively collected Java dependency artifacts for
* computing a restricted classpath when building this target (called when
* strict_java_deps = 1).
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
index 24ea6be658..610cdf9349 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
@@ -506,8 +506,7 @@ public final class JavaInfo extends NativeInfo {
NestedSet<Artifact> compileTimeJars =
getProviderAsNestedSet(
JavaCompilationArgsProvider.class,
- JavaCompilationArgsProvider::getJavaCompilationArgs,
- JavaCompilationArgs::getCompileTimeJars);
+ JavaCompilationArgsProvider::getDirectCompileTimeJars);
return SkylarkNestedSet.of(Artifact.class, compileTimeJars);
}
@@ -524,9 +523,7 @@ public final class JavaInfo extends NativeInfo {
public SkylarkNestedSet getFullCompileTimeJars() {
NestedSet<Artifact> fullCompileTimeJars =
getProviderAsNestedSet(
- JavaCompilationArgsProvider.class,
- JavaCompilationArgsProvider::getJavaCompilationArgs,
- JavaCompilationArgs::getFullCompileTimeJars);
+ JavaCompilationArgsProvider.class, JavaCompilationArgsProvider::getFullCompileTimeJars);
return SkylarkNestedSet.of(Artifact.class, fullCompileTimeJars);
}
@@ -588,8 +585,7 @@ public final class JavaInfo extends NativeInfo {
public NestedSet<Artifact> getTransitiveDeps() {
return getProviderAsNestedSet(
JavaCompilationArgsProvider.class,
- JavaCompilationArgsProvider::getRecursiveJavaCompilationArgs,
- JavaCompilationArgs::getCompileTimeJars);
+ JavaCompilationArgsProvider::getTransitiveCompileTimeJars);
}
@SkylarkCallable(
@@ -599,9 +595,7 @@ public final class JavaInfo extends NativeInfo {
)
public NestedSet<Artifact> getTransitiveRuntimeDeps() {
return getProviderAsNestedSet(
- JavaCompilationArgsProvider.class,
- JavaCompilationArgsProvider::getRecursiveJavaCompilationArgs,
- JavaCompilationArgs::getRuntimeJars);
+ JavaCompilationArgsProvider.class, JavaCompilationArgsProvider::getRuntimeJars);
}
@SkylarkCallable(
@@ -651,21 +645,6 @@ public final class JavaInfo extends NativeInfo {
return mapper.apply(provider);
}
- /**
- * The same as {@link JavaInfo#getProviderAsNestedSet(Class, Function)}, but uses
- * sequence of two mappers.
- *
- * @see JavaInfo#getProviderAsNestedSet(Class, Function)
- */
- private <P extends TransitiveInfoProvider, S extends SkylarkValue, V>
- NestedSet<S> getProviderAsNestedSet(
- Class<P> providerClass,
- Function<P, V> firstMapper,
- Function<V, NestedSet<S>> secondMapper) {
- return getProviderAsNestedSet(providerClass, firstMapper.andThen(secondMapper));
- }
-
-
@Override
public boolean equals(Object otherObject) {
if (this == otherObject) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
index dd8298d9fd..7a6beba7cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
@@ -440,7 +440,7 @@ final class JavaInfoBuildHelper {
Runfiles runfiles =
new Runfiles.Builder(skylarkRuleContext.getWorkspaceName())
.addTransitiveArtifactsWrappedInStableOrder(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars())
+ javaCompilationArgsProvider.getRuntimeJars())
.build();
JavaPluginInfoProvider transitivePluginsProvider =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
index 97c655b171..3044cb3489 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
@@ -341,16 +341,15 @@ public final class JavaLibraryHelper {
JavaCompilationArgsProvider argsProvider = JavaCompilationArgsProvider.merge(deps);
if (isStrict()) {
- NestedSet<Artifact> directJars = argsProvider.getJavaCompilationArgs().getCompileTimeJars();
+ NestedSet<Artifact> directJars = argsProvider.getDirectCompileTimeJars();
if (directJars != null) {
attributes.addDirectJars(directJars);
}
}
- JavaCompilationArgs recursiveArgs = argsProvider.getRecursiveJavaCompilationArgs();
- attributes.addCompileTimeClassPathEntries(recursiveArgs.getCompileTimeJars());
- attributes.addRuntimeClassPathEntries(recursiveArgs.getRuntimeJars());
- attributes.addInstrumentationMetadataEntries(recursiveArgs.getInstrumentationMetadata());
+ attributes.addCompileTimeClassPathEntries(argsProvider.getTransitiveCompileTimeJars());
+ attributes.addRuntimeClassPathEntries(argsProvider.getRuntimeJars());
+ attributes.addInstrumentationMetadataEntries(argsProvider.getInstrumentationMetadata());
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
index 70d2edf85d..fe3e5d0fb0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
@@ -102,7 +102,7 @@ public final class JavaSkylarkApiProvider extends SkylarkApiProvider {
if (compilationArgsProvider == null) {
return NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
- return compilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
+ return compilationArgsProvider.getTransitiveCompileTimeJars();
}
@SkylarkCallable(
@@ -116,7 +116,7 @@ public final class JavaSkylarkApiProvider extends SkylarkApiProvider {
if (compilationArgsProvider == null) {
return NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
- return compilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars();
+ return compilationArgsProvider.getRuntimeJars();
}
@SkylarkCallable(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
index 49cd3c8f98..8f4479eecb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
@@ -103,7 +103,7 @@ public class ActionReuser {
transitiveOutputJars.build(),
createNonStrictCompilationArgsProvider(
javaProtoLibraryAspectProviders,
- JavaCompilationArgs.builder().merge(directJars).build(),
+ compilationArgsProvider,
javaApi.getProtoRuntimeImmutable())));
return true;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
index 8a4056bd06..31f7d9e84a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
@@ -198,8 +198,7 @@ public class JavaLiteProtoAspect extends NativeAspectClass implements Configured
transitiveOutputJars.add(outputJar);
Artifact compileTimeJar =
- getOnlyElement(
- generatedCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars());
+ getOnlyElement(generatedCompilationArgsProvider.getDirectCompileTimeJars());
// TODO(carmi): Expose to native rules
JavaRuleOutputJarsProvider ruleOutputJarsProvider =
JavaRuleOutputJarsProvider.builder()
@@ -232,7 +231,7 @@ public class JavaLiteProtoAspect extends NativeAspectClass implements Configured
transitiveOutputJars.build(),
createNonStrictCompilationArgsProvider(
javaProtoLibraryAspectProviders,
- generatedCompilationArgsProvider.getJavaCompilationArgs(),
+ generatedCompilationArgsProvider,
aspectCommon.getProtoRuntimeDeps())));
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java
index 89a3d573ca..0608a1d52f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoLibrary.java
@@ -62,8 +62,7 @@ public class JavaLiteProtoLibrary implements RuleConfiguredTargetFactory {
// with the same root relative path
Runfiles runfiles =
new Runfiles.Builder(ruleContext.getWorkspaceName())
- .addTransitiveArtifactsWrappedInStableOrder(
- dependencyArgsProviders.getRecursiveJavaCompilationArgs().getRuntimeJars())
+ .addTransitiveArtifactsWrappedInStableOrder(dependencyArgsProviders.getRuntimeJars())
.build();
JavaSourceJarsProvider sourceJarsProvider =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
index 81845ba13f..4a4eab01e0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
@@ -211,8 +211,7 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
transitiveOutputJars.add(outputJar);
Artifact compileTimeJar =
- getOnlyElement(
- generatedCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars());
+ getOnlyElement(generatedCompilationArgsProvider.getDirectCompileTimeJars());
// TODO(carmi): Expose to native rules
JavaRuleOutputJarsProvider ruleOutputJarsProvider =
JavaRuleOutputJarsProvider.builder()
@@ -244,7 +243,7 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe
transitiveOutputJars.build(),
createNonStrictCompilationArgsProvider(
javaProtoLibraryAspectProviders,
- generatedCompilationArgsProvider.getJavaCompilationArgs(),
+ generatedCompilationArgsProvider,
aspectCommon.getProtoRuntimeDeps())));
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
index be7e19a975..6296aca835 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibrary.java
@@ -57,8 +57,7 @@ public class JavaProtoLibrary implements RuleConfiguredTargetFactory {
// with the same root relative path
Runfiles runfiles =
new Runfiles.Builder(ruleContext.getWorkspaceName())
- .addTransitiveArtifactsWrappedInStableOrder(
- dependencyArgsProviders.getRecursiveJavaCompilationArgs().getRuntimeJars())
+ .addTransitiveArtifactsWrappedInStableOrder(dependencyArgsProviders.getRuntimeJars())
.build();
JavaSourceJarsProvider sourceJarsProvider =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/StrictDepsUtils.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/StrictDepsUtils.java
index 28f8219bea..85adb698af 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/StrictDepsUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/StrictDepsUtils.java
@@ -61,13 +61,13 @@ public class StrictDepsUtils {
*/
public static JavaCompilationArgs createNonStrictCompilationArgsProvider(
Iterable<JavaProtoLibraryAspectProvider> deps,
- JavaCompilationArgs directJars,
+ JavaCompilationArgsProvider directJars,
ImmutableList<TransitiveInfoCollection> protoRuntimes) {
JavaCompilationArgs.Builder result = JavaCompilationArgs.builder();
for (JavaProtoLibraryAspectProvider p : deps) {
result.addTransitiveArgs(p.getNonStrictCompArgs(), BOTH);
}
- result.addTransitiveArgs(directJars, BOTH);
+ result.addTransitiveCompilationArgs(directJars, /* recursive= */ false, BOTH);
for (TransitiveInfoCollection t : protoRuntimes) {
JavaCompilationArgsProvider p = JavaInfo.getProvider(JavaCompilationArgsProvider.class, t);
if (p != null) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
index 6ff76b83da..f9095a8d0e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
@@ -528,8 +528,7 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF
argBuilder.add("-d").addPath(j2ObjcSource.getObjcFilePath());
- NestedSet<Artifact> compileTimeJars =
- compArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
+ NestedSet<Artifact> compileTimeJars = compArgsProvider.getTransitiveCompileTimeJars();
if (!compileTimeJars.isEmpty()) {
argBuilder.addExecPaths("-classpath", VectorArg.join(":").each(compileTimeJars));
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
index 7c150b1d72..4e5f05e1d7 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
@@ -388,10 +388,11 @@ public class AarImportTest extends BuildViewTestCase {
JavaCompilationArgsProvider provider = JavaInfo
.getProvider(JavaCompilationArgsProvider.class, aarImportTarget);
assertThat(provider).isNotNull();
- assertThat(artifactsToStrings(provider.getJavaCompilationArgs().getRuntimeJars()))
+ assertThat(artifactsToStrings(provider.getRuntimeJars()))
.containsExactly(
"bin a/_aar/bar/classes_and_libs_merged.jar",
"bin a/_aar/foo/classes_and_libs_merged.jar",
+ "bin a/_aar/baz/classes_and_libs_merged.jar",
"src java/baz.jar");
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
index 3fa82b319a..e066afcd2e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
@@ -373,9 +373,9 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
useConfiguration("--strict_java_deps=ERROR");
ConfiguredTarget a = getConfiguredTarget("//java/peach:a");
- Iterable<String> compileTimeJars = ActionsTestUtil.baseArtifactNames(
- JavaInfo.getProvider(JavaCompilationArgsProvider.class, a)
- .getJavaCompilationArgs().getCompileTimeJars());
+ Iterable<String> compileTimeJars =
+ ActionsTestUtil.baseArtifactNames(
+ JavaInfo.getProvider(JavaCompilationArgsProvider.class, a).getDirectCompileTimeJars());
assertThat(compileTimeJars).contains("libb-hjar.jar");
assertThat(compileTimeJars).doesNotContain("libc-hjar.jar");
assertNoEvents();
@@ -990,23 +990,25 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
JavaCompilationArgsProvider argsProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, foo);
- assertThat(argsProvider.getJavaCompilationArgs().getCompileTimeJars())
- .contains(ActionsTestUtil.getFirstArtifactEndingWith(
- actionsTestUtil().artifactClosureOf(neverLinkFilesToBuild),
- "lib_neverlink_resources.jar"));
- assertThat(argsProvider.getJavaCompilationArgs().getCompileTimeJars())
- .contains(ActionsTestUtil.getFirstArtifactEndingWith(
- actionsTestUtil().artifactClosureOf(libFilesToBuild),
- "lib_resources.jar"));
+ assertThat(argsProvider.getDirectCompileTimeJars())
+ .contains(
+ ActionsTestUtil.getFirstArtifactEndingWith(
+ actionsTestUtil().artifactClosureOf(neverLinkFilesToBuild),
+ "lib_neverlink_resources.jar"));
+ assertThat(argsProvider.getDirectCompileTimeJars())
+ .contains(
+ ActionsTestUtil.getFirstArtifactEndingWith(
+ actionsTestUtil().artifactClosureOf(libFilesToBuild), "lib_resources.jar"));
- assertThat(argsProvider.getJavaCompilationArgs().getRuntimeJars())
- .doesNotContain(ActionsTestUtil.getFirstArtifactEndingWith(
- actionsTestUtil().artifactClosureOf(neverLinkFilesToBuild),
- "lib_neverlink_resources.jar"));
- assertThat(argsProvider.getJavaCompilationArgs().getRuntimeJars())
- .contains(ActionsTestUtil.getFirstArtifactEndingWith(
- actionsTestUtil().artifactClosureOf(libFilesToBuild),
- "lib_resources.jar"));
+ assertThat(argsProvider.getRuntimeJars())
+ .doesNotContain(
+ ActionsTestUtil.getFirstArtifactEndingWith(
+ actionsTestUtil().artifactClosureOf(neverLinkFilesToBuild),
+ "lib_neverlink_resources.jar"));
+ assertThat(argsProvider.getRuntimeJars())
+ .contains(
+ ActionsTestUtil.getFirstArtifactEndingWith(
+ actionsTestUtil().artifactClosureOf(libFilesToBuild), "lib_resources.jar"));
}
@Test
@@ -1698,16 +1700,12 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
assertThat(bClasspath).isEmpty();
assertThat(cClasspath)
.containsAllIn(
- JavaInfo
- .getProvider(JavaCompilationArgsProvider.class, aTarget)
- .getJavaCompilationArgs()
- .getCompileTimeJars());
+ JavaInfo.getProvider(JavaCompilationArgsProvider.class, aTarget)
+ .getDirectCompileTimeJars());
assertThat(cClasspath)
.containsAllIn(
- JavaInfo
- .getProvider(JavaCompilationArgsProvider.class, bTarget)
- .getJavaCompilationArgs()
- .getCompileTimeJars());
+ JavaInfo.getProvider(JavaCompilationArgsProvider.class, bTarget)
+ .getDirectCompileTimeJars());
assertNoEvents();
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaInfoSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaInfoSkylarkApiTest.java
index cee3396af3..4619b7a5ea 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaInfoSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaInfoSkylarkApiTest.java
@@ -52,32 +52,13 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
fetchJavaInfo().getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
}
@@ -101,32 +82,14 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
fetchJavaInfo().getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib-ijar.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib-ijar.jar");
}
@@ -181,32 +144,13 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
fetchJavaInfo().getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct-hjar.jar");
}
@@ -227,32 +171,13 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
fetchJavaInfo().getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
}
@@ -276,32 +201,12 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
fetchJavaInfo().getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .isEmpty();
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
- .isEmpty();
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars())).isEmpty();
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_direct-hjar.jar");
}
@@ -545,32 +450,13 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
javaInfo.getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports-hjar.jar");
-
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly("foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_exports-hjar.jar");
}
@@ -607,45 +493,24 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
javaInfo.getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .containsExactly(
- "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly(
- "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a-hjar.jar",
"foo/libmy_java_lib_b-hjar.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly(
- "foo/my_skylark_rule_lib.jar",
- "foo/libmy_java_lib_a.jar",
- "foo/libmy_java_lib_b.jar",
- "foo/libmy_java_lib_c.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+ "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
+
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a.jar",
"foo/libmy_java_lib_b.jar",
"foo/libmy_java_lib_c.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a-hjar.jar",
@@ -699,47 +564,25 @@ public class JavaInfoSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
javaInfo.getProvider(JavaCompilationArgsProvider.class);
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars()))
- .containsExactly(
- "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getFullCompileTimeJars()))
- .containsExactly(
- "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a-hjar.jar",
"foo/libmy_java_lib_b-hjar.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getFullCompileTimeJars()))
.containsExactly(
- "foo/my_skylark_rule_lib.jar",
- "foo/libmy_java_lib_a.jar",
- "foo/libmy_java_lib_b.jar",
- "foo/libmy_java_lib_c.jar",
- "foo/libmy_java_lib_d.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider
- .getRecursiveJavaCompilationArgs()
- .getFullCompileTimeJars()))
+ "foo/my_skylark_rule_lib.jar", "foo/libmy_java_lib_a.jar", "foo/libmy_java_lib_b.jar");
+
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a.jar",
"foo/libmy_java_lib_b.jar",
"foo/libmy_java_lib_c.jar",
"foo/libmy_java_lib_d.jar");
- assertThat(
- prettyArtifactNames(
- javaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars()))
+
+ assertThat(prettyArtifactNames(javaCompilationArgsProvider.getTransitiveCompileTimeJars()))
.containsExactly(
"foo/my_skylark_rule_lib.jar",
"foo/libmy_java_lib_a-hjar.jar",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 21eeaba08c..78514f2be3 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -760,12 +760,10 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
// Extract out information from native rule
JavaCompilationArgsProvider jlJavaCompilationArgsProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, javaLibraryTarget);
- NestedSet<Artifact> jlCompileJars =
- jlJavaCompilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars();
- NestedSet<Artifact> jlTransitiveRuntimeJars =
- jlJavaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars();
+ NestedSet<Artifact> jlCompileJars = jlJavaCompilationArgsProvider.getDirectCompileTimeJars();
+ NestedSet<Artifact> jlTransitiveRuntimeJars = jlJavaCompilationArgsProvider.getRuntimeJars();
NestedSet<Artifact> jlTransitiveCompileTimeJars =
- jlJavaCompilationArgsProvider.getRecursiveJavaCompilationArgs().getCompileTimeJars();
+ jlJavaCompilationArgsProvider.getTransitiveCompileTimeJars();
// Using reference equality since should be precisely identical
assertThat(myCompileJars == jlCompileJars).isTrue();
@@ -925,18 +923,13 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider provider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, target);
assertThat(provider).isNotNull();
- List<String> compileTimeJars =
- prettyArtifactNames(provider.getJavaCompilationArgs().getCompileTimeJars());
+ List<String> compileTimeJars = prettyArtifactNames(provider.getDirectCompileTimeJars());
assertThat(compileTimeJars).containsExactly("foo/liba.jar");
- List<String> runtimeJars =
- prettyArtifactNames(provider.getJavaCompilationArgs().getRuntimeJars());
- assertThat(runtimeJars).containsExactly("foo/libb.jar");
List<String> transitiveCompileTimeJars =
- prettyArtifactNames(provider.getRecursiveJavaCompilationArgs().getCompileTimeJars());
+ prettyArtifactNames(provider.getTransitiveCompileTimeJars());
assertThat(transitiveCompileTimeJars).containsExactly("foo/libc.jar");
- List<String> transitiveRuntimeJars =
- prettyArtifactNames(provider.getRecursiveJavaCompilationArgs().getRuntimeJars());
+ List<String> transitiveRuntimeJars = prettyArtifactNames(provider.getRuntimeJars());
assertThat(transitiveRuntimeJars).containsExactly("foo/libd.jar");
JavaSourceJarsProvider sourcesProvider =
@@ -979,12 +972,10 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider provider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, target);
assertThat(provider).isNotNull();
- List<String> compileTimeJars =
- prettyArtifactNames(provider.getJavaCompilationArgs().getCompileTimeJars());
+ List<String> compileTimeJars = prettyArtifactNames(provider.getDirectCompileTimeJars());
assertThat(compileTimeJars).containsExactly("foo/liba.jar", "foo/libjava_dep-hjar.jar");
- List<String> runtimeJars =
- prettyArtifactNames(provider.getJavaCompilationArgs().getRuntimeJars());
+ List<String> runtimeJars = prettyArtifactNames(provider.getRuntimeJars());
assertThat(runtimeJars).containsExactly("foo/libb.jar", "foo/libjava_dep.jar");
}
@@ -1018,12 +1009,10 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget target = getConfiguredTarget("//foo:java_lib");
JavaCompilationArgsProvider provider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, target);
- List<String> compileTimeJars =
- prettyArtifactNames(provider.getRecursiveJavaCompilationArgs().getCompileTimeJars());
+ List<String> compileTimeJars = prettyArtifactNames(provider.getTransitiveCompileTimeJars());
assertThat(compileTimeJars).containsExactly("foo/libjava_lib-hjar.jar", "foo/liba.jar");
- List<String> runtimeJars =
- prettyArtifactNames(provider.getRecursiveJavaCompilationArgs().getRuntimeJars());
+ List<String> runtimeJars = prettyArtifactNames(provider.getRuntimeJars());
assertThat(runtimeJars).containsExactly("foo/libjava_lib.jar", "foo/libb.jar");
}
@@ -1081,8 +1070,8 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
JavaInfo jlTopJavaInfo = topJavaLibraryTarget.get(JavaInfo.PROVIDER);
javaCompilationArgsHaveTheSameParent(
- jlJavaInfo.getProvider(JavaCompilationArgsProvider.class).getJavaCompilationArgs(),
- jlTopJavaInfo.getProvider(JavaCompilationArgsProvider.class).getJavaCompilationArgs());
+ jlJavaInfo.getProvider(JavaCompilationArgsProvider.class),
+ jlTopJavaInfo.getProvider(JavaCompilationArgsProvider.class));
}
@Test
@@ -1112,9 +1101,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget jlExports = getConfiguredTarget("//foo:lib_exports");
JavaCompilationArgsProvider jlExportsProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, jlExports);
- assertThat(
- prettyArtifactNames(
- jlExportsProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(jlExportsProvider.getRuntimeJars()))
.containsAllOf(
"foo/libjl_bottom_for_deps.jar",
"foo/libjl_bottom_for_runtime_deps.jar",
@@ -1124,8 +1111,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget jlTop = getConfiguredTarget("//foo:lib_interm");
JavaCompilationArgsProvider jlTopProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, jlTop);
- assertThat(
- prettyArtifactNames(jlTopProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(jlTopProvider.getRuntimeJars()))
.contains("foo/libjl_bottom_for_exports.jar");
}
@@ -1178,9 +1164,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget importTarget = getConfiguredTarget("//foo:import");
JavaCompilationArgsProvider compilationProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, importTarget);
- assertThat(
- prettyArtifactNames(
- compilationProvider.getRecursiveJavaCompilationArgs().getRuntimeJars()))
+ assertThat(prettyArtifactNames(compilationProvider.getRuntimeJars()))
.containsAllOf("foo/libjl_bottom_for_deps.jar", "foo/libjl_bottom_for_runtime_deps.jar");
}
@@ -1480,8 +1464,8 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
JavaCompilationArgsProvider javaCompilationArgsProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, myRuleTarget);
List<String> directJars =
- prettyArtifactNames(javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars());
- assertThat(directJars).containsExactly("foo/liba.jar");
+ prettyArtifactNames(javaCompilationArgsProvider.getDirectCompileTimeJars());
+ assertThat(directJars).containsExactly("foo/liba-hjar.jar");
}
@Test
@@ -1512,8 +1496,7 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget myRuleTarget = getConfiguredTarget("//foo:custom");
JavaCompilationArgsProvider javaCompilationArgsProvider =
JavaInfo.getProvider(JavaCompilationArgsProvider.class, myRuleTarget);
- List<String> directJars =
- prettyArtifactNames(javaCompilationArgsProvider.getJavaCompilationArgs().getRuntimeJars());
+ List<String> directJars = prettyArtifactNames(javaCompilationArgsProvider.getRuntimeJars());
assertThat(directJars).containsExactly("foo/liba.jar", "foo/libb.jar");
}
@@ -1620,9 +1603,9 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
}
private static boolean javaCompilationArgsHaveTheSameParent(
- JavaCompilationArgs args, JavaCompilationArgs otherArgs) {
+ JavaCompilationArgsProvider args, JavaCompilationArgsProvider otherArgs) {
if (!nestedSetsOfArtifactHaveTheSameParent(
- args.getCompileTimeJars(), otherArgs.getCompileTimeJars())) {
+ args.getTransitiveCompileTimeJars(), otherArgs.getTransitiveCompileTimeJars())) {
return false;
}
if (!nestedSetsOfArtifactHaveTheSameParent(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
index f4fc8b47d8..df9e786da6 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
@@ -32,7 +32,6 @@ import com.google.devtools.build.lib.analysis.ExtraActionArtifactsProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
-import com.google.devtools.build.lib.rules.java.JavaCompilationArgs;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaCompileAction;
import com.google.devtools.build.lib.rules.java.JavaInfo;
@@ -223,7 +222,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
JavaCompilationArgsProvider compilationArgsProvider =
getProvider(JavaCompilationArgsProvider.class, target);
assertThat(compilationArgsProvider).isNotNull();
- assertThat(compilationArgsProvider.getJavaCompilationArgs()).isNotNull();
+ assertThat(compilationArgsProvider.getDirectCompileTimeJars()).isNotNull();
JavaSourceJarsProvider sourceJarsProvider = getProvider(JavaSourceJarsProvider.class, target);
assertThat(sourceJarsProvider).isNotNull();
assertThat(sourceJarsProvider.getSourceJars()).isNotNull();
@@ -257,7 +256,6 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
List<String> directJars =
prettyArtifactNames(
getProvider(JavaCompilationArgsProvider.class, litepb2)
- .getJavaCompilationArgs()
.getRuntimeJars());
assertThat(directJars)
.containsExactly("cross/libbravo-lite.jar", "protobuf/libjavalite_runtime.jar");
@@ -303,8 +301,8 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
"java_lite_proto_library(name = 'lite_pb2', deps = [':proto_lib'])",
"proto_library(name = 'proto_lib',",
" srcs = ['input1.proto', 'input2.proto'])");
- JavaCompilationArgs compilationArgs =
- getProvider(JavaCompilationArgsProvider.class, rule).getJavaCompilationArgs();
+ JavaCompilationArgsProvider compilationArgs =
+ getProvider(JavaCompilationArgsProvider.class, rule);
assertThat(compilationArgs.getInstrumentationMetadata()).isEmpty();
JavaSourceJarsProvider sourceJarsProvider = getProvider(JavaSourceJarsProvider.class, rule);
@@ -452,8 +450,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
getProvider(JavaCompilationArgsProvider.class, getConfiguredTarget("//x:foo_lite_pb2"));
Iterable<String> directJars =
- prettyArtifactNames(
- compilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars());
+ prettyArtifactNames(compilationArgsProvider.getDirectCompileTimeJars());
assertThat(directJars).containsExactly("x/libfoo-lite-hjar.jar");
@@ -469,8 +466,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
getProvider(JavaCompilationArgsProvider.class, getConfiguredTarget("//x:bar_lite_pb2"));
Iterable<String> directJars =
- prettyArtifactNames(
- compilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars());
+ prettyArtifactNames(compilationArgsProvider.getDirectCompileTimeJars());
assertThat(directJars).containsExactly("x/libbar-lite-hjar.jar");
@@ -512,7 +508,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
JavaCompilationArgsProvider.class, getConfiguredTarget("//x:foo_java_proto_lite"));
Iterable<String> directJars =
- prettyArtifactNames(compilationArgsProvider.getJavaCompilationArgs().getCompileTimeJars());
+ prettyArtifactNames(compilationArgsProvider.getDirectCompileTimeJars());
assertThat(directJars).containsExactly("x/libbar_proto-lite-hjar.jar");
}