James Moger
2013-11-13 c44dd099a432094a12131cf60dfc8a19f5aa8101
src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -15,6 +15,10 @@
 */
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;
import org.apache.wicket.Request;
@@ -25,13 +29,17 @@
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.pages.ActivityPage;
import com.gitblit.wicket.pages.BasePage;
import com.gitblit.wicket.pages.BlamePage;
import com.gitblit.wicket.pages.BlobDiffPage;
import com.gitblit.wicket.pages.BlobPage;
import com.gitblit.wicket.pages.BranchesPage;
import com.gitblit.wicket.pages.CommitDiffPage;
import com.gitblit.wicket.pages.CommitPage;
import com.gitblit.wicket.pages.ComparePage;
import com.gitblit.wicket.pages.DocPage;
import com.gitblit.wicket.pages.DocsPage;
import com.gitblit.wicket.pages.FederationRegistrationPage;
import com.gitblit.wicket.pages.ForkPage;
@@ -42,24 +50,28 @@
import com.gitblit.wicket.pages.LogPage;
import com.gitblit.wicket.pages.LogoutPage;
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;
import com.gitblit.wicket.pages.TagPage;
import com.gitblit.wicket.pages.TagsPage;
import com.gitblit.wicket.pages.TicketPage;
import com.gitblit.wicket.pages.TicketsPage;
import com.gitblit.wicket.pages.TreePage;
import com.gitblit.wicket.pages.UserPage;
import com.gitblit.wicket.pages.UsersPage;
public class GitBlitWebApp extends WebApplication {
   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() {
@@ -85,7 +97,11 @@
      }
      // setup the standard gitweb-ish urls
      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");
      mount("/branches", BranchesPage.class, "r");
@@ -96,6 +112,7 @@
      mount("/raw", RawPage.class, "r", "h", "f");
      mount("/blobdiff", BlobDiffPage.class, "r", "h", "f");
      mount("/commitdiff", CommitDiffPage.class, "r", "h");
      mount("/compare", ComparePage.class, "r", "h");
      mount("/patch", PatchPage.class, "r", "h", "f");
      mount("/history", HistoryPage.class, "r", "h", "f");
      mount("/search", GitSearchPage.class);
@@ -104,13 +121,9 @@
      mount("/users", UsersPage.class);
      mount("/logout", LogoutPage.class);
      // setup ticket urls
      mount("/tickets", TicketsPage.class, "r");
      mount("/ticket", TicketPage.class, "r", "f");
      // setup the markdown urls
      // setup the markup document urls
      mount("/docs", DocsPage.class, "r");
      mount("/markdown", MarkdownPage.class, "r", "h", "f");
      mount("/doc", DocPage.class, "r", "h", "f");
      // federation urls
      mount("/proposal", ReviewProposalPage.class, "t");
@@ -134,16 +147,36 @@
         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
   public Class<? extends Page> getHomePage() {
      return RepositoriesPage.class;
      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) {
      return new GitBlitWebSession(request);
      GitBlitWebSession gitBlitWebSession = new GitBlitWebSession(request);
      String forcedLocale = GitBlit.getString(Keys.web.forceDefaultLocale, null);
      if (!StringUtils.isEmpty(forcedLocale)) {
         gitBlitWebSession.setLocale(new Locale(forcedLocale));
      }
      return gitBlitWebSession;
   }
   @Override