From 7d97c619b1c067f971cfe0fda2ca8a56eef1a316 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 13 Mar 2012 18:53:27 -0400 Subject: [PATCH] Made LucenePage stateless --- src/com/gitblit/GitBlit.java | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index a57e605..e224025 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -136,6 +136,8 @@ private MailExecutor mailExecutor; + private LuceneExecutor luceneExecutor; + private TimeZone timezone; public GitBlit() { @@ -182,6 +184,7 @@ } return self().timezone; } + /** * Returns the boolean value for the specified key. If the key does not @@ -882,7 +885,7 @@ if (repositoryMetricsCache.hasCurrent(model.name, model.lastChange)) { return new ArrayList<Metric>(repositoryMetricsCache.getObject(model.name)); } - List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null); + List<Metric> metrics = MetricUtils.getDateMetrics(repository, null, true, null, getTimezone()); repositoryMetricsCache.updateObject(model.name, model.lastChange, metrics); return new ArrayList<Metric>(metrics); } @@ -1695,6 +1698,15 @@ } /** + * Update the Lucene index of a repository. + * + * @param repository + */ + public void updateLuceneIndex(RepositoryModel repository) { + luceneExecutor.queue(repository); + } + + /** * Returns the descriptions/comments of the Gitblit config settings. * * @return SettingsModel @@ -1806,9 +1818,17 @@ setUserService(loginService); mailExecutor = new MailExecutor(settings); if (mailExecutor.isReady()) { + logger.info("Mail executor is scheduled to process the message queue every 2 minutes."); scheduledExecutor.scheduleAtFixedRate(mailExecutor, 1, 2, TimeUnit.MINUTES); } else { logger.warn("Mail server is not properly configured. Mail services disabled."); + } + luceneExecutor = new LuceneExecutor(settings); + if (luceneExecutor.isReady()) { + logger.info("Lucene executor is scheduled to process the repository queue every 2 minutes."); + scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES); + } else { + logger.warn("Lucene executor is disabled."); } if (startFederation) { configureFederation(); @@ -1882,5 +1902,6 @@ public void contextDestroyed(ServletContextEvent contextEvent) { logger.info("Gitblit context destroyed by servlet container."); scheduledExecutor.shutdownNow(); + luceneExecutor.close(); } } -- Gitblit v1.9.1