From 342a14ee77b7ae007423da52d88780f385db2c47 Mon Sep 17 00:00:00 2001 From: Liam Miller-Cushon Date: Thu, 21 Apr 2016 15:03:46 +0000 Subject: Don't write empty Main-Class manifest entries When java_binary.create_executable=0, omit the Main-Class entry in the deploy jar's manifest instead of writing an empty main class name. -- MOS_MIGRATED_REVID=120443936 --- .../lib/bazel/rules/java/BazelJavaSemantics.java | 27 +++++++++------------- 1 file changed, 11 insertions(+), 16 deletions(-) (limited to 'src/main/java') 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 4e8513a1e1..980691f957 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 @@ -80,24 +80,19 @@ public class BazelJavaSemantics implements JavaSemantics { @Override public void checkRule(RuleContext ruleContext, JavaCommon javaCommon) { } - + private String getMainClassInternal(RuleContext ruleContext, ImmutableList sources) { - String mainClass = ruleContext.getRule().isAttrDefined("main_class", Type.STRING) - ? ruleContext.attributes().get("main_class", Type.STRING) : ""; - boolean createExecutable = ruleContext.attributes().get("create_executable", Type.BOOLEAN); - boolean useTestrunner = ruleContext.attributes().get("use_testrunner", Type.BOOLEAN) - && !useLegacyJavaTest(ruleContext); - - if (createExecutable) { - if (useTestrunner) { - mainClass = "com.google.testing.junit.runner.BazelTestRunner"; - } else { /* java_binary or non-Junit java_test */ - if (mainClass.isEmpty()) { - mainClass = JavaCommon.determinePrimaryClass(ruleContext, sources); - } - } + if (!ruleContext.attributes().get("create_executable", Type.BOOLEAN)) { + return null; + } + if (ruleContext.attributes().get("use_testrunner", Type.BOOLEAN) + && !useLegacyJavaTest(ruleContext)) { + return "com.google.testing.junit.runner.BazelTestRunner"; + } + String mainClass = ruleContext.attributes().get("main_class", Type.STRING); + if (mainClass.isEmpty()) { + mainClass = JavaCommon.determinePrimaryClass(ruleContext, sources); } - return mainClass; } -- cgit v1.2.3