From 2f3c342b5751f0ea41b0711b6d8757471572a79c Mon Sep 17 00:00:00 2001 From: aholland <aholland@a1dutch.co.uk> Date: Mon, 24 Feb 2014 17:44:39 -0500 Subject: [PATCH] openshift war support (non express) --- src/main/java/com/gitblit/manager/RepositoryManager.java | 42 ++++++++++++++++++++++++++++++++---------- 1 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gitblit/manager/RepositoryManager.java b/src/main/java/com/gitblit/manager/RepositoryManager.java index 4845e23..6b4fe97 100644 --- a/src/main/java/com/gitblit/manager/RepositoryManager.java +++ b/src/main/java/com/gitblit/manager/RepositoryManager.java @@ -63,12 +63,9 @@ import com.gitblit.Constants.FederationStrategy; import com.gitblit.Constants.PermissionType; import com.gitblit.Constants.RegistrantType; -import com.gitblit.GCExecutor; import com.gitblit.GitBlitException; import com.gitblit.IStoredSettings; import com.gitblit.Keys; -import com.gitblit.LuceneExecutor; -import com.gitblit.MirrorExecutor; import com.gitblit.models.ForkModel; import com.gitblit.models.Metric; import com.gitblit.models.RefModel; @@ -77,6 +74,9 @@ import com.gitblit.models.SearchResult; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; +import com.gitblit.service.GarbageCollectorService; +import com.gitblit.service.LuceneService; +import com.gitblit.service.MirrorService; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.ByteFormat; import com.gitblit.utils.CommitCache; @@ -118,11 +118,11 @@ private final File repositoriesFolder; - private LuceneExecutor luceneExecutor; + private LuceneService luceneExecutor; - private GCExecutor gcExecutor; + private GarbageCollectorService gcExecutor; - private MirrorExecutor mirrorExecutor; + private MirrorService mirrorExecutor; public RepositoryManager( IRuntimeManager runtimeManager, @@ -156,6 +156,8 @@ configureMirrorExecutor(); configureJGit(); configureCommitCache(); + + confirmWriteAccess(); return this; } @@ -447,6 +449,7 @@ private void clearRepositoryMetadataCache(String repositoryName) { repositorySizeCache.remove(repositoryName); repositoryMetricsCache.remove(repositoryName); + CommitCache.instance().clear(repositoryName); } /** @@ -457,6 +460,9 @@ public void resetRepositoryListCache() { logger.info("Repository cache manually reset"); repositoryListCache.clear(); + repositorySizeCache.clear(); + repositoryMetricsCache.clear(); + CommitCache.instance().clear(); } /** @@ -975,7 +981,7 @@ settings.getStrings(Keys.git.searchExclusions)); for (String repository : repositories) { RepositoryModel model = getRepositoryModel(userProject + "/" + repository); - if (model.originRepository.equalsIgnoreCase(origin)) { + if (model.originRepository != null && model.originRepository.equalsIgnoreCase(origin)) { // user has a fork return model.name; } @@ -1644,7 +1650,7 @@ } protected void configureLuceneIndexing() { - luceneExecutor = new LuceneExecutor(settings, this); + 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); @@ -1652,7 +1658,7 @@ protected void configureGarbageCollector() { // schedule gc engine - gcExecutor = new GCExecutor(settings, this); + gcExecutor = new GarbageCollectorService(settings, this); if (gcExecutor.isReady()) { logger.info("Garbage Collector (GC) will scan repositories every 24 hours."); Calendar c = Calendar.getInstance(); @@ -1680,7 +1686,7 @@ } protected void configureMirrorExecutor() { - mirrorExecutor = new MirrorExecutor(settings, this); + mirrorExecutor = new MirrorService(settings, this); if (mirrorExecutor.isReady()) { int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins")); if (mins < 5) { @@ -1754,4 +1760,20 @@ daysToCache, commitCount, repoCount, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start))); } } + + protected void confirmWriteAccess() { + if (runtimeManager.isServingRepositories()) { + try { + File file = File.createTempFile(".test-", ".txt", getRepositoriesFolder()); + file.delete(); + } catch (Exception e) { + logger.error(""); + logger.error(Constants.BORDER2); + logger.error("Please check filesystem permissions!"); + logger.error("FAILED TO WRITE TO REPOSITORIES FOLDER!!", e); + logger.error(Constants.BORDER2); + logger.error(""); + } + } + } } -- Gitblit v1.9.1