package com.datastax.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.datastax.demo.utils.FileUtils; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; import com.datastax.driver.core.exceptions.InvalidQueryException; public abstract class RunCQLFile { private static Logger logger = LoggerFactory.getLogger(RunCQLFile.class); static String CREATE_KEYSPACE; static String DROP_KEYSPACE; private Cluster cluster; private Session session; private String CQL_FILE; RunCQLFile(String cqlFile) { logger.info("Running file " + cqlFile); this.CQL_FILE = cqlFile; String contactPointsStr = System.getProperty("contactPoints"); if (contactPointsStr == null) { contactPointsStr = "127.0.0.1"; } cluster = Cluster.builder().addContactPoints(contactPointsStr.split(",")).build(); session = cluster.connect(); } void internalSetup() { this.runfile(); } void runfile() { String readFileIntoString = FileUtils.readFileIntoString(CQL_FILE); String[] commands = readFileIntoString.split(";"); for (String command : commands){ String cql = command.trim(); if (cql.isEmpty()){ continue; } if (cql.toLowerCase().startsWith("drop")){ this.runAllowFail(cql); }else{ this.run(cql); } } } void runAllowFail(String cql) { try { run(cql); } catch (InvalidQueryException e) { logger.warn("Ignoring exception - " + e.getMessage()); } } void run(String cql){ logger.info("Running : " + cql); session.execute(cql); } void sleep(int i) { try { Thread.sleep(i); } catch (Exception e) { } } void shutdown() { session.close(); cluster.close(); } }