From f8bb0cf1097eef5a4bcdbca9bd9a79bc37db6330 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 25 Mar 2013 11:07:47 +0100 Subject: [PATCH] create static read method for GuavaCacheConfigurationReader --- .../cache/GuavaCacheConfigurationReader.java | 107 ++++++++++-------- .../sonia/scm/cache/GuavaCacheManager.java | 14 ++- 2 files changed, 71 insertions(+), 50 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheConfigurationReader.java b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheConfigurationReader.java index 59eb12951e..4c28f5ce21 100644 --- a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheConfigurationReader.java +++ b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheConfigurationReader.java @@ -85,7 +85,7 @@ public class GuavaCacheConfigurationReader * Constructs ... * */ - public GuavaCacheConfigurationReader() + private GuavaCacheConfigurationReader() { try { @@ -107,54 +107,9 @@ public class GuavaCacheConfigurationReader * * @return */ - public GuavaCacheManagerConfiguration read() + public static GuavaCacheManagerConfiguration read() { - URL defaultConfigUrl = getDefaultResource(); - - if (defaultConfigUrl == null) - { - throw new IllegalStateException( - "could not find default cache configuration"); - } - - GuavaCacheManagerConfiguration config = readConfiguration(defaultConfigUrl, - true); - - Iterator it = getModuleResources(); - - while (it.hasNext()) - { - GuavaCacheManagerConfiguration moduleConfig = - readConfiguration(it.next(), false); - - if (moduleConfig != null) - { - config = merge(config, moduleConfig); - } - } - - File manualFile = getManualFileResource(); - - if (manualFile.exists()) - { - try - { - GuavaCacheManagerConfiguration manualConfig = - readConfiguration(manualFile.toURI().toURL(), false); - - config = merge(config, manualConfig); - } - catch (MalformedURLException ex) - { - logger.error("malformed url", ex); - } - } - else - { - logger.warn("could not find manual configuration at {}", manualFile); - } - - return config; + return new GuavaCacheConfigurationReader().doRead(); } //~--- get methods ---------------------------------------------------------- @@ -222,6 +177,62 @@ public class GuavaCacheConfigurationReader return map; } + /** + * Method description + * + * + * @return + */ + private GuavaCacheManagerConfiguration doRead() + { + URL defaultConfigUrl = getDefaultResource(); + + if (defaultConfigUrl == null) + { + throw new IllegalStateException( + "could not find default cache configuration"); + } + + GuavaCacheManagerConfiguration config = readConfiguration(defaultConfigUrl, + true); + + Iterator it = getModuleResources(); + + while (it.hasNext()) + { + GuavaCacheManagerConfiguration moduleConfig = + readConfiguration(it.next(), false); + + if (moduleConfig != null) + { + config = merge(config, moduleConfig); + } + } + + File manualFile = getManualFileResource(); + + if (manualFile.exists()) + { + try + { + GuavaCacheManagerConfiguration manualConfig = + readConfiguration(manualFile.toURI().toURL(), false); + + config = merge(config, manualConfig); + } + catch (MalformedURLException ex) + { + logger.error("malformed url", ex); + } + } + else + { + logger.warn("could not find manual configuration at {}", manualFile); + } + + return config; + } + /** * Method description * diff --git a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java index 74b8e8f254..cdc9fd958d 100644 --- a/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java +++ b/scm-webapp/src/main/java/sonia/scm/cache/GuavaCacheManager.java @@ -33,6 +33,7 @@ package sonia.scm.cache; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Maps; import com.google.inject.Singleton; @@ -67,9 +68,18 @@ public class GuavaCacheManager implements CacheManager */ public GuavaCacheManager() { - GuavaCacheConfigurationReader reader = new GuavaCacheConfigurationReader(); - GuavaCacheManagerConfiguration config = reader.read(); + this(GuavaCacheConfigurationReader.read()); + } + /** + * Constructs ... + * + * + * @param config + */ + @VisibleForTesting + protected GuavaCacheManager(GuavaCacheManagerConfiguration config) + { defaultConfiguration = config.getDefaultCache(); for (GuavaNamedCacheConfiguration ncc : config.getCaches())