Get Config for a request from the GitilesAccess Allow for per-repo configuration by reading config values on each request rather than in servlet constructors. Reading a single config value is cheap enough, but parsing configs from the on-disk format is potentially expensive; leave this optimization up to the GitilesAccess implementation. Currently, in DefaultAccess, we just pass in the global config, no per-repo config. This is simple expediency because Config objects don't trivially support merging multiple configs except by "inheritance". Because of the way we were caching per-config maps of extension to ArchiveFormat, this requires some more substantial refactoring to that class and ArchiveServlet. Change-Id: Ia1fcf97ecc71571537402629f49e8a65128a105e
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/TestGitilesAccess.java b/gitiles-servlet/src/test/java/com/google/gitiles/TestGitilesAccess.java index a511d40..50877ba 100644 --- a/gitiles-servlet/src/test/java/com/google/gitiles/TestGitilesAccess.java +++ b/gitiles-servlet/src/test/java/com/google/gitiles/TestGitilesAccess.java
@@ -16,15 +16,16 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.collect.ImmutableMap; + +import org.eclipse.jgit.internal.storage.dfs.DfsRepository; +import org.eclipse.jgit.lib.Config; + import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; -import org.eclipse.jgit.internal.storage.dfs.DfsRepository; - -import com.google.common.collect.ImmutableMap; - /** Gitiles access for testing. */ public class TestGitilesAccess implements GitilesAccess.Factory { private final DfsRepository repo; @@ -65,6 +66,11 @@ d.cloneUrl = TestGitilesUrls.URLS.getBaseGitUrl(req) + "/" + d.name; return d; } + + @Override + public Config getConfig() { + return new Config(); + } }; } }