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.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<UrlBuilder> compareUrlBuilderBinder =
Multibinder.newSetBinder(binder(), UrlBuilder.class);

View File

@@ -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 --------------------------------------------------------------