From a5c69b6b7070c7cac977f2e837e81a17a208b3d5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 15 Nov 2013 16:43:38 -0500 Subject: [PATCH] Improve pages servlet --- src/main/java/com/gitblit/wicket/GitBlitWebApp.java | 34 +++++++++++++++++++++++----------- 1 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java index cdae093..9adbb94 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java +++ b/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; @@ -37,6 +39,7 @@ 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; @@ -47,7 +50,6 @@ 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; @@ -61,8 +63,6 @@ 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; @@ -70,7 +70,9 @@ 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(); @@ -119,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"); @@ -149,13 +147,27 @@ 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 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); -- Gitblit v1.9.1