From a7db5748622e1b322b67fbbd72aed4e6efff7690 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 19 Jul 2013 10:50:32 -0400 Subject: [PATCH] Implemented optional page caching --- src/main/java/com/gitblit/wicket/pages/RepositoryPage.java | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java index 372b68d..f5b8c96 100644 --- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java @@ -19,6 +19,7 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -63,6 +64,7 @@ import com.gitblit.utils.RefLogUtils; import com.gitblit.utils.StringUtils; import com.gitblit.utils.TicgitUtils; +import com.gitblit.wicket.CacheControl; import com.gitblit.wicket.GitBlitWebSession; import com.gitblit.wicket.PageRegistration; import com.gitblit.wicket.PageRegistration.OtherPageLink; @@ -572,6 +574,30 @@ setupPage(repositoryName, "/ " + getPageName()); super.onBeforeRender(); } + + @Override + protected void setLastModified() { + if (getClass().isAnnotationPresent(CacheControl.class)) { + CacheControl cacheControl = getClass().getAnnotation(CacheControl.class); + switch (cacheControl.value()) { + case REPOSITORY: + RepositoryModel repository = getRepositoryModel(); + if (repository != null) { + setLastModified(repository.lastChange); + } + break; + case COMMIT: + RevCommit commit = getCommit(); + if (commit != null) { + Date commitDate = JGitUtils.getCommitDate(commit); + setLastModified(commitDate); + } + break; + default: + super.setLastModified(); + } + } + } protected PageParameters newRepositoryParameter() { return WicketUtils.newRepositoryParameter(repositoryName); -- Gitblit v1.9.1