Split out build rule for metrics interfaces

Change-Id: I5117768828daa9ccc9ebc2383ad76400f928d2ea
diff --git a/gerrit-acceptance-framework/BUILD b/gerrit-acceptance-framework/BUILD
index 25b0ed3..5a7f3b7 100644
--- a/gerrit-acceptance-framework/BUILD
+++ b/gerrit-acceptance-framework/BUILD
@@ -11,6 +11,7 @@
     "//gerrit-lucene:lucene",
     "//gerrit-pgm:init",
     "//gerrit-reviewdb:server",
+    "//gerrit-server:metrics",
     "//gerrit-server:receive",
     "//gerrit-server:server",
     "//lib:gson",
diff --git a/gerrit-acceptance-tests/BUILD b/gerrit-acceptance-tests/BUILD
index 91b90e3..ebc7c9b 100644
--- a/gerrit-acceptance-tests/BUILD
+++ b/gerrit-acceptance-tests/BUILD
@@ -19,6 +19,7 @@
         "//gerrit-pgm:pgm",
         "//gerrit-pgm:util",
         "//gerrit-reviewdb:server",
+        "//gerrit-server:metrics",
         "//gerrit-server:prolog-common",
         "//gerrit-server:receive",
         "//gerrit-server:server",
diff --git a/gerrit-httpd/BUILD b/gerrit-httpd/BUILD
index bca4ab2..dbca10c 100644
--- a/gerrit-httpd/BUILD
+++ b/gerrit-httpd/BUILD
@@ -26,6 +26,7 @@
         "//gerrit-patch-jgit:server",
         "//gerrit-prettify:server",
         "//gerrit-reviewdb:server",
+        "//gerrit-server:metrics",
         "//gerrit-server:receive",
         "//gerrit-server:server",
         "//gerrit-util-cli:cli",
diff --git a/gerrit-pgm/BUILD b/gerrit-pgm/BUILD
index d814bb7..1fd3165 100644
--- a/gerrit-pgm/BUILD
+++ b/gerrit-pgm/BUILD
@@ -29,6 +29,7 @@
 
 DEPS = BASE_JETTY_DEPS + [
     "//gerrit-reviewdb:server",
+    "//gerrit-server:metrics",
     "//gerrit-server:module",
     "//gerrit-server:receive",
     "//lib:gwtorm",
diff --git a/gerrit-plugin-api/BUILD b/gerrit-plugin-api/BUILD
index 98d81d0..51b1486 100644
--- a/gerrit-plugin-api/BUILD
+++ b/gerrit-plugin-api/BUILD
@@ -19,6 +19,7 @@
     "//gerrit-common:server",
     "//gerrit-extension-api:api",
     "//gerrit-gwtexpui:server",
+    "//gerrit-server:metrics",
     "//gerrit-reviewdb:server",
     "//gerrit-server:prolog-common",
     "//lib/commons:dbcp",
diff --git a/gerrit-server/BUILD b/gerrit-server/BUILD
index de1f448..e124e89 100644
--- a/gerrit-server/BUILD
+++ b/gerrit-server/BUILD
@@ -9,11 +9,14 @@
     "src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java",
 ]
 
+# Non-recursive glob; dropwizard implementation is in a subpackage.
+METRICS_SRCS = glob(["src/main/java/com/google/gerrit/metrics/*.java"])
+
 RECEIVE_SRCS = glob(["src/main/java/com/google/gerrit/server/git/receive/**/*.java"])
 
 SRCS = glob(
     ["src/main/java/**/*.java"],
-    exclude = CONSTANTS_SRC + GERRIT_GLOBAL_MODULE_SRC + RECEIVE_SRCS,
+    exclude = CONSTANTS_SRC + GERRIT_GLOBAL_MODULE_SRC + METRICS_SRCS + RECEIVE_SRCS,
 )
 
 RESOURCES = glob(["src/main/resources/**/*"])
@@ -44,6 +47,7 @@
     visibility = ["//visibility:public"],
     deps = [
         ":constants",
+        ":metrics",
         "//gerrit-common:annotations",
         "//gerrit-common:server",
         "//gerrit-extension-api:api",
@@ -146,7 +150,20 @@
     ],
 )
 
+# TODO(dborowitz): Move to a different top-level directory to avoid inbound
+# dependencies on gerrit-server.
+java_library(
+    name = "metrics",
+    srcs = METRICS_SRCS,
+    visibility = ["//visibility:public"],
+    deps = [
+        "//gerrit-extension-api:api",
+        "//lib:guava",
+    ],
+)
+
 TESTUTIL_DEPS = [
+    ":metrics",
     ":module",
     ":server",
     "//gerrit-common:annotations",
diff --git a/gerrit-sshd/BUILD b/gerrit-sshd/BUILD
index 1ae0376..6dd0d5f 100644
--- a/gerrit-sshd/BUILD
+++ b/gerrit-sshd/BUILD
@@ -14,6 +14,7 @@
         "//gerrit-lucene:lucene",
         "//gerrit-patch-jgit:server",
         "//gerrit-reviewdb:server",
+        "//gerrit-server:metrics",
         "//gerrit-server:receive",
         "//gerrit-server:server",
         "//gerrit-util-cli:cli",