From 79dd0bddbd939c85f002f3a33b95ae84d0bf38cb Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 24 Jun 2013 09:36:19 -0400
Subject: [PATCH] Implemented commit cache for the dashboards, activity, and project pages

---
 src/main/java/com/gitblit/models/Activity.java |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/gitblit/models/Activity.java b/src/main/java/com/gitblit/models/Activity.java
index 547c348..8af86d6 100644
--- a/src/main/java/com/gitblit/models/Activity.java
+++ b/src/main/java/com/gitblit/models/Activity.java
@@ -103,14 +103,28 @@
 	 */
 	public RepositoryCommit addCommit(String repository, String branch, RevCommit commit) {
 		RepositoryCommit commitModel = new RepositoryCommit(repository, branch, commit);
+		return addCommit(commitModel);
+	}
+
+	/**
+	 * Adds a commit to the activity object as long as the commit is not a
+	 * duplicate.
+	 * 
+	 * @param repository
+	 * @param branch
+	 * @param commit
+	 * @return a RepositoryCommit, if one was added. Null if this is duplicate
+	 *         commit
+	 */
+	public RepositoryCommit addCommit(RepositoryCommit commitModel) {
 		if (commits.add(commitModel)) {
-			String author = StringUtils.removeNewlines(commit.getAuthorIdent().getName());
+			String author = StringUtils.removeNewlines(commitModel.getAuthorIdent().getName());
 			String authorName = author.toLowerCase();
-			String authorEmail = StringUtils.removeNewlines(commit.getAuthorIdent().getEmailAddress()).toLowerCase();
-			if (!repositoryMetrics.containsKey(repository)) {
-				repositoryMetrics.put(repository, new Metric(repository));
+			String authorEmail = StringUtils.removeNewlines(commitModel.getAuthorIdent().getEmailAddress()).toLowerCase();
+			if (!repositoryMetrics.containsKey(commitModel.repository)) {
+				repositoryMetrics.put(commitModel.repository, new Metric(commitModel.repository));
 			}
-			repositoryMetrics.get(repository).count++;
+			repositoryMetrics.get(commitModel.repository).count++;
 
 			if (!authorExclusions.contains(authorName) && !authorExclusions.contains(authorEmail)) {
 				if (!authorMetrics.containsKey(author)) {
@@ -122,7 +136,7 @@
 		}
 		return null;
 	}
-	
+
 	public int getCommitCount() {
 		return commits.size();
 	}

--
Gitblit v1.9.1