| | |
| | |
|
| | | private MailExecutor mailExecutor;
|
| | |
|
| | | private LuceneExecutor luceneExecutor;
|
| | | |
| | | private TimeZone timezone;
|
| | |
|
| | | public GitBlit() {
|
| | |
| | | RepositoryModel model = new RepositoryModel();
|
| | | model.name = repositoryName;
|
| | | model.hasCommits = JGitUtils.hasCommits(r);
|
| | | model.lastChange = JGitUtils.getLastChange(r, null);
|
| | | model.lastChange = JGitUtils.getLastChange(r);
|
| | | model.isBare = r.isBare();
|
| | | StoredConfig config = JGitUtils.readConfig(r);
|
| | | if (config != null) {
|
| | |
| | | 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);
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 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
|
| | |
| | | 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();
|
| | |
| | | WebXmlSettings webxmlSettings = new WebXmlSettings(context);
|
| | |
|
| | | // 0.7.0 web.properties in the deployed war folder
|
| | | File overrideFile = new File(context.getRealPath("/WEB-INF/web.properties"));
|
| | | if (overrideFile.exists()) {
|
| | | webxmlSettings.applyOverrides(overrideFile);
|
| | | String webProps = context.getRealPath("/WEB-INF/web.properties");
|
| | | if (!StringUtils.isEmpty(webProps)) {
|
| | | File overrideFile = new File(webProps);
|
| | | if (overrideFile.exists()) {
|
| | | webxmlSettings.applyOverrides(overrideFile);
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | // 0.8.0 gitblit.properties file located outside the deployed war
|
| | | // folder lie, for example, on RedHat OpenShift.
|
| | | overrideFile = getFileOrFolder("gitblit.properties");
|
| | | File overrideFile = getFileOrFolder("gitblit.properties");
|
| | | if (!overrideFile.getPath().equals("gitblit.properties")) {
|
| | | webxmlSettings.applyOverrides(overrideFile);
|
| | | }
|
| | |
| | | public void contextDestroyed(ServletContextEvent contextEvent) {
|
| | | logger.info("Gitblit context destroyed by servlet container.");
|
| | | scheduledExecutor.shutdownNow();
|
| | | luceneExecutor.close();
|
| | | }
|
| | | }
|