From 14181da41a98817aef2b528f92d58613e61e495f Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 08 Sep 2014 13:41:28 -0400 Subject: [PATCH] Merge branch 'ticket/161' into develop --- src/test/java/com/gitblit/tests/TimeUtilsTest.java | 8 ++++---- src/main/java/com/gitblit/manager/ServicesManager.java | 2 +- src/main/distrib/data/gitblit.properties | 6 ++++++ src/main/java/com/gitblit/utils/TimeUtils.java | 23 ++++++++++++----------- src/main/java/com/gitblit/manager/RepositoryManager.java | 12 +++++------- src/main/java/com/gitblit/servlet/FederationServlet.java | 2 +- 6 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/main/distrib/data/gitblit.properties b/src/main/distrib/data/gitblit.properties index f8d6c6d..b975fc1 100644 --- a/src/main/distrib/data/gitblit.properties +++ b/src/main/distrib/data/gitblit.properties @@ -1006,6 +1006,12 @@ # 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 6a22db5..d9939bd 100644 --- a/src/main/java/com/gitblit/manager/RepositoryManager.java +++ b/src/main/java/com/gitblit/manager/RepositoryManager.java @@ -1829,9 +1829,10 @@ 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 @@ 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 2550f66..7185854 100644 --- a/src/main/java/com/gitblit/manager/ServicesManager.java +++ b/src/main/java/com/gitblit/manager/ServicesManager.java @@ -510,7 +510,7 @@ @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 89ff231..78709c9 100644 --- a/src/main/java/com/gitblit/servlet/FederationServlet.java +++ b/src/main/java/com/gitblit/servlet/FederationServlet.java @@ -170,7 +170,7 @@ // 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 4b113be..c0e98e5 100644 --- a/src/main/java/com/gitblit/utils/TimeUtils.java +++ b/src/main/java/com/gitblit/utils/TimeUtils.java @@ -322,12 +322,13 @@ * 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 @@ 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 fb38ffd..ef506ef 100644 --- a/src/test/java/com/gitblit/tests/TimeUtilsTest.java +++ b/src/test/java/com/gitblit/tests/TimeUtilsTest.java @@ -100,9 +100,9 @@ @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)); } } -- Gitblit v1.9.1