From 330c19e1d9dcba5754f6cba4b01e864a0bb2b326 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 4 Dec 2011 14:29:04 +0100 Subject: [PATCH] added injection for cachemanager --- .../java/sonia/scm/plugin/ScmBackendModule.java | 14 +++++++++++++- .../java/sonia/scm/plugin/rest/PluginResource.java | 13 ++++--------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/ScmBackendModule.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/ScmBackendModule.java index 42c46ac5d3..54fe8e49f2 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/ScmBackendModule.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/ScmBackendModule.java @@ -39,11 +39,14 @@ import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; import com.google.inject.servlet.ServletModule; +import net.sf.ehcache.CacheManager; + import sonia.scm.ConfigurationException; +import sonia.scm.plugin.rest.PluginResource; import sonia.scm.plugin.rest.url.BitbucketUrlBuilder; +import sonia.scm.plugin.rest.url.GithubUrlBuilder; import sonia.scm.plugin.rest.url.UrlBuilder; import sonia.scm.plugin.rest.url.UrlBuilderFactory; -import sonia.scm.plugin.rest.url.GithubUrlBuilder; import sonia.scm.plugin.scanner.DefaultPluginScannerFactory; import sonia.scm.plugin.scanner.PluginScannerFactory; import sonia.scm.plugin.scanner.PluginScannerScheduler; @@ -71,6 +74,9 @@ import javax.xml.bind.JAXB; public class ScmBackendModule extends ServletModule { + /** Field description */ + public static final String CACHE_CONFIG = "/config/ehcache.xml"; + /** Field description */ public static final String DIRECTORY_DEFAULT = ".scm-backend"; @@ -124,6 +130,12 @@ public class ScmBackendModule extends ServletModule bind(PluginScannerFactory.class).to(DefaultPluginScannerFactory.class); bind(PluginScannerScheduler.class).to(TimerPluginScannerScheduler.class); + // cache manager + CacheManager cacheManager = + new CacheManager(PluginResource.class.getResource(CACHE_CONFIG)); + + bind(CacheManager.class).toInstance(cacheManager); + // compare url builder Multibinder compareUrlBuilderBinder = Multibinder.newSetBinder(binder(), UrlBuilder.class); diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginResource.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginResource.java index 7bb29f293c..be911e572f 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginResource.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/PluginResource.java @@ -81,9 +81,6 @@ public class PluginResource implements PluginBackendListener /** Field description */ public static final String CACHE = "sonia.cache.plugin-backend"; - /** Field description */ - public static final String CONFIG = "/config/ehcache.xml"; - /** the logger for PluginResource */ private static final Logger logger = LoggerFactory.getLogger(PluginResource.class); @@ -96,21 +93,19 @@ public class PluginResource implements PluginBackendListener * * @param backend * @param configuration + * @param cacheManager */ @Inject public PluginResource(PluginBackend backend, - BackendConfiguration configuration) + BackendConfiguration configuration, + CacheManager cacheManager) { this.backend = backend; this.configuration = configuration; + cache = cacheManager.getCache(CACHE); // added listener to clear the cache on a event this.backend.addListener(this); - - CacheManager cacheManager = - new CacheManager(PluginResource.class.getResource(CONFIG)); - - cache = cacheManager.getCache(CACHE); } //~--- methods --------------------------------------------------------------