From 00036c0237028241e9c87f633204bde0682cdc12 Mon Sep 17 00:00:00 2001 From: dbabkin Date: Tue, 23 Jan 2018 01:36:28 -0800 Subject: 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 --- .../build/lib/rules/java/JavaInfoBuildHelper.java | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/main/java') 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 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); -- cgit v1.2.3