/** * Project Name:resty-cache * File Name:J2CacheProvider.java * Package Name:cn.dreampie.cache.j2cache * Date:2016年3月8日下午5:13:51 * Copyright (c) 2016, 深圳市奔凯安全技术股份有限公司 All Rights Reserved. */ package cn.dreampie.cache.j2cache; import java.util.HashSet; import java.util.Set; import cn.dreampie.cache.CacheEvent; import cn.dreampie.cache.CacheProvider; import net.oschina.j2cache.CacheChannel; import net.oschina.j2cache.J2Cache; /** * ClassName:J2CacheProvider <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON. <br/> * Date: 2016年3月8日 下午5:13:51 <br/> * * @author <A href="mailto:shenmt@biocome.com">沈明天</A> * @see * @since JDK 1.6 */ public class J2CacheProvider extends CacheProvider { static { System.setProperty("java.net.preferIPv4Stack", "true"); // Disable IPv6 in JVM } private static Set<String> groupSet = new HashSet<String>(); private CacheChannel cache = J2Cache.getChannel(); public <T> T getCache(String group, String key) { return (T) cache.get(group, key).getValue(); } public void addCache(String group, String key, Object cacheObj, int expired) { cache.set(group, key, cacheObj); if (!groupSet.contains(group)) { groupSet.add(group); } } public void removeCache(String group, String key) { cache.evict(group, key); } public void doFlush(CacheEvent event) { if (event.getType().equals(CacheEvent.CacheEventType.ALL)) { for (String group : groupSet) { cache.clear(group); } groupSet.clear(); } else if (event.getType().equals(CacheEvent.CacheEventType.GROUP)) { cache.clear(event.getGroup()); } } }