content: package com.github.adejanovski.cassandra.jdbc;
  
  import java.io.FileNotFoundException;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  import org.testng.annotations.AfterSuite;
  import org.testng.annotations.BeforeSuite;
  
  import com.datastax.driver.core.Cluster;
  import com.datastax.driver.core.Cluster.Builder;
  import com.datastax.driver.core.ConsistencyLevel;
  import com.datastax.driver.core.QueryOptions;
  import com.datastax.driver.core.Session;
  
  public class BuildCluster {
  
  	private final static Logger logger = LoggerFactory.getLogger(BuildCluster.class);
  
  	public static String HOST = System.getProperty("host", ConnectionDetails.getHost());
  	public static CCMBridge ccmBridge = null;
  	public static Cluster cluster = null;
  	public static Session session = null;
  	public static Cluster cluster2 = null;
  	public static Session session2 = null;
  	public static Session sessionFluks = null;
  	public static boolean clusterHasBuilt = false;
  	public static boolean dynamicCluster = false;
  
  	@BeforeSuite(groups={"init"})
  	public static void setUpBeforeSuite() throws Exception {		
  		System.setProperty("cassandra.version", "3.0.4");
  		System.setProperty("ipprefix","127.0.0.");
  		if(!isClusterActive()){
  			ccmBridge = CCMBridge.create("jdbc_cluster" + new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date()), 1, 1);
  			ccmBridge.waitForUp(1);
  			//ccmBridge.waitForUp(2);
  			HOST = CCMBridge.ipOfNode(1);
  			dynamicCluster = true;
  		}
  		else{
  			HOST = "127.0.0.1";
  		}
  		
  		clusterHasBuilt = true;		
  	}
  	
  		
  	@AfterSuite(groups={"init"})
  	public static void tearDownAfterSuite() throws Exception {		
  		System.out.println("CLOSING CASSANDRA CONNECTION");		
  		if(dynamicCluster){
  			System.out.println("Stopping nodes");
  			clusterHasBuilt = false;
  			try{
  				ccmBridge.forceStop();			
  				System.out.println("Discarding cluster");
  				ccmBridge.remove();
  				HOST = System.getProperty("host", ConnectionDetails.getHost());
  			}catch(Exception e){
  				System.out.println("Silent error discarding cluster");
  			}
  		}
  	}
  	
  	
  	public static boolean isClusterActive(){
  		try{
  			Builder builder = Cluster.builder().withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.QUORUM).setSerialConsistencyLevel(ConsistencyLevel.LOCAL_SERIAL));
  			cluster = builder.addContactPoint("127.0.0.1").build();
  			session = cluster.connect();
  			return true;
  		} catch(Exception e){
  			return false;			
  		}
  		
  	}
  
  }
  