You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by sh...@apache.org on 2015/12/30 08:10:42 UTC

[23/50] [abbrv] lens git commit: LENS-869 : Fix DefaultEstimatedQueryCollection.remove method

LENS-869 : Fix DefaultEstimatedQueryCollection.remove method


Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/b71be2dc
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/b71be2dc
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/b71be2dc

Branch: refs/heads/LENS-581
Commit: b71be2dc906688b6f283bb16afa778d19fc1c0bf
Parents: 8704956
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Wed Nov 25 18:39:07 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Wed Nov 25 18:39:07 2015 +0530

----------------------------------------------------------------------
 .../lens/cli/TestLensNativeTableCommands.java   |   6 +-
 .../org/apache/lens/driver/hive/HiveDriver.java |   6 +-
 .../lens/server/api/LensServerAPITestUtil.java  |  47 +++
 .../api/query/TestAbstractQueryContext.java     |   2 +-
 .../lens/server/api/util/TestLensUtil.java      |  24 --
 .../org/apache/lens/server/LensServerConf.java  |   1 -
 .../server/query/QueryExecutionServiceImpl.java |  18 +-
 .../DefaultEstimatedQueryCollection.java        |   4 +-
 .../query/collect/DefaultQueryCollection.java   |   2 +
 .../ThreadSafeEstimatedQueryCollection.java     |  13 +-
 .../org/apache/lens/server/LensJerseyTest.java  |   8 +-
 .../apache/lens/server/LensServerTestUtil.java  | 298 +++++++++++++++++++
 .../org/apache/lens/server/LensTestUtil.java    | 298 -------------------
 .../org/apache/lens/server/TestServerMode.java  |   2 +-
 .../apache/lens/server/TestServerRestart.java   |  14 +-
 .../server/metastore/TestMetastoreService.java  |   4 +-
 .../metrics/TestResourceMethodMetrics.java      |   8 +-
 .../lens/server/query/TestQueryConstraints.java | 285 ++++++++++++++++++
 .../server/query/TestQueryEndEmailNotifier.java |  10 +-
 .../lens/server/query/TestQueryService.java     |  53 ++--
 .../lens/server/query/TestResultFormatting.java |  38 ++-
 .../session/TestDatabaseResourceService.java    |   4 +-
 .../server/session/TestSessionClassLoaders.java |   4 +-
 23 files changed, 746 insertions(+), 403 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
----------------------------------------------------------------------
diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
index 40a473a..d453803 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensNativeTableCommands.java
@@ -20,7 +20,7 @@ package org.apache.lens.cli;
 
 import org.apache.lens.cli.commands.LensNativeTableCommands;
 import org.apache.lens.client.LensClient;
