Bazel powered Java testing (#8506)

* Protobuf Java/Core Tests running w/ Bazel.

Also integrates rules_jvm_external and migrates existing maven deps
in place.

* Add test_suite target that maps to rule name.

* Lite tests passing in Bazel

* util tests passing with Bazel.

* Add conformance and build testing to //java:core

* Cleanup bzl style and lock down access to failure lists.

* Adding Java Lite conformance tests.

* rm newline

* parameterize conformance_test

This makes usage of failure lists more explicit.

* restrict visibility more for newly added libs and fix formatting.

* fix formatting and visibility.

* move testing.bzl to an internal package.

* fix file formatting.

* moving conformance_test to internal.bzl
diff --git a/WORKSPACE b/WORKSPACE
index 4346dbd..bf896e0 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -26,23 +26,27 @@
     ],
 )
 
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-load("//:protobuf_deps.bzl", "protobuf_deps")
-
 # Load common dependencies.
+load("//:protobuf_deps.bzl", "protobuf_deps")
 protobuf_deps()
-load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")
 
 bind(
     name = "python_headers",
     actual = "//util/python:python_headers",
 )
 
-jvm_maven_import_external(
-    name = "guava_maven",
-    artifact = "com.google.guava:guava:18.0",
-    artifact_sha256 = "d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99",
-    server_urls = [
+load("@rules_jvm_external//:defs.bzl", "maven_install")
+maven_install(
+    artifacts = [
+        "com.google.guava:guava:18.0",
+        "com.google.code.gson:gson:2.7",
+        "com.google.errorprone:error_prone_annotations:2.3.2",
+        "junit:junit:4.12",
+        "org.easymock:easymock:3.2",
+        "org.easymock:easymockclassextension:3.2",
+        "com.google.truth:truth:1.1.2",
+    ],
+    repositories = [
         "https://jcenter.bintray.com/",
         "https://repo1.maven.org/maven2",
     ],
@@ -50,40 +54,39 @@
 
 bind(
     name = "guava",
-    actual = "@guava_maven//jar",
-)
-
-jvm_maven_import_external(
-    name = "gson_maven",
-    artifact = "com.google.code.gson:gson:2.7",
-    artifact_sha256 = "2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32",
-    server_urls = [
-        "https://jcenter.bintray.com/",
-        "https://repo1.maven.org/maven2",
-    ],
+    actual = "@maven//:com_google_guava_guava",
 )
 
 bind(
     name = "gson",
-    actual = "@gson_maven//jar",
-)
-
-jvm_maven_import_external(
-    name = "error_prone_annotations_maven",
-    artifact = "com.google.errorprone:error_prone_annotations:2.3.2",
-    artifact_sha256 = "357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d",
-    server_urls = [
-        "https://jcenter.bintray.com/",
-        "https://repo1.maven.org/maven2",
-    ],
+    actual = "@maven//:com_google_code_gson_gson",
 )
 
 bind(
     name = "error_prone_annotations",
-    actual = "@error_prone_annotations_maven//jar",
+    actual = "@maven//:com_google_errorprone_error_prone_annotations",
+)
+
+bind(
+    name = "junit",
+    actual = "@maven//:junit_junit",
+)
+
+bind(
+    name = "easymock",
+    actual = "@maven//:org_easymock_easymock",
+)
+
+bind(
+    name = "easymock_classextension",
+    actual = "@maven//:org_easymock_easymockclassextension",
+)
+
+bind(
+    name = "truth",
+    actual = "@maven//:com_google_truth_truth",
 )
 
 # For `cc_proto_blacklist_test`.
 load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
-
 bazel_skylib_workspace()