diff options
author | dbabkin <dbabkin@google.com> | 2018-01-23 01:36:28 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-23 01:37:46 -0800 |
commit | 00036c0237028241e9c87f633204bde0682cdc12 (patch) | |
tree | 6abcd1cff7fd979e2e6c1db8f8e34c9125dbd453 /src/main/java/com/google/devtools/build | |
parent | b7272ecaab7eada2f1846597dc5bacc82d2c8821 (diff) |
Create function createJavaInfo with new API. Implement JavaRuleOutputJarsProvider.
Added tests for checking JavaRuleOutputJarsProvider state.
Moved all test cases related to JavaInfo to new file JavaInfoSkylarkApiTest.java
Created RuleBuilder inside JavaInfoSkylarkApiTest to reduce duplication of code.
RELNOTES:none
PiperOrigin-RevId: 182901118
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java | 23 |
1 files changed, 14 insertions, 9 deletions
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 3abd390817..8265d007b0 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 @@ -77,7 +77,6 @@ final class JavaInfoBuildHelper { * @return new created JavaInfo instance * @throws EvalException if some mandatory parameter are missing */ - // TODO(b/69780248): only populates JavaInfo with JavaCompilationArgsProvider. See #3769 public JavaInfo createJavaInfo( Artifact outputJar, SkylarkList<Artifact> sourceFiles, @@ -97,19 +96,25 @@ final class JavaInfoBuildHelper { JavaCompilationArgs.Builder javaCompilationArgsBuilder = JavaCompilationArgs.builder(); + javaCompilationArgsBuilder.addFullCompileTimeJar(outputJar); + + if (!neverlink) { + javaCompilationArgsBuilder.addRuntimeJar(outputJar); + } + + Artifact iJar = outputJar; if (useIjar) { SkylarkActionFactory skylarkActionFactory = checkActionType(action, location); ConfiguredTarget configuredTarget = checkConfiguredTargetType(javaToolchain, location); - Artifact iJar = buildIjar(outputJar, skylarkActionFactory, configuredTarget); - javaCompilationArgsBuilder.addCompileTimeJar(iJar); - } else { - javaCompilationArgsBuilder.addCompileTimeJar(outputJar); + iJar = buildIjar(outputJar, skylarkActionFactory, configuredTarget); } + javaCompilationArgsBuilder.addCompileTimeJar(iJar); - javaCompilationArgsBuilder.addFullCompileTimeJar(outputJar); - if (!neverlink) { - javaCompilationArgsBuilder.addRuntimeJar(outputJar); - } + JavaRuleOutputJarsProvider javaRuleOutputJarsProvider = + JavaRuleOutputJarsProvider.builder() + .addOutputJar(outputJar, iJar, ImmutableList.copyOf(sourceJars)) + .build(); + javaInfoBuilder.addProvider(JavaRuleOutputJarsProvider.class, javaRuleOutputJarsProvider); JavaCompilationArgs.Builder recursiveJavaCompilationArgsBuilder = JavaCompilationArgs.Builder.copyOf(javaCompilationArgsBuilder); |