Revert "ConfigUtil: add method to populate an existing CacheBuilder"

CacheBuilder has some frustrating state checking to make sure values
are set only once. This means setting values in the config that are
already set in the passed-in CacheBuilder fails with an
IllegalStateException.

Callers unfortunately have to go back to reading only from the config.

This reverts commit 886ed4726d5bbb00d0c8c515c13a0d346e63acee.

Change-Id: I713f46bffb7dc9b646e9a9acfa8223283f51f5ad
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java b/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
index a5289b0..4f8733b 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
@@ -102,19 +102,7 @@
    * @return a new cache builder.
    */
   public static CacheBuilder<Object, Object> getCacheBuilder(Config config, String name) {
-    return getCacheBuilder(CacheBuilder.newBuilder(), config, name);
-  }
-
-  /**
-   * Populate an existing {@link CacheBuilder} from a config.
-   *
-   * @param b cache builder.
-   * @param config JGit config object.
-   * @param name name of the cache subsection under the "cache" section.
-   * @return input cache builder after modifications.
-   */
-  public static <K, V> CacheBuilder<K, V> getCacheBuilder(CacheBuilder<K, V> b, Config config,
-      String name) {
+    CacheBuilder<Object, Object> b = CacheBuilder.newBuilder();
     try {
       if (config.getString("cache", name, "maximumWeight") != null) {
         b.maximumWeight(config.getLong("cache", name, "maximumWeight", 20 << 20));
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java
index e0a9d76..5c765d8 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java
@@ -383,8 +383,8 @@
   private void setDefaultVisibilityCache() {
     if (visibilityCache == null) {
       if (config.getSubsections("cache").contains("visibility")) {
-        visibilityCache = new VisibilityCache(
-            false, ConfigUtil.getCacheBuilder(VisibilityCache.newBuilder(), config, "visibility"));
+        visibilityCache =
+            new VisibilityCache(false, ConfigUtil.getCacheBuilder(config, "visibility"));
       } else {
         visibilityCache = new VisibilityCache(false);
       }
@@ -394,8 +394,7 @@
   private void setDefaultTimeCache() {
     if (timeCache == null) {
       if (config.getSubsections("cache").contains("tagTime")) {
-        timeCache = new TimeCache(
-            ConfigUtil.getCacheBuilder(TimeCache.newBuilder(), config, "tagTime"));
+        timeCache = new TimeCache(ConfigUtil.getCacheBuilder(config, "tagTime"));
       } else {
         timeCache = new TimeCache();
       }
@@ -405,8 +404,7 @@
   private void setDefaultBlameCache() {
     if (blameCache == null) {
       if (config.getSubsections("cache").contains("blame")) {
-        blameCache = new BlameCacheImpl(
-            ConfigUtil.getCacheBuilder(BlameCacheImpl.newBuilder(), config, "blame"));
+        blameCache = new BlameCacheImpl(ConfigUtil.getCacheBuilder(config, "blame"));
       } else {
         blameCache = new BlameCacheImpl();
       }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
index 0f0f662..4cbe60c 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/blame/BlameCacheImpl.java
@@ -88,7 +88,7 @@
     return cache;
   }
 
-  public BlameCacheImpl(CacheBuilder<Key, List<Region>> builder) {
+  public BlameCacheImpl(CacheBuilder<? super Key, ? super List<Region>> builder) {
     this.cache = builder.build(new CacheLoader<Key, List<Region>>() {
       @Override
       public List<Region> load(Key key) throws IOException {