Update testcontainers to 1.16.3

Several bug fixes and other improvements.

Also remove unused dependencies and reorder the external_plugin_deps
based on what depends on what.

https: //github.com/testcontainers/testcontainers-java/releases/tag/1.16.3
https: //github.com/testcontainers/testcontainers-java/releases/tag/1.16.2
https: //github.com/testcontainers/testcontainers-java/releases/tag/1.16.1
https: //github.com/testcontainers/testcontainers-java/releases/tag/1.16.0

Change-Id: I044b89db2cacb7596cd86ef45356601adb30cfe1
diff --git a/BUILD b/BUILD
index b16fb0d..4070a77 100644
--- a/BUILD
+++ b/BUILD
@@ -21,10 +21,10 @@
 ELASTICSEARCH_DEPS = [
     "@docker-java-api//jar",
     "@docker-java-transport//jar",
+    "@docker-java-transport-zerodep//jar",
     "@duct-tape//jar",
     "@httpasyncclient//jar",
     "@jackson-annotations//jar",
-    "@jackson-core//jar",
     "@jna//jar",
     "@testcontainers-elasticsearch//jar",
     "@testcontainers//jar",
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 8b44d57..63b189a 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -1,30 +1,26 @@
 load("//tools/bzl:maven_jar.bzl", "maven_jar")
 
-TESTCONTAINERS_VERSION = "1.15.3"
-
-# Ensure artifacts compatibility by selecting them from the Bill Of Materials
-# https://search.maven.org/artifact/net.openhft/chronicle-bom/2.20.191/pom
 def external_plugin_deps():
     maven_jar(
+        name = "jackson-core",
+        artifact = "com.fasterxml.jackson.core:jackson-core:2.11.3",
+        sha1 = "c2351800432bdbdd8284c3f5a7f0782a352aa84a",
+    )
+
+    # Ensure artifacts compatibility by selecting them from the Bill Of Materials
+    # https://search.maven.org/artifact/org.testcontainers/testcontainers/1.16.3/pom
+    TESTCONTAINERS_VERSION = "1.16.3"
+
+    maven_jar(
         name = "testcontainers",
         artifact = "org.testcontainers:testcontainers:" + TESTCONTAINERS_VERSION,
-        sha1 = "95c6cfde71c2209f0c29cb14e432471e0b111880",
-    )
-
-    # When upgrading elasticsearch-rest-client, also upgrade httpcore-nio
-    # and httpasyncclient as necessary in tools/nongoogle.bzl. Consider
-    # also the other org.apache.httpcomponents dependencies in
-    # WORKSPACE.
-    maven_jar(
-        name = "elasticsearch-rest-client",
-        artifact = "org.elasticsearch.client:elasticsearch-rest-client:8.3.2",
-        sha1 = "bb5cb3dbd82ea75a6d49b9011ca5b1d125b30f00",
+        sha1 = "a5d2ad12ebe0d4b66e4fd9f4657571213b5f64c3",
     )
 
     maven_jar(
         name = "testcontainers-elasticsearch",
         artifact = "org.testcontainers:elasticsearch:" + TESTCONTAINERS_VERSION,
-        sha1 = "595e3a50f59cd3c1d281ca6c1bc4037e277a1353",
+        sha1 = "5831f0645ed3184df96ab9568f0c4347b8ff87bd",
     )
 
     maven_jar(
@@ -33,30 +29,49 @@
         sha1 = "92edc22a9ab2f3e17c9bf700aaee377d50e8b530",
     )
 
-    maven_jar(
-        name = "visible-assertions",
-        artifact = "org.rnorth.visible-assertions:visible-assertions:2.1.2",
-        sha1 = "20d31a578030ec8e941888537267d3123c2ad1c1",
-    )
-
-    maven_jar(
-        name = "jna",
-        artifact = "net.java.dev.jna:jna:5.5.0",
-        sha1 = "0e0845217c4907822403912ad6828d8e0b256208",
-    )
-
-    DOCKER_JAVA_VERS = "3.2.8"
+    DOCKER_JAVA_VERS = "3.2.12"
 
     maven_jar(
         name = "docker-java-api",
         artifact = "com.github.docker-java:docker-java-api:" + DOCKER_JAVA_VERS,
-        sha1 = "4ac22a72d546a9f3523cd4b5fabffa77c4a6ec7c",
+        sha1 = "6716b0483926adbcce0fd4636664e711debafc11",
     )
 
     maven_jar(
         name = "docker-java-transport",
         artifact = "com.github.docker-java:docker-java-transport:" + DOCKER_JAVA_VERS,
-        sha1 = "c3b5598c67d0a5e2e780bf48f520da26b9915eab",
+        sha1 = "88ad0cd6d67c075a5f622dbf7cb930ef4b1c008f",
+    )
+
+    maven_jar(
+        name = "docker-java-transport-zerodep",
+        artifact = "com.github.docker-java:docker-java-transport-zerodep:" + DOCKER_JAVA_VERS,
+        sha1 = "131e656a25622f7288aaac531e7d3290d3e8936d",
+    )
+
+    # Match version used in docker-java-transport
+    # https://search.maven.org/artifact/com.github.docker-java/docker-java-transport/3.2.12/pom
+    maven_jar(
+        name = "jna",
+        artifact = "net.java.dev.jna:jna:5.8.0",
+        sha1 = "3551d8d827e54858214107541d3aff9c615cb615",
+    )
+
+    # Match jackson.version from docker-java
+    # https://search.maven.org/artifact/com.github.docker-java/docker-java-parent/3.2.12/pom
+    maven_jar(
+        name = "jackson-annotations",
+        artifact = "com.fasterxml.jackson.core:jackson-annotations:2.10.3",
+        sha1 = "0f63b3b1da563767d04d2e4d3fc1ae0cdeffebe7",
+    )
+
+    # When upgrading elasticsearch-rest-client, also upgrade httpcore-nio
+    # and httpasyncclient as necessary. Consider also the other
+    # org.apache.httpcomponents dependencies in core.
+    maven_jar(
+        name = "elasticsearch-rest-client",
+        artifact = "org.elasticsearch.client:elasticsearch-rest-client:8.3.2",
+        sha1 = "bb5cb3dbd82ea75a6d49b9011ca5b1d125b30f00",
     )
 
     # elasticsearch-rest-client explicitly depends on this version
@@ -72,22 +87,3 @@
         artifact = "org.apache.httpcomponents:httpcore-nio:4.4.12",
         sha1 = "84cd29eca842f31db02987cfedea245af020198b",
     )
-
-    maven_jar(
-        name = "jackson-core",
-        artifact = "com.fasterxml.jackson.core:jackson-core:2.11.3",
-        sha1 = "c2351800432bdbdd8284c3f5a7f0782a352aa84a",
-    )
-
-    maven_jar(
-        name = "jackson-annotations",
-        artifact = "com.fasterxml.jackson.core:jackson-annotations:2.10.3",
-        sha1 = "0f63b3b1da563767d04d2e4d3fc1ae0cdeffebe7",
-    )
-
-    # elasticsearch-rest-client explicitly depends on this version
-    maven_jar(
-        name = "httpasyncclient",
-        artifact = "org.apache.httpcomponents:httpasyncclient:4.1.4",
-        sha1 = "f3a3240681faae3fa46b573a4c7e50cec9db0d86",
-    )