From f14f761a9fbebb41a93e54880513ac6a5cdd1c16 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 18 Oct 2011 22:41:50 -0400
Subject: [PATCH] Management of registrations. Usability improvements.

---
 src/com/gitblit/build/Build.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/src/com/gitblit/build/Build.java b/src/com/gitblit/build/Build.java
index c4f373e..7bba526 100644
--- a/src/com/gitblit/build/Build.java
+++ b/src/com/gitblit/build/Build.java
@@ -49,6 +49,10 @@
  */
 public class Build {
 
+	public interface DownloadListener {
+		public void downloading(String name);
+	}
+
 	/**
 	 * BuildType enumeration representing compile-time or runtime. This is used
 	 * to download dependencies either for Gitblit GO runtime or for setting up
@@ -57,6 +61,8 @@
 	public static enum BuildType {
 		RUNTIME, COMPILETIME;
 	}
+
+	private static DownloadListener downloadListener;
 
 	public static void main(String... args) {
 		runtime();
@@ -115,7 +121,7 @@
 		// needed for site publishing
 		downloadFromApache(MavenObject.COMMONSNET, BuildType.RUNTIME);
 	}
-	
+
 	public static void federationClient() {
 		downloadFromApache(MavenObject.JCOMMANDER, BuildType.RUNTIME);
 		downloadFromApache(MavenObject.SERVLET, BuildType.RUNTIME);
@@ -125,7 +131,17 @@
 		downloadFromApache(MavenObject.LOG4J, BuildType.RUNTIME);
 		downloadFromApache(MavenObject.GSON, BuildType.RUNTIME);
 		downloadFromApache(MavenObject.JSCH, BuildType.RUNTIME);
-		
+
+		downloadFromEclipse(MavenObject.JGIT, BuildType.RUNTIME);
+	}
+
+	public static void manager(DownloadListener listener) {
+		downloadListener = listener;
+		downloadFromApache(MavenObject.SLF4JAPI, BuildType.RUNTIME);
+		downloadFromApache(MavenObject.SLF4JNOP, BuildType.RUNTIME);
+		downloadFromApache(MavenObject.GSON, BuildType.RUNTIME);
+		downloadFromApache(MavenObject.JSCH, BuildType.RUNTIME);
+
 		downloadFromEclipse(MavenObject.JGIT, BuildType.RUNTIME);
 	}
 
@@ -273,6 +289,9 @@
 					throw new RuntimeException("Failed to create destination folder structure!");
 				}
 			}
+			if (downloadListener != null) {
+				downloadListener.downloading(mo.name + "...");
+			}
 			ByteArrayOutputStream buff = new ByteArrayOutputStream();
 			try {
 				URL url = new URL(mavenURL);
@@ -293,10 +312,17 @@
 					if (progress - lastProgress >= 0.1f) {
 						lastProgress = progress;
 						updateDownload(progress, targetFile);
+						if (downloadListener != null) {
+							int percent = Math.round(100 * progress);
+							downloadListener.downloading(mo.name + " (" + percent + "%)");
+						}
 					}
 				}
 				in.close();
 				updateDownload(1f, targetFile);
+				if (downloadListener != null) {
+					downloadListener.downloading(mo.name + " (100%)");
+				}
 
 			} catch (IOException e) {
 				throw new RuntimeException("Error downloading " + mavenURL + " to " + targetFile, e);
@@ -372,6 +398,12 @@
 				"46a386136c901748e6a3af67ebde6c22bc6b4524",
 				"e223571d77769cdafde59040da235842f3326453");
 
+		public static final MavenObject SLF4JNOP = new MavenObject("SLF4J NOP", "org/slf4j",
+				"slf4j-nop", "1.6.1", 4800, 4100, 32300,
+				"70249094d4e5653b6bdfea46f3a1a4165c1e1993",
+				"4a8e77f7bf6897a3c3b7fc3acb4c862dfb905baa",
+				"24b2b46f9025f2db53b5b32143f7832538fa3178");
+
 		public static final MavenObject SLF4LOG4J = new MavenObject("SLF4J LOG4J", "org/slf4j",
 				"slf4j-log4j12", "1.6.1", 9800, 9500, 52400,
 				"bd245d6746cdd4e6203e976e21d597a46f115802",
@@ -411,10 +443,10 @@
 				237000, 0, 0, "c94f54227b08100974c36170dcb53329435fe5ad", "", "");
 
 		public static final MavenObject MARKDOWNPAPERS = new MavenObject("MarkdownPapers",
-				"org/tautua/markdownpapers", "markdownpapers-core", "1.1.1", 87000, 58000, 278000,
-				"07046e6d8f33866398dfc3955698925df9ff7719",
-				"178b49c34dbab6301ce848b67e7957bcf9b94d6a",
-				"160d370f6cb119a1b46a00f37cc28d23fd27daed");
+				"org/tautua/markdownpapers", "markdownpapers-core", "1.2.4", 87000, 58000, 268000,
+				"cc45684d12399487e49bd1e9eee0af6ab58f3ddc",
+				"5c6f0e5ad6ef00b8c9a06e822eb88893cd07ec1b",
+				"1d4c843cb6f44c9ed776ba7ccaa95ffcaf521061");
 
 		public static final MavenObject BOUNCYCASTLE = new MavenObject("BouncyCastle",
 				"org/bouncycastle", "bcprov-jdk16", "1.46", 1900000, 1400000, 4670000,

--
Gitblit v1.9.1