package org.infinispan.server.test.client.rest;
import static org.infinispan.server.test.util.ITestUtils.isReplicatedMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.infinispan.arquillian.core.InfinispanResource;
import org.infinispan.arquillian.core.RemoteInfinispanServer;
import org.infinispan.server.test.category.RESTClusteredDomain;
import org.infinispan.server.test.util.ManagementClient;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
/**
* Test asynchronous REST operations through a custom REST client.
* The servers are running in domain mode.
*
* @author mgencur
*/
@RunWith(Arquillian.class)
@Category({ RESTClusteredDomain.class })
public class RESTAsyncClusteredDomainIT extends AbstractRESTAsyncIT {
private static final int REST_PORT1 = 8081;
private static final int REST_PORT2 = 8231;
@InfinispanResource(value = "master:server-one", jmxPort = 4447)
RemoteInfinispanServer server1;
@InfinispanResource(value = "master:server-two", jmxPort = 4597)
RemoteInfinispanServer server2;
@BeforeClass
public static void beforeClass() throws Exception {
ManagementClient client = ManagementClient.getInstance();
client.enableJmx();
try {
//do nothing in dist mode, the cache is already there
if (isReplicatedMode()) {
client.addSocketBinding("rest-repl", "clustered-sockets", REST_PORT1);
client.addReplicatedCache("restCache", "clustered", "replicated");
client.addRestEndpoint("restRepl", "clustered", "restCache", "rest-repl");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@AfterClass
public static void afterClass() throws Exception {
ManagementClient client = ManagementClient.getInstance();
//do nothing in dist mode, the cache is already there
if (isReplicatedMode()) {
client.removeRestEndpoint("restRepl");
client.removeReplicatedCache("restCache", "clustered");
client.removeSocketBinding("rest-repl", "clustered-sockets");
}
client.disableJmx();
}
@Override
protected int getRestPort1() {
return REST_PORT1;
}
@Override
protected int getRestPort2() {
return REST_PORT2;
}
@Override
protected List<RemoteInfinispanServer> getServers() {
List<RemoteInfinispanServer> servers = new ArrayList<RemoteInfinispanServer>();
servers.add(server1);
servers.add(server2);
return Collections.unmodifiableList(servers);
}
}