diff --git a/catalog-dao/pom.xml b/catalog-dao/pom.xml
index f89e5f7..7f37fdf 100644
--- a/catalog-dao/pom.xml
+++ b/catalog-dao/pom.xml
@@ -309,6 +309,11 @@
 			<scope>provided</scope>
 		</dependency>
 		<dependency>
+			<groupId>com.datastax.oss</groupId>
+			<artifactId>java-driver-core</artifactId>
+			<version>${java.driver.core.version}</version>
+		</dependency>
+		<dependency>
 			<groupId>org.cassandraunit</groupId>
 			<artifactId>cassandra-unit</artifactId>
 			<version>${cassandra.unit.version}</version>
@@ -330,11 +335,6 @@
 			<version>3.11.3</version>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.thrift</groupId>
-			<artifactId>libthrift</artifactId>
-			<version>${libthrift.version}</version>
-		</dependency>
 		<!-- CASSANDRA END -->
 
 		<dependency>
diff --git a/catalog-dao/src/test/java/org/openecomp/sdc/be/utils/CassandraTestHelper.java b/catalog-dao/src/test/java/org/openecomp/sdc/be/utils/CassandraTestHelper.java
index d97f7d3..eec9b20 100644
--- a/catalog-dao/src/test/java/org/openecomp/sdc/be/utils/CassandraTestHelper.java
+++ b/catalog-dao/src/test/java/org/openecomp/sdc/be/utils/CassandraTestHelper.java
@@ -22,23 +22,22 @@
 package org.openecomp.sdc.be.utils;
 
 import com.datastax.driver.core.Cluster;
+import java.io.IOException;
 import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.thrift.transport.TTransportException;
 import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
 
-import java.io.IOException;
-
 public class CassandraTestHelper {
-    public static final String SERVER = "localhost";
-    public static final int BINARY_PORT = 9142;
 
-    public CassandraTestHelper() {
+    public static final String SERVER = "localhost";
+    private static final int BINARY_PORT = 9142;
+
+    private CassandraTestHelper() {
     }
 
     public static void startServer() {
         try {
             EmbeddedCassandraServerHelper.startEmbeddedCassandra(80000);
-        } catch(TTransportException | ConfigurationException | IOException ex) {
+        } catch (ConfigurationException | IOException ex) {
             throw new RuntimeException(ex);
         }
     }
