1 package net.sumaris.core.dao.technical.ehcache;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import net.sf.ehcache.CacheManager;
26 import org.springframework.cache.ehcache.EhCacheFactoryBean;
27
28
29
30
31 public class Caches {
32
33 protected static final int ETERNAL_TIME_TO_LIVE = 24 * 60* 60;
34 protected static final int ETERNAL_TIME_TO_IDLE = 24 * 60* 60;
35
36
37 private Caches() {
38
39 }
40
41 public static EhCacheFactoryBean createHeapCache(CacheManager cacheManager, String cacheName, int timeToLive, int timeToIdle, int entriesLocalHeap) {
42 EhCacheFactoryBean factory = new EhCacheFactoryBean();
43
44 factory.setCacheName(cacheName);
45 factory.setCacheManager(cacheManager);
46
47 factory.setMaxEntriesLocalHeap(entriesLocalHeap);
48
49 factory.setEternal(false);
50 factory.setOverflowToOffHeap(false);
51 factory.setDiskSpoolBufferSize(0);
52 factory.setDiskExpiryThreadIntervalSeconds(0);
53 factory.setTimeToLive(timeToLive);
54 factory.setTimeToIdle(timeToIdle);
55 return factory;
56 }
57
58 public static EhCacheFactoryBean createEternalHeapCache(CacheManager cacheManager, String cacheName, int entriesLocalHeap) {
59 return createHeapCache(cacheManager, cacheName, ETERNAL_TIME_TO_LIVE, ETERNAL_TIME_TO_IDLE, entriesLocalHeap);
60 }
61
62 public static EhCacheFactoryBean createEternalDiskCache(CacheManager cacheManager, String cacheName, int timeToLive, int timeToIdle, int entriesLocalHeap, int diskSpoolBufferSize) {
63 EhCacheFactoryBean factory = new EhCacheFactoryBean();
64
65 factory.setCacheName(cacheName);
66 factory.setCacheManager(cacheManager);
67 factory.setMaxEntriesLocalHeap(entriesLocalHeap);
68 factory.setEternal(true);
69 factory.setOverflowToOffHeap(true);
70 factory.setDiskSpoolBufferSize(diskSpoolBufferSize);
71 factory.setDiskExpiryThreadIntervalSeconds(timeToLive);
72 factory.setTimeToLive(timeToLive);
73 factory.setTimeToIdle(timeToIdle);
74 return factory;
75 }
76 }