package org.infinispan.jcache; import static org.infinispan.test.TestingUtil.replaceComponent; import java.lang.reflect.Method; import java.net.URI; import java.util.concurrent.TimeUnit; import javax.cache.Cache; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.jcache.embedded.JCacheManager; import org.infinispan.test.fwk.CleanupAfterMethod; import org.infinispan.util.TimeService; import org.testng.annotations.Test; /** * @author Matej Cimbora */ @Test(testName = "org.infinispan.jcache.JCacheTwoCachesExpirationTest", groups = "functional") @CleanupAfterMethod public class JCacheTwoCachesExpirationTest extends AbstractTwoCachesExpirationTest { @Override public Cache getCache1(Method m) { JCacheManager jCacheManager = new JCacheManager(URI.create(m.getName()), cacheManagers.get(0), null); return jCacheManager.getCache("expiry"); } @Override public Cache getCache2(Method m) { JCacheManager jCacheManager = new JCacheManager(URI.create(m.getName()), cacheManagers.get(1), null); return jCacheManager.getCache("expiry"); } @Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder defaultClusteredCacheConfig2 = getDefaultClusteredCacheConfig(CacheMode.DIST_SYNC, false); defaultClusteredCacheConfig2.expiration().lifespan(EXPIRATION_TIMEOUT).wakeUpInterval(100, TimeUnit.MILLISECONDS); createClusteredCaches(2, "expiry", defaultClusteredCacheConfig2); cacheManagers.forEach(cm -> replaceComponent(cm, TimeService.class, controlledTimeService, true)); waitForClusterToForm("expiry"); } }