package net.ion.bleujin; import java.util.concurrent.Future; import junit.framework.TestCase; import net.ion.framework.util.Debug; import net.ion.framework.util.InfinityThread; import net.ion.nradon.Radon; import net.ion.nradon.config.RadonConfiguration; import org.infinispan.Cache; import org.infinispan.configuration.cache.CacheMode; 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.manager.DefaultCacheManager; import org.infinispan.notifications.Listener; import org.infinispan.notifications.cachelistener.annotation.CacheEntryCreated; import org.infinispan.notifications.cachelistener.annotation.CacheEntryModified; import org.infinispan.notifications.cachelistener.event.CacheEntryCreatedEvent; import org.infinispan.notifications.cachelistener.event.CacheEntryModifiedEvent; public class TestAradonContext extends TestCase { private GlobalConfiguration globalConf; private DefaultCacheManager dftManager; @Override protected void setUp() throws Exception { super.setUp(); globalConf = GlobalConfigurationBuilder.defaultClusteredBuilder(). transport().clusterName("infinispan-test-cluster").addProperty("configurationFile", "resource/config/jgroups-udp.xml").build(); Configuration defaultConf = new ConfigurationBuilder(). clustering().cacheMode(CacheMode.DIST_ASYNC).jmxStatistics().enable(). clustering().l1().enable().lifespan(6000000).invocationBatching(). clustering().hash().numOwners(2).unsafe().build(); dftManager = new DefaultCacheManager(globalConf, defaultConf, false); dftManager.start(); } public void testLoad() throws Exception { dftManager.getCache("myjob").addListener(new SampleListener()) ; Future<Radon> radon = RadonConfiguration.newBuilder(9000).rootContext("dftmanager", dftManager).start() ; radon.get() ; new InfinityThread().startNJoin() ; } public void testWrite() throws Exception { Cache<String, Object> myjob = dftManager.getCache("myjob"); for (int i = 0; i < 10; i++) { Thread.sleep(1000) ; myjob.put("key"+i, "value" + i) ; System.out.print('.') ; } } @Listener public class SampleListener { private int created = 0; private int modified = 0; @CacheEntryCreated public void cacheEntryCreated(CacheEntryCreatedEvent e) { if (e.isPre()) return ; created++; Debug.line(e.getKey(), e.getType()) ; } @CacheEntryModified public void cacheEntryModified(CacheEntryModifiedEvent e) { if (e.isPre()) return ; modified++; Debug.line(e.getKey(), e.getValue()) ; } public int sum() { return created + modified; } } }