all: update animalsniffer to Java 7 and add Android 14 (#4727)

diff --git a/auth/build.gradle b/auth/build.gradle
index 6f5ec75..957c9ec 100644
--- a/auth/build.gradle
+++ b/auth/build.gradle
@@ -4,5 +4,6 @@
             libraries.google_auth_credentials
     testCompile project(':grpc-testing'),
             libraries.oauth_client
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
diff --git a/build.gradle b/build.gradle
index ab2db12..5afaf72 100644
--- a/build.gradle
+++ b/build.gradle
@@ -194,6 +194,7 @@
             epoll_suffix = ":" + osdetector.classifier
         }
         libraries = [
+            animalsniffer_annotations: "org.codehaus.mojo:animal-sniffer-annotations:1.17",
             errorprone: "com.google.errorprone:error_prone_annotations:2.2.0",
             gson: "com.google.code.gson:gson:2.7",
             guava: "com.google.guava:guava:${guavaVersion}",
diff --git a/context/build.gradle b/context/build.gradle
index e13dfe4..c38132a 100644
--- a/context/build.gradle
+++ b/context/build.gradle
@@ -2,5 +2,6 @@
 
 dependencies {
     testCompile libraries.jsr305
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
diff --git a/core/BUILD.bazel b/core/BUILD.bazel
index 943b483..2cdb351 100644
--- a/core/BUILD.bazel
+++ b/core/BUILD.bazel
@@ -44,6 +44,7 @@
         "@com_google_guava_guava//jar",
         "@io_opencensus_opencensus_api//jar",
         "@io_opencensus_opencensus_contrib_grpc_metrics//jar",
+        "@org_codehaus_mojo_animal_sniffer_annotations//jar",
     ],
 )
 
diff --git a/core/build.gradle b/core/build.gradle
index eefeff6..700592f 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -5,7 +5,8 @@
             libraries.gson,
             libraries.guava,
             libraries.errorprone,
