aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java6
3 files changed, 13 insertions, 7 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 0037212924..e5c2cde4a3 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
@@ -483,7 +483,13 @@ final class JavaInfoBuildHelper {
JavaRuleOutputJarsProvider.Builder outputJarsBuilder = JavaRuleOutputJarsProvider.builder();
- Artifact outputSourceJar = getSourceJar(skylarkRuleContext.getRuleContext(), outputJar);
+ boolean generateMergedSourceJar =
+ (sourceJars.size() > 1 || !sourceFiles.isEmpty())
+ || (sourceJars.isEmpty() && sourceFiles.isEmpty() && !exports.isEmpty());
+ Artifact outputSourceJar =
+ generateMergedSourceJar
+ ? getSourceJar(skylarkRuleContext.getRuleContext(), outputJar)
+ : sourceJars.get(0);
JavaInfo.Builder javaInfoBuilder = JavaInfo.Builder.create();
JavaCompilationArtifacts artifacts =
@@ -493,7 +499,7 @@ final class JavaInfoBuildHelper {
javaRuntimeInfo,
SkylarkList.createImmutable(ImmutableList.of()),
outputJarsBuilder,
- /*createOutputSourceJar=*/ true,
+ /*createOutputSourceJar*/ generateMergedSourceJar,
outputSourceJar,
javaInfoBuilder);
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 2220aa73b0..6a28c8c991 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
@@ -546,12 +546,12 @@ public class JavaSkylarkApiTest extends BuildViewTestCase {
ConfiguredTarget configuredTarget = getConfiguredTarget("//java/test:custom");
JavaInfo info = configuredTarget.get(JavaInfo.PROVIDER);
SkylarkList<Artifact> sourceJars = info.getSourceJars();
- assertThat(artifactFilesNames(sourceJars)).containsExactly("libcustom-src.jar");
+ assertThat(artifactFilesNames(sourceJars)).containsExactly("myjar-src.jar");
JavaRuleOutputJarsProvider outputJars = info.getOutputJars();
assertThat(outputJars.getOutputJars()).hasSize(1);
OutputJar outputJar = outputJars.getOutputJars().get(0);
assertThat((outputJar.getClassJar().getFilename())).isEqualTo("libcustom.jar");
- assertThat((outputJar.getSrcJar().getFilename())).isEqualTo("libcustom-src.jar");
+ assertThat((outputJar.getSrcJar().getFilename())).isEqualTo("myjar-src.jar");
assertThat((outputJar.getIJar().getFilename())).isEqualTo("libcustom-hjar.jar");
assertThat(outputJars.getJdeps().getFilename()).isEqualTo("libcustom.jdeps");
}
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 4ad570e326..7d8f1fa1fd 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
@@ -308,7 +308,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
JavaSourceJarsProvider sourceJarsProvider = getProvider(JavaSourceJarsProvider.class, rule);
assertThat(sourceJarsProvider).isNotNull();
assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
- .containsExactly("x/libproto_lib-lite-src.jar");
+ .containsExactly("x/proto_lib-lite-src.jar");
ImmutableListMultimap<String, Artifact> runtimeJars =
Multimaps.index(compilationArgs.getRuntimeJars(), ROOT_RELATIVE_PATH_STRING);
@@ -458,7 +458,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
getProvider(JavaSourceJarsProvider.class, getConfiguredTarget("//x:foo_lite_pb2"));
assertThat(sourceJarsProvider).isNotNull();
assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
- .containsExactly("x/libfoo-lite-src.jar");
+ .containsExactly("x/foo-lite-src.jar");
}
{
@@ -474,7 +474,7 @@ public class SkylarkJavaLiteProtoLibraryTest extends BuildViewTestCase {
getProvider(JavaSourceJarsProvider.class, getConfiguredTarget("//x:bar_lite_pb2"));
assertThat(sourceJarsProvider).isNotNull();
assertThat(prettyArtifactNames(sourceJarsProvider.getSourceJars()))
- .containsExactly("x/libbar-lite-src.jar");
+ .containsExactly("x/bar-lite-src.jar");
}
}