Build blame cache as own java_library

This is a first step towards properly packaging of blame cache in Gerrit
server which is needed for [1]. [1] currently (PS-44) depends on the
whole gitiles-servlet and this leads to a:

  java.lang.NoClassDefFoundError: com/google/template/soy/SoyFileSet

caused by packaging the gitiles-servlet in the Gerrit core but without
all of its dependencies.

[1] https://gerrit-review.googlesource.com/72798

Change-Id: I9326b30962c21082b3d152eb6397ddcf767d1ce3
diff --git a/.buckconfig b/.buckconfig
index adac013..7ab2a74 100644
--- a/.buckconfig
+++ b/.buckconfig
@@ -1,5 +1,6 @@
 [alias]
   all = //:all
+  blame-cache = //blame-cache:lib
   in = //:install
   mvn_install = //:install
   mvn_deploy = //:deploy
diff --git a/BUCK b/BUCK
index b7015cd..a8ccb68 100644
--- a/BUCK
+++ b/BUCK
@@ -1,6 +1,9 @@
 include_defs('//VERSION')
 
 DEPS = [
+  '//blame-cache:lib',
+  '//blame-cache:src',
+  '//blame-cache:javadoc',
   '//gitiles-dev:dev',
   '//gitiles-servlet:servlet',
   '//gitiles-servlet:src',
@@ -21,9 +24,18 @@
   url = 'gs://gerrit-maven',
   version = GITILES_VERSION,
   group = 'com.google.gitiles',
-  jar = {'gitiles-servlet': '//gitiles-servlet:servlet'},
-  src = {'gitiles-servlet': '//gitiles-servlet:src'},
-  doc = {'gitiles-servlet': '//gitiles-servlet:javadoc'},
+  jar = {
+    'blame-cache': '//blame-cache:lib',
+    'gitiles-servlet': '//gitiles-servlet:servlet',
+  },
+  src = {
+    'blame-cache': '//blame-cache:src',
+    'gitiles-servlet': '//gitiles-servlet:src',
+  },
+  doc = {
+    'blame-cache': '//blame-cache:javadoc',
+    'gitiles-servlet': '//gitiles-servlet:javadoc',
+  },
 )
 
 def b():
diff --git a/blame-cache/BUCK b/blame-cache/BUCK
new file mode 100644
index 0000000..e3a6428
--- /dev/null
+++ b/blame-cache/BUCK
@@ -0,0 +1,29 @@
+SRCS = glob(['src/main/java/**/*.java'])
+DEPS = [
+  '//lib:guava',
+  '//lib/jgit:jgit',
+]
+
+java_library(
+  name = 'lib',
+  srcs = SRCS,
+  deps = DEPS,
+  visibility = ['PUBLIC'],
+)
+
+java_sources(
+  name = 'src',
+  srcs = SRCS,
+  visibility = ['//:'],
+)
+
+java_doc(
+  name = 'javadoc',
+  title = 'Blame Cache API Documentation',
+  pkgs = ['com.google.gitiles.blame'],
+  paths = ['blame-cache/src/main/java'],
+  srcs = SRCS,
+  deps = DEPS,
+  visibility = ['//:'],
+  do_it_wrong = True,
+)
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCache.java b/blame-cache/src/main/java/com/google/gitiles/blame/BlameCache.java
similarity index 100%
rename from gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCache.java
rename to blame-cache/src/main/java/com/google/gitiles/blame/BlameCache.java
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java b/blame-cache/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
similarity index 100%
rename from gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
rename to blame-cache/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/Region.java b/blame-cache/src/main/java/com/google/gitiles/blame/Region.java
similarity index 100%
rename from gitiles-servlet/src/main/java/com/google/gitiles/blame/Region.java
rename to blame-cache/src/main/java/com/google/gitiles/blame/Region.java
diff --git a/gitiles-dev/BUCK b/gitiles-dev/BUCK
index fe841a8..76775ed 100644
--- a/gitiles-dev/BUCK
+++ b/gitiles-dev/BUCK
@@ -2,6 +2,7 @@
   name = 'lib',
   srcs = glob(['src/main/java/**/*.java']),
   deps = [
+    '//blame-cache:lib',
     '//gitiles-servlet:servlet',
     '//lib:guava',
     '//lib:servlet-api_3_0',
diff --git a/gitiles-servlet/BUCK b/gitiles-servlet/BUCK
index 8a0de1f..81c06e2 100644
--- a/gitiles-servlet/BUCK
+++ b/gitiles-servlet/BUCK
@@ -1,6 +1,7 @@
 SRCS = glob(['src/main/java/**/*.java'])
 RSRC = glob(['src/main/resources/**/*'])
 DEPS = [
+  '//blame-cache:lib',
   '//lib:commons-lang',
   '//lib:grappa',
   '//lib:gson',