From e41e8f8c3bc9f5edab1d271464364f95620ece8c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 19 Nov 2015 17:55:38 -0500
Subject: [PATCH] Create filestore directory on startup

---
 src/main/java/com/gitblit/utils/ActivityUtils.java |   71 ++++++++---------------------------
 1 files changed, 17 insertions(+), 54 deletions(-)

diff --git a/src/main/java/com/gitblit/utils/ActivityUtils.java b/src/main/java/com/gitblit/utils/ActivityUtils.java
index ddd7e37..ab1dad9 100644
--- a/src/main/java/com/gitblit/utils/ActivityUtils.java
+++ b/src/main/java/com/gitblit/utils/ActivityUtils.java
@@ -15,9 +15,6 @@
  */
 package com.gitblit.utils;
 
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.lang.reflect.Type;
 import java.text.DateFormat;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
@@ -34,14 +31,13 @@
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.Repository;
 
-import com.gitblit.GitBlit;
+import com.gitblit.IStoredSettings;
 import com.gitblit.Keys;
+import com.gitblit.manager.IRepositoryManager;
 import com.gitblit.models.Activity;
-import com.gitblit.models.GravatarProfile;
 import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryCommit;
 import com.gitblit.models.RepositoryModel;
-import com.google.gson.reflect.TypeToken;
 
 /**
  * Utility class for building activity information from repositories.
@@ -55,6 +51,10 @@
 	 * Gets the recent activity from the repositories for the last daysBack days
 	 * on the specified branch.
 	 *
+	 * @param settings
+	 *            the runtime settings
+	 * @param repositoryManager
+	 *            the repository manager
 	 * @param models
 	 *            the list of repositories to query
 	 * @param daysBack
@@ -66,8 +66,13 @@
 	 *            the timezone for aggregating commits
 	 * @return
 	 */
-	public static List<Activity> getRecentActivity(List<RepositoryModel> models, int daysBack,
-			String objectId, TimeZone timezone) {
+	public static List<Activity> getRecentActivity(
+					IStoredSettings settings,
+					IRepositoryManager repositoryManager,
+					List<RepositoryModel> models,
+					int daysBack,
+					String objectId,
+					TimeZone timezone) {
 
 		// Activity panel shows last daysBack of activity across all
 		// repositories.
@@ -82,7 +87,7 @@
 
 		// aggregate author exclusions
 		Set<String> authorExclusions = new TreeSet<String>();
-		authorExclusions.addAll(GitBlit.getStrings(Keys.web.metricAuthorExclusions));
+		authorExclusions.addAll(settings.getStrings(Keys.web.metricAuthorExclusions));
 		for (RepositoryModel model : models) {
 			if (!ArrayUtils.isEmpty(model.metricAuthorExclusions)) {
 				authorExclusions.addAll(model.metricAuthorExclusions);
@@ -99,8 +104,7 @@
 				if (model.isCollectingGarbage) {
 					continue;
 				}
-				Repository repository = GitBlit.self()
-						.getRepository(model.name);
+				Repository repository = repositoryManager.getRepository(model.name);
 				List<String> branches = new ArrayList<String>();
 				if (StringUtils.isEmpty(objectId)) {
 					for (RefModel local : JGitUtils.getLocalBranches(
@@ -153,19 +157,6 @@
 	}
 
 	/**
-	 * Returns the Gravatar profile, if available, for the specified email
-	 * address.
-	 *
-	 * @param emailaddress
-	 * @return a Gravatar Profile
-	 * @throws IOException
-	 */
-	public static GravatarProfile getGravatarProfileFromAddress(String emailaddress)
-			throws IOException {
-		return getGravatarProfile(StringUtils.getMD5(emailaddress.toLowerCase()));
-	}
-
-	/**
 	 * Creates a Gravatar thumbnail url from the specified email address.
 	 *
 	 * @param email
@@ -178,7 +169,7 @@
 		if (width <= 0) {
 			width = 50;
 		}
-		String emailHash = StringUtils.getMD5(email);
+		String emailHash = StringUtils.getMD5(email.toLowerCase());
 		String url = MessageFormat.format(
 				"https://www.gravatar.com/avatar/{0}?s={1,number,0}&d=identicon", emailHash, width);
 		return url;
@@ -197,37 +188,9 @@
 		if (width <= 0) {
 			width = 50;
 		}
-		String emailHash = StringUtils.getMD5(email);
+		String emailHash = StringUtils.getMD5(email.toLowerCase());
 		String url = MessageFormat.format(
 				"https://www.gravatar.com/avatar/{0}?s={1,number,0}&d=mm", emailHash, width);
 		return url;
-	}
-
-	/**
-	 * Returns the Gravatar profile, if available, for the specified hashcode.
-	 * address.
-	 *
-	 * @param hash
-	 *            the hash of the email address
-	 * @return a Gravatar Profile
-	 * @throws IOException
-	 */
-	public static GravatarProfile getGravatarProfile(String hash) throws IOException {
-		String url = MessageFormat.format("https://www.gravatar.com/{0}.json", hash);
-		// Gravatar has a complex json structure
-		Type profileType = new TypeToken<Map<String, List<GravatarProfile>>>() {
-		}.getType();
-		Map<String, List<GravatarProfile>> profiles = null;
-		try {
-			profiles = JsonUtils.retrieveJson(url, profileType);
-		} catch (FileNotFoundException e) {
-		}
-		if (profiles == null || profiles.size() == 0) {
-			return null;
-		}
-		// due to the complex json structure we need to pull out the profile
-		// from a list 2 levels deep
-		GravatarProfile profile = profiles.values().iterator().next().get(0);
-		return profile;
 	}
 }

--
Gitblit v1.9.1