From b23b67c1cc0b2541580f23c9aec97c0b84a823f4 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 21 Feb 2014 09:56:37 -0500
Subject: [PATCH] Select default/configured gc period in create/edit repository page

---
 src/main/java/com/gitblit/FederationClient.java |   80 ++++++++++++++++++++++++++++++++++------
 1 files changed, 68 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/gitblit/FederationClient.java b/src/main/java/com/gitblit/FederationClient.java
index eae6b94..4f4b00b 100644
--- a/src/main/java/com/gitblit/FederationClient.java
+++ b/src/main/java/com/gitblit/FederationClient.java
@@ -17,13 +17,22 @@
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.ParameterException;
 import com.beust.jcommander.Parameters;
+import com.gitblit.manager.FederationManager;
+import com.gitblit.manager.GitblitManager;
+import com.gitblit.manager.IGitblit;
+import com.gitblit.manager.INotificationManager;
+import com.gitblit.manager.RepositoryManager;
+import com.gitblit.manager.RuntimeManager;
+import com.gitblit.manager.UserManager;
 import com.gitblit.models.FederationModel;
+import com.gitblit.service.FederationPullService;
 import com.gitblit.utils.FederationUtils;
 import com.gitblit.utils.StringUtils;
 
@@ -53,7 +62,7 @@
 		}
 
 		File regFile = com.gitblit.utils.FileUtils.resolveParameter(Constants.baseFolder$, baseFolder, params.registrationsFile);
-		IStoredSettings settings = new FileSettings(regFile.getAbsolutePath());
+		FileSettings settings = new FileSettings(regFile.getAbsolutePath());
 		List<FederationModel> registrations = new ArrayList<FederationModel>();
 		if (StringUtils.isEmpty(params.url)) {
 			registrations.addAll(FederationUtils.getFederationRegistrations(settings));
@@ -83,14 +92,23 @@
 		}
 
 		// configure the Gitblit singleton for minimal, non-server operation
-		GitBlit gitblit = new GitBlit(settings, baseFolder);
-		gitblit.configureContext(settings, baseFolder, false);
-		FederationPullExecutor executor = new FederationPullExecutor(registrations, params.isDaemon);
-		executor.run();
-		if (!params.isDaemon) {
-			System.out.println("Finished.");
-			System.exit(0);
-		}
+		RuntimeManager runtime = new RuntimeManager(settings, baseFolder).start();
+		NoopNotificationManager notifications = new NoopNotificationManager().start();
+		UserManager users = new UserManager(runtime).start();
+		RepositoryManager repositories = new RepositoryManager(runtime, users).start();
+		FederationManager federation = new FederationManager(runtime, notifications, repositories).start();
+		IGitblit gitblit = new GitblitManager(runtime, notifications, users, null, repositories, null, federation);
+
+		FederationPullService puller = new FederationPullService(gitblit, federation.getFederationRegistrations()) {
+			@Override
+			public void reschedule(FederationModel registration) {
+				// NOOP
+			}
+		};
+		puller.run();
+
+		System.out.println("Finished.");
+		System.exit(0);
 	}
 
 	private static void usage(JCommander jc, ParameterException t) {
@@ -116,9 +134,6 @@
 		@Parameter(names = { "--registrations" }, description = "Gitblit Federation Registrations File", required = false)
 		public String registrationsFile = "${baseFolder}/federation.properties";
 
-		@Parameter(names = { "--daemon" }, description = "Runs in daemon mode to schedule and pull repositories", required = false)
-		public boolean isDaemon;
-
 		@Parameter(names = { "--url" }, description = "URL of Gitblit instance to mirror from", required = false)
 		public String url;
 
@@ -141,4 +156,45 @@
 		public String repositoriesFolder;
 
 	}
+
+	private static class NoopNotificationManager implements INotificationManager {
+
+		@Override
+		public NoopNotificationManager start() {
+			return this;
+		}
+
+		@Override
+		public NoopNotificationManager stop() {
+			return this;
+		}
+
+		@Override
+		public void sendMailToAdministrators(String subject, String message) {
+		}
+
+		@Override
+		public void sendMail(String subject, String message, Collection<String> toAddresses) {
+		}
+
+		@Override
+		public void sendMail(String subject, String message, String... toAddresses) {
+		}
+
+		@Override
+		public void sendHtmlMail(String subject, String message, Collection<String> toAddresses) {
+		}
+
+		@Override
+		public void sendHtmlMail(String subject, String message, String... toAddresses) {
+		}
+
+		@Override
+		public void sendHtmlMail(String from, String subject, String message, Collection<String> toAddresses) {
+		}
+
+		@Override
+		public void sendHtmlMail(String from, String subject, String message, String... toAddresses) {
+		}
+	}
 }

--
Gitblit v1.9.1