-import org.apache.lens.server.LensTestUtil;
+import org.apache.lens.server.LensServerTestUtil;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,7 +50,7 @@ public class TestLensNativeTableCommands extends LensCliApplicationTest {
       LOG.debug("Starting to test nativetable commands");
       String tblList = command.showNativeTables();
       Assert.assertFalse(tblList.contains("test_native_table_command"));
-      LensTestUtil.createHiveTable("test_native_table_command");
+      LensServerTestUtil.createHiveTable("test_native_table_command");
       tblList = command.showNativeTables();
       Assert.assertTrue(tblList.contains("test_native_table_command"));
 
@@ -61,7 +61,7 @@ public class TestLensNativeTableCommands extends LensCliApplicationTest {
       Assert.assertTrue(desc.contains("MANAGED_TABLE"));
       Assert.assertTrue(desc.contains("test.hive.table.prop"));
     } finally {
-      LensTestUtil.dropHiveTable("test_native_table_command");
+      LensServerTestUtil.dropHiveTable("test_native_table_command");
 
     }
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index c96ef20..19c4793 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -95,7 +95,7 @@ public class HiveDriver implements LensDriver {
   public static final String HS2_PRIORITY_DEFAULT_RANGES = "VERY_HIGH,7.0,HIGH,30.0,NORMAL,90,LOW";
   public static final String SESSION_KEY_DELIMITER = ".";
 
-  private static final String QUERY_LAUNCHIG_CONSTRAINT_FACTORIES_KEY
+  public static final String QUERY_LAUNCHING_CONSTRAINT_FACTORIES_KEY
     = "lens.driver.hive.query.launching.constraint.factories";
 
   private static final String WAITING_QUERIES_SELECTION_POLICY_FACTORIES_KEY
@@ -143,7 +143,7 @@ public class HiveDriver implements LensDriver {
   private DriverQueryHook queryHook;
 
   @Getter
-  private ImmutableSet<QueryLaunchingConstraint> queryConstraints;
+  protected ImmutableSet<QueryLaunchingConstraint> queryConstraints;
   private ImmutableSet<WaitingQueriesSelectionPolicy> selectionPolicies;
 
   private String sessionDbKey(String sessionHandle, String database) {
@@ -364,7 +364,7 @@ public class HiveDriver implements LensDriver {
     } catch (InstantiationException | IllegalAccessException e) {
       throw new LensException("Can't instantiate driver query hook for hivedriver with given class", e);
     }
-    queryConstraints = getImplementations(QUERY_LAUNCHIG_CONSTRAINT_FACTORIES_KEY, driverConf);
+    queryConstraints = getImplementations(QUERY_LAUNCHING_CONSTRAINT_FACTORIES_KEY, driverConf);
     selectionPolicies = getImplementations(WAITING_QUERIES_SELECTION_POLICY_FACTORIES_KEY, driverConf);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server-api/src/test/java/org/apache/lens/server/api/LensServerAPITestUtil.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/test/java/org/apache/lens/server/api/LensServerAPITestUtil.java b/lens-server-api/src/test/java/org/apache/lens/server/api/LensServerAPITestUtil.java
new file mode 100644
index 0000000..84139a4
--- /dev/null
+++ b/lens-server-api/src/test/java/org/apache/lens/server/api/LensServerAPITestUtil.java
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.lens.server.api;
+
+import org.apache.lens.api.LensConf;
+
+import org.apache.hadoop.conf.Configuration;
+
+public class LensServerAPITestUtil {
+  private LensServerAPITestUtil() {
+
+  }
+
+  public static Configuration getConfiguration(Object... args) {
+    Configuration conf = new Configuration(false);
+    assert (args.length % 2 == 0);
+    for (int i = 0; i < args.length; i += 2) {
+      conf.set(args[i].toString(), args[i + 1].toString());
+    }
+    return conf;
+  }
+
+  public static LensConf getLensConf(Object... args) {
+    assert (args.length % 2 == 0);
+    LensConf conf = new LensConf();
+    for (int i = 0; i < args.length; i += 2) {
+      conf.addProperty(args[i], args[i + 1]);
+    }
+    return conf;
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server-api/src/test/java/org/apache/lens/server/api/query/TestAbstractQueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/test/java/org/apache/lens/server/api/query/TestAbstractQueryContext.java b/lens-server-api/src/test/java/org/apache/lens/server/api/query/TestAbstractQueryContext.java
index e41f2f4..02b652e 100644
--- a/lens-server-api/src/test/java/org/apache/lens/server/api/query/TestAbstractQueryContext.java
+++ b/lens-server-api/src/test/java/org/apache/lens/server/api/query/TestAbstractQueryContext.java
@@ -20,7 +20,7 @@ package org.apache.lens.server.api.query;
 
 import static org.apache.lens.api.Priority.HIGH;
 import static org.apache.lens.server.api.LensConfConstants.*;
-import static org.apache.lens.server.api.util.TestLensUtil.getConfiguration;
+import static org.apache.lens.server.api.LensServerAPITestUtil.getConfiguration;
 
 import static org.testng.Assert.*;
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server-api/src/test/java/org/apache/lens/server/api/util/TestLensUtil.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/test/java/org/apache/lens/server/api/util/TestLensUtil.java b/lens-server-api/src/test/java/org/apache/lens/server/api/util/TestLensUtil.java
index a6acb7d..caee12f 100644
--- a/lens-server-api/src/test/java/org/apache/lens/server/api/util/TestLensUtil.java
+++ b/lens-server-api/src/test/java/org/apache/lens/server/api/util/TestLensUtil.java
@@ -18,14 +18,8 @@
  */
 package org.apache.lens.server.api.util;
 
-import static org.testng.Assert.assertEquals;
-
 import java.io.IOException;
 
-import org.apache.lens.api.LensConf;
-
-import org.apache.hadoop.conf.Configuration;
-
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -61,22 +55,4 @@ public class TestLensUtil {
     }
     Assert.assertEquals(LensUtil.getCauseMessage(th), "run time exception");
   }
-
-  public static Configuration getConfiguration(Object... args) {
-    Configuration conf = new Configuration();
-    Assert.assertEquals(args.length % 2, 0, "Odd number of arguments not supported");
-    for (int i = 0; i < args.length; i += 2) {
-      conf.set(args[i].toString(), args[i + 1].toString());
-    }
-    return conf;
-  }
-
-  public static LensConf getLensConf(Object... args) {
-    assertEquals(args.length % 2, 0);
-    LensConf conf = new LensConf();
-    for (int i = 0; i < args.length; i += 2) {
-      conf.addProperty(args[i], args[i + 1]);
-    }
-    return conf;
-  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/main/java/org/apache/lens/server/LensServerConf.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/LensServerConf.java b/lens-server/src/main/java/org/apache/lens/server/LensServerConf.java
index 6db720d..e977ebd 100644
--- a/lens-server/src/main/java/org/apache/lens/server/LensServerConf.java
+++ b/lens-server/src/main/java/org/apache/lens/server/LensServerConf.java
@@ -52,7 +52,6 @@ public final class LensServerConf {
           OVERRIDING_CONF_FOR_DRIVER.set(prop.getKey(), prop.getValue());
         }
       }
-
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index fdc8bfd..941b1e5 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -86,9 +86,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import lombok.Getter;
-import lombok.NonNull;
-import lombok.ToString;
+import lombok.*;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -141,6 +139,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
   /**
    * The launched queries.
    */
+  @Getter
   private EstimatedQueryCollection launchedQueries;
 
   /**
@@ -2569,6 +2568,19 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
     return finishedQueries.size();
   }
 
+  @Data
+  @AllArgsConstructor
+  public static class QueryCount {
+    long running, queued, waiting;
+  }
+
+  public QueryCount getQueryCountSnapshot() {
+    removalFromLaunchedQueriesLock.lock();
+    QueryCount count = new QueryCount(getRunningQueriesCount(), getQueuedQueriesCount(), getWaitingQueriesCount());
+    removalFromLaunchedQueriesLock.unlock();
+    return count;
+  }
+
   /**
    * Handle driver session start.
    *

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
index 908b86f..4e5aa68 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
@@ -37,6 +37,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Sets;
 import lombok.NonNull;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -48,6 +49,7 @@ import lombok.extern.slf4j.Slf4j;
  *
  */
 @Slf4j
+@ToString
 public class DefaultEstimatedQueryCollection implements EstimatedQueryCollection {
 
   private final QueryCollection queries;
@@ -109,7 +111,7 @@ public class DefaultEstimatedQueryCollection implements EstimatedQueryCollection
    */
   @Override
   public boolean remove(QueryContext query) {
-    this.queriesByDriver.remove(query.getSelectedDriver());
+    this.queriesByDriver.remove(query.getSelectedDriver(), query);
     return this.queries.remove(query);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java
index 844237a..6f4230b 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultQueryCollection.java
@@ -27,6 +27,7 @@ import org.apache.commons.collections.map.MultiValueMap;
 
 import com.google.common.collect.Sets;
 import lombok.NonNull;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -36,6 +37,7 @@ import lombok.extern.slf4j.Slf4j;
  * @see QueryCollection
  */
 @Slf4j
+@ToString
 public class DefaultQueryCollection implements QueryCollection {
 
   private final Set<QueryContext> queries;

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java b/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
index ca24a8b..0e68395 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/collect/ThreadSafeEstimatedQueryCollection.java
@@ -50,22 +50,22 @@ public class ThreadSafeEstimatedQueryCollection implements EstimatedQueryCollect
   }
 
   @Override
-  public synchronized  QueryCost getTotalQueryCost(String user) {
+  public synchronized QueryCost getTotalQueryCost(String user) {
     return this.estimatedQueries.getTotalQueryCost(user);
   }
 
   @Override
-  public synchronized  Set<QueryContext> getQueries() {
+  public synchronized Set<QueryContext> getQueries() {
     return this.estimatedQueries.getQueries();
   }
 
   @Override
-  public synchronized  Set<QueryContext> getQueries(String user) {
+  public synchronized Set<QueryContext> getQueries(String user) {
     return this.estimatedQueries.getQueries(user);
   }
 
   @Override
-  public synchronized  int getQueriesCount() {
+  public synchronized int getQueriesCount() {
     return this.estimatedQueries.getQueriesCount();
   }
 
@@ -93,4 +93,9 @@ public class ThreadSafeEstimatedQueryCollection implements EstimatedQueryCollect
   public synchronized boolean removeAll(Set<QueryContext> queries) {
     return this.estimatedQueries.removeAll(queries);
   }
+
+  @Override
+  public synchronized String toString() {
+    return getClass().getSimpleName() + "(estimatedQueries=" + this.estimatedQueries + ")";
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
index 3dad050..8ba9353 100644
--- a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
+++ b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
@@ -18,6 +18,10 @@
  */
 package org.apache.lens.server;
 
+import static org.apache.lens.server.LensServerTestUtil.DB_WITH_JARS;
+import static org.apache.lens.server.LensServerTestUtil.DB_WITH_JARS_2;
+import static org.apache.lens.server.LensServerTestUtil.createTestDatabaseResources;
+
 import static org.testng.Assert.*;
 
 import java.io.IOException;
@@ -123,10 +127,10 @@ public abstract class LensJerseyTest extends JerseyTest {
     hiveConf.setIntVar(HiveConf.ConfVars.HIVE_SERVER2_THRIFT_CLIENT_CONNECTION_RETRY_LIMIT, 3);
     hiveConf.setIntVar(HiveConf.ConfVars.HIVE_SERVER2_THRIFT_CLIENT_RETRY_LIMIT, 3);
 
-    LensTestUtil.createTestDatabaseResources(new String[]{LensTestUtil.DB_WITH_JARS, LensTestUtil.DB_WITH_JARS_2},
+    createTestDatabaseResources(new String[]{DB_WITH_JARS, DB_WITH_JARS_2},
       hiveConf);
 
-    LensServices.get().init(LensServerConf.getHiveConf());
+    LensServices.get().init(getServerConf());
     LensServices.get().start();
 
     // Check if mock service is started

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
new file mode 100644
index 0000000..57bedee
--- /dev/null
+++ b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
@@ -0,0 +1,298 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.lens.server;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.*;
+
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.GenericType;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.lens.api.LensConf;
+import org.apache.lens.api.LensSessionHandle;
+import org.apache.lens.api.query.LensQuery;
+import org.apache.lens.api.query.QueryHandle;
+import org.apache.lens.api.query.QueryStatus;
+import org.apache.lens.api.result.LensAPIResult;
+import org.apache.lens.server.api.LensConfConstants;
+
+import org.apache.commons.io.FileUtils;
+
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.TableType;
+import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.ql.metadata.Hive;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.metadata.Table;
+
+import org.glassfish.jersey.media.multipart.FormDataBodyPart;
+import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
+import org.glassfish.jersey.media.multipart.FormDataMultiPart;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * The Class LensServerTestUtil.
+ */
+@Slf4j
+public final class LensServerTestUtil {
+
+  public static final String DB_WITH_JARS = "test_db_static_jars";
+  public static final String DB_WITH_JARS_2 = "test_db_static_jars_2";
+  private LensServerTestUtil() {
+
+  }
+
+  /**
+   * Creates the table.
+   *
+   * @param tblName       the tbl name
+   * @param parent        the parent
+   * @param lensSessionId the lens session id
+   * @param schemaStr     the schema string, with surrounding parenthesis.
+   * @throws InterruptedException the interrupted exception
+   */
+  public static void createTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId, String schemaStr)
+    throws InterruptedException {
+    LensConf conf = new LensConf();
+    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+    final WebTarget target = parent.path("queryapi/queries");
+
+    final FormDataMultiPart mp = new FormDataMultiPart();
+    String createTable = "CREATE TABLE IF NOT EXISTS " + tblName + schemaStr;
+
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
+      MediaType.APPLICATION_XML_TYPE));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), createTable));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
+      MediaType.APPLICATION_XML_TYPE));
+
+    final QueryHandle handle = target.request()
+        .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
+            new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
+    // wait till the query finishes
+    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
+      .get(LensQuery.class);
+    QueryStatus stat = ctx.getStatus();
+    while (!stat.finished()) {
+      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
+      stat = ctx.getStatus();
+      Thread.sleep(1000);
+    }
+    final String debugHelpMsg = "Query Handle:"+ctx.getQueryHandleString();
+    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, debugHelpMsg);
+    assertTrue(ctx.getSubmissionTime() > 0, debugHelpMsg);
+    assertTrue(ctx.getLaunchTime() > 0, debugHelpMsg);
+    assertTrue(ctx.getDriverStartTime() > 0, debugHelpMsg);
+    assertTrue(ctx.getDriverFinishTime() > 0, debugHelpMsg);
+    assertTrue(ctx.getFinishTime() > 0, debugHelpMsg);
+  }
+
+  public static void createTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId)
+    throws InterruptedException {
+    createTable(tblName, parent, lensSessionId, "(ID INT, IDSTR STRING)");
+  }
+
+  public static void loadData(String tblName, final String testDataFile, WebTarget parent,
+      LensSessionHandle lensSessionId) throws InterruptedException {
+    LensConf conf = new LensConf();
+    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+    final WebTarget target = parent.path("queryapi/queries");
+
+    final FormDataMultiPart mp = new FormDataMultiPart();
+    String dataLoad = "LOAD DATA LOCAL INPATH '" + testDataFile + "' OVERWRITE INTO TABLE " + tblName;
+
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
+        MediaType.APPLICATION_XML_TYPE));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), dataLoad));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
+        MediaType.APPLICATION_XML_TYPE));
+
+    final QueryHandle handle = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
+        new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
+
+    // wait till the query finishes
+    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
+        .get(LensQuery.class);
+    QueryStatus stat = ctx.getStatus();
+    while (!stat.finished()) {
+      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
+      stat = ctx.getStatus();
+      Thread.sleep(1000);
+    }
+    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+  }
+  /**
+   * Load data.
+   *
+   * @param tblName        the tbl name
+   * @param testDataFile the test data file
+   * @param parent         the parent
+   * @param lensSessionId  the lens session id
+   * @throws InterruptedException the interrupted exception
+   */
+  public static void loadDataFromClasspath(String tblName, final String testDataFile, WebTarget parent,
+      LensSessionHandle lensSessionId) throws InterruptedException {
+
+    String absolutePath = LensServerTestUtil.class.getClassLoader().getResource(testDataFile).getPath();
+    loadData(tblName, absolutePath, parent, lensSessionId);
+  }
+
+  /**
+   * Drop table.
+   *
+   * @param tblName       the tbl name
+   * @param parent        the parent
+   * @param lensSessionId the lens session id
+   * @throws InterruptedException the interrupted exception
+   */
+  public static void dropTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId)
+    throws InterruptedException {
+    LensConf conf = new LensConf();
+    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+    dropTableWithConf(tblName, parent, lensSessionId, conf);
+  }
+
+  /**
+   * Drop table with conf passed.
+   *
+   * @param tblName       the tbl name
+   * @param parent        the parent
+   * @param lensSessionId the lens session id
+   * @param conf          the query conf
+   *
+   * @throws InterruptedException
+   */
+  public static void dropTableWithConf(String tblName, WebTarget parent, LensSessionHandle lensSessionId,
+    LensConf conf) throws InterruptedException {
+    final WebTarget target = parent.path("queryapi/queries");
+
+    final FormDataMultiPart mp = new FormDataMultiPart();
+    String createTable = "DROP TABLE IF EXISTS " + tblName;
+
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
+      MediaType.APPLICATION_XML_TYPE));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), createTable));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
+    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
+      MediaType.APPLICATION_XML_TYPE));
+
+    final QueryHandle handle = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
+        new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
+
+    // wait till the query finishes
+    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
+      .get(LensQuery.class);
+    QueryStatus stat = ctx.getStatus();
+    while (!stat.finished()) {
+      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
+      stat = ctx.getStatus();
+      Thread.sleep(1000);
+    }
+    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+  }
+
+  /**
+   * Creates the hive table.
+   *
+   * @param tableName the table name
+   * @throws HiveException the hive exception
+   */
+  public static void createHiveTable(String tableName) throws HiveException {
+    List<FieldSchema> columns = new ArrayList<FieldSchema>();
+    columns.add(new FieldSchema("col1", "string", ""));
+    List<FieldSchema> partCols = new ArrayList<FieldSchema>();
+    partCols.add(new FieldSchema("pcol1", "string", ""));
+    Map<String, String> params = new HashMap<String, String>();
+    params.put("test.hive.table.prop", "tvalue");
+    Table tbl = Hive.get().newTable(tableName);
+    tbl.setTableType(TableType.MANAGED_TABLE);
+    tbl.getTTable().getSd().setCols(columns);
+    tbl.setPartCols(partCols);
+    tbl.getTTable().getParameters().putAll(params);
+    Hive.get().createTable(tbl);
+  }
+
+  /**
+   * Drop hive table.
+   *
+   * @param tableName the table name
+   * @throws HiveException the hive exception
+   */
+  public static void dropHiveTable(String tableName) throws HiveException {
+    Hive.get().dropTable(tableName);
+  }
+
+  public static void createTestDatabaseResources(String[] testDatabases, HiveConf conf) throws Exception {
+    File srcJarDir = new File("target/testjars/");
+    if (!srcJarDir.exists()) {
+      // nothing to setup
+      return;
+    }
+    File resDir = new File("target/resources");
+    if (!resDir.exists()) {
+      resDir.mkdir();
+    }
+
+    // Create databases and resource dirs
+    Hive hive = Hive.get(conf);
+    File testJarFile = new File("target/testjars/test.jar");
+    File serdeJarFile = new File("target/testjars/serde.jar");
+    for (String db : testDatabases) {
+      Database database = new Database();
+      database.setName(db);
+      hive.createDatabase(database, true);
+      File dbDir = new File(resDir, db);
+      if (!dbDir.exists()) {
+        dbDir.mkdir();
+      }
+      // Add a jar in the directory
+      try {
+
+        String[] jarOrder = {
+          "x_" + db + ".jar",
+          "y_" + db + ".jar",
+          "z_" + db + ".jar",
+          "serde.jar",
+        };
+
+        // Jar order is -> z, y, x, File listing order is x, y, z
+        // We are explicitly specifying jar order
+        FileUtils.writeLines(new File(dbDir, "jar_order"), Arrays.asList(jarOrder[2], jarOrder[1],
+          jarOrder[0], jarOrder[3]));
+
+        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[0]));
+        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[1]));
+        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[2]));
+        FileUtils.copyFile(serdeJarFile, new File(dbDir, jarOrder[3]));
+      } catch (FileNotFoundException fnf) {
+        log.error("File not found.", fnf);
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/LensTestUtil.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/LensTestUtil.java b/lens-server/src/test/java/org/apache/lens/server/LensTestUtil.java
deleted file mode 100644
index 62e9954..0000000
--- a/lens-server/src/test/java/org/apache/lens/server/LensTestUtil.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.lens.server;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.*;
-
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-
-import org.apache.lens.api.LensConf;
-import org.apache.lens.api.LensSessionHandle;
-import org.apache.lens.api.query.LensQuery;
-import org.apache.lens.api.query.QueryHandle;
-import org.apache.lens.api.query.QueryStatus;
-import org.apache.lens.api.result.LensAPIResult;
-import org.apache.lens.server.api.LensConfConstants;
-
-import org.apache.commons.io.FileUtils;
-
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.metastore.TableType;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.ql.metadata.Hive;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.metadata.Table;
-
-import org.glassfish.jersey.media.multipart.FormDataBodyPart;
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * The Class LensTestUtil.
- */
-@Slf4j
-public final class LensTestUtil {
-
-  public static final String DB_WITH_JARS = "test_db_static_jars";
-  public static final String DB_WITH_JARS_2 = "test_db_static_jars_2";
-  private LensTestUtil() {
-
-  }
-
-  /**
-   * Creates the table.
-   *
-   * @param tblName       the tbl name
-   * @param parent        the parent
-   * @param lensSessionId the lens session id
-   * @param schemaStr     the schema string, with surrounding parenthesis.
-   * @throws InterruptedException the interrupted exception
-   */
-  public static void createTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId, String schemaStr)
-    throws InterruptedException {
-    LensConf conf = new LensConf();
-    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
-    final WebTarget target = parent.path("queryapi/queries");
-
-    final FormDataMultiPart mp = new FormDataMultiPart();
-    String createTable = "CREATE TABLE IF NOT EXISTS " + tblName + schemaStr;
-
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
-      MediaType.APPLICATION_XML_TYPE));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), createTable));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
-      MediaType.APPLICATION_XML_TYPE));
-
-    final QueryHandle handle = target.request()
-        .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
-            new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
-    // wait till the query finishes
-    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
-      .get(LensQuery.class);
-    QueryStatus stat = ctx.getStatus();
-    while (!stat.finished()) {
-      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
-      stat = ctx.getStatus();
-      Thread.sleep(1000);
-    }
-    final String debugHelpMsg = "Query Handle:"+ctx.getQueryHandleString();
-    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, debugHelpMsg);
-    assertTrue(ctx.getSubmissionTime() > 0, debugHelpMsg);
-    assertTrue(ctx.getLaunchTime() > 0, debugHelpMsg);
-    assertTrue(ctx.getDriverStartTime() > 0, debugHelpMsg);
-    assertTrue(ctx.getDriverFinishTime() > 0, debugHelpMsg);
-    assertTrue(ctx.getFinishTime() > 0, debugHelpMsg);
-  }
-
-  public static void createTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId)
-    throws InterruptedException {
-    createTable(tblName, parent, lensSessionId, "(ID INT, IDSTR STRING)");
-  }
-
-  public static void loadData(String tblName, final String testDataFile, WebTarget parent,
-      LensSessionHandle lensSessionId) throws InterruptedException {
-    LensConf conf = new LensConf();
-    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
-    final WebTarget target = parent.path("queryapi/queries");
-
-    final FormDataMultiPart mp = new FormDataMultiPart();
-    String dataLoad = "LOAD DATA LOCAL INPATH '" + testDataFile + "' OVERWRITE INTO TABLE " + tblName;
-
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
-        MediaType.APPLICATION_XML_TYPE));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), dataLoad));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
-        MediaType.APPLICATION_XML_TYPE));
-
-    final QueryHandle handle = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
-        new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
-
-    // wait till the query finishes
-    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
-        .get(LensQuery.class);
-    QueryStatus stat = ctx.getStatus();
-    while (!stat.finished()) {
-      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
-      stat = ctx.getStatus();
-      Thread.sleep(1000);
-    }
-    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-  }
-  /**
-   * Load data.
-   *
-   * @param tblName        the tbl name
-   * @param testDataFile the test data file
-   * @param parent         the parent
-   * @param lensSessionId  the lens session id
-   * @throws InterruptedException the interrupted exception
-   */
-  public static void loadDataFromClasspath(String tblName, final String testDataFile, WebTarget parent,
-      LensSessionHandle lensSessionId) throws InterruptedException {
-
-    String absolutePath = LensTestUtil.class.getClassLoader().getResource(testDataFile).getPath();
-    loadData(tblName, absolutePath, parent, lensSessionId);
-  }
-
-  /**
-   * Drop table.
-   *
-   * @param tblName       the tbl name
-   * @param parent        the parent
-   * @param lensSessionId the lens session id
-   * @throws InterruptedException the interrupted exception
-   */
-  public static void dropTable(String tblName, WebTarget parent, LensSessionHandle lensSessionId)
-    throws InterruptedException {
-    LensConf conf = new LensConf();
-    conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
-    dropTableWithConf(tblName, parent, lensSessionId, conf);
-  }
-
-  /**
-   * Drop table with conf passed.
-   *
-   * @param tblName       the tbl name
-   * @param parent        the parent
-   * @param lensSessionId the lens session id
-   * @param conf          the query conf
-   *
-   * @throws InterruptedException
-   */
-  public static void dropTableWithConf(String tblName, WebTarget parent, LensSessionHandle lensSessionId,
-    LensConf conf) throws InterruptedException {
-    final WebTarget target = parent.path("queryapi/queries");
-
-    final FormDataMultiPart mp = new FormDataMultiPart();
-    String createTable = "DROP TABLE IF EXISTS " + tblName;
-
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
-      MediaType.APPLICATION_XML_TYPE));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), createTable));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute"));
-    mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
-      MediaType.APPLICATION_XML_TYPE));
-
-    final QueryHandle handle = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
-        new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
-
-    // wait till the query finishes
-    LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
-      .get(LensQuery.class);
-    QueryStatus stat = ctx.getStatus();
-    while (!stat.finished()) {
-      ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request().get(LensQuery.class);
-      stat = ctx.getStatus();
-      Thread.sleep(1000);
-    }
-    assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-  }
-
-  /**
-   * Creates the hive table.
-   *
-   * @param tableName the table name
-   * @throws HiveException the hive exception
-   */
-  public static void createHiveTable(String tableName) throws HiveException {
-    List<FieldSchema> columns = new ArrayList<FieldSchema>();
-    columns.add(new FieldSchema("col1", "string", ""));
-    List<FieldSchema> partCols = new ArrayList<FieldSchema>();
-    partCols.add(new FieldSchema("pcol1", "string", ""));
-    Map<String, String> params = new HashMap<String, String>();
-    params.put("test.hive.table.prop", "tvalue");
-    Table tbl = Hive.get().newTable(tableName);
-    tbl.setTableType(TableType.MANAGED_TABLE);
-    tbl.getTTable().getSd().setCols(columns);
-    tbl.setPartCols(partCols);
-    tbl.getTTable().getParameters().putAll(params);
-    Hive.get().createTable(tbl);
-  }
-
-  /**
-   * Drop hive table.
-   *
-   * @param tableName the table name
-   * @throws HiveException the hive exception
-   */
-  public static void dropHiveTable(String tableName) throws HiveException {
-    Hive.get().dropTable(tableName);
-  }
-
-  public static void createTestDatabaseResources(String[] testDatabases, HiveConf conf) throws Exception {
-    File srcJarDir = new File("target/testjars/");
-    if (!srcJarDir.exists()) {
-      // nothing to setup
-      return;
-    }
-    File resDir = new File("target/resources");
-    if (!resDir.exists()) {
-      resDir.mkdir();
-    }
-
-    // Create databases and resource dirs
-    Hive hive = Hive.get(conf);
-    File testJarFile = new File("target/testjars/test.jar");
-    File serdeJarFile = new File("target/testjars/serde.jar");
-    for (String db : testDatabases) {
-      Database database = new Database();
-      database.setName(db);
-      hive.createDatabase(database, true);
-      File dbDir = new File(resDir, db);
-      if (!dbDir.exists()) {
-        dbDir.mkdir();
-      }
-      // Add a jar in the directory
-      try {
-
-        String[] jarOrder = {
-          "x_" + db + ".jar",
-          "y_" + db + ".jar",
-          "z_" + db + ".jar",
-          "serde.jar",
-        };
-
-        // Jar order is -> z, y, x, File listing order is x, y, z
-        // We are explicitly specifying jar order
-        FileUtils.writeLines(new File(dbDir, "jar_order"), Arrays.asList(jarOrder[2], jarOrder[1],
-          jarOrder[0], jarOrder[3]));
-
-        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[0]));
-        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[1]));
-        FileUtils.copyFile(testJarFile, new File(dbDir, jarOrder[2]));
-        FileUtils.copyFile(serdeJarFile, new File(dbDir, jarOrder[3]));
-      } catch (FileNotFoundException fnf) {
-        log.error("File not found.", fnf);
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/TestServerMode.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/TestServerMode.java b/lens-server/src/test/java/org/apache/lens/server/TestServerMode.java
index def5683..75f21e1 100644
--- a/lens-server/src/test/java/org/apache/lens/server/TestServerMode.java
+++ b/lens-server/src/test/java/org/apache/lens/server/TestServerMode.java
@@ -61,7 +61,7 @@ public class TestServerMode extends LensAllApplicationJerseyTest {
   @BeforeTest
   public void setUp() throws Exception {
     super.setUp();
-    LensTestUtil.createTable("test_table", target(), RestAPITestUtil.openFooBarSession(target()));
+    LensServerTestUtil.createTable("test_table", target(), RestAPITestUtil.openFooBarSession(target()));
   }
 
   /*

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
index 49d62f9..7b6c560 100644
--- a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
+++ b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
@@ -18,6 +18,8 @@
  */
 package org.apache.lens.server;
 
+import static org.apache.lens.server.LensServerTestUtil.createTable;
+import static org.apache.lens.server.LensServerTestUtil.loadData;
 import static org.apache.lens.server.common.RestAPITestUtil.execute;
 
 import static org.testng.Assert.assertEquals;
@@ -135,8 +137,8 @@ public class TestServerRestart extends LensAllApplicationJerseyTest {
     createRestartTestDataFile();
 
     // Create a test table
-    LensTestUtil.createTable("test_server_restart", target(), lensSessionId);
-    LensTestUtil.loadData("test_server_restart", TestResourceFile.TEST_DATA_FILE.getValue(), target(), lensSessionId);
+    createTable("test_server_restart", target(), lensSessionId);
+    loadData("test_server_restart", TestResourceFile.TEST_DATA_FILE.getValue(), target(), lensSessionId);
     log.info("Loaded data");
 
     // test post execute op
@@ -211,7 +213,7 @@ public class TestServerRestart extends LensAllApplicationJerseyTest {
       }
     }
     log.info("End server restart test");
-    LensTestUtil.dropTable("test_server_restart", target(), lensSessionId);
+    LensServerTestUtil.dropTable("test_server_restart", target(), lensSessionId);
     queryService.closeSession(lensSessionId);
   }
 
@@ -242,8 +244,8 @@ public class TestServerRestart extends LensAllApplicationJerseyTest {
     log.info("@@ Added resource {}", dataFile.toURI());
 
     // Create a test table
-    LensTestUtil.createTable("test_hive_server_restart", target(), lensSessionId);
-    LensTestUtil.loadData("test_hive_server_restart", TestResourceFile.TEST_DATA_FILE.getValue(), target(),
+    createTable("test_hive_server_restart", target(), lensSessionId);
+    loadData("test_hive_server_restart", TestResourceFile.TEST_DATA_FILE.getValue(), target(),
       lensSessionId);
     log.info("Loaded data");
 
@@ -354,7 +356,7 @@ public class TestServerRestart extends LensAllApplicationJerseyTest {
     // "Expected to be successful " + handle);
 
     log.info("End hive server restart test");
-    LensTestUtil.dropTable("test_hive_server_restart", target(), lensSessionId);
+    LensServerTestUtil.dropTable("test_hive_server_restart", target(), lensSessionId);
     queryService.closeSession(lensSessionId);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
index 3bc692e..e0c0923 100644
--- a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java
@@ -48,8 +48,8 @@ import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.cube.metadata.*;
 import org.apache.lens.cube.metadata.ExprColumn.ExprSpec;
 import org.apache.lens.server.LensJerseyTest;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.LensServices;
-import org.apache.lens.server.LensTestUtil;
 import org.apache.lens.server.api.metastore.CubeMetastoreService;
 import org.apache.lens.server.api.util.LensUtil;
 
@@ -2418,7 +2418,7 @@ public class TestMetastoreService extends LensJerseyTest {
       // create hive table
       String tableName = "test_simple_table";
       SessionState.get().setCurrentDatabase(DB);
-      LensTestUtil.createHiveTable(tableName);
+      LensServerTestUtil.createHiveTable(tableName);
 
       WebTarget target = target().path("metastore").path("nativetables");
       // get all native tables

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java b/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java
index 94e8069..515ac13 100644
--- a/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java
+++ b/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java
@@ -41,8 +41,8 @@ import org.apache.lens.api.query.QueryHandle;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.server.LensAllApplicationJerseyTest;
 import org.apache.lens.server.LensApplication;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.LensServices;
-import org.apache.lens.server.LensTestUtil;
 import org.apache.lens.server.api.metastore.CubeMetastoreService;
 import org.apache.lens.server.api.metrics.MethodMetrics;
 import org.apache.lens.server.api.metrics.MetricsService;
@@ -87,16 +87,16 @@ public class TestResourceMethodMetrics extends LensAllApplicationJerseyTest {
   }
 
   private void createTable(String tblName) throws InterruptedException {
-    LensTestUtil.createTable(tblName, target(), lensSessionId);
+    LensServerTestUtil.createTable(tblName, target(), lensSessionId);
   }
 
   private void loadData(String tblName, final String testDataFile) throws InterruptedException {
-    LensTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
+    LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
   }
 
   @AfterTest
   public void tearDown() throws Exception {
-    LensTestUtil.dropTable(TestQueryService.TEST_TABLE, target(), lensSessionId);
+    LensServerTestUtil.dropTable(TestQueryService.TEST_TABLE, target(), lensSessionId);
     metastoreService.closeSession(lensSessionId);
     super.tearDown();
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
new file mode 100644
index 0000000..eb94c89
--- /dev/null
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
@@ -0,0 +1,285 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.lens.server.query;
+
+import static org.apache.lens.server.api.LensConfConstants.QUERY_METRIC_UNIQUE_ID_CONF_KEY;
+import static org.apache.lens.server.api.util.LensUtil.getImplementations;
+
+import static org.testng.Assert.*;
+
+import java.util.*;
+
+import javax.ws.rs.core.Application;
+
+import org.apache.lens.api.LensSessionHandle;
+import org.apache.lens.api.jaxb.LensJAXBContextResolver;
+import org.apache.lens.api.query.QueryHandle;
+import org.apache.lens.driver.hive.HiveDriver;
+import org.apache.lens.server.LensJerseyTest;
+import org.apache.lens.server.LensServerConf;
+import org.apache.lens.server.LensServerTestUtil;
+import org.apache.lens.server.LensServices;
+import org.apache.lens.server.api.LensConfConstants;
+import org.apache.lens.server.api.LensServerAPITestUtil;
+import org.apache.lens.server.api.driver.DriverSelector;
+import org.apache.lens.server.api.driver.LensDriver;
+import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.metrics.MetricsService;
+import org.apache.lens.server.api.query.AbstractQueryContext;
+import org.apache.lens.server.api.query.QueryExecutionService;
+import org.apache.lens.server.common.RestAPITestUtil;
+import org.apache.lens.server.common.TestResourceFile;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hive.conf.HiveConf;
+
+import org.glassfish.jersey.client.ClientConfig;
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.glassfish.jersey.test.TestProperties;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import com.beust.jcommander.internal.Lists;
+import com.google.common.base.Optional;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * The Class TestQueryService.
+ */
+@Slf4j
+@Test(groups = "two-working-drivers", dependsOnGroups = "filter-test")
+public class TestQueryConstraints extends LensJerseyTest {
+  private HiveConf serverConf;
+
+  public static class MockHiveDriverBase extends HiveDriver {
+
+    private final Configuration customConf;
+
+    /**
+     * Instantiates a new hive driver.
+     *
+     * @throws LensException the lens exception
+     */
+    public MockHiveDriverBase() throws LensException {
+      customConf = new Configuration();
+      customConf.setInt("driver.max.concurrent.launched.queries", 2);
+      customConf.set(HiveDriver.QUERY_LAUNCHING_CONSTRAINT_FACTORIES_KEY,
+        "org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraintFactory");
+    }
+
+    @Override
+    public void configure(Configuration conf) throws LensException {
+      super.configure(conf);
+      queryConstraints = getImplementations(HiveDriver.QUERY_LAUNCHING_CONSTRAINT_FACTORIES_KEY, customConf);
+    }
+  }
+
+  public static class HiveDriver1 extends MockHiveDriverBase {
+
+    /**
+     * Instantiates a new hive driver.
+     *
+     * @throws LensException the lens exception
+     */
+    public HiveDriver1() throws LensException {
+
+    }
+  }
+
+  public static class HiveDriver2 extends MockHiveDriverBase {
+
+    /**
+     * Instantiates a new hive driver.
+     *
+     * @throws LensException the lens exception
+     */
+    public HiveDriver2() throws LensException {
+    }
+  }
+
+  public static class RoundRobinSelector implements DriverSelector {
+    int counter = 0;
+
+    @Override
+    public LensDriver select(AbstractQueryContext ctx, Configuration conf) {
+      final Collection<LensDriver> drivers = ctx.getDriverContext().getDriversWithValidQueryCost();
+      LensDriver driver = drivers.toArray(new LensDriver[drivers.size()])[counter];
+      counter = (counter + 1) % 2;
+      return driver;
+    }
+  }
+
+  /** The query service. */
+  QueryExecutionServiceImpl queryService;
+
+  /** The metrics svc. */
+  MetricsService metricsSvc;
+
+  /** The lens session id. */
+  LensSessionHandle lensSessionId;
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.glassfish.jersey.test.JerseyTest#setUp()
+   */
+  @BeforeTest
+  public void setUp() throws Exception {
+    super.setUp();
+    queryService = LensServices.get().getService(QueryExecutionService.NAME);
+    metricsSvc = LensServices.get().getService(MetricsService.NAME);
+    Map<String, String> sessionConf = new HashMap<>();
+    sessionConf.put("test.session.key", "svalue");
+    lensSessionId = queryService.openSession("foo@localhost", "bar", sessionConf); // @localhost should be removed
+    // automatically
+    createTable(TEST_TABLE);
+    loadData(TEST_TABLE, TestResourceFile.TEST_DATA2_FILE.getValue());
+  }
+
+  @Override
+  public HiveConf getServerConf() {
+    if (serverConf == null) {
+      serverConf = new HiveConf(super.getServerConf());
+      serverConf.set(LensConfConstants.DRIVER_CLASSES,
+        HiveDriver1.class.getName() + "," + HiveDriver2.class.getName());
+      serverConf.set("lens.server.driver.selector.class", RoundRobinSelector.class.getName());
+      LensServerConf.getConfForDrivers().addResource(serverConf);
+    }
+    return serverConf;
+  }
+
+  /*
+     * (non-Javadoc)
+     *
+     * @see org.glassfish.jersey.test.JerseyTest#tearDown()
+     */
+  @AfterTest
+  public void tearDown() throws Exception {
+    dropTable(TEST_TABLE);
+    queryService.closeSession(lensSessionId);
+    for (LensDriver driver : queryService.getDrivers()) {
+      if (driver instanceof HiveDriver) {
+        assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
+      }
+    }
+    super.tearDown();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.glassfish.jersey.test.JerseyTest#configure()
+   */
+  @Override
+  protected Application configure() {
+    enable(TestProperties.LOG_TRAFFIC);
+    enable(TestProperties.DUMP_ENTITY);
+    return new TestQueryService.QueryServiceTestApp();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.glassfish.jersey.test.JerseyTest#configureClient(org.glassfish.jersey.client.ClientConfig)
+   */
+  @Override
+  protected void configureClient(ClientConfig config) {
+    config.register(MultiPartFeature.class);
+    config.register(LensJAXBContextResolver.class);
+  }
+
+  /** The test table. */
+  public static final String TEST_TABLE = "TEST_TABLE";
+
+  /**
+   * Creates the table.
+   *
+   * @param tblName the tbl name
+   * @throws InterruptedException the interrupted exception
+   */
+  private void createTable(String tblName) throws InterruptedException {
+    LensServerTestUtil.createTable(tblName, target(), lensSessionId);
+  }
+
+  /**
+   * Load data.
+   *
+   * @param tblName      the tbl name
+   * @param testDataFile the test data file
+   * @throws InterruptedException the interrupted exception
+   */
+  private void loadData(String tblName, final String testDataFile) throws InterruptedException {
+    LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
+  }
+
+  /**
+   * Drop table.
+   *
+   * @param tblName the tbl name
+   * @throws InterruptedException the interrupted exception
+   */
+  private void dropTable(String tblName) throws InterruptedException {
+    LensServerTestUtil.dropTable(tblName, target(), lensSessionId);
+  }
+
+  @Test
+  public void testThrottling() throws InterruptedException {
+    List<QueryHandle> handles = Lists.newArrayList();
+    for (int j = 0; j < 5; j++) {
+      for (int i = 0; i < 10; i++) {
+        handles.add(launchQuery());
+        assertValidity();
+      }
+      // No harm in sleeping, the queries will anyway take time.
+      Thread.sleep(1000);
+    }
+    for (QueryHandle handle : handles) {
+      RestAPITestUtil.waitForQueryToFinish(target(), lensSessionId, handle);
+      assertValidity();
+    }
+    for (QueryHandle handle : handles) {
+      RestAPITestUtil.getLensQueryResult(target(), lensSessionId, handle);
+      assertValidity();
+    }
+  }
+
+  private void assertValidity() {
+    QueryExecutionServiceImpl.QueryCount count = queryService.getQueryCountSnapshot();
+    assertTrue(count.running <= 4, System.currentTimeMillis() + " " + count.running + " running queries: "
+      + queryService.getLaunchedQueries());
+    if (count.running == 4) {
+      assertEquals(count.queued, 0);
+    } else {
+      assertEquals(count.waiting, 0);
+    }
+  }
+
+  private QueryHandle launchQuery() {
+    return RestAPITestUtil.executeAndGetHandle(target(), Optional.of(lensSessionId),
+      Optional.of("select ID from " + TEST_TABLE),
+      Optional.of(LensServerAPITestUtil.getLensConf(QUERY_METRIC_UNIQUE_ID_CONF_KEY, UUID.randomUUID())));
+  }
+
+  @AfterMethod
+  private void waitForPurge() throws InterruptedException {
+    waitForPurge(0, queryService.finishedQueries);
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java
index ec6fd86..4ac42b2 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryEndEmailNotifier.java
@@ -18,7 +18,7 @@
  */
 package org.apache.lens.server.query;
 
-import static org.apache.lens.server.api.util.TestLensUtil.getLensConf;
+import static org.apache.lens.server.api.LensServerAPITestUtil.getLensConf;
 import static org.apache.lens.server.common.RestAPITestUtil.*;
 
 import static org.testng.Assert.assertEquals;
@@ -41,8 +41,8 @@ import org.apache.lens.api.query.QueryResult;
 import org.apache.lens.api.query.QueryStatus.Status;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.server.LensJerseyTest;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.LensServices;
-import org.apache.lens.server.LensTestUtil;
 import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.api.query.QueryExecutionService;
 import org.apache.lens.server.common.TestResourceFile;
@@ -144,7 +144,7 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void createTable(String tblName) throws InterruptedException {
-    LensTestUtil.createTable(tblName, target(), lensSessionId);
+    LensServerTestUtil.createTable(tblName, target(), lensSessionId);
   }
 
   /**
@@ -155,7 +155,7 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void loadData(String tblName, final String testDataFile) throws InterruptedException {
-    LensTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
+    LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
   }
 
   /**
@@ -165,7 +165,7 @@ public class TestQueryEndEmailNotifier extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void dropTable(String tblName) throws InterruptedException {
-    LensTestUtil.dropTable(tblName, target(), lensSessionId);
+    LensServerTestUtil.dropTable(tblName, target(), lensSessionId);
   }
 
   private QueryHandle launchAndWaitForQuery(LensConf conf, String query, Status expectedStatus)

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index c37b0ed..c8a1cc6 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -20,7 +20,9 @@ package org.apache.lens.server.query;
 
 import static javax.ws.rs.core.Response.Status.*;
 
-import static org.apache.lens.server.api.util.TestLensUtil.getLensConf;
+import static org.apache.lens.server.LensServerTestUtil.DB_WITH_JARS;
+import static org.apache.lens.server.LensServerTestUtil.DB_WITH_JARS_2;
+import static org.apache.lens.server.api.LensServerAPITestUtil.getLensConf;
 import static org.apache.lens.server.common.RestAPITestUtil.*;
 
 import static org.testng.Assert.*;
@@ -48,8 +50,8 @@ import org.apache.lens.api.result.QueryCostTO;
 import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.driver.hive.HiveDriver;
 import org.apache.lens.server.LensJerseyTest;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.LensServices;
-import org.apache.lens.server.LensTestUtil;
 import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.api.driver.LensDriver;
 import org.apache.lens.server.api.error.LensException;
@@ -183,7 +185,7 @@ public class TestQueryService extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void createTable(String tblName) throws InterruptedException {
-    LensTestUtil.createTable(tblName, target(), lensSessionId);
+    LensServerTestUtil.createTable(tblName, target(), lensSessionId);
   }
 
   /**
@@ -194,7 +196,7 @@ public class TestQueryService extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void loadData(String tblName, final String testDataFile) throws InterruptedException {
-    LensTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
+    LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId);
   }
 
   /**
@@ -204,7 +206,7 @@ public class TestQueryService extends LensJerseyTest {
    * @throws InterruptedException the interrupted exception
    */
   private void dropTable(String tblName) throws InterruptedException {
-    LensTestUtil.dropTable(tblName, target(), lensSessionId);
+    LensServerTestUtil.dropTable(tblName, target(), lensSessionId);
   }
 
   // test get a random query, should return 400
@@ -1248,23 +1250,23 @@ public class TestQueryService extends LensJerseyTest {
 
     // Open session with a DB which has static jars
     LensSessionHandle sessionHandle =
-      sessionService.openSession("foo@localhost", "bar", LensTestUtil.DB_WITH_JARS, new HashMap<String, String>());
+      sessionService.openSession("foo@localhost", "bar", DB_WITH_JARS, new HashMap<String, String>());
 
     // Add a jar in the session
     File testJarFile = new File("target/testjars/test2.jar");
     sessionService.addResourceToAllServices(sessionHandle, "jar", "file://" + testJarFile.getAbsolutePath());
 
-    log.info("@@@ Opened session " + sessionHandle.getPublicId() + " with database " + LensTestUtil.DB_WITH_JARS);
+    log.info("@@@ Opened session " + sessionHandle.getPublicId() + " with database " + DB_WITH_JARS);
     LensSessionImpl session = sessionService.getSession(sessionHandle);
 
     // Jars should be pending until query is run
-    assertEquals(session.getPendingSessionResourcesForDatabase(LensTestUtil.DB_WITH_JARS).size(), 1);
-    assertEquals(session.getPendingSessionResourcesForDatabase(LensTestUtil.DB_WITH_JARS_2).size(), 1);
+    assertEquals(session.getPendingSessionResourcesForDatabase(DB_WITH_JARS).size(), 1);
+    assertEquals(session.getPendingSessionResourcesForDatabase(DB_WITH_JARS_2).size(), 1);
 
     final String tableInDBWithJars = "testHiveDriverGetsDBJars";
     try {
       // First execute query on the session with db should load jars from DB
-      LensTestUtil.createTable(tableInDBWithJars, target(), sessionHandle, "(ID INT, IDSTR STRING) "
+      LensServerTestUtil.createTable(tableInDBWithJars, target(), sessionHandle, "(ID INT, IDSTR STRING) "
         + "ROW FORMAT SERDE \"DatabaseJarSerde\"");
 
       boolean addedToHiveDriver = false;
@@ -1272,37 +1274,36 @@ public class TestQueryService extends LensJerseyTest {
       for (LensDriver driver : queryService.getDrivers()) {
         if (driver instanceof HiveDriver) {
           addedToHiveDriver =
-            ((HiveDriver) driver).areDBResourcesAddedForSession(sessionHandle.getPublicId().toString(),
-              LensTestUtil.DB_WITH_JARS);
+            ((HiveDriver) driver).areDBResourcesAddedForSession(sessionHandle.getPublicId().toString(), DB_WITH_JARS);
         }
       }
       assertTrue(addedToHiveDriver);
 
       // Switch database
       log.info("@@@# database switch test");
-      session.setCurrentDatabase(LensTestUtil.DB_WITH_JARS_2);
-      LensTestUtil.createTable(tableInDBWithJars + "_2", target(), sessionHandle, "(ID INT, IDSTR STRING) "
+      session.setCurrentDatabase(DB_WITH_JARS_2);
+      LensServerTestUtil.createTable(tableInDBWithJars + "_2", target(), sessionHandle, "(ID INT, IDSTR STRING) "
         + "ROW FORMAT SERDE \"DatabaseJarSerde\"");
 
       // All db jars should have been added
-      assertTrue(session.getDBResources(LensTestUtil.DB_WITH_JARS_2).isEmpty());
-      assertTrue(session.getDBResources(LensTestUtil.DB_WITH_JARS).isEmpty());
+      assertTrue(session.getDBResources(DB_WITH_JARS_2).isEmpty());
+      assertTrue(session.getDBResources(DB_WITH_JARS).isEmpty());
 
       // All session resources must have been added to both DBs
       assertFalse(session.getLensSessionPersistInfo().getResources().isEmpty());
       for (LensSessionImpl.ResourceEntry resource : session.getLensSessionPersistInfo().getResources()) {
-        assertTrue(resource.isAddedToDatabase(LensTestUtil.DB_WITH_JARS_2));
-        assertTrue(resource.isAddedToDatabase(LensTestUtil.DB_WITH_JARS));
+        assertTrue(resource.isAddedToDatabase(DB_WITH_JARS_2));
+        assertTrue(resource.isAddedToDatabase(DB_WITH_JARS));
       }
 
-      assertTrue(session.getPendingSessionResourcesForDatabase(LensTestUtil.DB_WITH_JARS).isEmpty());
-      assertTrue(session.getPendingSessionResourcesForDatabase(LensTestUtil.DB_WITH_JARS_2).isEmpty());
+      assertTrue(session.getPendingSessionResourcesForDatabase(DB_WITH_JARS).isEmpty());
+      assertTrue(session.getPendingSessionResourcesForDatabase(DB_WITH_JARS_2).isEmpty());
 
     } finally {
       log.info("@@@ TEST_OVER");
       try {
-        LensTestUtil.dropTable(tableInDBWithJars, target(), sessionHandle);
-        LensTestUtil.dropTable(tableInDBWithJars + "_2", target(), sessionHandle);
+        LensServerTestUtil.dropTable(tableInDBWithJars, target(), sessionHandle);
+        LensServerTestUtil.dropTable(tableInDBWithJars + "_2", target(), sessionHandle);
       } catch (Throwable th) {
         log.error("Exception while dropping table.", th);
       }
@@ -1361,13 +1362,13 @@ public class TestQueryService extends LensJerseyTest {
     LensConf conf = new LensConf();
     conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "true");
     String tblName = "testNonSelectQueriesWithPersistResult";
-    LensTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
+    LensServerTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
     conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
-    LensTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
+    LensServerTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
     conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
-    LensTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
+    LensServerTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
     conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "false");
-    LensTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
+    LensServerTestUtil.dropTableWithConf(tblName, target(), lensSessionId, conf);
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java b/lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
index 987129c..30d1e34 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestResultFormatting.java
@@ -18,7 +18,9 @@
  */
 package org.apache.lens.server.query;
 
-import static org.testng.Assert.assertTrue;
+import static org.apache.lens.server.LensServerTestUtil.*;
+
+import static org.testng.Assert.*;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -38,17 +40,23 @@ import org.apache.lens.api.query.QueryStatus.Status;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.server.LensJerseyTest;
 import org.apache.lens.server.LensServices;
-import org.apache.lens.server.LensTestUtil;
 import org.apache.lens.server.api.LensConfConstants;
-import org.apache.lens.server.api.query.*;
+import org.apache.lens.server.api.query.InMemoryOutputFormatter;
+import org.apache.lens.server.api.query.PersistedOutputFormatter;
+import org.apache.lens.server.api.query.QueryContext;
+import org.apache.lens.server.api.query.QueryExecutionService;
 import org.apache.lens.server.common.TestResourceFile;
 
 import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
 
 import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.media.multipart.*;
-import org.testng.Assert;
-import org.testng.annotations.*;
+import org.glassfish.jersey.media.multipart.FormDataBodyPart;
+import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
+import org.glassfish.jersey.media.multipart.FormDataMultiPart;
+import org.glassfish.jersey.media.multipart.MultiPartFeature;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -75,9 +83,9 @@ public class TestResultFormatting extends LensJerseyTest {
     super.setUp();
     queryService = LensServices.get().getService(QueryExecutionService.NAME);
     lensSessionId = queryService.openSession("foo", "bar", new HashMap<String, String>());
-    LensTestUtil.createTable(testTable, target(), lensSessionId,
+    createTable(testTable, target(), lensSessionId,
       "(ID INT, IDSTR STRING, IDARR ARRAY<INT>, IDSTRARR ARRAY<STRING>)");
-    LensTestUtil.loadDataFromClasspath(testTable, TestResourceFile.TEST_DATA2_FILE.getValue(), target(), lensSessionId);
+    loadDataFromClasspath(testTable, TestResourceFile.TEST_DATA2_FILE.getValue(), target(), lensSessionId);
   }
 
   /*
@@ -87,7 +95,7 @@ public class TestResultFormatting extends LensJerseyTest {
    */
   @AfterTest
   public void tearDown() throws Exception {
-    LensTestUtil.dropTable(testTable, target(), lensSessionId);
+    dropTable(testTable, target(), lensSessionId);
     queryService.closeSession(lensSessionId);
     super.tearDown();
   }
@@ -212,7 +220,7 @@ public class TestResultFormatting extends LensJerseyTest {
       .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
         new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
 
-    Assert.assertNotNull(handle);
+    assertNotNull(handle);
 
     // Get query
     LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request()
@@ -225,7 +233,7 @@ public class TestResultFormatting extends LensJerseyTest {
       Thread.sleep(1000);
     }
 
-    Assert.assertEquals(ctx.getStatus().getStatus(), status);
+    assertEquals(ctx.getStatus().getStatus(), status);
 
     if (status.equals(QueryStatus.Status.SUCCESSFUL)) {
       QueryContext qctx = queryService.getQueryContext(handle);
@@ -239,12 +247,12 @@ public class TestResultFormatting extends LensJerseyTest {
       } else if (!isDir) {
         // isDir is true if the formatter is skipped due to result being the max size allowed
         if (qctx.isDriverPersistent()) {
-          Assert.assertTrue(qctx.getQueryOutputFormatter() instanceof PersistedOutputFormatter);
+          assertTrue(qctx.getQueryOutputFormatter() instanceof PersistedOutputFormatter);
         } else {
-          Assert.assertTrue(qctx.getQueryOutputFormatter() instanceof InMemoryOutputFormatter);
+          assertTrue(qctx.getQueryOutputFormatter() instanceof InMemoryOutputFormatter);
         }
       } else {
-        Assert.assertNull(qctx.getQueryOutputFormatter());
+        assertNull(qctx.getQueryOutputFormatter());
       }
       // fetch results
       TestQueryService.validatePersistedResult(handle, target(), lensSessionId, new String[][]{
@@ -259,7 +267,7 @@ public class TestResultFormatting extends LensJerseyTest {
       assertTrue(ctx.getDriverStartTime() > 0);
       assertTrue(ctx.getDriverFinishTime() > 0);
       assertTrue(ctx.getFinishTime() > 0);
-      Assert.assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.FAILED);
+      assertEquals(ctx.getStatus().getStatus(), QueryStatus.Status.FAILED);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/session/TestDatabaseResourceService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/session/TestDatabaseResourceService.java b/lens-server/src/test/java/org/apache/lens/server/session/TestDatabaseResourceService.java
index 28bed27..1008faf 100644
--- a/lens-server/src/test/java/org/apache/lens/server/session/TestDatabaseResourceService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/session/TestDatabaseResourceService.java
@@ -24,7 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.apache.lens.server.LensTestUtil;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.api.LensConfConstants;
 
 import org.apache.hadoop.hive.conf.HiveConf;
@@ -53,7 +53,7 @@ public class TestDatabaseResourceService {
 
   @BeforeClass
   public void setup() throws Exception {
-    LensTestUtil.createTestDatabaseResources(testDatabases, conf);
+    LensServerTestUtil.createTestDatabaseResources(testDatabases, conf);
     // Start resource service.
     conf.set(LensConfConstants.DATABASE_RESOURCE_DIR, "target/resources");
     dbResService = new DatabaseResourceService(DatabaseResourceService.NAME);

http://git-wip-us.apache.org/repos/asf/lens/blob/b71be2dc/lens-server/src/test/java/org/apache/lens/server/session/TestSessionClassLoaders.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionClassLoaders.java b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionClassLoaders.java
index 464533d..5feab71 100644
--- a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionClassLoaders.java
+++ b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionClassLoaders.java
@@ -25,7 +25,7 @@ import java.util.HashMap;
 
 import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.server.LensServerConf;
-import org.apache.lens.server.LensTestUtil;
+import org.apache.lens.server.LensServerTestUtil;
 import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.user.UserConfigLoaderFactory;
 
@@ -57,7 +57,7 @@ public class TestSessionClassLoaders {
      * test2.jar containing ClassLoaderTestClass2.class added to session via addResource
      */
     // Create test databases and tables
-    LensTestUtil.createTestDatabaseResources(new String[]{DB1}, conf);
+    LensServerTestUtil.createTestDatabaseResources(new String[]{DB1}, conf);
 
     conf.setVar(HiveConf.ConfVars.HIVE_SESSION_IMPL_CLASSNAME, LensSessionImpl.class.getName());
     conf.set(LensConfConstants.DATABASE_RESOURCE_DIR, "target/resources");