Some Sonar and CLM issues resolved. 15/34115/1
authorThomas Nelson Jr (arthurdent3) tn1381@att.com <tn1381@att.com>
Mon, 5 Mar 2018 19:18:37 +0000 (14:18 -0500)
committerThomas Nelson Jr (arthurdent3) tn1381@att.com <tn1381@att.com>
Mon, 5 Mar 2018 19:18:37 +0000 (14:18 -0500)
- Update some library versions fro CLM
- Some code fixes for Sonar

Change-Id: I270955be6337400f1d30556cfa854712f102916e
Issue-ID: MUSIC-40
Signed-off-by: Thomas Nelson Jr (arthurdent3) tn1381@att.com <tn1381@att.com>
pom.xml
src/main/java/org/onap/music/datastore/jsonobjects/JsonInsert.java
src/main/java/org/onap/music/lockingservice/MusicLockingService.java
src/main/java/org/onap/music/lockingservice/ProtocolSupport.java
src/main/java/org/onap/music/main/MusicCore.java
src/main/java/org/onap/music/main/MusicUtil.java
version.properties

diff --git a/pom.xml b/pom.xml
index cb32669..b87ca3b 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
         <jersey1.version>1.17</jersey1.version>
         <jersey2.version>2.26</jersey2.version>
         <jaxrs.version>2.0.1</jaxrs.version>
-        <cassandra.version>3.0.0</cassandra.version>
+        <cassandra.version>3.2.0</cassandra.version>
         <zookeeper.version>3.4.6</zookeeper.version>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
             <version>2.4</version>
             <scope>provided</scope>
         </dependency>
+        <!-- 
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-model</artifactId>
             <version>3.3.9</version>
         </dependency>
+         -->
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-jcs-core</artifactId>
         <dependency>
             <groupId>io.swagger</groupId>
             <artifactId>swagger-jersey-jaxrs</artifactId>
-            <version>1.5.8</version>
+            <version>1.5.18</version>
         </dependency>
 
         <dependency>
             <artifactId>eelf-core</artifactId>
             <version>1.0.1-oss</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.3</version>
+        </dependency>        
     </dependencies>
 
     <reporting>
