summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/distrib/data/gitblit.properties6
-rw-r--r--src/main/java/com/gitblit/manager/RepositoryManager.java12
-rw-r--r--src/main/java/com/gitblit/manager/ServicesManager.java2
-rw-r--r--src/main/java/com/gitblit/servlet/FederationServlet.java2
-rw-r--r--src/main/java/com/gitblit/utils/TimeUtils.java23
-rw-r--r--src/test/java/com/gitblit/tests/TimeUtilsTest.java8
6 files changed, 29 insertions, 24 deletions
diff --git a/src/main/distrib/data/gitblit.properties b/src/main/distrib/data/gitblit.properties
index f8d6c6d0..b975fc11 100644
--- a/src/main/distrib/data/gitblit.properties
+++ b/src/main/distrib/data/gitblit.properties
@@ -1006,6 +1006,12 @@ web.compressedDownloads = zip gz
# SINCE 0.9.0
web.allowLuceneIndexing = true
+# Control the frequency of Lucene repository indexing.
+# The default setting is to check for updated refs every 2 mins.
+#
+# SINCE 1.6.1
+web.luceneFrequency = 2 mins
+
# Allows an authenticated user to create forks of a repository
#
# set this to false if you want to disable all fork controls on the web site
diff --git a/src/main/java/com/gitblit/manager/RepositoryManager.java b/src/main/java/com/gitblit/manager/RepositoryManager.java
index 6a22db59..d9939bd4 100644
--- a/src/main/java/com/gitblit/manager/RepositoryManager.java
+++ b/src/main/java/com/gitblit/manager/RepositoryManager.java
@@ -1829,9 +1829,10 @@ public class RepositoryManager implements IRepositoryManager {
protected void configureLuceneIndexing() {
luceneExecutor = new LuceneService(settings, this);
- int period = 2;
- scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, period, TimeUnit.MINUTES);
- logger.info("Lucene will process indexed branches every {} minutes.", period);
+ String frequency = settings.getString(Keys.web.luceneFrequency, "2 mins");
+ int mins = TimeUtils.convertFrequencyToMinutes(frequency, 2);
+ scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, mins, TimeUnit.MINUTES);
+ logger.info("Lucene will process indexed branches every {} minutes.", mins);
}
protected void configureGarbageCollector() {
@@ -1866,10 +1867,7 @@ public class RepositoryManager implements IRepositoryManager {
protected void configureMirrorExecutor() {
mirrorExecutor = new MirrorService(settings, this);
if (mirrorExecutor.isReady()) {
- int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins"));
- if (mins < 5) {
- mins = 5;
- }
+ int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins"), 5);
int delay = 1;
scheduledExecutor.scheduleAtFixedRate(mirrorExecutor, delay, mins, TimeUnit.MINUTES);
logger.info("Mirror service will fetch updates every {} minutes.", mins);
diff --git a/src/main/java/com/gitblit/manager/ServicesManager.java b/src/main/java/com/gitblit/manager/ServicesManager.java
index 2550f66f..71858545 100644
--- a/src/main/java/com/gitblit/manager/ServicesManager.java
+++ b/src/main/java/com/gitblit/manager/ServicesManager.java
@@ -510,7 +510,7 @@ public class ServicesManager implements IServicesManager {
@Override
public void reschedule(FederationModel registration) {
// schedule the next pull
- int mins = TimeUtils.convertFrequencyToMinutes(registration.frequency);
+ int mins = TimeUtils.convertFrequencyToMinutes(registration.frequency, 5);
registration.nextPull = new Date(System.currentTimeMillis() + (mins * 60 * 1000L));
scheduledExecutor.schedule(new FederationPuller(registration), mins, TimeUnit.MINUTES);
logger.info(MessageFormat.format(
diff --git a/src/main/java/com/gitblit/servlet/FederationServlet.java b/src/main/java/com/gitblit/servlet/FederationServlet.java
index 89ff2312..78709c9c 100644
--- a/src/main/java/com/gitblit/servlet/FederationServlet.java
+++ b/src/main/java/com/gitblit/servlet/FederationServlet.java
@@ -170,7 +170,7 @@ public class FederationServlet extends JsonServlet {
// setup the last and netx pull dates
results.lastPull = new Date();
- int mins = TimeUtils.convertFrequencyToMinutes(results.frequency);
+ int mins = TimeUtils.convertFrequencyToMinutes(results.frequency, 5);
results.nextPull = new Date(System.currentTimeMillis() + (mins * 60 * 1000L));
// acknowledge the receipt of status
diff --git a/src/main/java/com/gitblit/utils/TimeUtils.java b/src/main/java/com/gitblit/utils/TimeUtils.java
index 4b113be2..c0e98e5d 100644
--- a/src/main/java/com/gitblit/utils/TimeUtils.java
+++ b/src/main/java/com/gitblit/utils/TimeUtils.java
@@ -322,12 +322,13 @@ public class TimeUtils {
* Convert a frequency string into minutes.
*
* @param frequency
+ * @param minimumMins
* @return minutes
*/
- public static int convertFrequencyToMinutes(String frequency) {
+ public static int convertFrequencyToMinutes(String frequency, int minimumMins) {
// parse the frequency
frequency = frequency.toLowerCase();
- int mins = 60;
+ int mins = minimumMins;
if (!StringUtils.isEmpty(frequency)) {
try {
String str = frequency.trim();
@@ -337,16 +338,16 @@ public class TimeUtils {
mins = (int) Float.parseFloat(str);
} catch (NumberFormatException e) {
}
- if (mins < 5) {
- mins = 5;
+ if (mins < minimumMins) {
+ mins = minimumMins;
+ }
+ if (frequency.indexOf("day") > -1) {
+ // convert to minutes
+ mins *= 1440;
+ } else if (frequency.indexOf("hour") > -1) {
+ // convert to minutes
+ mins *= 60;
}
- }
- if (frequency.indexOf("day") > -1) {
- // convert to minutes
- mins *= 1440;
- } else if (frequency.indexOf("hour") > -1) {
- // convert to minutes
- mins *= 60;
}
return mins;
}
diff --git a/src/test/java/com/gitblit/tests/TimeUtilsTest.java b/src/test/java/com/gitblit/tests/TimeUtilsTest.java
index fb38ffd3..ef506ef4 100644
--- a/src/test/java/com/gitblit/tests/TimeUtilsTest.java
+++ b/src/test/java/com/gitblit/tests/TimeUtilsTest.java
@@ -100,9 +100,9 @@ public class TimeUtilsTest extends GitblitUnitTest {
@Test
public void testFrequency() {
- assertEquals(5, TimeUtils.convertFrequencyToMinutes("2 mins"));
- assertEquals(10, TimeUtils.convertFrequencyToMinutes("10 mins"));
- assertEquals(600, TimeUtils.convertFrequencyToMinutes("10 hours"));
- assertEquals(14400, TimeUtils.convertFrequencyToMinutes(" 10 days "));
+ assertEquals(5, TimeUtils.convertFrequencyToMinutes("2 mins", 5));
+ assertEquals(10, TimeUtils.convertFrequencyToMinutes("10 mins", 5));
+ assertEquals(600, TimeUtils.convertFrequencyToMinutes("10 hours", 5));
+ assertEquals(14400, TimeUtils.convertFrequencyToMinutes(" 10 days ", 5));
}
}