personal/q3k: add minecraft plugins

Also drive-by modify WORKSPACE to add required deps.

Also drive-by update deps in WORKSPACE.

Also drive-by remove old stackb/proto library from WORKSPACE (only used
in cccampix, which is dead, and stackb/proto should be replaceable by
the main grpc lib by this point).

Change-Id: I7ac7fe2237e859dc1c45bf41a016174ed8e9ee71
diff --git a/WORKSPACE b/WORKSPACE
index 5af740d..d3755c0 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -16,6 +16,19 @@
     sha256 = "2ef429f5d7ce7111263289644d233707dba35e39696377ebab8b0bc701f7818e",
 )
 
+# zlib
+
+http_archive(
+    name = "zlib",
+    build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
+    sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1",
+    strip_prefix = "zlib-1.2.11",
+    urls = [
+        "https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz",
+        "https://zlib.net/zlib-1.2.11.tar.gz",
+    ],
+)
+
 # subpar
 
 git_repository(
@@ -29,9 +42,9 @@
 
 http_archive(
     name = "io_bazel_rules_docker",
-    sha256 = "87fc6a2b128147a0a3039a2fd0b53cc1f2ed5adb8716f50756544a572999ae9a",
-    strip_prefix = "rules_docker-0.8.1",
-    urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.8.1.tar.gz"],
+    sha256 = "dc97fccceacd4c6be14e800b2a00693d5e8d07f69ee187babfd04a80a9f8e250",
+    strip_prefix = "rules_docker-0.14.1",
+    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.1/rules_docker-v0.14.1.tar.gz"],
 )
 
 load("@io_bazel_rules_docker//toolchains/docker:toolchain.bzl", docker_toolchain_configure = "toolchain_configure")
@@ -97,22 +110,6 @@
 
 pip_install()
 
-# stackb/rules_proto (for Python proto compilation)
-http_archive(
-    name = "build_stack_rules_proto",
-    urls = ["https://github.com/stackb/rules_proto/archive/b93b544f851fdcd3fc5c3d47aee3b7ca158a8841.tar.gz"],
-    sha256 = "c62f0b442e82a6152fcd5b1c0b7c4028233a9e314078952b6b04253421d56d61",
-    strip_prefix = "rules_proto-b93b544f851fdcd3fc5c3d47aee3b7ca158a8841",
-)
-
-load("@build_stack_rules_proto//python:deps.bzl", "python_grpc_compile")
-
-python_grpc_compile()
-
-load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
-
-grpc_deps()
-
 # Docker base images
 
 load("@io_bazel_rules_docker//container:container.bzl", "container_pull")
@@ -180,22 +177,24 @@
 
 # Go rules
 
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
 http_archive(
     name = "io_bazel_rules_go",
+    sha256 = "6a68e269802911fa419abb940c850734086869d7fe9bc8e12aaf60a09641c818",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.22.2/rules_go-v0.22.2.tar.gz",
-        "https://github.com/bazelbuild/rules_go/releases/download/v0.22.2/rules_go-v0.22.2.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.23.0/rules_go-v0.23.0.tar.gz",
     ],
-    sha256 = "142dd33e38b563605f0d20e89d9ef9eda0fc3cb539a14be1bdb1350de2eda659",
 )
 
 http_archive(
     name = "bazel_gazelle",
+    sha256 = "bfd86b3cbe855d6c16c6fce60d76bd51f5c8dbc9cfcaef7a2bb5c1aafd0710e8",
     urls = [
-        "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/bazel-gazelle/releases/download/v0.20.0/bazel-gazelle-v0.20.0.tar.gz",
-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.20.0/bazel-gazelle-v0.20.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.21.0/bazel-gazelle-v0.21.0.tar.gz",
     ],
-    sha256 = "d8c45ee70ec39a57e7a05e5027c32b1576cc7f16d9dd37135b0eddde45cf1b10",
 )
 
 load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
@@ -206,14 +205,13 @@
     importpath = "golang.org/x/net",
 )
 
-# Invoke go_rules_dependencies depending on host platform.
-load("//tools:go_sdk.bzl", "gen_imports")
+load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
 
-gen_imports(name = "go_sdk_imports")
+go_rules_dependencies()
 
-load("@go_sdk_imports//:imports.bzl", "load_go_sdk")
+go_register_toolchains()
 
-load_go_sdk()
+load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
 
 gazelle_dependencies()
 
@@ -232,63 +230,63 @@
 
 gerrit_api()
 
-load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", "maven_jar", "GERRIT")
+load("@com_googlesource_gerrit_bazlets//tools:maven_jar.bzl", gerrit_maven_jar="maven_jar", GERRIT="GERRIT")
 PROLOG_VERS = "1.4.3"
 JACKSON_VER = "2.9.7"
 