index 22c0104..b7a9ec2 100644 (file)
@@ -35,7 +35,8 @@ public class JsonInsert implements Serializable {
     private String keyspaceName;
     private String tableName;
     private Map<String, Object> values;
-    String ttl, timestamp;
+    private String ttl;
+    private String timestamp;
     private Map<String, Object> row_specification;
     private Map<String, String> consistencyInfo;
 
@@ -109,7 +110,6 @@ public class JsonInsert implements Serializable {
             out = new ObjectOutputStream(bos);
             out.writeObject(this);
         } catch (IOException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
         }
         return bos.toByteArray();
index 9b21f59..e8a57db 100644 (file)
@@ -35,7 +35,7 @@ import org.onap.music.main.MusicUtil;
 
 public class MusicLockingService implements Watcher {
 
-
+    
     private static final int SESSION_TIMEOUT = 180000;
     ZkStatelessLockService zkLockHandle = null;
     private CountDownLatch connectedSignal = new CountDownLatch(1);
@@ -71,7 +71,7 @@ public class MusicLockingService implements Watcher {
     }
 
     public void createLockaIfItDoesNotExist(String lockName) {
-        if (zkLockHandle.checkIfLockExists(lockName) == false) {
+        if (!zkLockHandle.checkIfLockExists(lockName)) {
             String lockHolder = null;
             MusicLockState ml = new MusicLockState(MusicLockState.LockStatus.UNLOCKED, lockHolder);
             byte[] data = ml.serialize();
index df4d6ad..ec612bc 100644 (file)
@@ -21,8 +21,6 @@
  */
 package org.onap.music.lockingservice;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.ZooDefs;
@@ -49,10 +47,6 @@ class ProtocolSupport {
     private int retryCount = 10;
     private List<ACL> acl = ZooDefs.Ids.OPEN_ACL_UNSAFE;
 
-    // public ProtocolSupport(ZooKeeper zookeeper) {
-    // this.zookeeper = zookeeper;
-    // }
-
     /**
      * Closes this strategy and releases any ZooKeeper resources; but keeps the ZooKeeper instance
      * open
@@ -111,7 +105,9 @@ class ProtocolSupport {
     /**
      * Allow derived classes to perform some custom closing operations to release resources
      */
-    protected void doClose() {}
+    protected void doClose() {
+        throw new UnsupportedOperationException();
+    }
 
 
     /**
@@ -173,9 +169,7 @@ class ProtocolSupport {
                     return true;
                 }
             });
-        } catch (KeeperException e) {
-            LOG.error(EELFLoggerDelegate.errorLogger,"Caught: " + e, e);
-        } catch (InterruptedException e) {
+        } catch (InterruptedException|KeeperException e) {
             LOG.error(EELFLoggerDelegate.errorLogger,"Caught: " + e, e);
         }
     }
@@ -200,6 +194,7 @@ class ProtocolSupport {
                 Thread.sleep(attemptCount * retryDelay);
             } catch (InterruptedException e) {
                 LOG.error(EELFLoggerDelegate.errorLogger,"Failed to sleep: " + e, e);
+                Thread.currentThread().interrupt();
             }
         }
     }
index 04aa60c..0306560 100644 (file)
@@ -31,7 +31,6 @@ import org.onap.music.datastore.MusicDataStore;
 import org.onap.music.datastore.PreparedQueryObject;
 import org.onap.music.datastore.jsonobjects.JsonKeySpace;
 import org.onap.music.eelf.logging.EELFLoggerDelegate;
-// import org.onap.music.eelf.logging.EELFLoggerDelegate;
 import org.onap.music.exceptions.MusicLockingException;
 import org.onap.music.exceptions.MusicQueryException;
 import org.onap.music.exceptions.MusicServiceException;
@@ -209,6 +208,10 @@ public class MusicCore {
              */
             if (acquireLock(key, lockId).getResult() == ResultType.SUCCESS) {
                 mls = getMusicLockState(key);// get latest state
+                if ( mls == null ) {
+                    logger.info(EELFLoggerDelegate.applicationLogger,"Music Lock State is null");
+                    return new ReturnType(ResultType.FAILURE, "Could not acquire lock, Lock State is null");                    
+                }
                 if (mls.getLeaseStartTime() == -1) {// set it again only if it is not set already
                     mls.setLeaseStartTime(System.currentTimeMillis());
                     mls.setLeasePeriod(leasePeriod);
@@ -243,7 +246,7 @@ public class MusicCore {
         } catch (MusicLockingException e2) {
             logger.error(EELFLoggerDelegate.errorLogger,"Failed to aquireLock lockId " + lockId + " " + e2);
         }
-        if (result == false) {
+        if (!result) {
             logger.info(EELFLoggerDelegate.applicationLogger,"In acquire lock: Not your turn, someone else has the lock");
             try {
                                if (!getLockingServiceHandle().lockIdExists(lockId)) {
@@ -260,7 +263,7 @@ public class MusicCore {
 
         // this is for backward compatibility where locks could also be acquired on just
         // keyspaces or tables.
-        if (isTableOrKeySpaceLock(key) == true) {
+        if (isTableOrKeySpaceLock(key)) {
             logger.info(EELFLoggerDelegate.applicationLogger,"In acquire lock: A table or keyspace lock so no need to perform sync...so returning true");
             return new ReturnType(ResultType.SUCCESS, "A table or keyspace lock so no need to perform sync...so returning true");
         }
@@ -357,8 +360,6 @@ public class MusicCore {
         selectQuery.appendQueryString("SELECT *  FROM " + keyspaceName + "." + tableName + " WHERE "
                         + primaryKeyName + "= ?" + ";");
         selectQuery.addValue(cqlFormattedPrimaryKeyValue);
-        // String selectQuery = "SELECT * FROM "+keyspaceName+"."+tableName+ " WHERE
-        // "+primaryKeyName+"="+cqlFormattedPrimaryKeyValue+";";
         ResultSet results = null;
         try {
             results = getDSHandle().executeCriticalGet(selectQuery);
@@ -367,7 +368,6 @@ public class MusicCore {
             ColumnDefinitions colInfo = row.getColumnDefinitions();
             int totalColumns = colInfo.size();
             int counter = 1;
-            // String fieldValueString="";
             StringBuilder fieldValueString = new StringBuilder("");
             for (Definition definition : colInfo) {
                 String colName = definition.getName();
@@ -376,7 +376,6 @@ public class MusicCore {
                 DataType colType = definition.getType();
                 Object valueObj = getDSHandle().getColValue(row, colName, colType);
                 Object valueString = MusicUtil.convertToActualDataType(colType, valueObj);
-                // fieldValueString = fieldValueString+ colName+"="+valueString;
                 fieldValueString.append(colName + " = ?");
                 updateQuery.addValue(valueString);
                 if (counter != (totalColumns - 1))
@@ -386,8 +385,6 @@ public class MusicCore {
             updateQuery.appendQueryString("UPDATE " + keyspaceName + "." + tableName + " SET "
                             + fieldValueString + " WHERE " + primaryKeyName + "= ? " + ";");
             updateQuery.addValue(cqlFormattedPrimaryKeyValue);
-            // String updateQuery = "UPDATE "+keyspaceName+"."+tableName+" SET "+fieldValueString+"
-            // WHERE "+primaryKeyName+"="+cqlFormattedPrimaryKeyValue+";";
 
             getDSHandle().executePut(updateQuery, "critical");
         } catch (MusicServiceException | MusicQueryException e) {
index 3c0d4c9..5bc9f94 100755 (executable)
@@ -45,436 +45,444 @@ import com.datastax.driver.core.DataType;
  * 
  */
 public class MusicUtil {
-       private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicUtil.class);
-
-       private static int myId = 0;
-       private static ArrayList<String> allIds = new ArrayList<String>();
-       private static String publicIp = "";
-       private static ArrayList<String> allPublicIps = new ArrayList<String>();
-       private static String myZkHost = "localhost";
-       private static String myCassaHost = "localhost";
-       private static String defaultMusicIp = "localhost";
-       private static boolean debug = true;
-       private static String version = "2.3.0";
-       private static String musicRestIp = "localhost";
-       private static String musicPropertiesFilePath = "/opt/app/music/etc/music.properties";
-       private static long defaultLockLeasePeriod = 6000;
-       private static final String[] propKeys = new String[] { "zookeeper.host", "cassandra.host", "music.ip", "debug",
-                       "version", "music.rest.ip", "music.properties", "lock.lease.period", "id", "all.ids", "public.ip",
-                       "all.pubic.ips", "cassandra.user", "cassandra.password", "aaf.endpoint.url" };
-
-       public static final String ATOMIC = "atomic";
-       public static final String EVENTUAL = "eventual";
-       public static final String CRITICAL = "critical";
-       public static final String ATOMICDELETELOCK = "atomic_delete_lock";
-       
-       public static final String DEFAULTKEYSPACENAME = "TBD";
-       private static String cassName = "cassandra";
-       private static String cassPwd;
-       private static String aafEndpointUrl = null;
-
-       /**
-        * @return the cassName
-        */
-       public static String getCassName() {
-               return cassName;
-       }
-
-       /**
-        * @return the cassPwd
-        */
-       public static String getCassPwd() {
-               return cassPwd;
-       }
-
-       /**
-        * @return the aafEndpointUrl
-        */
-       public static String getAafEndpointUrl() {
-               return aafEndpointUrl;
-       }
-
-       /**
-        * 
-        * @param aafEndpointUrl
-        */
-       public static void setAafEndpointUrl(String aafEndpointUrl) {
-               MusicUtil.aafEndpointUrl = aafEndpointUrl;
-       }
-
-       /**
-        * 
-        * @return
-        */
-       public static int getMyId() {
-               return myId;
-       }
-
-       /**
-        * 
-        * @param myId
-        */
-       public static void setMyId(int myId) {
-               MusicUtil.myId = myId;
-       }
-
-       /**
-        * 
-        * @return
-        */
-       public static ArrayList<String> getAllIds() {
-               return allIds;
-       }
-
-       /**
-        * 
-        * @param allIds
-        */
-       public static void setAllIds(List<String> allIds) {
-               MusicUtil.allIds = (ArrayList<String>) allIds;
-       }
-
-       /**
-        * 
-        * @return
-        */
-       public static String getPublicIp() {
-               return publicIp;
-       }
-
-       /**
-        * 
-        * @param publicIp
-        */
-       public static void setPublicIp(String publicIp) {
-               MusicUtil.publicIp = publicIp;
-       }
-
-       /**
-        * 
-        * @return
-        */
-       public static ArrayList<String> getAllPublicIps() {
-               return allPublicIps;
-       }
-
-       /**
-        * 
-        * @param allPublicIps
-        */
-       public static void setAllPublicIps(List<String> allPublicIps) {
-               MusicUtil.allPublicIps = (ArrayList<String>) allPublicIps;
-       }
-
-       /**
-        * Returns An array of property names that should be in the Properties
-        * files.
-        * 
-        * @return
-        */
-       public static String[] getPropkeys() {
-               return propKeys;
-       }
-
-       /**
-        * Get MusicRestIp - default = localhost property file value - music.rest.ip
-        * 
-        * @return
-        */
-       public static String getMusicRestIp() {
-               return musicRestIp;
-       }
-
-       /**
-        * Set MusicRestIp
-        * 
-        * @param musicRestIp
-        */
-       public static void setMusicRestIp(String musicRestIp) {
-               MusicUtil.musicRestIp = musicRestIp;
-       }
-
-       /**
-        * Get MusicPropertiesFilePath - Default = /opt/music/music.properties
-        * property file value - music.properties
-        * 
-        * @return
-        */
-       public static String getMusicPropertiesFilePath() {
-               return musicPropertiesFilePath;
-       }
-
-       /**
-        * Set MusicPropertiesFilePath
-        * 
-        * @param musicPropertiesFilePath
-        */
-       public static void setMusicPropertiesFilePath(String musicPropertiesFilePath) {
-               MusicUtil.musicPropertiesFilePath = musicPropertiesFilePath;
-       }
-
-       /**
-        * Get DefaultLockLeasePeriod - Default = 6000 property file value -
-        * lock.lease.period
-        * 
-        * @return
-        */
-       public static long getDefaultLockLeasePeriod() {
-               return defaultLockLeasePeriod;
-       }
-
-       /**
-        * Set DefaultLockLeasePeriod
-        * 
-        * @param defaultLockLeasePeriod
-        */
-       public static void setDefaultLockLeasePeriod(long defaultLockLeasePeriod) {
-               MusicUtil.defaultLockLeasePeriod = defaultLockLeasePeriod;
-       }
-
-       /**
-        * Set Debug
-        * 
-        * @param debug
-        */
-       public static void setDebug(boolean debug) {
-               MusicUtil.debug = debug;
-       }
-
-       /**
-        * Is Debug - Default = true property file value - debug
-        * 
-        * @return
-        */
-       public static boolean isDebug() {
-               return debug;
-       }
-
-       /**
-        * Set Version
-        * 
-        * @param version
-        */
-       public static void setVersion(String version) {
-               MusicUtil.version = version;
-       }
-
-       /**
-        * Return the version property file value - version
-        * 
-        * @return
-        */
-       public static String getVersion() {
-               return version;
-       }
-
-       /**
-        * Get MyZkHost - Zookeeper Hostname - Default = localhost property file
-        * value - zookeeper.host
-        * 
-        * @return
-        */
-       public static String getMyZkHost() {
-               return myZkHost;
-       }
-
-       /**
-        * Set MyZkHost - Zookeeper Hostname
-        * 
-        * @param myZkHost
-        */
-       public static void setMyZkHost(String myZkHost) {
-               MusicUtil.myZkHost = myZkHost;
-       }
-
-       /**
-        * Get MyCassHost - Cassandra Hostname - Default = localhost property file
-        * value - cassandra.host
-        * 
-        * @return
-        */
-       public static String getMyCassaHost() {
-               return myCassaHost;
-       }
-
-       /**
-        * Set MyCassHost - Cassandra Hostname
-        * 
-        * @param myCassaHost
-        */
-       public static void setMyCassaHost(String myCassaHost) {
-               MusicUtil.myCassaHost = myCassaHost;
-       }
-
-       /**
-        * Get DefaultMusicIp - Default = localhost property file value - music.ip
-        * 
-        * @return
-        */
-       public static String getDefaultMusicIp() {
-               return defaultMusicIp;
-       }
-
-       /**
-        * Set DefaultMusicIp
-        * 
-        * @param defaultMusicIp
-        */
-       public static void setDefaultMusicIp(String defaultMusicIp) {
-               MusicUtil.defaultMusicIp = defaultMusicIp;
-       }
-
-       /**
-        * 
-        * @return
-        */
-       public static String getTestType() {
-               String testType = "";
-               try {
-                       Scanner fileScanner = new Scanner(new File(""));
-                       testType = fileScanner.next();// ignore the my id line
-                       String batchSize = fileScanner.next();// ignore the my public ip
-                                                                                                       // line
-                       fileScanner.close();
-               } catch (FileNotFoundException e) {
-                       logger.error(EELFLoggerDelegate.errorLogger, e.getMessage());
-               }
-               return testType;
-
-       }
-
-       /**
-        * 
-        * @param time
-        */
-       public static void sleep(long time) {
-               try {
-                       Thread.sleep(time);
-               } catch (InterruptedException e) {
-                       logger.error(EELFLoggerDelegate.errorLogger, e.getMessage());
-               }
-       }
-
-       /**
-        * Utility function to check if the query object is valid.
-        * 
-        * @param withparams
-        * @param queryObject
-        * @return
-        */
-       public static boolean isValidQueryObject(boolean withparams, PreparedQueryObject queryObject) {
-               if (withparams) {
-                       int noOfValues = queryObject.getValues().size();
-                       int noOfParams = 0;
-                       char[] temp = queryObject.getQuery().toCharArray();
-                       for (int i = 0; i < temp.length; i++) {
-                               if (temp[i] == '?')
-                                       noOfParams++;
-                       }
-                       return (noOfValues == noOfParams);
-               } else {
-                       return !queryObject.getQuery().isEmpty();
-               }
-
-       }
-
-       public static void setCassName(String cassName) {
-               MusicUtil.cassName = cassName;
-       }
-
-       public static void setCassPwd(String cassPwd) {
-               MusicUtil.cassPwd = cassPwd;
-       }
-
-       public static String convertToCQLDataType(DataType type, Object valueObj) {
-
-               String value = "";
-               switch (type.getName()) {
-               case UUID:
-                       value = valueObj + "";
-                       break;
-               case TEXT:
-               case VARCHAR:
-                       String valueString = valueObj + "";
-                       valueString = valueString.replace("'", "''");
-                       value = "'" + valueString + "'";
-                       break;
-               case MAP: {
-                       Map<String, Object> otMap = (Map<String, Object>) valueObj;
-                       value = "{" + jsonMaptoSqlString(otMap, ",") + "}";
-                       break;
-               }
-               default:
-                       value = valueObj + "";
-                       break;
-               }
-               return value;
-       }
-
-       /**
-        * 
-        * @param colType
-        * @param valueObj
-        * @return
-        * @throws Exception
-        */
-       public static Object convertToActualDataType(DataType colType, Object valueObj)  throws Exception{
-               String valueObjString = valueObj + "";
-               switch (colType.getName()) {
-               case UUID:
-                       return UUID.fromString(valueObjString);
-               case VARINT:
-                       return BigInteger.valueOf(Long.parseLong(valueObjString));
-               case BIGINT:
-                       return Long.parseLong(valueObjString);
-               case INT:
-                       return Integer.parseInt(valueObjString);
-               case FLOAT:
-                       return Float.parseFloat(valueObjString);
-               case DOUBLE:
-                       return Double.parseDouble(valueObjString);
-               case BOOLEAN:
-                       return Boolean.parseBoolean(valueObjString);
-               case MAP:
-                       return (Map<String, Object>) valueObj;
-               default:
-                       return valueObjString;
-               }
-       }
-
-       /**
-        *
-        * Utility function to parse json map into sql like string
-        * 
-        * @param jMap
-        * @param lineDelimiter
-        * @return
-        */
-
-       public static String jsonMaptoSqlString(Map<String, Object> jMap, String lineDelimiter) {
-               StringBuilder sqlString = new StringBuilder();
-               int counter = 0;
-               for (Map.Entry<String, Object> entry : jMap.entrySet()) {
-                       Object ot = entry.getValue();
-                       String value = ot + "";
-                       if (ot instanceof String) {
-                               value = "'" + value.replace("'", "''") + "'";
-                       }
-                       sqlString.append("'" + entry.getKey() + "':" + value);
-                       if (counter != jMap.size() - 1)
-                               sqlString.append(lineDelimiter);
-                       counter = counter + 1;
-               }
-               return sqlString.toString();
-       }
-
-       public static Map<String, HashMap<String, Object>> setErrorResponse(MusicServiceException ex) {
-               Map<String, HashMap<String, Object>> results = new HashMap<>();
-               HashMap<String, Object> tempMap = new HashMap<>();
-               Map<String, Object> result = new HashMap<>();
-               result.put("error-description", ex.getMessage());
-               tempMap.put("error", result);
-               results.put("result", tempMap);
-               return results;
-       }
+    private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicUtil.class);
+    
+    public static final String ATOMIC = "atomic";
+    public static final String EVENTUAL = "eventual";
+    public static final String CRITICAL = "critical";
+    public static final String ATOMICDELETELOCK = "atomic_delete_lock";
+    
+    public static final String DEFAULTKEYSPACENAME = "TBD";
+
+    
+    private static int myId = 0;
+    private static ArrayList<String> allIds = new ArrayList<>();
+    private static String publicIp = "";
+    private static ArrayList<String> allPublicIps = new ArrayList<>();
+    private static String myZkHost = "localhost";
+    private static String myCassaHost = "localhost";
+    private static String defaultMusicIp = "localhost";
+    private static boolean debug = true;
+    private static String version = "2.3.0";
+    private static String musicRestIp = "localhost";
+    private static String musicPropertiesFilePath = "/opt/app/music/etc/music.properties";
+    private static long defaultLockLeasePeriod = 6000;
+    private static final String[] propKeys = new String[] { "zookeeper.host", "cassandra.host", "music.ip", "debug",
+            "version", "music.rest.ip", "music.properties", "lock.lease.period", "id", "all.ids", "public.ip",
+            "all.pubic.ips", "cassandra.user", "cassandra.password", "aaf.endpoint.url" };
+
+    private static String cassName = "cassandra";
+    private static String cassPwd;
+    private static String aafEndpointUrl = null;
+
+    private MusicUtil() {
+        throw new IllegalStateException("Utility Class");
+    }
+    
+    
+    /**
+     * @return the cassName
+     */
+    public static String getCassName() {
+        return cassName;
+    }
+
+    /**
+     * @return the cassPwd
+     */
+    public static String getCassPwd() {
+        return cassPwd;
+    }
+
+    /**
+     * @return the aafEndpointUrl
+     */
+    public static String getAafEndpointUrl() {
+        return aafEndpointUrl;
+    }
+
+    /**
+     * 
+     * @param aafEndpointUrl
+     */
+    public static void setAafEndpointUrl(String aafEndpointUrl) {
+        MusicUtil.aafEndpointUrl = aafEndpointUrl;
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public static int getMyId() {
+        return myId;
+    }
+
+    /**
+     * 
+     * @param myId
+     */
+    public static void setMyId(int myId) {
+        MusicUtil.myId = myId;
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public static List<String> getAllIds() {
+        return allIds;
+    }
+
+    /**
+     * 
+     * @param allIds
+     */
+    public static void setAllIds(List<String> allIds) {
+        MusicUtil.allIds = (ArrayList<String>) allIds;
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public static String getPublicIp() {
+        return publicIp;
+    }
+
+    /**
+     * 
+     * @param publicIp
+     */
+    public static void setPublicIp(String publicIp) {
+        MusicUtil.publicIp = publicIp;
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public static List<String> getAllPublicIps() {
+        return allPublicIps;
+    }
+
+    /**
+     * 
+     * @param allPublicIps
+     */
+    public static void setAllPublicIps(List<String> allPublicIps) {
+        MusicUtil.allPublicIps = (ArrayList<String>) allPublicIps;
+    }
+
+    /**
+     * Returns An array of property names that should be in the Properties
+     * files.
+     * 
+     * @return
+     */
+    public static String[] getPropkeys() {
+        return propKeys;
+    }
+
+    /**
+     * Get MusicRestIp - default = localhost property file value - music.rest.ip
+     * 
+     * @return
+     */
+    public static String getMusicRestIp() {
+        return musicRestIp;
+    }
+
+    /**
+     * Set MusicRestIp
+     * 
+     * @param musicRestIp
+     */
+    public static void setMusicRestIp(String musicRestIp) {
+        MusicUtil.musicRestIp = musicRestIp;
+    }
+
+    /**
+     * Get MusicPropertiesFilePath - Default = /opt/music/music.properties
+     * property file value - music.properties
+     * 
+     * @return
+     */
+    public static String getMusicPropertiesFilePath() {
+        return musicPropertiesFilePath;
+    }
+
+    /**
+     * Set MusicPropertiesFilePath
+     * 
+     * @param musicPropertiesFilePath
+     */
+    public static void setMusicPropertiesFilePath(String musicPropertiesFilePath) {
+        MusicUtil.musicPropertiesFilePath = musicPropertiesFilePath;
+    }
+
+    /**
+     * Get DefaultLockLeasePeriod - Default = 6000 property file value -
+     * lock.lease.period
+     * 
+     * @return
+     */
+    public static long getDefaultLockLeasePeriod() {
+        return defaultLockLeasePeriod;
+    }
+
+    /**
+     * Set DefaultLockLeasePeriod
+     * 
+     * @param defaultLockLeasePeriod
+     */
+    public static void setDefaultLockLeasePeriod(long defaultLockLeasePeriod) {
+        MusicUtil.defaultLockLeasePeriod = defaultLockLeasePeriod;
+    }
+
+    /**
+     * Set Debug
+     * 
+     * @param debug
+     */
+    public static void setDebug(boolean debug) {
+        MusicUtil.debug = debug;
+    }
+
+    /**
+     * Is Debug - Default = true property file value - debug
+     * 
+     * @return
+     */
+    public static boolean isDebug() {
+        return debug;
+    }
+
+    /**
+     * Set Version
+     * 
+     * @param version
+     */
+    public static void setVersion(String version) {
+        MusicUtil.version = version;
+    }
+
+    /**
+     * Return the version property file value - version
+     * 
+     * @return
+     */
+    public static String getVersion() {
+        return version;
+    }
+
+    /**
+     * Get MyZkHost - Zookeeper Hostname - Default = localhost property file
+     * value - zookeeper.host
+     * 
+     * @return
+     */
+    public static String getMyZkHost() {
+        return myZkHost;
+    }
+
+    /**
+     * Set MyZkHost - Zookeeper Hostname
+     * 
+     * @param myZkHost
+     */
+    public static void setMyZkHost(String myZkHost) {
+        MusicUtil.myZkHost = myZkHost;
+    }
+
+    /**
+     * Get MyCassHost - Cassandra Hostname - Default = localhost property file
+     * value - cassandra.host
+     * 
+     * @return
+     */
+    public static String getMyCassaHost() {
+        return myCassaHost;
+    }
+
+    /**
+     * Set MyCassHost - Cassandra Hostname
+     * 
+     * @param myCassaHost
+     */
+    public static void setMyCassaHost(String myCassaHost) {
+        MusicUtil.myCassaHost = myCassaHost;
+    }
+
+    /**
+     * Get DefaultMusicIp - Default = localhost property file value - music.ip
+     * 
+     * @return
+     */
+    public static String getDefaultMusicIp() {
+        return defaultMusicIp;
+    }
+
+    /**
+     * Set DefaultMusicIp
+     * 
+     * @param defaultMusicIp
+     */
+    public static void setDefaultMusicIp(String defaultMusicIp) {
+        MusicUtil.defaultMusicIp = defaultMusicIp;
+    }
+
+    /**
+     * 
+     * @return
+     */
+    public static String getTestType() {
+        String testType = "";
+        try {
+            Scanner fileScanner = new Scanner(new File(""));
+            testType = fileScanner.next();// ignore the my id line
+            String batchSize = fileScanner.next();// ignore the my public ip
+                                                    // line
+            fileScanner.close();
+        } catch (FileNotFoundException e) {
+            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage());
+        }
+        return testType;
+
+    }
+
+    /**
+     * 
+     * @param time
+     */
+    public static void sleep(long time) {
+        try {
+            Thread.sleep(time);
+        } catch (InterruptedException e) {
+            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage());
+            Thread.currentThread().interrupt();
+        }
+    }
+
+    /**
+     * Utility function to check if the query object is valid.
+     * 
+     * @param withparams
+     * @param queryObject
+     * @return
+     */
+    public static boolean isValidQueryObject(boolean withparams, PreparedQueryObject queryObject) {
+        if (withparams) {
+            int noOfValues = queryObject.getValues().size();
+            int noOfParams = 0;
+            char[] temp = queryObject.getQuery().toCharArray();
+            for (int i = 0; i < temp.length; i++) {
+                if (temp[i] == '?')
+                    noOfParams++;
+            }
+            return (noOfValues == noOfParams);
+        } else {
+            return !queryObject.getQuery().isEmpty();
+        }
+
+    }
+
+    public static void setCassName(String cassName) {
+        MusicUtil.cassName = cassName;
+    }
+
+    public static void setCassPwd(String cassPwd) {
+        MusicUtil.cassPwd = cassPwd;
+    }
+
+    public static String convertToCQLDataType(DataType type, Object valueObj) {
+
+        String value = "";
+        switch (type.getName()) {
+        case UUID:
+            value = valueObj + "";
+            break;
+        case TEXT:
+        case VARCHAR:
+            String valueString = valueObj + "";
+            valueString = valueString.replace("'", "''");
+            value = "'" + valueString + "'";
+            break;
+        case MAP: {
+            Map<String, Object> otMap = (Map<String, Object>) valueObj;
+            value = "{" + jsonMaptoSqlString(otMap, ",") + "}";
+            break;
+        }
+        default:
+            value = valueObj + "";
+            break;
+        }
+        return value;
+    }
+
+    /**
+     * 
+     * @param colType
+     * @param valueObj
+     * @return
+     * @throws Exception
+     */
+    public static Object convertToActualDataType(DataType colType, Object valueObj)  throws Exception{
+        String valueObjString = valueObj + "";
+        switch (colType.getName()) {
+        case UUID:
+            return UUID.fromString(valueObjString);
+        case VARINT:
+            return BigInteger.valueOf(Long.parseLong(valueObjString));
+        case BIGINT:
+            return Long.parseLong(valueObjString);
+        case INT:
+            return Integer.parseInt(valueObjString);
+        case FLOAT:
+            return Float.parseFloat(valueObjString);
+        case DOUBLE:
+            return Double.parseDouble(valueObjString);
+        case BOOLEAN:
+            return Boolean.parseBoolean(valueObjString);
+        case MAP:
+            return (Map<String, Object>) valueObj;
+        default:
+            return valueObjString;
+        }
+    }
+
+    /**
+     *
+     * Utility function to parse json map into sql like string
+     * 
+     * @param jMap
+     * @param lineDelimiter
+     * @return
+     */
+
+    public static String jsonMaptoSqlString(Map<String, Object> jMap, String lineDelimiter) {
+        StringBuilder sqlString = new StringBuilder();
+        int counter = 0;
+        for (Map.Entry<String, Object> entry : jMap.entrySet()) {
+            Object ot = entry.getValue();
+            String value = ot + "";
+            if (ot instanceof String) {
+                value = "'" + value.replace("'", "''") + "'";
+            }
+            sqlString.append("'" + entry.getKey() + "':" + value);
+            if (counter != jMap.size() - 1)
+                sqlString.append(lineDelimiter);
+            counter = counter + 1;
+        }
+        return sqlString.toString();
+    }
+
+    public static Map<String, HashMap<String, Object>> setErrorResponse(MusicServiceException ex) {
+        Map<String, HashMap<String, Object>> results = new HashMap<>();
+        HashMap<String, Object> tempMap = new HashMap<>();
+        Map<String, Object> result = new HashMap<>();
+        result.put("error-description", ex.getMessage());
+        tempMap.put("error", result);
+        results.put("result", tempMap);
+        return results;
+    }
 }
index 8bbf770..ba681f3 100644 (file)
@@ -4,7 +4,7 @@
 
 major=2
 minor=4
-patch=13
+patch=14
 
 base_version=${major}.${minor}.${patch}