From 4fcac9d2cbdafb51e3ee9ca3b3da64fd86103174 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 26 Nov 2013 15:58:15 -0500
Subject: [PATCH] Remove artifact setting from manager dialog

---
 src/main/java/com/gitblit/GitBlit.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index f313b6e..f191d6a 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -164,7 +164,7 @@
 
 	private final Logger logger = LoggerFactory.getLogger(GitBlit.class);
 
-	private final ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(5);
+	private final ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(10);
 
 	private final List<FederationModel> federationRegistrations = Collections
 			.synchronizedList(new ArrayList<FederationModel>());
@@ -206,6 +206,8 @@
 	private LuceneExecutor luceneExecutor;
 
 	private GCExecutor gcExecutor;
+
+	private MirrorExecutor mirrorExecutor;
 
 	private TimeZone timezone;
 
@@ -2004,7 +2006,6 @@
 			model.description = getConfig(config, "description", "");
 			model.originRepository = getConfig(config, "originRepository", null);
 			model.addOwners(ArrayUtils.fromString(getConfig(config, "owner", "")));
-			model.useDocs = getConfig(config, "useDocs", false);
 			model.useIncrementalPushTags = getConfig(config, "useIncrementalPushTags", false);
 			model.incrementalPushTagPrefix = getConfig(config, "incrementalPushTagPrefix", null);
 			model.allowForks = getConfig(config, "allowForks", true);
@@ -2035,6 +2036,7 @@
 			model.origin = config.getString("remote", "origin", "url");
 			if (model.origin != null) {
 				model.origin = model.origin.replace('\\', '/');
+				model.isMirror = config.getBoolean("remote", "origin", "mirror", false);
 			}
 			model.preReceiveScripts = new ArrayList<String>(Arrays.asList(config.getStringList(
 					Constants.CONFIG_GITBLIT, null, "preReceiveScript")));
@@ -2563,7 +2565,6 @@
 		config.setString(Constants.CONFIG_GITBLIT, null, "description", repository.description);
 		config.setString(Constants.CONFIG_GITBLIT, null, "originRepository", repository.originRepository);
 		config.setString(Constants.CONFIG_GITBLIT, null, "owner", ArrayUtils.toString(repository.owners));
-		config.setBoolean(Constants.CONFIG_GITBLIT, null, "useDocs", repository.useDocs);
 		config.setBoolean(Constants.CONFIG_GITBLIT, null, "useIncrementalPushTags", repository.useIncrementalPushTags);
 		if (StringUtils.isEmpty(repository.incrementalPushTagPrefix) ||
 				repository.incrementalPushTagPrefix.equals(settings.getString(Keys.git.defaultIncrementalPushTagPrefix, "r"))) {
@@ -3505,6 +3506,7 @@
 		mailExecutor = new MailExecutor(settings);
 		luceneExecutor = new LuceneExecutor(settings, repositoriesFolder);
 		gcExecutor = new GCExecutor(settings);
+		mirrorExecutor = new MirrorExecutor(settings);
 
 		// initialize utilities
 		String prefix = settings.getString(Keys.git.userRepositoryPrefix, "~");
@@ -3544,6 +3546,7 @@
 		configureMailExecutor();
 		configureLuceneIndexing();
 		configureGarbageCollector();
+		configureMirrorExecutor();
 		if (startFederation) {
 			configureFederation();
 		}
@@ -3592,6 +3595,19 @@
 			}
 			logger.info(MessageFormat.format("Next scheculed GC scan is in {0}", when));
 			scheduledExecutor.scheduleAtFixedRate(gcExecutor, delay, 60*24, TimeUnit.MINUTES);
+		}
+	}
+
+	protected void configureMirrorExecutor() {
+		if (mirrorExecutor.isReady()) {
+			int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins"));
+			if (mins < 5) {
+				mins = 5;
+			}
+			int delay = 1;
+			scheduledExecutor.scheduleAtFixedRate(mirrorExecutor, delay, mins,  TimeUnit.MINUTES);
+			logger.info("Mirror executor is scheduled to fetch updates every {} minutes.", mins);
+			logger.info("Next scheduled mirror fetch is in {} minutes", delay);
 		}
 	}
 
@@ -3864,6 +3880,7 @@
 		scheduledExecutor.shutdownNow();
 		luceneExecutor.close();
 		gcExecutor.close();
+		mirrorExecutor.close();
 		if (fanoutService != null) {
 			fanoutService.stop();
 		}

--
Gitblit v1.9.1