package org.infinispan.server.hotrod.test; import static org.infinispan.server.core.test.ServerTestingUtil.killServer; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.hotRodCacheConfiguration; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.killClient; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.startHotRodServer; import org.infinispan.AdvancedCache; import org.infinispan.Cache; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.server.hotrod.HotRodServer; import org.infinispan.test.SingleCacheManagerTest; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import io.netty.util.concurrent.Future; public abstract class HotRodSingleNodeTest extends SingleCacheManagerTest { public final String cacheName = "HotRodCache"; protected HotRodServer hotRodServer; HotRodClient hotRodClient; AdvancedCache<byte[], byte[]> advancedCache; private final String hotRodJmxDomain = getClass().getSimpleName(); @Override protected EmbeddedCacheManager createCacheManager() { EmbeddedCacheManager cacheManager = createTestCacheManager(); Cache<byte[], byte[]> cache = cacheManager.getCache(cacheName); advancedCache = cache.getAdvancedCache(); return cacheManager; } @Override protected void setup() throws Exception { super.setup(); hotRodServer = createStartHotRodServer(cacheManager); hotRodClient = connectClient(); } protected EmbeddedCacheManager createTestCacheManager() { return TestCacheManagerFactory.createCacheManager(hotRodCacheConfiguration()); } protected HotRodServer createStartHotRodServer(EmbeddedCacheManager cacheManager) { return startHotRodServer(cacheManager); } @AfterClass(alwaysRun = true) public void destroyAfterClass() { log.debug("Test finished, close cache, client and Hot Rod server"); super.destroyAfterClass(); shutdownClient().awaitUninterruptibly(); killServer(hotRodServer); } protected HotRodServer server() { return hotRodServer; } protected HotRodClient client() { return hotRodClient; } protected String jmxDomain() { return hotRodJmxDomain; } protected Future<?> shutdownClient() { return killClient(hotRodClient); } protected HotRodClient connectClient() { return new HotRodClient("127.0.0.1", hotRodServer.getPort(), cacheName, 60, (byte) 21); } }