Florian Zschocke
2013-08-15 69007029f122c3f77db044e879188cc12be3c2f6
src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -15,7 +15,9 @@
 */
package com.gitblit.wicket;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.apache.wicket.Application;
import org.apache.wicket.Page;
@@ -49,11 +51,13 @@
import com.gitblit.wicket.pages.LuceneSearchPage;
import com.gitblit.wicket.pages.MarkdownPage;
import com.gitblit.wicket.pages.MetricsPage;
import com.gitblit.wicket.pages.MyDashboardPage;
import com.gitblit.wicket.pages.OverviewPage;
import com.gitblit.wicket.pages.PatchPage;
import com.gitblit.wicket.pages.ProjectPage;
import com.gitblit.wicket.pages.ProjectsPage;
import com.gitblit.wicket.pages.RawPage;
import com.gitblit.wicket.pages.ReflogPage;
import com.gitblit.wicket.pages.RepositoriesPage;
import com.gitblit.wicket.pages.ReviewProposalPage;
import com.gitblit.wicket.pages.SummaryPage;
@@ -67,7 +71,9 @@
public class GitBlitWebApp extends WebApplication {
   public final static Class<? extends BasePage> HOME_PAGE_CLASS = RepositoriesPage.class;
   public final static Class<? extends BasePage> HOME_PAGE_CLASS = MyDashboardPage.class;
   private final Map<String, CacheControl> cacheablePages = new HashMap<String, CacheControl>();
   
   @Override
   public void init() {
@@ -93,9 +99,10 @@
      }
      // setup the standard gitweb-ish urls
//      mount("/repositories", RepositoriesPage.class);
      mount("/repositories", RepositoriesPage.class);
      mount("/overview", OverviewPage.class, "r", "h");
      mount("/summary", SummaryPage.class, "r");
      mount("/reflog", ReflogPage.class, "r", "h");
      mount("/commits", LogPage.class, "r", "h");
      mount("/log", LogPage.class, "r", "h");
      mount("/tags", TagsPage.class, "r");
@@ -146,6 +153,12 @@
         parameters = new String[] {};
      }
      mount(new GitblitParamUrlCodingStrategy(location, clazz, parameters));
      // map the mount point to the cache control definition
      if (clazz.isAnnotationPresent(CacheControl.class)) {
         CacheControl cacheControl = clazz.getAnnotation(CacheControl.class);
         cacheablePages.put(location.substring(1), cacheControl);
      }
   }
   @Override
@@ -153,6 +166,14 @@
      return HOME_PAGE_CLASS;
   }
   
   public boolean isCacheablePage(String mountPoint) {
      return cacheablePages.containsKey(mountPoint);
   }
   public CacheControl getCacheControl(String mountPoint) {
      return cacheablePages.get(mountPoint);
   }
   @Override
   public final Session newSession(Request request, Response response) {
      GitBlitWebSession gitBlitWebSession = new GitBlitWebSession(request);