package org.infinispan.integrationtests.spring.boot.session.remote;
import java.util.UUID;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
import org.infinispan.integrationtests.spring.boot.session.AbstractSpringSessionTCK;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.server.hotrod.HotRodServer;
import org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RemoteConfiguration.class, webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)
public class RemoteSpringSessionTest extends AbstractSpringSessionTCK {
private static EmbeddedCacheManager serverCache;
private static HotRodServer server;
@BeforeClass
public static void beforeclass() {
GlobalConfigurationBuilder globalConfigurationBuilder = new GlobalConfigurationBuilder().nonClusteredDefault();
globalConfigurationBuilder.globalJmxStatistics().jmxDomain("infinispan-" + UUID.randomUUID());
ConfigurationBuilder cacheConfiguration = new ConfigurationBuilder();
serverCache = new DefaultCacheManager(globalConfigurationBuilder.build());
serverCache.defineConfiguration("sessions", cacheConfiguration.build());
HotRodServerConfigurationBuilder hotRodServerConfigurationBuilder = new HotRodServerConfigurationBuilder();
hotRodServerConfigurationBuilder.name(RemoteSpringSessionTest.class.getSimpleName());
hotRodServerConfigurationBuilder.port(RemoteConfiguration.SERVER_PORT).defaultCacheName("sessions");
server = new HotRodServer();
server.start(hotRodServerConfigurationBuilder.build(), serverCache);
}
@AfterClass
public static void afterClass() {
server.stop();
serverCache.stop();
}
}