From 79dd0bddbd939c85f002f3a33b95ae84d0bf38cb Mon Sep 17 00:00:00 2001 From: James Moger Date: Mon, 24 Jun 2013 09:36:19 -0400 Subject: Implemented commit cache for the dashboards, activity, and project pages --- src/main/java/com/gitblit/models/Activity.java | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/gitblit/models/Activity.java') diff --git a/src/main/java/com/gitblit/models/Activity.java b/src/main/java/com/gitblit/models/Activity.java index 547c348f..8af86d61 100644 --- a/src/main/java/com/gitblit/models/Activity.java +++ b/src/main/java/com/gitblit/models/Activity.java @@ -103,14 +103,28 @@ public class Activity implements Serializable, Comparable { */ 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 @@ public class Activity implements Serializable, Comparable { } return null; } - + public int getCommitCount() { return commits.size(); } -- cgit v1.2.3