Split music src into music-core and music-rest
[music.git] / src / main / java / org / onap / music / service / impl / MusicCassaCore.java
diff --git a/src/main/java/org/onap/music/service/impl/MusicCassaCore.java b/src/main/java/org/onap/music/service/impl/MusicCassaCore.java
deleted file mode 100644 (file)
index 0d2e3f0..0000000
+++ /dev/null
@@ -1,1149 +0,0 @@
-/*
- * ============LICENSE_START==========================================
- * org.onap.music
- * ===================================================================
- *  Copyright (c) 2017 AT&T Intellectual Property
- *  Modifications Copyright (c) 2018 IBM. 
- * ===================================================================
- *  Modifications Copyright (c) 2019 Samsung
- * ===================================================================
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- * ============LICENSE_END=============================================
- * ====================================================================
- */
-
-package org.onap.music.service.impl;
-
-import java.io.StringWriter;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import javax.ws.rs.core.MultivaluedMap;
-
-import org.onap.music.datastore.Condition;
-import org.onap.music.datastore.MusicDataStore;
-import org.onap.music.datastore.MusicDataStoreHandle;
-import org.onap.music.datastore.PreparedQueryObject;
-import org.onap.music.datastore.jsonobjects.JsonDelete;
-import org.onap.music.datastore.jsonobjects.JsonIndex;
-import org.onap.music.datastore.jsonobjects.JsonInsert;
-import org.onap.music.datastore.jsonobjects.JsonKeySpace;
-import org.onap.music.datastore.jsonobjects.JsonSelect;
-import org.onap.music.datastore.jsonobjects.JsonTable;
-import org.onap.music.datastore.jsonobjects.JsonUpdate;
-import org.onap.music.eelf.logging.EELFLoggerDelegate;
-import org.onap.music.eelf.logging.format.AppMessages;
-import org.onap.music.eelf.logging.format.ErrorSeverity;
-import org.onap.music.eelf.logging.format.ErrorTypes;
-import org.onap.music.exceptions.MusicDeadlockException;
-import org.onap.music.exceptions.MusicLockingException;
-import org.onap.music.exceptions.MusicQueryException;
-import org.onap.music.exceptions.MusicServiceException;
-import org.onap.music.lockingservice.cassandra.CassaLockStore;
-import org.onap.music.lockingservice.cassandra.CassaLockStore.LockObject;
-import org.onap.music.lockingservice.cassandra.LockType;
-import org.onap.music.lockingservice.cassandra.MusicLockState;
-import org.onap.music.lockingservice.cassandra.MusicLockState.LockStatus;
-import org.onap.music.main.MusicUtil;
-import org.onap.music.main.ResultType;
-import org.onap.music.main.ReturnType;
-import org.onap.music.service.MusicCoreService;
-
-import com.datastax.driver.core.DataType;
-import com.datastax.driver.core.ResultSet;
-import com.datastax.driver.core.Row;
-import com.datastax.driver.core.TableMetadata;
-
-public class MusicCassaCore implements MusicCoreService {
-
-    private static CassaLockStore mLockHandle = null;
-    private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicCassaCore.class);
-    private static MusicCassaCore musicCassaCoreInstance = null;
-
-    private MusicCassaCore() {
-        // not going to happen
-    }
-    
-    public static CassaLockStore getmLockHandle() {
-        return mLockHandle;
-    }
-
-    public static void setmLockHandle(CassaLockStore mLockHandle) {
-        MusicCassaCore.mLockHandle = mLockHandle;
-    }
-    
-    public static MusicCassaCore getInstance() {
-
-        if(musicCassaCoreInstance == null) {
-            musicCassaCoreInstance = new MusicCassaCore();
-        }
-        return musicCassaCoreInstance;
-    }
-
-
-
-
-    public static CassaLockStore getLockingServiceHandle() throws MusicLockingException {
-        logger.info(EELFLoggerDelegate.applicationLogger,"Acquiring lock store handle");
-        long start = System.currentTimeMillis();
-
-        if (mLockHandle == null) {
-            try {
-                mLockHandle = new CassaLockStore(MusicDataStoreHandle.getDSHandle());
-            } catch (Exception e) {
-                logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.LOCKHANDLE,ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR);
-                throw new MusicLockingException("Failed to aquire Locl store handle " + e);
-            }
-        }
-        long end = System.currentTimeMillis();
-        logger.info(EELFLoggerDelegate.applicationLogger,"Time taken to acquire lock store handle:" + (end - start) + " ms");
-        return mLockHandle;
-    }
-
-    public String createLockReference(String fullyQualifiedKey) throws MusicLockingException {
-        return createLockReference(fullyQualifiedKey, LockType.WRITE);
-    }
-
-    public String createLockReference(String fullyQualifiedKey, LockType locktype) throws MusicLockingException {
-        return createLockReference(fullyQualifiedKey, locktype, null);
-    }
-
-    public String createLockReference(String fullyQualifiedKey, LockType locktype, String owner) throws MusicLockingException {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String lockName = splitString[2];
-
-        logger.info(EELFLoggerDelegate.applicationLogger,"Creating lock reference for lock name:" + lockName);
-        long start = System.currentTimeMillis();
-        String lockReference = null;
-
-        try {
-            boolean deadlock = getLockingServiceHandle().checkForDeadlock(keyspace, table, lockName, locktype, owner, false);
-            if (deadlock) {
-                MusicDeadlockException e = new MusicDeadlockException("Deadlock detected when " + owner + " tried to create lock on " + keyspace + "." + table + "." + lockName);
-                e.setValues(owner, keyspace, table, lockName);
-                throw e;
-            }
-        } catch (MusicDeadlockException e) {
-            //just threw this, no need to wrap it
-            throw e;
-        } catch (MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.applicationLogger, e);
-            throw new MusicLockingException("Unable to check for deadlock. " + e.getMessage(), e);
-        }
-        
-        try {
-            lockReference = "" + getLockingServiceHandle().genLockRefandEnQueue(keyspace, table, lockName, locktype, owner);
-        } catch (MusicLockingException | MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.applicationLogger, e);
-            throw new MusicLockingException("Unable to create lock reference. " + e.getMessage(), e);
-        } catch (Exception e) {
-            logger.error(EELFLoggerDelegate.applicationLogger, e);
-            throw new MusicLockingException("Unable to create lock reference. " + e.getMessage(), e);
-        }
-        long end = System.currentTimeMillis();
-        logger.info(EELFLoggerDelegate.applicationLogger,"Time taken to create lock reference:" + (end - start) + " ms");
-        return lockReference;
-    }
-    
-    public ReturnType promoteLock(String lockId) throws MusicLockingException {
-        String[] splitString = lockId.split("\\.");
-        String keyspace = splitString[0].substring(1);//remove '$'
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2].substring(0, splitString[2].lastIndexOf("$"));
-        String localFullyQualifiedKey = lockId.substring(1, lockId.lastIndexOf("$"));
-        String lockRef = lockId.substring(lockId.lastIndexOf("$")+1); //lockRef is "$" to end
-        
-        logger.info(EELFLoggerDelegate.applicationLogger,"Attempting to promote lock " + lockId);
-
-        try {
-            return getLockingServiceHandle().promoteLock(keyspace, table, primaryKeyValue, lockRef);
-        } catch (MusicServiceException e) {
-            throw new MusicLockingException("Unable to promote lock. ", e);
-        } catch (MusicQueryException e) {
-            throw new MusicLockingException("Unable to promote lock. ", e);
-        }
-        
-    }
-
-
-    public ReturnType acquireLockWithLease(String fullyQualifiedKey, String lockReference, long leasePeriod)
-            throws MusicLockingException, MusicQueryException, MusicServiceException  {
-        evictExpiredLockHolder(fullyQualifiedKey,leasePeriod);
-        return acquireLock(fullyQualifiedKey, lockReference);
-    }
-
-    private void evictExpiredLockHolder(String fullyQualifiedKey, long leasePeriod)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-
-        LockObject currentLockHolderObject = getLockingServiceHandle().peekLockQueue(keyspace, table, primaryKeyValue);
-
-        if (!currentLockHolderObject.getIsLockOwner()) { // no lock holder
-            return;
-        }
-        /*
-         * Release the lock of the previous holder if it has expired. if the update to the acquire time has
-         * not reached due to network delays, simply use the create time as the reference
-         */
-        long referenceTime = Math.max(Long.parseLong(currentLockHolderObject.getAcquireTime()),
-                Long.parseLong(currentLockHolderObject.getCreateTime()));
-        if ((System.currentTimeMillis() - referenceTime) > leasePeriod) {
-            forciblyReleaseLock(fullyQualifiedKey, currentLockHolderObject.getLockRef() + "");
-            logger.info(EELFLoggerDelegate.applicationLogger, currentLockHolderObject.getLockRef() + " forcibly released");
-        }
-    }
-
-    public ReturnType acquireLock(String fullyQualifiedKey, String lockId)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        String[] splitString = lockId.split("\\.");
-        String keyspace = splitString[0].substring(1);//remove '$'
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2].substring(0, splitString[2].lastIndexOf("$"));
-        String localFullyQualifiedKey = lockId.substring(1, lockId.lastIndexOf("$"));
-        String lockRef = lockId.substring(lockId.lastIndexOf("$")+1); //lockRef is "$" to end
-
-        LockObject lockInfo = getLockingServiceHandle().getLockInfo(keyspace, table, primaryKeyValue, lockRef);
-
-        if (!lockInfo.getIsLockOwner()) {
-            return new ReturnType(ResultType.FAILURE, lockId + " is not a lock holder");//not top of the lock store q
-        }
-        
-        if (getLockingServiceHandle().checkForDeadlock(keyspace, table, primaryKeyValue, lockInfo.getLocktype(), lockInfo.getOwner(), true)) {
-            MusicDeadlockException e = new MusicDeadlockException("Deadlock detected when " + lockInfo.getOwner()  + " tried to create lock on " + keyspace + "." + table + "." + primaryKeyValue);
-            e.setValues(lockInfo.getOwner(), keyspace, table, primaryKeyValue);
-            throw e;
-        }
-
-        //check to see if the value of the key has to be synced in case there was a forceful release
-        String syncTable = keyspace+".unsyncedKeys_"+table;
-        String query = "select * from "+syncTable+" where key='"+localFullyQualifiedKey+"';";
-        PreparedQueryObject readQueryObject = new PreparedQueryObject();
-        readQueryObject.appendQueryString(query);
-        ResultSet results = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(readQueryObject);
-        if (!results.all().isEmpty()) {
-            logger.info("In acquire lock: Since there was a forcible release, need to sync quorum!");
-            try {
-                syncQuorum(keyspace, table, primaryKeyValue);
-            } catch (Exception e) {
-                StringWriter sw = new StringWriter();
-                    logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), "[ERR506E] Failed to aquire lock ",
-                        ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR, e);
-                String exceptionAsString = sw.toString();
-                return new ReturnType(ResultType.FAILURE, "Exception thrown while syncing key:\n" + exceptionAsString);
-            }
-            String cleanQuery = "delete from " + syncTable + " where key='"+localFullyQualifiedKey+"';";
-            PreparedQueryObject deleteQueryObject = new PreparedQueryObject();
-            deleteQueryObject.appendQueryString(cleanQuery);
-            MusicDataStoreHandle.getDSHandle().executePut(deleteQueryObject, "critical");
-        }
-
-        getLockingServiceHandle().updateLockAcquireTime(keyspace, table, primaryKeyValue, lockRef);
-
-        return new ReturnType(ResultType.SUCCESS, lockRef+" is the lock holder for the key");
-    }
-
-
-
-    /**
-     *
-     * @param tableQueryObject
-     * @param consistency
-     * @return Boolean Indicates success or failure
-     * @throws MusicServiceException
-     *
-     *
-     */
-    public ResultType createTable(String keyspace, String table, PreparedQueryObject tableQueryObject,
-            String consistency) throws MusicServiceException {
-        boolean result = false;
-
-        try {
-            // create shadow locking table
-            result = getLockingServiceHandle().createLockQueue(keyspace, table);
-            if (result == false)
-                return ResultType.FAILURE;
-
-            result = false;
-
-            // create table to track unsynced_keys
-            table = "unsyncedKeys_" + table;
-
-            String tabQuery =
-                    "CREATE TABLE IF NOT EXISTS " + keyspace + "." + table + " ( key text,PRIMARY KEY (key) );";
-            PreparedQueryObject queryObject = new PreparedQueryObject();
-
-            queryObject.appendQueryString(tabQuery);
-            result = false;
-            result = MusicDataStoreHandle.getDSHandle().executePut(queryObject, "eventual");
-
-            // create actual table
-            result = MusicDataStoreHandle.getDSHandle().executePut(tableQueryObject, consistency);
-        } catch (MusicQueryException | MusicServiceException | MusicLockingException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage(), AppMessages.UNKNOWNERROR, ErrorSeverity.WARN,
-                    ErrorTypes.MUSICSERVICEERROR);
-            throw new MusicServiceException(ex.getMessage());
-        }
-        return result ? ResultType.SUCCESS : ResultType.FAILURE;
-    }
-
-    private static void syncQuorum(String keyspace, String table, String primaryKeyValue) throws Exception {
-        logger.info(EELFLoggerDelegate.applicationLogger,"Performing sync operation---");
-        PreparedQueryObject selectQuery = new PreparedQueryObject();
-        PreparedQueryObject updateQuery = new PreparedQueryObject();
-
-        // get the primary key d
-        TableMetadata tableInfo = MusicDataStoreHandle.returnColumnMetadata(keyspace, table);
-        String primaryKeyName = tableInfo.getPrimaryKey().get(0).getName(); // we only support single
-                                                                            // primary key
-        DataType primaryKeyType = tableInfo.getPrimaryKey().get(0).getType();
-        Object cqlFormattedPrimaryKeyValue =
-                        MusicUtil.convertToActualDataType(primaryKeyType, primaryKeyValue);
-
-        // get the row of data from a quorum
-        selectQuery.appendQueryString("SELECT *  FROM " + keyspace + "." + table + " WHERE "
-                        + primaryKeyName + "= ?" + ";");
-        selectQuery.addValue(cqlFormattedPrimaryKeyValue);
-        MusicUtil.writeBackToQuorum(selectQuery, primaryKeyName, updateQuery, keyspace, table,
-            cqlFormattedPrimaryKeyValue);
-    }
-
-    /**
-     *
-     * @param query
-     * @return ResultSet
-     */
-    public ResultSet quorumGet(PreparedQueryObject query) {
-        ResultSet results = null;
-        try {
-            results = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(query);
-        } catch (MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.UNKNOWNERROR,
-                ErrorSeverity.MAJOR, ErrorTypes.GENERALSERVICEERROR, e);
-
-        }
-        return results;
-    }
-
-    public String whoseTurnIsIt(String fullyQualifiedKey) {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-        try {
-            LockObject lockOwner = getLockingServiceHandle().peekLockQueue(keyspace, table, primaryKeyValue);
-            if (!lockOwner.getIsLockOwner()) {
-                return null;
-            }
-            return "$" + fullyQualifiedKey + "$" + lockOwner.getLockRef();
-        } catch (MusicLockingException | MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(), AppMessages.LOCKINGERROR + fullyQualifiedKey,
-                    ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR);
-        }
-        return null;
-    }
-    
-    public List<String> getCurrentLockHolders(String fullyQualifiedKey) {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-        try {
-            return getLockingServiceHandle().getCurrentLockHolders(keyspace, table, primaryKeyValue);
-        } catch (MusicLockingException | MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.LOCKINGERROR+fullyQualifiedKey ,ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR);
-        }
-        return null;
-    }
-
-    /**
-     *
-     * @param lockReference
-     * @return
-     */
-    public static String getLockNameFromId(String lockReference) {
-        StringTokenizer st = new StringTokenizer(lockReference);
-        return st.nextToken("$");
-    }
-
-    @Override
-    public void destroyLockRef(String lockId) throws MusicLockingException {
-        long start = System.currentTimeMillis();
-        String fullyQualifiedKey = lockId.substring(1, lockId.lastIndexOf("$"));
-        String lockRef = lockId.substring(lockId.lastIndexOf('$')+1);
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-        try {
-            getLockingServiceHandle().deQueueLockRef(keyspace, table, primaryKeyValue, lockRef,MusicUtil.getRetryCount());
-        } catch (MusicLockingException | MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.DESTROYLOCK+lockRef,
-                ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR, e);
-            throw new MusicLockingException(e.getMessage());
-        }
-        long end = System.currentTimeMillis();
-        logger.info(EELFLoggerDelegate.applicationLogger,"Time taken to destroy lock reference:" + (end - start) + " ms");
-    }
-
-    public MusicLockState destroyLockRef(String fullyQualifiedKey, String lockReference) throws MusicLockingException {
-        long start = System.currentTimeMillis();
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-        try {
-            getLockingServiceHandle().deQueueLockRef(keyspace, table, primaryKeyValue, lockReference,MusicUtil.getRetryCount());
-        } catch (MusicLockingException | MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.DESTROYLOCK + lockReference,
-                ErrorSeverity.CRITICAL, ErrorTypes.LOCKINGERROR,e);
-            throw new MusicLockingException(e.getMessage());
-        }
-        long end = System.currentTimeMillis();
-        logger.info(EELFLoggerDelegate.applicationLogger,"Time taken to destroy lock reference:" + (end - start) + " ms");
-        return new MusicLockState(LockStatus.UNLOCKED, "");
-    }
-
-    @Override
-    public MusicLockState releaseLock(String lockId, boolean voluntaryRelease) throws MusicLockingException {
-        String fullyQualifiedKey = lockId.substring(1, lockId.lastIndexOf("$"));
-        String lockRef = lockId.substring(lockId.lastIndexOf('$')+1);
-        if (voluntaryRelease) {
-            return voluntaryReleaseLock(fullyQualifiedKey, lockRef);
-        } else {
-            return forciblyReleaseLock(fullyQualifiedKey, lockRef);
-        }
-    }
-
-    public MusicLockState voluntaryReleaseLock(String fullyQualifiedKey, String lockReference)
-            throws MusicLockingException {
-        MusicLockState result = null;
-        try {
-            result = destroyLockRef(fullyQualifiedKey, lockReference);
-        } catch (Exception ex) {
-            logger.info(EELFLoggerDelegate.applicationLogger,
-                    "Exception in voluntaryReleaseLock() for " + fullyQualifiedKey + "ref: " + lockReference);
-            throw new MusicLockingException(ex.getMessage());
-        }
-        return result;
-    }
-
-    public MusicLockState forciblyReleaseLock(String fullyQualifiedKey, String lockReference) throws MusicLockingException {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-
-        //leave a signal that this key could potentially be unsynchronized
-        String syncTable = keyspace+".unsyncedKeys_"+table;
-        PreparedQueryObject queryObject = new PreparedQueryObject();
-        String values = "(?)";
-        queryObject.addValue(fullyQualifiedKey);
-        String insQuery = "insert into "+syncTable+" (key) values "+values+";";
-        queryObject.appendQueryString(insQuery);
-        try {
-            MusicDataStoreHandle.getDSHandle().executePut(queryObject, "critical");
-        } catch (Exception e) {
-            logger.error("Cannot forcibly release lock: " + fullyQualifiedKey + " " + lockReference + ". "
-                        + e.getMessage(), e);
-        }
-
-        //now release the lock
-        return destroyLockRef(fullyQualifiedKey, lockReference);
-    }
-
-    @Override
-    public List<String> releaseAllLocksForOwner(String ownerId, String keyspace, String table) throws MusicLockingException, MusicServiceException, MusicQueryException {
-//        System.out.println("IN RELEASEALLLOCKSFOROWNER, ");
-
-        List<String> lockIds = getLockingServiceHandle().getAllLocksForOwner(ownerId, keyspace, table);
-        for (String lockId : lockIds) {
-//            System.out.println(" LOCKID = " + lockId);
-            //return "$" + keyspace + "." + table + "." + lockName + "$" + String.valueOf(lockRef);
-            releaseLock("$" + keyspace + "." + table + "." + lockId, true);
-        }
-        return lockIds;
-    }
-
-    /**
-     *
-     * @param lockName
-     * @throws MusicLockingException
-     */
-    @Deprecated
-    public  void deleteLock(String lockName) throws MusicLockingException {
-        throw new MusicLockingException("Depreciated Method Delete Lock");
-    }
-
-    // Prepared Query Additions.
-
-    /**
-     *
-     * @param queryObject
-     * @return ReturnType
-     * @throws MusicServiceException
-     */
-    public  ReturnType eventualPut(PreparedQueryObject queryObject) {
-        boolean result = false;
-        try {
-            result = MusicDataStoreHandle.getDSHandle().executePut(queryObject, MusicUtil.EVENTUAL);
-        } catch (MusicServiceException | MusicQueryException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage(), "[ERR512E] Failed to get Lock Handle "  ,ErrorSeverity.WARN, ErrorTypes.MUSICSERVICEERROR);
-            logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage() + "  " + ex.getCause() + " " + ex);
-            return new ReturnType(ResultType.FAILURE, ex.getMessage());
-        }
-        if (result) {
-            return new ReturnType(ResultType.SUCCESS, "Eventual Operation Successfully performed");
-        } else {
-            return new ReturnType(ResultType.FAILURE, "Eventual Operation failed to perform");
-        }
-    }
-
-    /**
-     *
-     * @param queryObject
-     * @return ReturnType
-     * @throws MusicServiceException
-     */
-    public  ReturnType eventualPut_nb(PreparedQueryObject queryObject,String keyspace,String tablename,String primaryKey) {
-        boolean result = false;
-        long guard = 0;
-        PreparedQueryObject getGaurd = new PreparedQueryObject();
-        getGaurd.appendQueryString("SELECT guard FROM "+keyspace+".lockq_"+tablename+ " WHERE key = ? ;");
-        getGaurd.addValue(primaryKey);
-        try {
-            ResultSet getGaurdResult = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(getGaurd);
-            Row row = getGaurdResult.one();
-            if (row != null) {
-                guard = row.getLong("guard");
-                long timeOfWrite = System.currentTimeMillis();
-                long ts = MusicUtil.v2sTimeStampInMicroseconds(guard, timeOfWrite);
-                String query = queryObject.getQuery();
-                if (!queryObject.getQuery().contains("USING TIMESTAMP")) {
-                    if (queryObject.getOperation().equalsIgnoreCase("delete"))
-                        query = query.replaceFirst("WHERE", " USING TIMESTAMP " + ts + " WHERE ");
-                    else
-                        query = query.replaceFirst("SET", "USING TIMESTAMP " + ts + " SET");
-                }
-                queryObject.replaceQueryString(query);
-            }
-
-        } catch (MusicServiceException | MusicQueryException e) {
-            logger.error(EELFLoggerDelegate.applicationLogger,e.getMessage(), e);
-        }
-        try {
-            result = MusicDataStoreHandle.getDSHandle().executePut(queryObject, MusicUtil.EVENTUAL);
-        } catch (MusicServiceException | MusicQueryException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage(),"[ERR512E] Failed to get Lock Handle ",
-                ErrorSeverity.WARN, ErrorTypes.MUSICSERVICEERROR);
-            logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage() + "  " + ex.getCause() + " ", ex);
-            return new ReturnType(ResultType.FAILURE, ex.getMessage());
-        }
-        if (result) {
-            return new ReturnType(ResultType.SUCCESS, "Eventual Operation Successfully performed");
-        } else {
-            return new ReturnType(ResultType.FAILURE, "Eventual Operation failed to perform");
-        }
-    }
-
-    /**
-     *
-     * @param keyspace
-     * @param table
-     * @param primaryKeyValue
-     * @param queryObject
-     * @param lockId
-     * @return
-     */
-    public ReturnType criticalPut(String keyspace, String table, String primaryKeyValue,
-            PreparedQueryObject queryObject, String lockId, Condition conditionInfo) {
-        long start = System.currentTimeMillis();
-        try {
-            String keyLock = lockId.substring(lockId.lastIndexOf(".") + 1,lockId.lastIndexOf("$"));
-            if (lockId.contains(".") && !keyLock.equals(primaryKeyValue)) {
-                return new ReturnType(ResultType.FAILURE,"Lock value '" + keyLock + "' and key value '"
-                + primaryKeyValue + "' not match. Please check your values: " 
-                + lockId + " .");
-            }
-            LockObject lockObject = getLockingServiceHandle().getLockInfo(keyspace, table, primaryKeyValue,
-                    lockId.substring(lockId.lastIndexOf("$") + 1));
-
-            if ( lockObject == null ) {
-                return new ReturnType(ResultType.FAILURE, lockId + " does not exist.");
-            } else if (!lockObject.getIsLockOwner()) {
-                return new ReturnType(ResultType.FAILURE, lockId + " is not the lock holder");
-            } else if (lockObject.getLocktype() != LockType.WRITE) {
-                return new ReturnType(ResultType.FAILURE,
-                        "Attempting to do write operation, but " + lockId + " is a read lock");
-            }
-
-            if (conditionInfo != null) {
-                try {
-                    if (conditionInfo.testCondition() == false)
-                        return new ReturnType(ResultType.FAILURE, "Lock acquired but the condition is not true");
-                } catch (Exception e) {
-                    logger.error(EELFLoggerDelegate.errorLogger, e);
-                    return new ReturnType(ResultType.FAILURE,
-                            "Exception thrown while checking the condition, check its sanctity:\n" + e.getMessage());
-                }
-            }
-            String query = queryObject.getQuery();
-            long timeOfWrite = System.currentTimeMillis();
-            long lockOrdinal = Long.parseLong(lockId.substring(lockId.lastIndexOf("$") + 1));
-            long ts = MusicUtil.v2sTimeStampInMicroseconds(lockOrdinal, timeOfWrite);
-            // TODO: use Statement instead of modifying query
-            if (!queryObject.getQuery().contains("USING TIMESTAMP")) {
-                if (queryObject.getOperation().equalsIgnoreCase("delete"))
-                    query = query.replaceFirst("WHERE", " USING TIMESTAMP " + ts + " WHERE ");
-                else if (queryObject.getOperation().equalsIgnoreCase("insert"))
-                    query = query.replaceFirst(";", " USING TIMESTAMP " + ts + " ; ");
-                else
-                    query = query.replaceFirst("SET", "USING TIMESTAMP " + ts + " SET");
-            }
-            queryObject.replaceQueryString(query);
-            MusicDataStore dsHandle = MusicDataStoreHandle.getDSHandle();
-            dsHandle.executePut(queryObject, MusicUtil.CRITICAL);
-            long end = System.currentTimeMillis();
-            logger.info(EELFLoggerDelegate.applicationLogger,"Time taken for the critical put:" + (end - start) + " ms");
-        } catch (MusicQueryException | MusicServiceException | MusicLockingException  e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), e);
-            return new ReturnType(ResultType.FAILURE,
-                "Exception thrown while doing the critical put: "
-                + e.getMessage());
-        }
-        return new ReturnType(ResultType.SUCCESS, "Update performed");
-    }
-
-
-    /**
-     *
-     * @param queryObject
-     * @param consistency
-     * @return Boolean Indicates success or failure
-     * @throws MusicServiceException
-     *
-     *
-     */
-    public ResultType nonKeyRelatedPut(PreparedQueryObject queryObject, String consistency) throws MusicServiceException,MusicQueryException {
-        // this is mainly for some functions like keyspace creation etc which does not
-        // really need the bells and whistles of Music locking.
-        boolean result = false;
-//        try {
-        result = MusicDataStoreHandle.getDSHandle().executePut(queryObject, consistency);
-//        } catch (MusicQueryException | MusicServiceException ex) {
-            // logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage(), AppMessages.UNKNOWNERROR,
-            //     ErrorSeverity.WARN, ErrorTypes.MUSICSERVICEERROR, ex);
-//            throw new MusicServiceException(ex.getMessage(),ex);
-//        }
-        return result ? ResultType.SUCCESS : ResultType.FAILURE;
-    }
-
-    /**
-     * This method performs DDL operation on cassandra.
-     *
-     * @param queryObject query object containing prepared query and values
-     * @return ResultSet
-     * @throws MusicServiceException
-     */
-    public ResultSet get(PreparedQueryObject queryObject) throws MusicServiceException {
-        ResultSet results = null;
-        try {
-            results = MusicDataStoreHandle.getDSHandle().executeOneConsistencyGet(queryObject);
-        } catch (MusicQueryException | MusicServiceException e) {
-            logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(), e);
-            throw new MusicServiceException(e.getMessage());
-        }
-        return results;
-    }
-
-    /**
-     * This method performs DDL operations on cassandra, if the the resource is available. Lock ID
-     * is used to check if the resource is free.
-     *
-     * @param keyspace name of the keyspace
-     * @param table name of the table
-     * @param primaryKeyValue primary key value
-     * @param queryObject query object containing prepared query and values
-     * @param lockId lock ID to check if the resource is free to perform the operation.
-     * @return ResultSet
-     */
-    public ResultSet criticalGet(String keyspace, String table, String primaryKeyValue,
-                    PreparedQueryObject queryObject, String lockId) throws MusicServiceException {
-        ResultSet results = null;
-        String keyLock = lockId.substring(lockId.lastIndexOf(".") + 1,lockId.lastIndexOf("$"));
-        try {
-            if (lockId.contains(".") && !keyLock.equals(primaryKeyValue)) {
-                throw new MusicLockingException("Lock value '" + keyLock + "' and key value '"
-                + primaryKeyValue + "' do not match. Please check your values: " 
-                + lockId + " .");
-            }
-            LockObject lockObject = getLockingServiceHandle().getLockInfo(keyspace, table, primaryKeyValue,
-                lockId.substring(lockId.lastIndexOf("$") + 1));
-            if (null == lockObject) {
-                throw new MusicLockingException("No Lock Object. Please check if lock name or key is correct." 
-                    + lockId + " .");
-            }
-            if ( !lockObject.getIsLockOwner()) {
-                return null;// not top of the lock store q
-            }
-            results = MusicDataStoreHandle.getDSHandle().executeQuorumConsistencyGet(queryObject);
-        } catch ( MusicLockingException e ) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.UNKNOWNERROR  ,ErrorSeverity
-                    .WARN, ErrorTypes.MUSICSERVICEERROR);
-                throw new MusicServiceException(
-                    "Cannot perform critical get for key: " + primaryKeyValue + " : " + e.getMessage());
-        } catch (MusicQueryException | MusicServiceException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage(), AppMessages.UNKNOWNERROR  ,ErrorSeverity
-                    .WARN, ErrorTypes.MUSICSERVICEERROR, e);
-                throw new MusicServiceException(
-                    "Cannot perform critical get for key: " + primaryKeyValue + " : " + e.getMessage());    
-        }
-        return results;
-    }
-
-    /**
-     * This method performs DML operation on cassandra, when the lock of the dd is acquired.
-     *
-     * @param keyspaceName name of the keyspace
-     * @param tableName name of the table
-     * @param primaryKey primary key value
-     * @param queryObject query object containing prepared query and values
-     * @return ReturnType
-     * @throws MusicLockingException
-     * @throws MusicServiceException
-     * @throws MusicQueryException
-     */
-    public ReturnType atomicPut(String keyspaceName, String tableName, String primaryKey,
-            PreparedQueryObject queryObject, Condition conditionInfo)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        long start = System.currentTimeMillis();
-        String fullyQualifiedKey = keyspaceName + "." + tableName + "." + primaryKey;
-        String lockId = createLockReference(fullyQualifiedKey, LockType.WRITE);
-        long lockCreationTime = System.currentTimeMillis();
-        ReturnType lockAcqResult = null;
-        logger.info(EELFLoggerDelegate.applicationLogger,
-                "***Acquiring lock for atomicPut() query : " + queryObject.getQuery() + " : " + primaryKey);
-        logger.info(EELFLoggerDelegate.applicationLogger,
-                "***Acquiring lock for atomicPut() values: " + queryObject.getValues().toString());
-        if (conditionInfo != null) {
-            logger.info(EELFLoggerDelegate.applicationLogger,
-                    "***Acquiring lock for atomicPut() conditions: " + conditionInfo.toString());
-        }
-        try {
-            lockAcqResult = acquireLockWithLease(fullyQualifiedKey, lockId, MusicUtil.getDefaultLockLeasePeriod());
-        } catch (MusicLockingException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger,
-                    "Exception while acquireLockWithLease() in atomic put for key: " + primaryKey);
-            logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage());
-            throw new MusicServiceException(
-                    "Cannot perform atomic put for key: " + primaryKey + " : " + ex.getMessage());
-        }
-        long lockAcqTime = System.currentTimeMillis();
-
-        /*
-         * if (!lockAcqResult.getResult().equals(ResultType.SUCCESS)) { logger.info(EELFLoggerDelegate.
-         * applicationLogger,"unable to acquire lock, id " + lockId);
-         * voluntaryReleaseLock(fullyQualifiedKey,lockId); return lockAcqResult; }
-         */
-
-        logger.info(EELFLoggerDelegate.applicationLogger, "acquired lock with id " + lockId);
-        String lockRef = lockId.substring(lockId.lastIndexOf("$"));
-        ReturnType criticalPutResult = null;
-        if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) {
-            criticalPutResult = criticalPut(keyspaceName, tableName, primaryKey, queryObject, lockRef, conditionInfo);
-            long criticalPutTime = System.currentTimeMillis();
-            long lockDeleteTime = System.currentTimeMillis();
-            String timingInfo = "|lock creation time:" + (lockCreationTime - start) + "|lock accquire time:"
-                    + (lockAcqTime - lockCreationTime) + "|critical put time:" + (criticalPutTime - lockAcqTime)
-                    + "|lock delete time:" + (lockDeleteTime - criticalPutTime) + "|";
-            criticalPutResult.setTimingInfo(timingInfo);
-        } else {
-            logger.info(EELFLoggerDelegate.applicationLogger, "unable to acquire lock, id " + lockId);
-            criticalPutResult = lockAcqResult;
-        }
-        try {
-            voluntaryReleaseLock(fullyQualifiedKey, lockId);
-        } catch (MusicLockingException ex) {
-            logger.info(EELFLoggerDelegate.applicationLogger,
-                    "Exception occured while deleting lock after atomic put for key: " + primaryKey);
-            criticalPutResult.setMessage(criticalPutResult.getMessage() + "Lock release failed");
-        }
-        return criticalPutResult;
-    }
-
-
-
-    /**
-     * This method performs DDL operation on cassasndra, when the lock for the resource is acquired.
-     *
-     * @param keyspaceName name of the keyspace
-     * @param tableName name of the table
-     * @param primaryKey primary key value
-     * @param queryObject query object containing prepared query and values
-     * @return ResultSet
-     * @throws MusicServiceException
-     * @throws MusicLockingException
-     * @throws MusicQueryException
-     */
-    public ResultSet atomicGet(String keyspaceName, String tableName, String primaryKey,
-            PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException, MusicQueryException {
-        String fullyQualifiedKey = keyspaceName + "." + tableName + "." + primaryKey;
-        String lockId = createLockReference(fullyQualifiedKey, LockType.READ);
-        long leasePeriod = MusicUtil.getDefaultLockLeasePeriod();
-        ReturnType lockAcqResult = null;
-        ResultSet result = null;
-        logger.info(EELFLoggerDelegate.applicationLogger, "Acquiring lock for atomicGet() : " + queryObject.getQuery());
-        try {
-            lockAcqResult = acquireLockWithLease(fullyQualifiedKey, lockId, MusicUtil.getDefaultLockLeasePeriod());
-        } catch (MusicLockingException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger,
-                    "Exception while acquireLockWithLease() in atomic get for key: " + primaryKey);
-            logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage());
-            throw new MusicServiceException(
-                    "Cannot perform atomic get for key: " + primaryKey + " : " + ex.getMessage());
-        }
-        if (lockAcqResult.getResult().equals(ResultType.SUCCESS)) {
-            logger.info(EELFLoggerDelegate.applicationLogger, "acquired lock with id " + lockId);
-            String lockRef = lockId.substring(lockId.lastIndexOf("$"));
-            result = criticalGet(keyspaceName, tableName, primaryKey, queryObject, lockRef);
-        } else {
-            logger.info(EELFLoggerDelegate.applicationLogger, "unable to acquire lock, id " + lockId);
-        }
-        try {
-            voluntaryReleaseLock(fullyQualifiedKey, lockId);
-        } catch (MusicLockingException ex) {
-            logger.info(EELFLoggerDelegate.applicationLogger,
-                    "Exception occured while deleting lock after atomic put for key: " + primaryKey);
-            throw new MusicLockingException(ex.getMessage());
-        }
-
-        return result;
-    }
-
-
-
-    /**
-     * @param lockName
-     * @return
-     */
-    public Map<String, Object> validateLock(String lockName) {
-        return MusicUtil.validateLock(lockName);
-    }
-
-    @Override
-    @Deprecated
-    public ReturnType atomicPutWithDeleteLock(String keyspaceName, String tableName, String primaryKey,
-        PreparedQueryObject queryObject, Condition conditionInfo) throws MusicLockingException {
-        return null;
-    }
-
-    @Override
-    public List<String> getLockQueue(String fullyQualifiedKey)
-        throws MusicServiceException, MusicQueryException, MusicLockingException {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-
-        return getLockingServiceHandle().getLockQueue(keyspace, table, primaryKeyValue);
-    }
-    @Override
-    public long getLockQueueSize(String fullyQualifiedKey)
-        throws MusicServiceException, MusicQueryException, MusicLockingException {
-        String[] splitString = fullyQualifiedKey.split("\\.");
-        String keyspace = splitString[0];
-        String table = splitString[1];
-        String primaryKeyValue = splitString[2];
-
-        return getLockingServiceHandle().getLockQueueSize(keyspace, table, primaryKeyValue);
-    }
-
-    @Override
-    @Deprecated
-    public ResultSet atomicGetWithDeleteLock(String keyspaceName, String tableName, String primaryKey,
-            PreparedQueryObject queryObject) throws MusicServiceException, MusicLockingException {
-        //deprecated
-        return null;
-    }
-    
-    //Methods added for ORM changes
-    
-    public ResultType createKeyspace(JsonKeySpace jsonKeySpaceObject,String consistencyInfo) 
-            throws MusicServiceException,MusicQueryException {
-        ResultType result = nonKeyRelatedPut(jsonKeySpaceObject.genCreateKeyspaceQuery(), consistencyInfo);
-        logger.info(EELFLoggerDelegate.applicationLogger, " Keyspace Creation Process completed successfully");
-
-        return result;
-    }
-    
-    public ResultType dropKeyspace(JsonKeySpace jsonKeySpaceObject, String consistencyInfo) 
-            throws MusicServiceException,MusicQueryException {
-        ResultType result = nonKeyRelatedPut(jsonKeySpaceObject.genDropKeyspaceQuery(),
-                    consistencyInfo);
-        logger.info(EELFLoggerDelegate.applicationLogger, " Keyspace deletion Process completed successfully");
-        return result;
-    }
-    
-    public ResultType createTable(JsonTable jsonTableObject, String consistencyInfo) 
-            throws MusicServiceException, MusicQueryException {
-        ResultType result = null;
-        try {
-            result = createTable(jsonTableObject.getKeyspaceName(), 
-                    jsonTableObject.getTableName(), jsonTableObject.genCreateTableQuery(), consistencyInfo);
-            
-        } catch (MusicServiceException ex) {
-            logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage(), AppMessages.UNKNOWNERROR, ErrorSeverity.WARN,
-                    ErrorTypes.MUSICSERVICEERROR);
-            throw new MusicServiceException(ex.getMessage());
-        }
-        logger.info(EELFLoggerDelegate.applicationLogger, " Table Creation Process completed successfully ");
-        return result;
-    }
-    
-    public ResultType dropTable(JsonTable jsonTableObject,String consistencyInfo) 
-            throws MusicServiceException,MusicQueryException {
-        ResultType result = nonKeyRelatedPut(jsonTableObject.genDropTableQuery(),
-                    consistencyInfo);
-        logger.info(EELFLoggerDelegate.applicationLogger, " Table deletion Process completed successfully ");
-        
-        return result;
-    }
-    
-    @Override
-    public ResultType createIndex(JsonIndex jsonIndexObject, String consistencyInfo) 
-            throws MusicServiceException, MusicQueryException{
-        ResultType result = nonKeyRelatedPut(jsonIndexObject.genCreateIndexQuery(),
-                    consistencyInfo);
-        
-        logger.info(EELFLoggerDelegate.applicationLogger, " Index creation Process completed successfully ");
-        return result;
-    }
-    
-    /**
-     * This method performs DDL operation on cassandra.
-     *
-     * @param queryObject query object containing prepared query and values
-     * @return ResultSet
-     * @throws MusicServiceException
-     */
-    public  ResultSet select(JsonSelect jsonSelect, MultivaluedMap<String, String> rowParams) 
-            throws MusicServiceException, MusicQueryException {
-        ResultSet results = null;
-        try {
-            results = get(jsonSelect.genSelectQuery(rowParams));
-        } catch (MusicServiceException e) {
-            logger.error(EELFLoggerDelegate.errorLogger,e.getMessage());
-            throw new MusicServiceException(e.getMessage());
-        }
-        return results;
-    }
-    
-    /**
-     * Select Critical
-     */
-    public ResultSet selectCritical(JsonInsert jsonInsertObj, MultivaluedMap<String, String> rowParams)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        
-        ResultSet results = null;
-        String consistency = "";
-        if(null != jsonInsertObj && null != jsonInsertObj.getConsistencyInfo()) {
-            consistency = jsonInsertObj.getConsistencyInfo().get("type");
-        }
-        
-        String lockId = jsonInsertObj.getConsistencyInfo().get("lockId");
-        
-        PreparedQueryObject queryObject = jsonInsertObj.genSelectCriticalPreparedQueryObj(rowParams);
-        
-        if (consistency.equalsIgnoreCase(MusicUtil.CRITICAL)) {
-            results = criticalGet(jsonInsertObj.getKeyspaceName(), jsonInsertObj.getTableName(), 
-                    jsonInsertObj.getPrimaryKeyVal(), queryObject,lockId);
-        } else if (consistency.equalsIgnoreCase(MusicUtil.ATOMIC)) {
-            results = atomicGet(jsonInsertObj.getKeyspaceName(), jsonInsertObj.getTableName(),
-                    jsonInsertObj.getPrimaryKeyVal(), queryObject);
-        }
-        
-        return results;
-    }
-    
-    /**
-     * this is insert row into Table
-     */
-    public ReturnType insertIntoTable(JsonInsert jsonInsertObj)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        
-        String consistency = "";
-        if(null != jsonInsertObj && null != jsonInsertObj.getConsistencyInfo()) {
-            consistency = jsonInsertObj.getConsistencyInfo().get("type");
-        }
-        
-        ReturnType result = null;
-        
-        try {
-            PreparedQueryObject queryObj = null;
-            queryObj = jsonInsertObj.genInsertPreparedQueryObj();
-            
-            if (consistency.equalsIgnoreCase(MusicUtil.EVENTUAL)) {
-                result = eventualPut(jsonInsertObj.genInsertPreparedQueryObj());
-            } else if (consistency.equalsIgnoreCase(MusicUtil.CRITICAL)) {
-                String lockId = jsonInsertObj.getConsistencyInfo().get("lockId");
-                if(lockId == null) {
-                    logger.error(EELFLoggerDelegate.errorLogger,"LockId cannot be null. Create lock reference or"
-                            + " use ATOMIC instead of CRITICAL", ErrorSeverity.FATAL, ErrorTypes.MUSICSERVICEERROR);
-                    return new ReturnType(ResultType.FAILURE, "LockId cannot be null. Create lock "
-                            + "and acquire lock or use ATOMIC instead of CRITICAL");
-                }
-                result = criticalPut(jsonInsertObj.getKeyspaceName(), 
-                        jsonInsertObj.getTableName(), jsonInsertObj.getPrimaryKeyVal(), jsonInsertObj.genInsertPreparedQueryObj(), lockId,null);
-            } else if (consistency.equalsIgnoreCase(MusicUtil.ATOMIC)) {
-                result = atomicPut(jsonInsertObj.getKeyspaceName(), jsonInsertObj.getTableName(), 
-                        jsonInsertObj.getPrimaryKeyVal(), jsonInsertObj.genInsertPreparedQueryObj(), null);
-            }
-        } catch (Exception ex) {
-            logger.error(EELFLoggerDelegate.errorLogger,ex.getMessage(), AppMessages.UNKNOWNERROR  ,ErrorSeverity
-                .WARN, ErrorTypes.MUSICSERVICEERROR, ex);
-            return new ReturnType(ResultType.FAILURE, ex.getMessage());
-        }
-        
-        return result;
-    }
-    
-     /**
-     * This is insert row into Table
-     */
-    public ReturnType updateTable(JsonUpdate jsonUpdateObj, MultivaluedMap<String, String> rowParams)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        
-        ReturnType result = null;
-        String consistency = "";
-        if(null != jsonUpdateObj && null != jsonUpdateObj.getConsistencyInfo()) {
-            consistency = jsonUpdateObj.getConsistencyInfo().get("type");
-        }
-        PreparedQueryObject queryObject = jsonUpdateObj.genUpdatePreparedQueryObj(rowParams);
-        
-        Condition conditionInfo;
-        if (jsonUpdateObj.getConditions() == null) {
-            conditionInfo = null;
-        } else {
-            // to avoid parsing repeatedly, just send the select query to obtain row
-            PreparedQueryObject selectQuery = new PreparedQueryObject();
-            selectQuery.appendQueryString("SELECT *  FROM " + jsonUpdateObj.getKeyspaceName() + "." + jsonUpdateObj.getTableName() + " WHERE "
-                + jsonUpdateObj.getRowIdString() + ";");
-            selectQuery.addValue(jsonUpdateObj.getPrimarKeyValue());
-            conditionInfo = new Condition(jsonUpdateObj.getConditions(), selectQuery);
-        }
-
-        
-        if (consistency.equalsIgnoreCase(MusicUtil.EVENTUAL)) {
-            result = eventualPut(queryObject);
-        } else if (consistency.equalsIgnoreCase(MusicUtil.CRITICAL)) {
-            String lockId = jsonUpdateObj.getConsistencyInfo().get("lockId");
-            if(lockId == null) {
-                logger.error(EELFLoggerDelegate.errorLogger,"LockId cannot be null. Create lock reference or"
-                        + " use ATOMIC instead of CRITICAL", ErrorSeverity.FATAL, ErrorTypes.MUSICSERVICEERROR);
-               
-                return new ReturnType(ResultType.FAILURE, "LockId cannot be null. Create lock "
-                        + "and acquire lock or use ATOMIC instead of CRITICAL");
-            }
-            result = criticalPut(jsonUpdateObj.getKeyspaceName(), jsonUpdateObj.getTableName(), jsonUpdateObj.getPrimarKeyValue(),
-                            queryObject, lockId, conditionInfo);
-        } else if (consistency.equalsIgnoreCase("atomic_delete_lock")) {
-            // this function is mainly for the benchmarks
-            try {
-                result = atomicPutWithDeleteLock(jsonUpdateObj.getKeyspaceName(), jsonUpdateObj.getTableName(),
-                        jsonUpdateObj.getPrimarKeyValue(), queryObject, conditionInfo);
-            } catch (MusicLockingException e) {
-                logger.error(EELFLoggerDelegate.errorLogger,e, AppMessages.UNKNOWNERROR  ,ErrorSeverity.WARN,
-                    ErrorTypes.GENERALSERVICEERROR, e);
-                throw new MusicLockingException(AppMessages.UNKNOWNERROR.toString());
-                
-            }
-        } else if (consistency.equalsIgnoreCase(MusicUtil.ATOMIC)) {
-            try {
-                result = atomicPut(jsonUpdateObj.getKeyspaceName(), jsonUpdateObj.getTableName(), jsonUpdateObj.getPrimarKeyValue(),
-                    queryObject, conditionInfo);
-            } catch (MusicLockingException e) {
-                logger.error(EELFLoggerDelegate.errorLogger,e, AppMessages.UNKNOWNERROR  ,ErrorSeverity.WARN, ErrorTypes.GENERALSERVICEERROR, e);
-                throw new MusicLockingException(AppMessages.UNKNOWNERROR.toString());
-            }
-        } else if (consistency.equalsIgnoreCase(MusicUtil.EVENTUAL_NB)) {
-            try {
-                result = eventualPut_nb(queryObject, jsonUpdateObj.getKeyspaceName(),
-                        jsonUpdateObj.getTableName(), jsonUpdateObj.getPrimarKeyValue());
-            }catch (Exception e) {
-                return new ReturnType(ResultType.FAILURE, e.getMessage());
-            }
-            
-        }
-        
-        return result;
-    }
-    
-    /**
-     * This method is for Delete From Table
-     */
-    public ReturnType deleteFromTable(JsonDelete jsonDeleteObj, MultivaluedMap<String, String> rowParams)
-            throws MusicLockingException, MusicQueryException, MusicServiceException {
-        
-        ReturnType result = null;
-        String consistency = "";
-        if(null != jsonDeleteObj && null != jsonDeleteObj.getConsistencyInfo()) {
-            consistency = jsonDeleteObj.getConsistencyInfo().get("type");
-        }
-        PreparedQueryObject queryObject = jsonDeleteObj.genDeletePreparedQueryObj(rowParams);
-        
-        // get the conditional, if any
-        Condition conditionInfo;
-        if (jsonDeleteObj.getConditions() == null) {
-            conditionInfo = null;
-        } else {
-            // to avoid parsing repeatedly, just send the select query to obtain row
-            PreparedQueryObject selectQuery = new PreparedQueryObject();
-            selectQuery.appendQueryString("SELECT *  FROM " + jsonDeleteObj.getKeyspaceName() + "." + jsonDeleteObj.getTableName() + " WHERE "
-                + jsonDeleteObj.getRowIdString() + ";");
-            selectQuery.addValue(jsonDeleteObj.getPrimarKeyValue());
-            conditionInfo = new Condition(jsonDeleteObj.getConditions(), selectQuery);
-        }
-        
-        if (consistency.equalsIgnoreCase(MusicUtil.EVENTUAL))
-            result = eventualPut(queryObject);
-        else if (consistency.equalsIgnoreCase(MusicUtil.CRITICAL)) {
-            String lockId = jsonDeleteObj.getConsistencyInfo().get("lockId");
-            if(lockId == null) {
-                logger.error(EELFLoggerDelegate.errorLogger,"LockId cannot be null. Create lock reference or"
-                    + " use ATOMIC instead of CRITICAL", ErrorSeverity.FATAL, ErrorTypes.MUSICSERVICEERROR);
-               
-                return new ReturnType(ResultType.FAILURE, "LockId cannot be null. Create lock "
-                        + "and acquire lock or use ATOMIC instead of CRITICAL");
-            }
-            result = criticalPut(jsonDeleteObj.getKeyspaceName(), 
-                    jsonDeleteObj.getTableName(), jsonDeleteObj.getPrimarKeyValue(),
-                queryObject, lockId, conditionInfo);
-        } else if (consistency.equalsIgnoreCase(MusicUtil.ATOMIC)) {
-            result = atomicPut(jsonDeleteObj.getKeyspaceName(), 
-                    jsonDeleteObj.getTableName(), jsonDeleteObj.getPrimarKeyValue(),
-                queryObject, conditionInfo);
-        } else if(consistency.equalsIgnoreCase(MusicUtil.EVENTUAL_NB)) {                    
-            result = eventualPut_nb(queryObject, jsonDeleteObj.getKeyspaceName(), 
-                    jsonDeleteObj.getTableName(), jsonDeleteObj.getPrimarKeyValue());
-        }
-        
-        return result;
-    }
-
-
-}