-            libraries.jsr305
+            libraries.jsr305,
+            libraries.animalsniffer_annotations
     compile (libraries.opencensus_api) {
         // prefer 3.0.0 from libraries instead of 3.0.1
         exclude group: 'com.google.code.findbugs', module: 'jsr305'
@@ -28,7 +29,8 @@
             project(':grpc-grpclb'),
             libraries.guava_testlib
 
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
 
 javadoc {
diff --git a/core/src/main/java/io/grpc/internal/JndiResourceResolverFactory.java b/core/src/main/java/io/grpc/internal/JndiResourceResolverFactory.java
index 0abaa6f..998cfe6 100644
--- a/core/src/main/java/io/grpc/internal/JndiResourceResolverFactory.java
+++ b/core/src/main/java/io/grpc/internal/JndiResourceResolverFactory.java
@@ -40,6 +40,7 @@
 import javax.naming.directory.Attribute;
 import javax.naming.directory.DirContext;
 import javax.naming.directory.InitialDirContext;
+import org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement;
 
 /**
  * {@link JndiResourceResolverFactory} resolves additional records for the DnsNameResolver.
@@ -194,6 +195,7 @@
       return new SrvRecord(parts[3], Integer.parseInt(parts[2]));
     }
 
+    @IgnoreJRERequirement
     private static List<String> getAllRecords(String recordType, String name)
         throws NamingException {
       String[] rrType = new String[]{recordType};
@@ -235,6 +237,7 @@
       return records;
     }
 
+    @IgnoreJRERequirement
     private static void closeThenThrow(NamingEnumeration<?> namingEnumeration, NamingException e)
         throws NamingException {
       try {
@@ -245,6 +248,7 @@
       throw e;
     }
 
+    @IgnoreJRERequirement
     private static void closeThenThrow(DirContext ctx, NamingException e) throws NamingException {
       try {
         ctx.close();
diff --git a/okhttp/build.gradle b/okhttp/build.gradle
index 458d5df..fa255d6 100644
--- a/okhttp/build.gradle
+++ b/okhttp/build.gradle
@@ -8,7 +8,8 @@
     testCompile project(':grpc-core').sourceSets.test.output,
             project(':grpc-testing'),
             project(':grpc-netty')
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
 
 project.sourceSets {
diff --git a/protobuf-lite/build.gradle b/protobuf-lite/build.gradle
index 24fa3d9..ead5180 100644
--- a/protobuf-lite/build.gradle
+++ b/protobuf-lite/build.gradle
@@ -18,7 +18,8 @@
 
     testProtobuf libraries.protobuf
 
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
 
 compileTestJava {
diff --git a/protobuf-nano/build.gradle b/protobuf-nano/build.gradle
index c882250..dd26db4 100644
--- a/protobuf-nano/build.gradle
+++ b/protobuf-nano/build.gradle
@@ -13,7 +13,8 @@
     compile project(':grpc-core'),
             libraries.protobuf_nano,
             libraries.guava
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
 
 configureProtoCompilation()
diff --git a/protobuf/build.gradle b/protobuf/build.gradle
index 26288f9..abb2bc7 100644
--- a/protobuf/build.gradle
+++ b/protobuf/build.gradle
@@ -25,7 +25,7 @@
         exclude group: 'com.google.protobuf', module: 'protobuf-lite'
     }
 
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
 }
 
 javadoc.options.links 'https://developers.google.com/protocol-buffers/docs/reference/java/'
diff --git a/repositories.bzl b/repositories.bzl
index d1bb967..f450468 100644
--- a/repositories.bzl
+++ b/repositories.bzl
@@ -30,7 +30,8 @@
         omit_io_opencensus_grpc_metrics = False,
         omit_javax_annotation = False,
         omit_junit_junit = False,
-        omit_org_apache_commons_lang3 = False):
+        omit_org_apache_commons_lang3 = False,
+        omit_org_codehaus_mojo_animal_sniffer_annotations = False):
     """Imports dependencies for grpc-java."""
     if not omit_com_google_api_grpc_google_common_protos:
         com_google_api_grpc_google_common_protos()
@@ -92,6 +93,8 @@
         junit_junit()
     if not omit_org_apache_commons_lang3:
         org_apache_commons_lang3()
+    if not omit_org_codehaus_mojo_animal_sniffer_annotations:
+        org_codehaus_mojo_animal_sniffer_annotations()
 
     native.bind(
         name = "guava",
@@ -311,3 +314,10 @@
         artifact = "org.apache.commons:commons-lang3:3.5",
         sha1 = "6c6c702c89bfff3cd9e80b04d668c5e190d588c6",
     )
+
+def org_codehaus_mojo_animal_sniffer_annotations():
+    native.maven_jar(
+        name = "org_codehaus_mojo_animal_sniffer_annotations",
+        artifact = "org.codehaus.mojo:animal-sniffer-annotations:1.17",
+        sha1 = "f97ce6decaea32b36101e37979f8b647f00681fb",
+    )
diff --git a/services/build.gradle b/services/build.gradle
index 5e2ee12..108127d 100644
--- a/services/build.gradle
+++ b/services/build.gradle
@@ -21,7 +21,7 @@
     compileOnly libraries.javax_annotation
     testCompile project(':grpc-testing'),
             libraries.netty_epoll // for DomainSocketAddress
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
 }
 
 configureProtoCompilation()
diff --git a/stub/build.gradle b/stub/build.gradle
index 125d8b2..651173f 100644
--- a/stub/build.gradle
+++ b/stub/build.gradle
@@ -3,7 +3,8 @@
     compile project(':grpc-core')
     testCompile libraries.truth,
             project(':grpc-testing')
-    signature "org.codehaus.mojo.signature:java16:1.1@signature"
+    signature "org.codehaus.mojo.signature:java17:1.0@signature"
+    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
 }
 
 javadoc.options.links "https://google.github.io/guava/releases/${guavaVersion}/api/docs/"