/**
* Created by mark on 26/06/15.
*/
import java.util.ArrayList;
import java.util.Collection;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.policies.DCAwareRoundRobinPolicy;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.RoundRobinPolicy;
import com.datastax.driver.core.policies.TokenAwarePolicy;
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
public class TestWithLogin {
// the obligatory main entry point :-)
public static void main (String args []){
Collection<String> hosts = Lists.newArrayList("192.168.56.21", "192.168.56.22", "192.168.56.23");
Cluster myCluster = null;
myCluster = createCluster(hosts,9042, 600, Optional.<String>absent());
}
// method from customer to create cluster object
public static Cluster createCluster(Collection<String> contactPoints, int port, int readTimeoutInMillis, Optional <String> primaryDcName) {
final Cluster.Builder clusterBuilder = Cluster.builder();
for (String contactPoint : contactPoints) {
clusterBuilder.addContactPoint(contactPoint);
}
LoadBalancingPolicy mainPolicy = primaryDcName.isPresent() ?
new DCAwareRoundRobinPolicy(primaryDcName.get()) :
new RoundRobinPolicy();
final Cluster cluster =
clusterBuilder
.withPort(port)
.withLoadBalancingPolicy(new TokenAwarePolicy(mainPolicy))
.withSocketOptions(new SocketOptions().setReadTimeoutMillis(readTimeoutInMillis))
.withCredentials("cassandra", "cassandra")
.build();
final Metadata metadata = cluster.getMetadata();
System.out.println("Connected to cluster: {}\n"+ metadata.getClusterName());
for (Host host : metadata.getAllHosts()) {
System.out.println("Datacenter: {}; Host: {}; Rack: {}\n"+
host.getDatacenter() + " " + host.getAddress() + " "+ host.getRack());
}
return cluster;
}
}