From 50dc72be50bcfefcc3bacb14c7156b91514f4fe2 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 13 Jun 2012 16:28:19 +0200 Subject: [PATCH] call pre processors in new repository api --- .../repository/api/BrowseCommandBuilder.java | 13 ++++++++++++- .../scm/repository/api/LogCommandBuilder.java | 18 +++++++++++++++++- .../scm/repository/api/RepositoryService.java | 13 ++++++++++--- .../api/RepositoryServiceFactory.java | 12 ++++++++++-- 4 files changed, 49 insertions(+), 7 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/api/BrowseCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/BrowseCommandBuilder.java index c365682134..1d056c20c0 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/BrowseCommandBuilder.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/BrowseCommandBuilder.java @@ -40,6 +40,7 @@ import com.google.common.base.Objects; import sonia.scm.cache.Cache; import sonia.scm.cache.CacheManager; import sonia.scm.repository.BrowserResult; +import sonia.scm.repository.PreProcessorUtil; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryException; import sonia.scm.repository.spi.BrowseCommand; @@ -73,14 +74,16 @@ public final class BrowseCommandBuilder * @param logCommand implementation of the {@link LogCommand} * @param browseCommand * @param repository repository to query + * @param preProcessorUtil */ BrowseCommandBuilder(CacheManager cacheManager, BrowseCommand browseCommand, - Repository repository) + Repository repository, PreProcessorUtil preProcessorUtil) { this.cache = cacheManager.getCache(CacheKey.class, BrowserResult.class, CACHE_NAME); this.browseCommand = browseCommand; this.repository = repository; + this.preProcessorUtil = preProcessorUtil; } //~--- methods -------------------------------------------------------------- @@ -130,6 +133,11 @@ public final class BrowseCommandBuilder } } + if (result != null) + { + preProcessorUtil.prepareForReturn(repository, result); + } + return result; } @@ -268,6 +276,9 @@ public final class BrowseCommandBuilder /** disables the cache */ private boolean disableCache; + /** Field description */ + private PreProcessorUtil preProcessorUtil; + /** the repsitory */ private Repository repository; diff --git a/scm-core/src/main/java/sonia/scm/repository/api/LogCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/LogCommandBuilder.java index 2572b3076f..605804fd22 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/LogCommandBuilder.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/LogCommandBuilder.java @@ -42,6 +42,7 @@ import sonia.scm.cache.Cache; import sonia.scm.cache.CacheManager; import sonia.scm.repository.Changeset; import sonia.scm.repository.ChangesetPagingResult; +import sonia.scm.repository.PreProcessorUtil; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryException; import sonia.scm.repository.spi.LogCommand; @@ -112,14 +113,16 @@ public final class LogCommandBuilder * @param cacheManager cache manager * @param logCommand implementation of the {@link LogCommand} * @param repository repository to query + * @param preProcessorUtil */ LogCommandBuilder(CacheManager cacheManager, LogCommand logCommand, - Repository repository) + Repository repository, PreProcessorUtil preProcessorUtil) { this.cache = cacheManager.getCache(CacheKey.class, ChangesetPagingResult.class, CACHE_NAME); this.logCommand = logCommand; this.repository = repository; + this.preProcessorUtil = preProcessorUtil; } //~--- methods -------------------------------------------------------------- @@ -196,6 +199,11 @@ public final class LogCommandBuilder } } + if (changeset != null) + { + preProcessorUtil.prepareForReturn(repository, changeset); + } + return changeset; } @@ -234,6 +242,11 @@ public final class LogCommandBuilder } } + if (cpr != null) + { + preProcessorUtil.prepareForReturn(repository, cpr); + } + return cpr; } @@ -453,6 +466,9 @@ public final class LogCommandBuilder /** Implementation of the log command */ private LogCommand logCommand; + /** Field description */ + private PreProcessorUtil preProcessorUtil; + /** repository to query */ private Repository repository; diff --git a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java index 53207c7406..bfa79da066 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java @@ -36,6 +36,7 @@ package sonia.scm.repository.api; //~--- non-JDK imports -------------------------------------------------------- import sonia.scm.cache.CacheManager; +import sonia.scm.repository.PreProcessorUtil; import sonia.scm.repository.Repository; import sonia.scm.repository.spi.RepositoryServiceProvider; @@ -64,13 +65,16 @@ public final class RepositoryService * @param cacheManager cache manager * @param provider implementation for {@link RepositoryServiceProvider} * @param repository the repository + * @param preProcessorUtil */ RepositoryService(CacheManager cacheManager, - RepositoryServiceProvider provider, Repository repository) + RepositoryServiceProvider provider, Repository repository, + PreProcessorUtil preProcessorUtil) { this.cacheManager = cacheManager; this.provider = provider; this.repository = repository; + this.preProcessorUtil = preProcessorUtil; } //~--- get methods ---------------------------------------------------------- @@ -98,7 +102,7 @@ public final class RepositoryService public BrowseCommandBuilder getBrowseCommand() { return new BrowseCommandBuilder(cacheManager, provider.getBrowseCommand(), - repository); + repository, preProcessorUtil); } /** @@ -136,7 +140,7 @@ public final class RepositoryService public LogCommandBuilder getLogCommand() { return new LogCommandBuilder(cacheManager, provider.getLogCommand(), - repository); + repository, preProcessorUtil); } /** @@ -157,6 +161,9 @@ public final class RepositoryService /** cache manager */ private CacheManager cacheManager; + /** Field description */ + private PreProcessorUtil preProcessorUtil; + /** implementation of the repository service provider */ private RepositoryServiceProvider provider; diff --git a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryServiceFactory.java b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryServiceFactory.java index e55bcfce8c..4da2d1d7f3 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryServiceFactory.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryServiceFactory.java @@ -44,6 +44,7 @@ import com.google.inject.Singleton; import sonia.scm.cache.CacheManager; import sonia.scm.repository.PermissionType; import sonia.scm.repository.PermissionUtil; +import sonia.scm.repository.PreProcessorUtil; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryManager; import sonia.scm.repository.RepositoryNotFoundException; @@ -98,17 +99,20 @@ public final class RepositoryServiceFactory * @param repositoryManager manager for repositories * @param securityContextProvider provider for the current security context * @param resolvers a set of {@link RepositoryServiceResolver} + * @param preProcessorUtil helper object for pre processor handling */ @Inject public RepositoryServiceFactory( CacheManager cacheManager, RepositoryManager repositoryManager, Provider securityContextProvider, - Set resolvers) + Set resolvers, + PreProcessorUtil preProcessorUtil) { this.cacheManager = cacheManager; this.repositoryManager = repositoryManager; this.securityContextProvider = securityContextProvider; this.resolvers = resolvers; + this.preProcessorUtil = preProcessorUtil; } //~--- methods -------------------------------------------------------------- @@ -219,7 +223,8 @@ public final class RepositoryServiceFactory if (provider != null) { - service = new RepositoryService(cacheManager, provider, repository); + service = new RepositoryService(cacheManager, provider, repository, + preProcessorUtil); break; } @@ -238,6 +243,9 @@ public final class RepositoryServiceFactory /** Field description */ private CacheManager cacheManager; + /** Field description */ + private PreProcessorUtil preProcessorUtil; + /** Field description */ private RepositoryManager repositoryManager;