From 7847af6e63e7adef6ec8d99a1809e91472d2bc2d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 05 Sep 2013 09:14:22 -0400 Subject: [PATCH] Restore blockpush and localclone hooks to binaries (issue-303) --- src/main/java/com/gitblit/wicket/GitBlitWebApp.java | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java index 2300d0f..74ccac7 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java +++ b/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,16 @@ 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.DocsPage; import com.gitblit.wicket.pages.FederationRegistrationPage; import com.gitblit.wicket.pages.ForkPage; @@ -44,10 +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; @@ -61,6 +71,10 @@ 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() { super.init(); @@ -85,7 +99,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 +114,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); @@ -134,16 +153,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 -- Gitblit v1.9.1