package fr.openwide.core.wicket.more.console.maintenance.ehcache.model; import java.util.Arrays; import java.util.List; import java.util.Set; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import org.apache.wicket.model.LoadableDetachableModel; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.openwide.core.jpa.business.generic.model.GenericEntity; public class EhCacheCacheListModel extends LoadableDetachableModel<List<Cache>> { private static final long serialVersionUID = 2905490587596353984L; private String cacheManagerName; public EhCacheCacheListModel(CacheManager cacheManager) { cacheManagerName = cacheManager.getName(); } @Override protected List<Cache> load() { List<Cache> caches = Lists.newArrayList(); for (CacheManager cacheManager : CacheManager.ALL_CACHE_MANAGERS) { if (cacheManager.getName().equals(cacheManagerName)) { Set<String> cacheNames = Sets.newTreeSet(GenericEntity.DEFAULT_STRING_COLLATOR); cacheNames.addAll(Arrays.asList(cacheManager.getCacheNames())); for (String cacheName : cacheNames) { caches.add(cacheManager.getCache(cacheName)); } } } return caches; } }