-maven_jar(
+gerrit_maven_jar(
     name = "scribe",
     artifact = "org.scribe:scribe:1.3.7",
     sha1 = "583921bed46635d9f529ef5f14f7c9e83367bc6e",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "commons-codec",
     artifact = "commons-codec:commons-codec:1.4",
     sha1 = "4216af16d38465bbab0f3dff8efa14204f7a399a",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-core",
     artifact = "com.fasterxml.jackson.core:jackson-core:" + JACKSON_VER,
     sha1 = "4b7f0e0dc527fab032e9800ed231080fdc3ac015",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-databind",
     artifact = "com.fasterxml.jackson.core:jackson-databind:" + JACKSON_VER,
     sha1 = "e6faad47abd3179666e89068485a1b88a195ceb7",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-annotations",
     artifact = "com.fasterxml.jackson.core:jackson-annotations:" + JACKSON_VER,
     sha1 = "4b838e5c4fc17ac02f3293e9a558bb781a51c46d",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "jackson-dataformat-yaml",
     artifact = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:" + JACKSON_VER,
     sha1 = "a428edc4bb34a2da98a50eb759c26941d4e85960",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "snakeyaml",
     artifact = "org.yaml:snakeyaml:1.23",
     sha1 = "ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68",
 )
 
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-runtime",
     artifact = "com.googlecode.prolog-cafe:prolog-runtime:" + PROLOG_VERS,
     attach_source = False,
     repository = GERRIT,
     sha1 = "d5206556cbc76ffeab21313ffc47b586a1efbcbb",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-compiler",
     artifact = "com.googlecode.prolog-cafe:prolog-compiler:" + PROLOG_VERS,
     attach_source = False,
     repository = GERRIT,
     sha1 = "f37032cf1dec3e064427745bc59da5a12757a3b2",
 )
-maven_jar(
+gerrit_maven_jar(
     name = "prolog-io",
     artifact = "com.googlecode.prolog-cafe:prolog-io:" + PROLOG_VERS,
     attach_source = False,
@@ -296,6 +294,55 @@
     sha1 = "d02b2640b26f64036b6ba2b45e4acc79281cea17",
 )
 
+# minecraft spigot/bukkit deps
+# this uses rules_jvm_external vs gerrit's maven_jar because we need SNAPSHOT support
+
+http_archive(
+    name = "io_grpc_grpc_java",
+    sha256 = "446ad7a2e85bbd05406dbf95232c7c49ed90de83b3b60cb2048b0c4c9f254d29",
+    strip_prefix = "grpc-java-1.29.0",
+    url = "https://github.com/grpc/grpc-java/archive/v1.29.0.zip",
+)
+
+RULES_JVM_EXTERNAL_TAG = "3.0"
+RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
+
+http_archive(
+    name = "rules_jvm_external",
+    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
+    sha256 = RULES_JVM_EXTERNAL_SHA,
+    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
+)
+
+load("@rules_jvm_external//:defs.bzl", "maven_install")
+load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS")
+load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS")
+
+maven_install(
+    artifacts = [
+        "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
+        "io.grpc:grpc-netty-shaded:1.29.0",
+        "io.grpc:grpc-services:1.29.0",
+    ]  + IO_GRPC_GRPC_JAVA_ARTIFACTS,
+    generate_compat_repositories = True,
+    override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
+    repositories = [
+        "https://hub.spigotmc.org/nexus/content/repositories/snapshots",
+        "https://oss.sonatype.org/content/repositories/snapshots",
+        "https://repo1.maven.org/maven2/",
+    ],
+    maven_install_json = "//third_party/java:maven_install.json",
+)
+
+load("@maven//:defs.bzl", "pinned_maven_install")
+pinned_maven_install()
+
+load("@maven//:compat.bzl", "compat_repositories")
+compat_repositories()
+
+load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
+grpc_java_repositories()
+
 # Gerrit OWNERS plugins external repositories
 
 git_repository(
@@ -1316,42 +1363,6 @@
 )
 
 go_repository(
-    name = "com_github_azure_go_autorest_autorest",
-    importpath = "github.com/Azure/go-autorest/autorest",
-    tag = "v0.9.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_adal",
-    importpath = "github.com/Azure/go-autorest/autorest/adal",
-    tag = "v0.5.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_date",
-    importpath = "github.com/Azure/go-autorest/autorest/date",
-    tag = "v0.1.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_autorest_mocks",
-    importpath = "github.com/Azure/go-autorest/autorest/mocks",
-    tag = "v0.2.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_logger",
-    importpath = "github.com/Azure/go-autorest/logger",
-    tag = "v0.1.0",
-)
-
-go_repository(
-    name = "com_github_azure_go_autorest_tracing",
-    importpath = "github.com/Azure/go-autorest/tracing",
-    tag = "v0.5.0",
-)
-
-go_repository(
     name = "com_github_bgentry_speakeasy",
     importpath = "github.com/bgentry/speakeasy",
     tag = "v0.1.0",