| | |
| | | */
|
| | | 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;
|
| | |
| | |
|
| | | 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;
|
| | |
| | | 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() {
|
| | |
| | | }
|
| | |
|
| | | // 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");
|
| | |
| | | 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);
|
| | |
| | | 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");
|
| | |
| | | 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
|