Make site title configurable in gitiles.config

Change-Id: I1cd3445691f77c2368b566b422bf990c5f0690fd
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/DebugRenderer.java b/gitiles-servlet/src/main/java/com/google/gitiles/DebugRenderer.java
index e56518a..366191a 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/DebugRenderer.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/DebugRenderer.java
@@ -28,7 +28,7 @@
 /** Renderer that reloads Soy templates from the filesystem on every request. */
 public class DebugRenderer extends Renderer {
   public DebugRenderer(String staticPrefix, String customTemplatesFilename,
-      final String soyTemplatesRoot) {
+      final String soyTemplatesRoot, String siteTitle) {
     super(
         new Function<String, URL>() {
           @Override
@@ -37,7 +37,7 @@
           }
         },
         ImmutableMap.<String, String> of(), staticPrefix,
-        toFileURL(customTemplatesFilename));
+        toFileURL(customTemplatesFilename), siteTitle);
   }
 
   @Override
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/DefaultRenderer.java b/gitiles-servlet/src/main/java/com/google/gitiles/DefaultRenderer.java
index f4bd1fb..e2eef7c 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/DefaultRenderer.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/DefaultRenderer.java
@@ -28,14 +28,15 @@
   private final SoyTofu tofu;
 
   DefaultRenderer() {
-    this("", null);
+    this("", null, "");
   }
 
-  public DefaultRenderer(String staticPrefix, URL customTemplates) {
-    this(ImmutableMap.<String, String> of(), staticPrefix, customTemplates);
+  public DefaultRenderer(String staticPrefix, URL customTemplates, String siteTitle) {
+    this(ImmutableMap.<String, String> of(), staticPrefix, customTemplates, siteTitle);
   }
 
-  public DefaultRenderer(Map<String, String> globals, String staticPrefix, URL customTemplates) {
+  public DefaultRenderer(Map<String, String> globals, String staticPrefix, URL customTemplates,
+      String siteTitle) {
     super(
         new Function<String, URL>() {
           @Override
@@ -43,7 +44,7 @@
             return Resources.getResource(Renderer.class, "templates/" + name);
           }
         },
-        globals, staticPrefix, customTemplates);
+        globals, staticPrefix, customTemplates, siteTitle);
     SoyFileSet.Builder builder = new SoyFileSet.Builder()
         .setCompileTimeGlobals(this.globals);
     for (URL template : templates) {
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 dd8905e..e2cc699 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesFilter.java
@@ -21,6 +21,7 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
+import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.LinkedListMultimap;
 import com.google.common.collect.ListMultimap;
@@ -282,14 +283,17 @@
     if (renderer == null) {
       String staticPrefix = config.getServletContext().getContextPath() + STATIC_PREFIX;
       String customTemplates = jgitConfig.getString("gitiles", null, "customTemplates");
+      String siteTitle = Objects.firstNonNull(jgitConfig.getString("gitiles", null, "siteTitle"),
+          "Gitiles");
       // TODO(dborowitz): Automatically set to true when run with mvn jetty:run.
       if (jgitConfig.getBoolean("gitiles", null, "reloadTemplates", false)) {
         renderer = new DebugRenderer(staticPrefix, customTemplates,
             Joiner.on(File.separatorChar).join(System.getProperty("user.dir"),
                 "gitiles-servlet", "src", "main", "resources",
-                "com", "google", "gitiles", "templates"));
+                "com", "google", "gitiles", "templates"), siteTitle);
       } else {
-        renderer = new DefaultRenderer(staticPrefix, Renderer.toFileURL(customTemplates));
+        renderer = new DefaultRenderer(staticPrefix, Renderer.toFileURL(customTemplates),
+            siteTitle);
       }
     }
     if (urls == null) {
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java b/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
index 42ce635..dc4f680 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
@@ -65,7 +65,7 @@
   protected ImmutableMap<String, String> globals;
 
   protected Renderer(Function<String, URL> resourceMapper, Map<String, String> globals,
-      String staticPrefix, URL customTemplates) {
+      String staticPrefix, URL customTemplates, String siteTitle) {
     checkNotNull(staticPrefix, "staticPrefix");
     List<URL> allTemplates = Lists.newArrayListWithCapacity(SOY_FILENAMES.size() + 1);
     for (String filename : SOY_FILENAMES) {
@@ -82,6 +82,7 @@
     for (Map.Entry<String, String> e : STATIC_URL_GLOBALS.entrySet()) {
       allGlobals.put(e.getKey(), staticPrefix + e.getValue());
     }
+    allGlobals.put("gitiles.SITE_TITLE", siteTitle);
     allGlobals.putAll(globals);
     this.globals = ImmutableMap.copyOf(allGlobals);
   }
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy
index 4297d31..908f2fd 100644
--- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy
+++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy
@@ -36,7 +36,7 @@
     {if $repositoryName}
       {sp}- {$repositoryName}
     {/if}
-    {sp}- {msg desc="name of the application"}Git at Google{/msg}
+    {sp}- {msg desc="name of the application"}{gitiles.SITE_TITLE}{/msg}
   </title>
   <link rel="stylesheet" type="text/css" href="//www.google.com/css/go.css" />