added injection for cachemanager

This commit is contained in:
Sebastian Sdorra
2011-12-04 14:29:04 +01:00
parent 36bdc332f5
commit 330c19e1d9
2 changed files with 17 additions and 10 deletions

View File

@@ -39,11 +39,14 @@ import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Names; import com.google.inject.name.Names;
import com.google.inject.servlet.ServletModule; import com.google.inject.servlet.ServletModule;
import net.sf.ehcache.CacheManager;
import sonia.scm.ConfigurationException; import sonia.scm.ConfigurationException;
import sonia.scm.plugin.rest.PluginResource;
import sonia.scm.plugin.rest.url.BitbucketUrlBuilder; 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.UrlBuilder;
import sonia.scm.plugin.rest.url.UrlBuilderFactory; 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.DefaultPluginScannerFactory;
import sonia.scm.plugin.scanner.PluginScannerFactory; import sonia.scm.plugin.scanner.PluginScannerFactory;
import sonia.scm.plugin.scanner.PluginScannerScheduler; import sonia.scm.plugin.scanner.PluginScannerScheduler;
@@ -71,6 +74,9 @@ import javax.xml.bind.JAXB;
public class ScmBackendModule extends ServletModule public class ScmBackendModule extends ServletModule
{ {
/** Field description */
public static final String CACHE_CONFIG = "/config/ehcache.xml";
/** Field description */ /** Field description */
public static final String DIRECTORY_DEFAULT = ".scm-backend"; public static final String DIRECTORY_DEFAULT = ".scm-backend";
@@ -124,6 +130,12 @@ public class ScmBackendModule extends ServletModule
bind(PluginScannerFactory.class).to(DefaultPluginScannerFactory.class); bind(PluginScannerFactory.class).to(DefaultPluginScannerFactory.class);
bind(PluginScannerScheduler.class).to(TimerPluginScannerScheduler.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 // compare url builder
Multibinder<UrlBuilder> compareUrlBuilderBinder = Multibinder<UrlBuilder> compareUrlBuilderBinder =
Multibinder.newSetBinder(binder(), UrlBuilder.class); Multibinder.newSetBinder(binder(), UrlBuilder.class);

View File

@@ -81,9 +81,6 @@ public class PluginResource implements PluginBackendListener
/** Field description */ /** Field description */
public static final String CACHE = "sonia.cache.plugin-backend"; public static final String CACHE = "sonia.cache.plugin-backend";
/** Field description */
public static final String CONFIG = "/config/ehcache.xml";
/** the logger for PluginResource */ /** the logger for PluginResource */
private static final Logger logger = private static final Logger logger =
LoggerFactory.getLogger(PluginResource.class); LoggerFactory.getLogger(PluginResource.class);
@@ -96,21 +93,19 @@ public class PluginResource implements PluginBackendListener
* *
* @param backend * @param backend
* @param configuration * @param configuration
* @param cacheManager
*/ */
@Inject @Inject
public PluginResource(PluginBackend backend, public PluginResource(PluginBackend backend,
BackendConfiguration configuration) BackendConfiguration configuration,
CacheManager cacheManager)
{ {
this.backend = backend; this.backend = backend;
this.configuration = configuration; this.configuration = configuration;
cache = cacheManager.getCache(CACHE);
// added listener to clear the cache on a event // added listener to clear the cache on a event
this.backend.addListener(this); this.backend.addListener(this);
CacheManager cacheManager =
new CacheManager(PluginResource.class.getResource(CONFIG));
cache = cacheManager.getCache(CACHE);
} }
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------