/**
*
*/
package ehcache;
import java.io.File;
import org.ehcache.CachePersistenceException;
import org.ehcache.PersistentUserManagedCache;
import org.ehcache.UserManagedCache;
import org.ehcache.config.builders.ResourcePoolsBuilder;
import org.ehcache.config.builders.UserManagedCacheBuilder;
import org.ehcache.config.units.EntryUnit;
import org.ehcache.config.units.MemoryUnit;
import org.ehcache.core.spi.service.LocalPersistenceService;
import org.ehcache.impl.config.persistence.DefaultPersistenceConfiguration;
import org.ehcache.impl.config.persistence.UserManagedPersistenceContext;
import org.ehcache.impl.persistence.DefaultLocalPersistenceService;
/**
* @author dzh
* @date Nov 10, 2016 6:11:24 PM
* @since 1.0
*/
public class TestUserManagedCache {
public void init() {
UserManagedCache<Long, String> userManagedCache = UserManagedCacheBuilder
.newUserManagedCacheBuilder(Long.class, String.class).build(false);
userManagedCache.init();
userManagedCache.put(1L, "da one!");
userManagedCache.close();
}
public void persistenceServiceTest() {
LocalPersistenceService persistenceService = new DefaultLocalPersistenceService(
new DefaultPersistenceConfiguration(new File("", "myUserData")));
PersistentUserManagedCache<Long, String> cache = UserManagedCacheBuilder
.newUserManagedCacheBuilder(Long.class, String.class)
.with(new UserManagedPersistenceContext<Long, String>("cache-name", persistenceService))
.withResourcePools(ResourcePoolsBuilder.newResourcePoolsBuilder().heap(10L, EntryUnit.ENTRIES).disk(10L,
MemoryUnit.MB, true))
.build(true);
// Work with the cache
cache.put(42L, "The Answer!");
// assertThat(cache.get(42L), is("The Answer!"));
cache.close();
try {
cache.destroy();
} catch (CachePersistenceException e) {
e.printStackTrace();
}
persistenceService.stop();
}
public void eventListenerTest() {
// UserManagedCache<Long, String> cache = UserManagedCacheBuilder
// .newUserManagedCacheBuilder(Long.class, String.class)
// .withEventExecutors(Executors.newSingleThreadExecutor(),
// Executors.newFixedThreadPool(5))
// .withEventListeners(CacheEventListenerConfigurationBuilder
// .newEventListenerConfiguration(ListenerObject.class,
// EventType.CREATED, EventType.UPDATED)
// .asynchronous().unordered())
// .withResourcePools(ResourcePoolsBuilder.newResourcePoolsBuilder().heap(3,
// EntryUnit.ENTRIES))
// .build(true);
//
// cache.put(1L, "Put it");
// cache.put(1L, "Update it");
//
// cache.close();
}
}