1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.provisioning.java.cache;
20
21 import com.github.benmanes.caffeine.cache.Cache;
22 import com.github.benmanes.caffeine.cache.Caffeine;
23 import org.apache.syncope.core.provisioning.api.cache.VirAttrCache;
24 import org.apache.syncope.core.provisioning.api.cache.VirAttrCacheKey;
25 import org.apache.syncope.core.provisioning.api.cache.VirAttrCacheValue;
26
27 public class CaffeineVirAttrCache implements VirAttrCache {
28
29 private Cache<VirAttrCacheKey, VirAttrCacheValue> cache;
30
31 @Override
32 public void setCacheSpec(final String cacheSpec) {
33 cache = Caffeine.from(cacheSpec).build();
34 }
35
36 @Override
37 public void expire(final VirAttrCacheKey key) {
38 cache.invalidate(key);
39 }
40
41 @Override
42 public VirAttrCacheValue get(final VirAttrCacheKey key) {
43 return cache.getIfPresent(key);
44 }
45
46 @Override
47 public VirAttrCacheValue put(final VirAttrCacheKey key, final VirAttrCacheValue value) {
48 cache.put(key, value);
49 return value;
50 }
51 }