aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Stephen Twigg <twigg@google.com>2017-01-04 12:00:23 -0500
committerGravatar Kristina Chodorow <kchodorow@google.com>2017-05-09 10:52:24 -0400
commit05ea0281ee4820a7fd70d166e140a8e0355d275b (patch)
tree8180bf915714454b4bfe27bb53e9f7bd3b9b0814 /src/main/java
parentf801f7c50c12ac84f540a40d1ffa03aa97e446b8 (diff)
java_common.create_provider now takes depsets )
rjars = java_common.create_provider( compile_time_jars = depset(), runtime_jars = merged_runtime.transitive_runtime_deps, ) This avoids linearizing the runtime_deps (with the corresponding memory issues). Must be a JavaProvider for proper interaction with native rules but cannot just be a simple merge since runtime_deps should not contribute to compile of the dependent rules. Note, this will effect a change of the already-released API; however, function marked as undocumented in an experimental object.... Change-Id: I54542a5d57c75e762b2276e0a1988816901a0def PiperOrigin-RevId: 155384266
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java68
2 files changed, 44 insertions, 34 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
index a92f22de7c..5b45b576fa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
@@ -117,6 +117,11 @@ public abstract class JavaCompilationArgs {
return this;
}
+ public Builder addTransitiveRuntimeJars(NestedSet<Artifact> runtimeJars) {
+ this.runtimeJarsBuilder.addTransitive(runtimeJars);
+ return this;
+ }
+
public Builder addCompileTimeJar(Artifact compileTimeJar) {
this.compileTimeJarsBuilder.add(compileTimeJar);
return this;
@@ -127,6 +132,11 @@ public abstract class JavaCompilationArgs {
return this;
}
+ public Builder addTransitiveCompileTimeJars(NestedSet<Artifact> compileTimeJars) {
+ this.compileTimeJarsBuilder.addTransitive(compileTimeJars);
+ return this;
+ }
+
public Builder addInstrumentationMetadata(Artifact instrumentationMetadata) {
this.instrumentationMetadataBuilder.add(instrumentationMetadata);
return this;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
index 774907a61e..86267d4e95 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.SkylarkList;
+import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import java.util.List;
/** A module that contains Skylark utilities for Java support. */
@@ -55,41 +56,40 @@ public class JavaSkylarkCommon {
}
@SkylarkCallable(
- name = "create_provider",
- documented = false,
- parameters = {
- @Param(
- name = "compile_time_jars",
- positional = false,
- named = true,
- type = SkylarkList.class,
- generic1 = Artifact.class,
- defaultValue = "[]"
- ),
- @Param(
- name = "runtime_jars",
- positional = false,
- named = true,
- type = SkylarkList.class,
- generic1 = Artifact.class,
- defaultValue = "[]"
- )
- }
+ name = "create_provider",
+ documented = false,
+ parameters = {
+ @Param(
+ name = "compile_time_jars",
+ positional = false,
+ named = true,
+ type = SkylarkNestedSet.class,
+ generic1 = Artifact.class,
+ defaultValue = "[]"
+ ),
+ @Param(
+ name = "runtime_jars",
+ positional = false,
+ named = true,
+ type = SkylarkNestedSet.class,
+ generic1 = Artifact.class,
+ defaultValue = "[]"
+ )
+ }
)
- public JavaProvider create(
- SkylarkList<Artifact> compileTimeJars,
- SkylarkList<Artifact> runtimeJars) {
- JavaCompilationArgs javaCompilationArgs = JavaCompilationArgs.builder()
- .addCompileTimeJars(compileTimeJars)
- .addRuntimeJars(runtimeJars)
- .build();
- JavaCompilationArgs recursiveJavaCompilationArgs = JavaCompilationArgs.builder()
- .addCompileTimeJars(compileTimeJars)
- .addRuntimeJars(runtimeJars).build();
- JavaProvider javaProvider = JavaProvider.Builder.create().addProvider(
- JavaCompilationArgsProvider.class,
- JavaCompilationArgsProvider.create(javaCompilationArgs, recursiveJavaCompilationArgs))
- .build();
+ public JavaProvider create(SkylarkNestedSet compileTimeJars, SkylarkNestedSet runtimeJars) {
+ JavaCompilationArgs javaCompilationArgs =
+ JavaCompilationArgs.builder()
+ .addTransitiveRuntimeJars(runtimeJars.getSet(Artifact.class))
+ .addTransitiveCompileTimeJars(compileTimeJars.getSet(Artifact.class))
+ .build();
+
+ JavaProvider javaProvider =
+ JavaProvider.Builder.create()
+ .addProvider(
+ JavaCompilationArgsProvider.class,
+ JavaCompilationArgsProvider.create(javaCompilationArgs, javaCompilationArgs))
+ .build();
return javaProvider;
}