package com.agfa.aca; import static org.junit.Assert.assertNotNull; import org.infinispan.Cache; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.global.GlobalConfiguration; import org.infinispan.configuration.global.GlobalConfigurationBuilder; import org.infinispan.eviction.EvictionStrategy; import org.infinispan.loaders.cassandra.configuration.CassandraCacheStoreConfigurationBuilder; import org.infinispan.manager.DefaultCacheManager; import org.infinispan.notifications.Listener; import org.infinispan.notifications.cachelistener.annotation.CacheEntryActivated; import org.infinispan.notifications.cachelistener.annotation.CacheEntryCreated; import org.infinispan.notifications.cachelistener.annotation.CacheEntryPassivated; import org.infinispan.notifications.cachelistener.event.CacheEntryActivatedEvent; import org.infinispan.notifications.cachelistener.event.CacheEntryCreatedEvent; import org.infinispan.notifications.cachelistener.event.CacheEntryPassivatedEvent; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class PassivationTest { private static boolean autoCreateKeyspace = true; private static Logger logger = LoggerFactory.getLogger(PassivationTest.class); private static DefaultCacheManager manager; @BeforeClass public static void setup() { GlobalConfiguration globalConfiguration = new GlobalConfigurationBuilder() .transport() .clusterName("test-cache") .defaultTransport() .build(); Configuration defaultConfiguration = new ConfigurationBuilder() .eviction() .strategy(EvictionStrategy.LRU) .maxEntries(1) .loaders() .passivation(true) .addStore(CassandraCacheStoreConfigurationBuilder.class) .ignoreModifications(false) .addServer().host("localhost") .configurationPropertiesFile("cassadrapool.properties") .autoCreateKeyspace(autoCreateKeyspace) .keySpace("ispn") .entryColumnFamily("entries") .expirationColumnFamily("expiration") .build(); manager = new DefaultCacheManager(globalConfiguration, defaultConfiguration); } @AfterClass public static void teardown() { manager.stop(); } @Listener public static class MyListener { @CacheEntryCreated public void created(CacheEntryCreatedEvent event) { if (event.isPre()) logger.info("creating {}", event.getKey()); else logger.info("created {}", event.getKey()); } @CacheEntryPassivated public void passivated(CacheEntryPassivatedEvent event) { if (event.isPre()) logger.info("passivating {}", event.getKey()); else logger.info("passivated {}", event.getKey()); } @CacheEntryActivated public void activated(CacheEntryActivatedEvent event) { if (event.isPre()) logger.info("activating {}", event.getKey()); else logger.info("activated {}", event.getKey()); } } @Test public void test() throws Exception { Cache cache = manager.getCache(); cache.addListener(new MyListener()); cache.put("test1", "duck"); cache.put("test2", "rabbit"); assertNotNull(cache.get("test1")); } }