Migrate j2objc to only support java_proto_library.

Mostly this is removing a needless restriction on proto_library to have java_api_version and j2objc_api_version set. The rest was already working.

Tons of tests had to be updated.

RELNOTES: None
PiperOrigin-RevId: 195450685
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
index c5d974c..4f1b1a5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java
@@ -121,11 +121,6 @@
     this.ccToolchainType = CppRuleClasses.ccToolchainTypeAttribute(env);
   }
 
-  /** Returns whether this aspect should generate J2ObjC protos from this proto rule */
-  protected boolean shouldAttachToProtoRule(RuleContext ruleContext) {
-    return true;
-  }
-
   /** Returns whether this aspect allows proto services to be generated from this proto rule */
   protected boolean shouldAllowProtoServices(RuleContext ruleContext) {
     return true;
@@ -222,11 +217,7 @@
       throws InterruptedException {
     ConfiguredTarget base = ctadBase.getConfiguredTarget();
     if (isProtoRule(base)) {
-      if (shouldAttachToProtoRule(ruleContext)) {
-        return proto(base, ruleContext, parameters);
-      } else {
-        return new ConfiguredAspect.Builder(this, parameters, ruleContext).build();
-      }
+      return proto(base, ruleContext, parameters);
     } else {
       return java(base, ruleContext, parameters);
     }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcMappingFileProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcMappingFileProvider.java
index 2d40857..36225ea 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcMappingFileProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcMappingFileProvider.java
@@ -21,8 +21,7 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 
 /**
- * This provider is exported by java_library rules and proto_library rules with attribute
- * "j2objc_api_version=1" to support distributed J2ObjC translation and proto compilation.
+ * This provider is exported by java_library rules and proto_library rules via the j2objc aspect.
  */
 @Immutable
 public final class J2ObjcMappingFileProvider implements TransitiveInfoProvider {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
index d12ce09..9b77e71 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java
@@ -63,17 +63,6 @@
 @RunWith(JUnit4.class)
 public class BazelJ2ObjcLibraryTest extends J2ObjcLibraryTest {
 
-  protected String j2ObjcCompatibleProtoLibrary(String... lines) {
-    StringBuilder builder = new StringBuilder();
-    builder.append("proto_library(");
-    for (String line : lines) {
-      builder.append(line);
-      builder.append('\n');
-    }
-    builder.append(")\n");
-    return builder.toString();
-  }
-
   /**
    * Gets the target with the given label, using the apple_binary multi-arch split transition with
    * the default version of iOS as the platform.
@@ -116,21 +105,24 @@
   @Test
   public void testJ2ObjCInformationExportedWithGeneratedJavaSources() throws Exception {
     scratch.file("java/com/google/test/in.txt");
-    scratch.file("java/com/google/test/BUILD",
+    scratch.file(
+        "java/com/google/test/BUILD",
         "package(default_visibility=['//visibility:public'])",
         "genrule(",
         "    name = 'dummy_gen',",
         "    srcs = ['in.txt'],",
         "    outs = ['test.java'],",
-        "    cmd = 'dummy')",
+        "    cmd = 'dummy'",
+        ")",
         "",
         "java_library(",
         "    name = 'test',",
-        "    srcs = [':test.java'])",
-        "",
+        "    srcs = [':test.java']",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
-        "    deps = ['test'])");
+        "    deps = ['test'],",
+        ")");
 
     ConfiguredTarget target = getConfiguredTarget("//java/com/google/test:transpile");
     ObjcProvider provider = target.get(ObjcProvider.SKYLARK_CONSTRUCTOR);
@@ -164,16 +156,23 @@
     scratch.file(
         "java/com/google/dummy/test/proto/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        j2ObjcCompatibleProtoLibrary("    name = 'test_proto',", "    srcs = ['test.proto'],"),
-        "",
+        "proto_library(",
+        "    name = 'test_proto',",
+        "    srcs = ['test.proto'],",
+        ")",
+        "java_proto_library(",
+        "    name = 'test_java_proto',",
+        "    deps = [':test_proto'],",
+        ")",
         "java_library(",
         "    name = 'test',",
         "    srcs = ['test.java'],",
-        "    deps = [':test_proto'])",
-        "",
+        "    deps = [':test_java_proto']",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
-        "    deps = ['test'])");
+        "    deps = ['test']",
+        ")");
 
     ConfiguredTarget j2objcLibraryTarget = getConfiguredTarget(
         "//java/com/google/dummy/test/proto:transpile");
@@ -196,9 +195,12 @@
 
   @Test
   public void testJ2ObjcHeaderMapExportedInJavaLibrary() throws Exception {
-    scratch.file("java/com/google/transpile/BUILD",
-        "java_library(name = 'dummy',",
-        "    srcs = ['dummy.java'])");
+    scratch.file(
+        "java/com/google/transpile/BUILD",
+        "java_library(",
+        "    name = 'dummy',",
+        "    srcs = ['dummy.java']",
+        ")");
 
     ConfiguredTarget target = getJ2ObjCAspectConfiguredTarget("//java/com/google/transpile:dummy");
     J2ObjcMappingFileProvider provider = target.getProvider(J2ObjcMappingFileProvider.class);
@@ -210,12 +212,18 @@
 
   @Test
   public void testDepsJ2ObjcHeaderMapExportedInJavaLibraryWithNoSourceFile() throws Exception {
-    scratch.file("java/com/google/transpile/BUILD",
-        "java_library(name = 'dummy',",
-        "    exports = ['//java/com/google/dep:dep'])");
-    scratch.file("java/com/google/dep/BUILD",
-        "java_library(name = 'dep',",
-        "    srcs = ['dummy.java'])");
+    scratch.file(
+        "java/com/google/transpile/BUILD",
+        "java_library(",
+        "    name = 'dummy',",
+        "    exports = ['//java/com/google/dep:dep'],",
+        ")");
+    scratch.file(
+        "java/com/google/dep/BUILD",
+        "java_library(",
+        "    name = 'dep',",
+        "    srcs = ['dummy.java'],",
+        ")");
 
     ConfiguredTarget target = getJ2ObjCAspectConfiguredTarget("//java/com/google/transpile:dummy");
     J2ObjcMappingFileProvider provider = target.getProvider(J2ObjcMappingFileProvider.class);
@@ -232,12 +240,19 @@
     scratch.file(
         "java/com/google/dummy/test/proto/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        j2ObjcCompatibleProtoLibrary("    name = 'test_proto',", "    srcs = ['test.proto'],"),
-        "",
+        "proto_library(",
+        "    name = 'test_proto',",
+        "    srcs = ['test.proto'],",
+        ")",
+        "java_proto_library(",
+        "    name = 'test_java_proto',",
+        "    deps = [':test_proto'],",
+        ")",
         "java_library(",
         "    name = 'test',",
         "    srcs = ['test.java'],",
-        "    deps = [':test_proto'])");
+        "    deps = [':test_java_proto']",
+        ")");
 
     ConfiguredTarget target = getJ2ObjCAspectConfiguredTarget(
         "//java/com/google/dummy/test/proto:test");
@@ -254,16 +269,19 @@
   public void testJavaProtoLibraryWithProtoLibrary() throws Exception {
     scratch.file(
         "x/BUILD",
-        j2ObjcCompatibleProtoLibrary("    name = 'test_proto',", "    srcs = ['test.proto'],"),
-        "",
+        "proto_library(",
+        "    name = 'test_proto',",
+        "    srcs = ['test.proto'],",
+        ")",
         "java_proto_library(",
         "    name = 'test_java_proto',",
-        "    deps = [':test_proto'])",
-        "",
+        "    deps = [':test_proto'],",
+        ")",
         "java_library(",
         "    name = 'test',",
         "    srcs = ['test.java'],",
-        "    deps = [':test_java_proto'])");
+        "    deps = [':test_java_proto']",
+        ")");
 
     ConfiguredTarget target = getJ2ObjCAspectConfiguredTarget("//x:test");
     ConfiguredTarget test = getConfiguredTarget("//x:test_proto", getAppleCrosstoolConfiguration());
@@ -285,7 +303,10 @@
     scratch.file(
         "/bla/foo/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        j2ObjcCompatibleProtoLibrary("    name = 'test_proto',", "    srcs = ['test.proto'],"),
+        "proto_library(",
+        "    name = 'test_proto',",
+        "    srcs = ['test.proto'],",
+        ")",
         "java_proto_library(",
         "    name = 'test_java_proto',",
         "    deps = [':test_proto'])",
@@ -327,8 +348,10 @@
 
   @Test
   public void testJ2ObjcInfoExportedInJavaImport() throws Exception {
-    scratch.file("java/com/google/transpile/BUILD",
-        "java_import(name = 'dummy',",
+    scratch.file(
+        "java/com/google/transpile/BUILD",
+        "java_import(",
+        "    name = 'dummy',",
         "    jars = ['dummy.jar'],",
         "    srcjar = 'dummy.srcjar',",
         ")");
@@ -402,8 +425,10 @@
     useConfiguration("--ios_cpu=i386", "--ios_minimum_os=1.0");
     scratch.file("java/com/google/transpile/dummy.java");
     scratch.file("java/com/google/transpile/dummyjar.srcjar");
-    scratch.file("java/com/google/transpile/BUILD",
-        "java_library(name = 'dummy',",
+    scratch.file(
+        "java/com/google/transpile/BUILD",
+        "java_library(",
+        "    name = 'dummy',",
         "    srcs = ['dummy.java', 'dummyjar.srcjar'],",
         ")");
 
@@ -449,13 +474,16 @@
 
   @Test
   public void testJ2ObjcHeaderMappingAction() throws Exception {
-    scratch.file("java/com/google/transpile/BUILD",
-        "java_library(name = 'lib1',",
+    scratch.file(
+        "java/com/google/transpile/BUILD",
+        "java_library(",
+        "    name = 'lib1',",
         "    srcs = ['libOne.java', 'jar.srcjar'],",
         "    deps = [':lib2']",
         ")",
         "",
-        "java_library(name = 'lib2',",
+        "java_library(",
+        "    name = 'lib2',",
         "    srcs = ['libTwo.java'],",
         ")");
 
@@ -529,16 +557,18 @@
 
   protected void addSimpleJ2ObjcLibraryWithEntryClasses() throws Exception {
     scratch.file("java/com/google/app/test/test.java");
-    scratch.file("java/com/google/app/test/BUILD",
+    scratch.file(
+        "java/com/google/app/test/BUILD",
         "package(default_visibility=['//visibility:public'])",
         "java_library(",
         "    name = 'test',",
-        "    srcs = ['test.java'])",
-        "",
+        "    srcs = ['test.java'],",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
         "    entry_classes = ['com.google.app.test.test'],",
-        "    deps = ['test'])");
+        "    deps = ['test'],",
+        ")");
   }
 
   protected void addSimpleJ2ObjcLibraryWithJavaPlugin() throws Exception {
@@ -550,16 +580,17 @@
         "java_library(",
         "    name = 'test',",
         "    srcs = ['test.java'],",
-        "    plugins = [':plugin'])",
-        "",
+        "    plugins = [':plugin'],",
+        ")",
         "java_plugin(",
         "    name = 'plugin',",
         "    processor_class = 'com.google.process.stuff',",
-        "    srcs = ['plugin.java'])",
-        "",
+        "    srcs = ['plugin.java'],",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
-        "    deps = [':test'])");
+        "    deps = [':test']",
+        ")");
   }
 
   protected Artifact j2objcArchive(String j2objcLibraryTarget, String javaTargetName)
@@ -579,7 +610,8 @@
         "objc_library(",
         "    name = 'lib',",
         "    srcs = ['lib.m'],",
-        "    deps = ['//java/com/google/dummy/test:transpile'])");
+        "    deps = ['//java/com/google/dummy/test:transpile'],",
+        ")");
 
     ConfiguredTarget objcTarget = getConfiguredTarget("//app:lib");
 
@@ -610,20 +642,24 @@
         "app/BUILD",
         "package(default_visibility=['//visibility:public'])",
         "",
-        "java_library(name = 'dummyOne',",
-        "    srcs = ['dummyOne.java'])",
-        "java_library(name = 'dummyTwo',",
+        "java_library(",
+        "    name = 'dummyOne',",
+        "    srcs = ['dummyOne.java'],",
+        ")",
+        "java_library(",
+        "    name = 'dummyTwo',",
         "    srcs = ['dummyTwo.java'],",
-        "    runtime_deps = [':dummyOne'])",
-        "",
+        "    runtime_deps = [':dummyOne'],",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
-        "    deps = [':dummyTwo'])",
-        "",
+        "    deps = [':dummyTwo'],",
+        ")",
         "objc_library(",
         "    name = 'lib',",
         "    srcs = ['lib.m'],",
-        "    deps = ['//app:transpile'])");
+        "    deps = ['//app:transpile'],",
+        ")");
 
     ConfiguredTarget objcTarget = getConfiguredTarget("//app:lib");
 
@@ -660,7 +696,8 @@
         "    deps = [ '//java/c/y:ylib' ],",
         "    jre_deps = [ '"
             + TestConstants.TOOLS_REPOSITORY
-            + "//third_party/java/j2objc:jre_io_lib' ])",
+            + "//third_party/java/j2objc:jre_io_lib' ],",
+        ")",
         "apple_binary(",
         "    name = 'test',",
         "    platform_type = 'ios',",
@@ -714,10 +751,13 @@
   public void testJ2ObjCCustomModuleMap() throws Exception {
     useConfiguration("--experimental_objc_enable_module_maps");
     scratch.file("java/com/google/transpile/dummy.java");
-    scratch.file("java/com/google/transpile/BUILD",
+    scratch.file(
+        "java/com/google/transpile/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        "java_library(name = 'dummy',",
-        "    srcs = ['dummy.java'])");
+        "java_library(",
+        "    name = 'dummy',",
+        "    srcs = ['dummy.java'],",
+        ")");
 
     ConfiguredTarget target = getJ2ObjCAspectConfiguredTarget("//java/com/google/transpile:dummy");
 
@@ -857,7 +897,8 @@
         "package(default_visibility=['//visibility:public'])",
         "java_library(",
         "    name = 'dummy',",
-        "    srcs = ['dummy.java'])",
+        "    srcs = ['dummy.java'],",
+        ")",
         "",
         "j2objc_library(",
         "    name = 'transpile',",
@@ -908,27 +949,28 @@
         "load('//examples:fake_rule.bzl', 'fake_rule')",
         "java_library(",
         "    name = 'inner',",
-        "    srcs = ['inner.java'])",
-        "",
+        "    srcs = ['inner.java'],",
+        ")",
         "fake_rule(",
         "    name = 'propagator',",
-        "    deps = [':inner'])",
-        "",
+        "    deps = [':inner'],",
+        ")",
         "java_library(",
         "    name = 'outer',",
         "    srcs = ['outer.java'],",
-        "    deps = [':propagator'])",
-        "",
+        "    deps = [':propagator'],",
+        ")",
         "j2objc_library(",
         "    name = 'transpile',",
         "    deps = [",
         "        ':outer',",
-        "    ])",
-        "",
+        "    ],",
+        ")",
         "objc_library(",
         "    name = 'lib',",
         "    srcs = ['lib.m'],",
-        "    deps = [':transpile'])");
+        "    deps = [':transpile'],",
+        ")");
 
     ConfiguredTarget objcTarget = getConfiguredTarget("//examples:lib");
 
@@ -948,7 +990,8 @@
         "objc_library(",
         "    name = 'lib',",
         "    srcs = ['lib.m'],",
-        "    deps = ['//java/com/google/dummy/test:transpile'])");
+        "    deps = ['//java/com/google/dummy/test:transpile'],",
+        ")");
 
     checkObjcCompileActions(
         getBinArtifact("liblib.a", getConfiguredTarget("//app:lib")),
@@ -959,7 +1002,9 @@
 
   @Test
   public void testProtoToolchainForJ2ObjcFlag() throws Exception {
-    useConfiguration("--proto_toolchain_for_j2objc=//tools/j2objc:alt_j2objc_proto_toolchain");
+    useConfiguration(
+        "--proto_toolchain_for_java=//tools/proto/toolchains:java",
+        "--proto_toolchain_for_j2objc=//tools/j2objc:alt_j2objc_proto_toolchain");
 
     scratch.file("tools/j2objc/proto_plugin_binary");
     scratch.file("tools/j2objc/alt_proto_runtime.h");
@@ -989,9 +1034,10 @@
         "    runtime = ':alt_proto_runtime',",
         "    blacklisted_protos = [':blacklisted_protos'],",
         ")",
-        j2ObjcCompatibleProtoLibrary(
-            "   name = 'blacklisted_proto_library',",
-            "   srcs = ['some_blacklisted_proto.proto'],"),
+        "proto_library(",
+        "   name = 'blacklisted_proto_library',",
+        "   srcs = ['some_blacklisted_proto.proto'],",
+        ")",
         "objc_library(",
         "    name = 'alt_proto_runtime',",
         "    hdrs = ['alt_proto_runtime.h'],",
@@ -1007,15 +1053,19 @@
     scratch.file(
         "java/com/google/dummy/test/proto/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        j2ObjcCompatibleProtoLibrary(
-            "    name = 'test_proto',",
-            "    srcs = ['test.proto'],",
-            "    deps = ['//tools/j2objc:blacklisted_proto_library'],"),
-        "",
+        "proto_library(",
+        "    name = 'test_proto',",
+        "    srcs = ['test.proto'],",
+        "    deps = ['//tools/j2objc:blacklisted_proto_library'],",
+        ")",
+        "java_proto_library(",
+        "    name = 'test_java_proto',",
+        "    deps = [':test_proto'],",
+        ")",
         "java_library(",
         "    name = 'test',",
         "    srcs = ['test.java'],",
-        "    deps = [':test_proto'])",
+        "    deps = [':test_java_proto'])",
         "",
         "j2objc_library(",
         "    name = 'transpile',",
@@ -1199,16 +1249,26 @@
     scratch.file(
         "java/com/google/transpile/BUILD",
         "package(default_visibility=['//visibility:public'])",
-        "java_library(name = 'dummy1',",
-        "    srcs = ['dummy.java'])",
-        "java_library(name = 'dummy2',",
-        "    srcs = ['dummy.java'])",
-        "java_library(name = 'dummy3',",
-        "    srcs = ['dummy.java'], deps = [':dummy2'])",
-        "j2objc_library(name = 'lib1',",
-        "    deps = [':dummy1'])",
-        "j2objc_library(name = 'lib2',",
-        "    deps = [':lib1', ':dummy3'])");
+        "java_library(",
+        "    name = 'dummy1',",
+        "    srcs = ['dummy.java'],",
+        ")",
+        "java_library(",
+        "    name = 'dummy2',",
+        "    srcs = ['dummy.java'],",
+        ")",
+        "java_library(",
+        "    name = 'dummy3',",
+        "    srcs = ['dummy.java'], deps = [':dummy2'],",
+        ")",
+        "j2objc_library(",
+        "    name = 'lib1',",
+        "    deps = [':dummy1'],",
+        ")",
+        "j2objc_library(",
+        "    name = 'lib2',",
+        "    deps = [':lib1', ':dummy3'],",
+        ")");
 
     // Bazel doesn't give us a way to test the aspect directly on the java_library targets, so we
     // can only test propagation through the j2objc_libraries that attach the aspect.
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java
index cd51127..ebca7c1 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibraryTest.java
@@ -19,7 +19,6 @@
 import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
 import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.util.MockJ2ObjcSupport;
 import com.google.devtools.build.lib.packages.util.MockObjcSupport;
@@ -41,13 +40,6 @@
       };
 
   /**
-   * The configuration to be used for genfiles artifacts.
-   */
-  protected BuildConfiguration getGenfilesConfig() throws InterruptedException {
-    return getAppleCrosstoolConfiguration();
-  }
-
-  /**
    * Creates and injects a j2objc_library target that depends upon the given label, then returns the
    * ConfiguredTarget for the label with the aspects added.
    */