James Moger
2013-09-30 699e71e76b15081baf746c6ce9c9144f7e5f1ff9
src/main/java/com/gitblit/utils/CommitCache.java
@@ -35,36 +35,36 @@
/**
 * Caches repository commits for re-use in the dashboard and activity pages.
 *
 *
 * @author James Moger
 *
 */
public class CommitCache {
   private static final CommitCache instance;
   protected final Logger logger = LoggerFactory.getLogger(getClass());
   protected final Map<String, ObjectCache<List<RepositoryCommit>>> cache;
   protected int cacheDays = -1;
   public static CommitCache instance() {
      return instance;
   }
   static {
      instance = new CommitCache();
   }
   protected CommitCache() {
      cache = new ConcurrentHashMap<String, ObjectCache<List<RepositoryCommit>>>();
   }
   /**
    * Returns the cutoff date for the cache.  Commits after this date are cached.
    * Commits before this date are not cached.
    *
    *
    * @return
    */
   public Date getCutoffDate() {
@@ -77,28 +77,28 @@
      cal.add(Calendar.DATE, -1*cacheDays);
      return cal.getTime();
   }
   /**
    * Sets the number of days to cache.
    *
    *
    * @param days
    */
   public synchronized void setCacheDays(int days) {
      this.cacheDays = days;
      clear();
   }
   /**
    * Clears the entire commit cache.
    *
    *
    */
   public void clear() {
      cache.clear();
   }
   /**
    * Clears the commit cache for a specific repository.
    *
    *
    * @param repositoryName
    */
   public void clear(String repositoryName) {
@@ -108,10 +108,10 @@
         logger.info(MessageFormat.format("{0} commit cache cleared", repositoryName));
      }
   }
   /**
    * Clears the commit cache for a specific branch of a specific repository.
    *
    *
    * @param repositoryName
    * @param branch
    */
@@ -125,10 +125,10 @@
         }
      }
   }
   /**
    * Get all commits for the specified repository:branch that are in the cache.
    *
    *
    * @param repositoryName
    * @param repository
    * @param branch
@@ -137,12 +137,12 @@
   public List<RepositoryCommit> getCommits(String repositoryName, Repository repository, String branch) {
      return getCommits(repositoryName, repository, branch, getCutoffDate());
   }
   /**
    * Get all commits for the specified repository:branch since a specific date.
    * These commits may be retrieved from the cache if the sinceDate is after
    * the cacheCutoffDate.
    *
    *
    * @param repositoryName
    * @param repository
    * @param branch
@@ -159,13 +159,13 @@
         if (!cache.containsKey(repoKey)) {
            cache.put(repoKey, new ObjectCache<List<RepositoryCommit>>());
         }
         ObjectCache<List<RepositoryCommit>> repoCache = cache.get(repoKey);
         String branchKey = branch.toLowerCase();
         RevCommit tip = JGitUtils.getCommit(repository, branch);
         Date tipDate = JGitUtils.getCommitDate(tip);
         List<RepositoryCommit> commits;
         if (!repoCache.hasCurrent(branchKey, tipDate)) {
            commits = repoCache.getObject(branchKey);
@@ -193,7 +193,7 @@
            // update cache
            repoCache.updateObject(branchKey, tipDate, commits);
         }
         if (sinceDate.equals(cacheCutoffDate)) {
            list = commits;
         } else {
@@ -210,10 +210,10 @@
      }
      return list;
   }
   /**
    * Returns a list of commits for the specified repository branch.
    *
    * Returns a list of commits for the specified repository branch.
    *
    * @param repositoryName
    * @param repository
    * @param branch
@@ -230,10 +230,10 @@
      }
      return commits;
   }
   /**
    * Returns a list of commits for the specified repository branch since the specified commit.
    *
    * Returns a list of commits for the specified repository branch since the specified commit.
    *
    * @param repositoryName
    * @param repository
    * @param branch
@@ -250,10 +250,10 @@
      }
      return commits;
   }
   /**
    * Reduces the list of commits to those since the specified date.
    *
    *
    * @param commits
    * @param sinceDate
    * @return  a list of commits