comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java @ 373:7f7d6037d242

Added ehcache support. flys-artifacts/trunk@1782 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 29 Apr 2011 16:56:37 +0000
parents
children e07d1c3f7667
comparison
equal deleted inserted replaced
372:fc3cf0ef777e 373:7f7d6037d242
1 package de.intevation.flys.artifacts.cache;
2
3 import de.intevation.artifacts.common.utils.Config;
4
5 import net.sf.ehcache.Cache;
6 import net.sf.ehcache.CacheException;
7 import net.sf.ehcache.CacheManager;
8
9 import org.apache.log4j.Logger;
10
11 public final class CacheFactory
12 {
13 private static Logger log = Logger.getLogger(CacheFactory.class);
14
15 public static final String XPATH_CACHE_CONFIG_FILE =
16 "/artifact-database/cache/config-file/text()";
17
18 private CacheFactory() {
19 }
20
21 private static boolean initialized;
22
23 private static CacheManager cacheManager;
24
25 public static final Cache getCache() {
26 return getCache(Cache.DEFAULT_CACHE_NAME);
27 }
28
29 public static final synchronized Cache getCache(String cacheName) {
30 if (!initialized) {
31 initialized = true; // try only once
32 String configFile = Config.getStringXPath(XPATH_CACHE_CONFIG_FILE);
33 if (configFile != null) {
34 configFile = Config.replaceConfigDir(configFile);
35 try {
36 cacheManager = CacheManager.create(configFile);
37 //System.setProperty(
38 // "net.sf.ehcache.enableShutdownHook", "true");
39 Runtime.getRuntime().addShutdownHook(new Thread() {
40 public void run() {
41 cacheManager.shutdown();
42 }
43 });
44 }
45 catch (CacheException ce) {
46 log.error("cannot configure cache", ce);
47 }
48 }
49 }
50
51 return cacheManager != null
52 ? cacheManager.getCache(cacheName)
53 : null;
54 }
55 }
56 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org