You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ar...@apache.org on 2017/02/06 07:49:57 UTC

[3/3] lens git commit: LENS-1380 : Revamp testcase division

LENS-1380 : Revamp testcase division


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

Branch: refs/heads/master
Commit: 97fe26d3ca0db9b383c8d86feb6bb7b00cacdc7e
Parents: 6af57fb
Author: Archana H <ar...@apache.org>
Authored: Mon Feb 6 13:16:19 2017 +0530
Committer: Archana H <ar...@apache.org>
Committed: Mon Feb 6 13:16:19 2017 +0530

----------------------------------------------------------------------
 .../regression/core/constants/DriverConfig.java |   2 -
 .../core/helpers/ScheduleResourceHelper.java    |  62 +-
 .../apache/lens/regression/util/AssertUtil.java |   1 -
 .../src/main/resources/template.lens.properties |   9 +-
 .../apache/lens/regression/ITSessionTests.java  | 163 +++++
 .../apache/lens/regression/SessionTests.java    | 163 -----
 .../client/ITDuplicateQueryTests.java           | 188 ++++++
 .../regression/client/ITKillQueryTests.java     | 361 +++++++++++
 .../lens/regression/client/ITListQueryTest.java |   7 +-
 .../regression/client/ITPreparedQueryTests.java |  13 +-
 .../lens/regression/client/ITQueryApiTests.java | 182 ++----
 .../regression/client/ITScheduleQueryTests.java | 284 ---------
 .../client/ITSessionResourceTests.java          | 401 ++++++++++++
 .../lens/regression/client/KillQueryTests.java  | 362 -----------
 .../regression/client/SessionResourceTests.java | 403 ------------
 .../regression/config/ITServerConfigTests.java  | 197 +++---
 .../regression/config/ITSessionConfigTests.java |   4 +-
 .../scheduler/ITMaxScheduledQueryTests.java     | 160 +++++
 .../scheduler/ITScheduleQueryTests.java         | 337 +++++++++++
 .../lens/regression/throttling/ITCostTests.java | 176 +-----
 .../throttling/ITQueueNumberTests.java          | 232 +++++++
 .../throttling/ITThrottlingTests.java           | 605 +++++++++++++++++++
 .../lens/regression/throttling/Throttling.java  | 604 ------------------
 23 files changed, 2680 insertions(+), 2236 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/main/java/org/apache/lens/regression/core/constants/DriverConfig.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/DriverConfig.java b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/DriverConfig.java
index cff8e91..5201272 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/DriverConfig.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/DriverConfig.java
@@ -20,7 +20,6 @@
 package org.apache.lens.regression.core.constants;
 
 import org.apache.lens.driver.jdbc.JDBCDriverConfConstants;
-import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraintFactory;
 import org.apache.lens.server.query.constraint.TotalQueryCostCeilingConstraintFactory;
 
@@ -38,7 +37,6 @@ public class DriverConfig {
       MAX_CONCURRENT_QUERIES_PER_QUEUE_KEY;
   public static final String JDBC_POOL_SIZE = JDBCDriverConfConstants.ConnectionPoolProperties.
       JDBC_POOL_MAX_SIZE.getConfigKey();
-  public static final String HIVE_CONSTRAINT_FACTORIES = LensConfConstants.QUERY_LAUNCHING_CONSTRAINT_FACTORIES_SFX;
 
 
   public static final String MAX_CONCURRENT_CONSTRAINT_FACTORY = MaxConcurrentDriverQueriesConstraintFactory

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
index f2883f0..97e1daf 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/ScheduleResourceHelper.java
@@ -28,8 +28,8 @@ import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
 import javax.xml.datatype.DatatypeConfigurationException;
 
-import org.apache.lens.api.APIResult;
 import org.apache.lens.api.ToXMLString;
+import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.api.scheduler.*;
 import org.apache.lens.regression.core.type.MapBuilder;
 import org.apache.lens.regression.util.AssertUtil;
@@ -51,8 +51,7 @@ public class ScheduleResourceHelper extends ServiceManagerHelper {
     super(envFileName);
   }
 
-
-  public String submitJob(String action, XJob job, String sessionHandleString)
+  public Response submitJobReturnResponse(String action, XJob job, String sessionHandleString)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
 
     MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
@@ -64,19 +63,27 @@ public class ScheduleResourceHelper extends ServiceManagerHelper {
     GenericEntity<JAXBElement<XJob>> entry = new GenericEntity<JAXBElement<XJob>>(xmlJob){};
     Response response = this.exec("post", SCHEDULER_JOBS_URL, servLens, null, map, MediaType.APPLICATION_XML_TYPE,
         MediaType.APPLICATION_XML, entry);
+    return  response;
+  }
+
+  public String submitJob(String action, XJob job, String session)
+    throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
+
+    Response response = submitJobReturnResponse(action, job, session);
     AssertUtil.assertSucceededResponse(response);
-    SchedulerJobHandle handle =  response.readEntity(SchedulerJobHandle.class);
-    return handle.getHandleIdString();
+    LensAPIResult<SchedulerJobHandle> handle =  response.readEntity(
+        new GenericType<LensAPIResult<SchedulerJobHandle>>(){});
+    return handle.getData().getHandleIdString();
   }
 
-  public String submitJob(XJob job, String sessionHandleString)
+  public String submitJob(XJob job, String session)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
-    return submitJob("submit", job, sessionHandleString);
+    return submitJob("SUBMIT", job, session);
   }
 
-  public String submitNScheduleJob(XJob job, String sessionHandleString)
+  public String submitNScheduleJob(XJob job, String session)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
-    return submitJob("submit_and_schedule", job, sessionHandleString);
+    return submitJob("SUBMIT_AND_SCHEDULE", job, session);
   }
 
   public XJob getXJob(String name, String query, String db, String startTime, String endTime, XFrequencyEnum frequency)
@@ -148,27 +155,28 @@ public class ScheduleResourceHelper extends ServiceManagerHelper {
     return execution;
   }
 
-  public XJob getJobDefinition(String jobHandle, String sessionId, MediaType inputMedia, String outputMedia){
+  public LensAPIResult<XJob> getJobDefinition(String jobHandle, String sessionId, MediaType inputMedia,
+      String outputMedia){
     MapBuilder map = new MapBuilder("sessionid", sessionId);
     Response response = this.exec("get", SCHEDULER_JOBS_URL + "/" + jobHandle , servLens, null, map, inputMedia,
         outputMedia);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(XJob.class);
+    return response.readEntity(new GenericType<LensAPIResult<XJob>>(){});
   }
 
-  public XJob getJobDefinition(String jobHandle, String sessionId){
+  public LensAPIResult<XJob> getJobDefinition(String jobHandle, String sessionId){
     return getJobDefinition(jobHandle, sessionId, MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML);
   }
 
-  public APIResult deleteJob(String jobHandle, String sessionId){
+  public LensAPIResult deleteJob(String jobHandle, String sessionId){
     MapBuilder map = new MapBuilder("sessionid", sessionId);
     Response response = this.exec("delete", SCHEDULER_JOBS_URL + "/" + jobHandle , servLens, null, map, null,
-        MediaType.APPLICATION_JSON);
+        MediaType.APPLICATION_XML);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(APIResult.class);
+    return response.readEntity(LensAPIResult.class);
   }
 
-  public APIResult updateJob(XJob job, String jobHandle, String sessionHandleString)
+  public LensAPIResult updateJob(XJob job, String jobHandle, String sessionHandleString)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
 
     MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
@@ -177,35 +185,35 @@ public class ScheduleResourceHelper extends ServiceManagerHelper {
     Response response = this.exec("put", SCHEDULER_JOBS_URL + "/" + jobHandle, servLens, null, map,
         MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML, ToXMLString.toString(xmlJob));
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(APIResult.class);
+    return response.readEntity(LensAPIResult.class);
   }
 
-  public APIResult updateJob(String jobHandle, String action, String sessionHandleString)
+  public LensAPIResult updateJob(String jobHandle, String action, String sessionHandleString)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
 
     MapBuilder map = new MapBuilder("sessionid", sessionHandleString, "action", action);
     Response response = this.exec("post", SCHEDULER_JOBS_URL + "/" + jobHandle, servLens, null, map);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(APIResult.class);
+    return response.readEntity(LensAPIResult.class);
   }
 
-  public SchedulerJobInfo getJobDetails(String jobHandle, String sessionHandleString){
+  public LensAPIResult<SchedulerJobInfo> getJobDetails(String jobHandle, String sessionHandleString){
 
     MapBuilder map = new MapBuilder("sessionid", sessionHandleString);
     Response response = this.exec("get", SCHEDULER_JOBS_URL + "/" + jobHandle + "/info", servLens, null, map,
         MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(SchedulerJobInfo.class);
+    return response.readEntity(new GenericType<LensAPIResult<SchedulerJobInfo>>(){});
   }
 
 
   public SchedulerJobState getJobStatus(String jobHandle, String sessionHandleString){
-    SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString);
+    SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString).getData();
     return jobInfo.getJobState();
   }
 
   public SchedulerJobState getJobStatus(String jobHandle){
-    SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString);
+    SchedulerJobInfo jobInfo = getJobDetails(jobHandle, sessionHandleString).getData();
     return jobInfo.getJobState();
   }
 
@@ -218,21 +226,21 @@ public class ScheduleResourceHelper extends ServiceManagerHelper {
     return response.readEntity(new GenericType<List<SchedulerJobInstanceInfo>>(){});
   }
 
-  public SchedulerJobInstanceInfo getInstanceDetails(String instanceHandle, String sessionId)
+  public LensAPIResult<SchedulerJobInstanceInfo> getInstanceDetails(String instanceHandle, String sessionId)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
 
     MapBuilder map = new MapBuilder("sessionid", sessionId);
     Response response = this.exec("get", SCHEDULER_INSTANCES_URL + "/" + instanceHandle , servLens, null, map);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(SchedulerJobInstanceInfo.class);
+    return response.readEntity(new GenericType<LensAPIResult<SchedulerJobInstanceInfo>>(){});
   }
 
-  public APIResult updateInstance(String instanceHandle, String action, String sessionId)
+  public LensAPIResult<Boolean> updateInstance(String instanceHandle, String action, String sessionId)
     throws JAXBException, IOException, ParseException, DatatypeConfigurationException {
 
     MapBuilder map = new MapBuilder("sessionid", sessionId, "action", action);
     Response response = this.exec("post", SCHEDULER_INSTANCES_URL + "/" + instanceHandle , servLens, null, map);
     AssertUtil.assertSucceededResponse(response);
-    return response.readEntity(APIResult.class);
+    return response.readEntity(new GenericType<LensAPIResult<Boolean>>(){});
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java b/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
index b04e420..c865bf6 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/util/AssertUtil.java
@@ -44,7 +44,6 @@ public class AssertUtil {
     Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
     APIResult result = response.readEntity(APIResult.class);
     Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertNotNull(result.getMessage());
   }
 
   public static void assertSucceededResponse(Response response) {

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/main/resources/template.lens.properties
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/resources/template.lens.properties b/lens-regression/src/main/resources/template.lens.properties
index 0df127d..a44ef28 100644
--- a/lens-regression/src/main/resources/template.lens.properties
+++ b/lens-regression/src/main/resources/template.lens.properties
@@ -18,8 +18,8 @@
 
 ######################
 
-lens.baseurl=
-lens.adminurl=
+lens.baseurl=http://localhost:9999/lensapi/
+lens.adminurl=http://localhost:9999/admin
 lens.username=
 lens.password=
 lens.server.dir=/usr/local/lens/server/
@@ -27,5 +27,8 @@ lens.client.dir=/usr/local/lens/client/
 lens.remote.host=
 lens.remote.username=
 lens.remote.password=
+lens.server.hdfsurl=hdfs://localhost:8020
+lens.server.currentDB=
+job.conf.url=http://localhost:19888/ws/v1/history/mapreduce/jobs/JOB_ID/conf
 
-######################
\ No newline at end of file
+######################

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/ITSessionTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/ITSessionTests.java b/lens-regression/src/test/java/org/apache/lens/regression/ITSessionTests.java
new file mode 100644
index 0000000..e106071
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/ITSessionTests.java
@@ -0,0 +1,163 @@
+/**
+ * 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.regression;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Response;
+
+import javax.xml.bind.JAXBException;
+
+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.regression.core.constants.DriverConfig;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.constants.SessionURL;
+import org.apache.lens.regression.core.helpers.*;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.regression.core.type.MapBuilder;
+import org.apache.lens.regression.util.Util;
+import org.apache.lens.server.api.LensConfConstants;
+import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.util.LensUtil;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+import com.jcraft.jsch.JSchException;
+
+
+public class ITSessionTests extends BaseTestClass {
+
+  private WebTarget servLens;
+  private String sessionHandleString;
+
+  private static Logger logger = Logger.getLogger(ITSessionTests.class);
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws IOException, JSchException, JAXBException, LensException {
+    servLens = ServiceManagerHelper.init();
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+    logger.info("Creating a new Session");
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+  }
+
+  @AfterMethod(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    sHelper.closeSession();
+  }
+
+
+  @Test(enabled = true)
+  public void testServerConfExposureInSession()  throws Exception {
+
+    // conf : lens-site.xml
+    MapBuilder query1 = new MapBuilder("sessionid", sessionHandleString, "key", LensConfConstants.SERVER_DB_JDBC_PASS);
+    Response response1 = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query1);
+    Assert.assertEquals(response1.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
+
+    //Driver conf : jdbc-driver.xml
+    MapBuilder query2 = new MapBuilder("sessionid", sessionHandleString, "key", "lens.driver.jdbc.db.user");
+    Response response2 = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query2);
+    Assert.assertEquals(response2.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
+  }
+
+
+  // LENS-760. Check for only running as queued is not fixed.
+  @Test(enabled = true)
+  public void testRunningQueryContinuationOnSessionClose()  throws Exception {
+
+    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "10");
+    String hiveDriverConf = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
+
+    try {
+      Util.changeConfig(map, hiveDriverConf);
+      lens.restart();
+
+      String session = sHelper.openSession("test", "test", lens.getCurrentDB());
+      List<QueryHandle> handleList = new ArrayList<QueryHandle>();
+      String sleepQuery = QueryInventory.getSleepQuery("5");
+
+      for(int i=1; i<=5; i++){
+        handleList.add((QueryHandle) qHelper.executeQuery(sleepQuery, null, session).getData());
+      }
+      qHelper.waitForQueryToRun(handleList.get(3));
+
+      List<QueryHandle> running = qHelper.getQueryHandleList(null, "RUNNING", "all", sessionHandleString);
+      sHelper.closeSession(session);
+      Assert.assertTrue(running.size() > 0);
+      logger.info("Running query count " + running.size());
+
+      for(QueryHandle handle : running){
+        LensQuery lq = qHelper.waitForCompletion(handle);
+        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+      }
+    } finally {
+      Util.changeConfig(hiveDriverConf);
+      lens.restart();
+    }
+  }
+
+  // Fails. Bug : LENS-904
+  // Check for query continuation on session close.
+  @Test(enabled = true)
+  public void testQueryContinuationOnSessionClose()  throws Exception {
+
+    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "1");
+    String hiveDriverConf = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
+
+    try {
+      Util.changeConfig(map, hiveDriverConf);
+      lens.restart();
+
+      String session = sHelper.openSession("test", "test", lens.getCurrentDB());
+      List<QueryHandle> handleList = new ArrayList<QueryHandle>();
+      String sleepQuery = QueryInventory.getSleepQuery("3");
+
+      for (int i = 1; i <= 5; i++) {
+        handleList.add((QueryHandle) qHelper.executeQuery(sleepQuery, null, session).getData());
+      }
+
+      sHelper.closeSession(session);
+
+      for (QueryHandle handle : handleList) {
+        LensQuery lq = qHelper.waitForCompletion(handle);
+        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+      }
+
+    } finally {
+      Util.changeConfig(hiveDriverConf);
+      lens.restart();
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java b/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
deleted file mode 100644
index ce727a1..0000000
--- a/lens-regression/src/test/java/org/apache/lens/regression/SessionTests.java
+++ /dev/null
@@ -1,163 +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.regression;
-
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
-
-import javax.xml.bind.JAXBException;
-
-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.regression.core.constants.DriverConfig;
-import org.apache.lens.regression.core.constants.QueryInventory;
-import org.apache.lens.regression.core.constants.SessionURL;
-import org.apache.lens.regression.core.helpers.*;
-import org.apache.lens.regression.core.testHelper.BaseTestClass;
-import org.apache.lens.regression.core.type.MapBuilder;
-import org.apache.lens.regression.util.Util;
-import org.apache.lens.server.api.LensConfConstants;
-import org.apache.lens.server.api.error.LensException;
-import org.apache.lens.server.api.util.LensUtil;
-
-import org.apache.log4j.Logger;
-
-import org.testng.Assert;
-import org.testng.annotations.*;
-
-import com.jcraft.jsch.JSchException;
-
-
-public class SessionTests extends BaseTestClass {
-
-  private WebTarget servLens;
-  private String sessionHandleString;
-
-  private static Logger logger = Logger.getLogger(SessionTests.class);
-
-  @BeforeClass(alwaysRun = true)
-  public void initialize() throws IOException, JSchException, JAXBException, LensException {
-    servLens = ServiceManagerHelper.init();
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setUp(Method method) throws Exception {
-    logger.info("Test Name: " + method.getName());
-    logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
-  }
-
-  @AfterMethod(alwaysRun = true)
-  public void closeSession() throws Exception {
-    logger.info("Closing Session");
-    sHelper.closeSession();
-  }
-
-
-  @Test(enabled = true)
-  public void testServerConfExposureInSession()  throws Exception {
-
-    // conf : lens-site.xml
-    MapBuilder query1 = new MapBuilder("sessionid", sessionHandleString, "key", LensConfConstants.SERVER_DB_JDBC_PASS);
-    Response response1 = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query1);
-    Assert.assertEquals(response1.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
-
-    //Driver conf : jdbc-driver.xml
-    MapBuilder query2 = new MapBuilder("sessionid", sessionHandleString, "key", "lens.driver.jdbc.db.user");
-    Response response2 = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query2);
-    Assert.assertEquals(response2.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
-  }
-
-
-  // LENS-760. Check for only running as queued is not fixed.
-  @Test(enabled = true)
-  public void testRunningQueryContinuationOnSessionClose()  throws Exception {
-
-    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "10");
-    String hiveDriverConf = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
-
-    try {
-      Util.changeConfig(map, hiveDriverConf);
-      lens.restart();
-
-      String session = sHelper.openSession("test", "test", lens.getCurrentDB());
-      List<QueryHandle> handleList = new ArrayList<QueryHandle>();
-      String sleepQuery = QueryInventory.getSleepQuery("5");
-
-      for(int i=1; i<=5; i++){
-        handleList.add((QueryHandle) qHelper.executeQuery(sleepQuery, null, session).getData());
-      }
-      qHelper.waitForQueryToRun(handleList.get(3));
-
-      List<QueryHandle> running = qHelper.getQueryHandleList(null, "RUNNING", "all", sessionHandleString);
-      sHelper.closeSession(session);
-      Assert.assertTrue(running.size() > 0);
-      logger.info("Running query count " + running.size());
-
-      for(QueryHandle handle : running){
-        LensQuery lq = qHelper.waitForCompletion(handle);
-        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-      }
-    } finally {
-      Util.changeConfig(hiveDriverConf);
-      lens.restart();
-    }
-  }
-
-  // Fails. Bug : LENS-904
-  // Check for query continuation on session close.
-  @Test(enabled = true)
-  public void testQueryContinuationOnSessionClose()  throws Exception {
-
-    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "1");
-    String hiveDriverConf = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
-
-    try {
-      Util.changeConfig(map, hiveDriverConf);
-      lens.restart();
-
-      String session = sHelper.openSession("test", "test", lens.getCurrentDB());
-      List<QueryHandle> handleList = new ArrayList<QueryHandle>();
-      String sleepQuery = QueryInventory.getSleepQuery("3");
-
-      for (int i = 1; i <= 5; i++) {
-        handleList.add((QueryHandle) qHelper.executeQuery(sleepQuery, null, session).getData());
-      }
-
-      sHelper.closeSession(session);
-
-      for (QueryHandle handle : handleList) {
-        LensQuery lq = qHelper.waitForCompletion(handle);
-        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-      }
-
-    } finally {
-      Util.changeConfig(hiveDriverConf);
-      lens.restart();
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITDuplicateQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITDuplicateQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITDuplicateQueryTests.java
new file mode 100644
index 0000000..c2100da
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITDuplicateQueryTests.java
@@ -0,0 +1,188 @@
+/**
+ * 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.regression.client;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.ws.rs.client.WebTarget;
+
+import org.apache.lens.api.LensConf;
+import org.apache.lens.api.query.*;
+import org.apache.lens.cube.parse.CubeQueryConfUtil;
+import org.apache.lens.regression.core.constants.DriverConfig;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.regression.util.Util;
+import org.apache.lens.server.api.util.LensUtil;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+public class ITDuplicateQueryTests extends BaseTestClass {
+
+  WebTarget servLens;
+  private String sessionHandleString;
+
+  private String hiveDriverSitePath  = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
+  private static Logger logger = Logger.getLogger(ITDuplicateQueryTests.class);
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws Exception {
+    servLens = ServiceManagerHelper.init();
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+    logger.info("Creating a new Session");
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+  }
+
+  @AfterMethod(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    sHelper.closeSession();
+  }
+
+  /* LENS-1019 : If query is repeated from user - with same query, same name, same conf on the same session
+     and earlier is still queued or running, then return the same handle.
+  */
+
+  @DataProvider(name = "query_names")
+  public Object[][] queryName() {
+    String[][] testData = {{"query-name"}, {null}};
+    return testData;
+  }
+
+  @Test(dataProvider = "query_names", enabled = true)
+  public void testRunningSameNameSessionQuery(String queryName) throws Exception {
+
+    String query = QueryInventory.getSleepQuery("10");
+    List<QueryHandle> handleList = new ArrayList<>();
+    List<PersistentQueryResult> resultList = new ArrayList<>();
+
+    for(int i=0; i<3; i++){
+      handleList.add((QueryHandle) qHelper.executeQuery(query, queryName).getData());
+    }
+
+    Assert.assertEquals(handleList.get(1).getHandleIdString(), handleList.get(0).getHandleIdString());
+    Assert.assertEquals(handleList.get(2).getHandleIdString(), handleList.get(0).getHandleIdString());
+
+    for(QueryHandle handle : handleList){
+      LensQuery lq = qHelper.waitForCompletion(handle);
+      Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+      resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
+    }
+
+    Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
+    Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
+  }
+
+  @Test(enabled = true)
+  public void testQueuedSameNameSessionQuery() throws Exception {
+
+    String query = QueryInventory.getSleepQuery("10");
+    List<QueryHandle> handleList = new ArrayList<>();
+    List<PersistentQueryResult> resultList = new ArrayList<>();
+    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "1");
+
+    try {
+      Util.changeConfig(map, hiveDriverSitePath);
+      lens.restart();
+
+      //Fire long running query so that 2nd  query is in queued state
+      qHelper.executeQuery(query, "query1").getData();
+
+      for (int i = 0; i < 3; i++) {
+        handleList.add((QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, "query1").getData());
+      }
+
+      Assert.assertEquals(handleList.get(1), handleList.get(0));
+      Assert.assertEquals(handleList.get(2), handleList.get(0));
+
+      for (QueryHandle handle : handleList) {
+        LensQuery lq = qHelper.waitForCompletion(handle);
+        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+        resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
+      }
+
+      Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
+      Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
+
+    } finally {
+      Util.changeConfig(hiveDriverSitePath);
+      lens.restart();
+    }
+  }
+
+  @Test(enabled = false)
+  public void differentQuerySameNameSession() throws Exception {
+
+    String cost5 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_5"), "5");
+    String cost3 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_3"), "3");
+
+    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(cost5, "queryName").getData();
+    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(cost3, "queryName").getData();
+
+    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
+  }
+
+  @Test(enabled = false)
+  public void differentSessionSameNameQuery() throws Exception {
+
+    String query = QueryInventory.getSleepQuery("10");
+    String session1 = sHelper.openSession("user1", "pwd1", lens.getCurrentDB());
+    String session2 = sHelper.openSession("user2", "pwd2", lens.getCurrentDB());
+    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name", session1).getData();
+    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name", session2).getData();
+    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
+  }
+
+  @Test(enabled = false)
+  public void differentNameSameSessionQuery() throws Exception {
+    String query = QueryInventory.getSleepQuery("3");
+    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name1").getData();
+    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name2").getData();
+    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
+  }
+
+  @Test(enabled = false)
+  public void differentConfSameNameSessionQuery() throws Exception {
+
+    String query = QueryInventory.getSleepQuery("5");
+    LensConf lensConf = new LensConf();
+
+    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
+    QueryHandle qhr1 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
+        lensConf).getData();
+
+    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "true");
+    QueryHandle qhr2 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
+         lensConf).getData();
+
+    Assert.assertFalse(qhr1.getHandleIdString().equals(qhr2.getHandleIdString()));
+  }
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
new file mode 100644
index 0000000..ecc0c6b
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
@@ -0,0 +1,361 @@
+/**
+ * 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.regression.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+
+import javax.ws.rs.client.WebTarget;
+
+import javax.xml.bind.JAXBException;
+
+import org.apache.lens.api.query.*;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.helpers.*;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.server.api.error.LensException;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+
+public class ITKillQueryTests extends BaseTestClass {
+
+  WebTarget servLens;
+  private String sessionHandleString;
+
+  private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp";
+  private final String localJarPath = new File("").getAbsolutePath() + "/lens-regression/target/testjars/";
+  private final String hiveUdfJar = "hiveudftest.jar";
+  private final String serverResourcePath = "/tmp/regression/resources";
+  String sleepQuery = QueryInventory.getSleepQuery("5");
+
+  private static Logger logger = Logger.getLogger(ITKillQueryTests.class);
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws IOException, JAXBException, LensException, IllegalAccessException,
+      InstantiationException {
+    servLens = ServiceManagerHelper.init();
+    logger.info("Creating a new Session");
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+
+    //TODO : Enable when udf registration per driver is fixed
+/*  HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath);
+    logger.info("Adding jar for making query to run for longer period of time");
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar);
+    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_FUNCTION).getData();*/
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+  }
+
+
+  @AfterClass(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    sHelper.closeSession();
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByHandle() throws Exception {
+
+    QueryHandle qH = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("QUERY HANDLE : " + qH);
+
+    QueryStatus queryStatus = qHelper.waitForQueryToRun(qH);
+    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQueryByQueryHandle(qH);
+
+    queryStatus = qHelper.getQueryStatus(qH);
+    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByUser() throws Exception {
+
+    String diffUser = "diff";
+    String diffPass = "diff";
+
+    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
+
+    logger.info("Adding jar for making query to run for longer period of time");
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("1st QUERY HANDLE : " + queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("2nd QUERY HANDLE : " + queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
+        newSessionHandleSring).getData();
+    logger.info("3rd QUERY HANDLE : " + queryHandle3);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    Thread.sleep(1000);
+
+    qHelper.killQuery(null, null, lens.getUserName());
+    Thread.sleep(2000);
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, diffUser);
+
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+  }
+
+  @Test(enabled = true)
+  public void killQueryOfAllUser() throws Exception {
+
+    String diffUser = "diff";
+    String diffPass = "diff";
+    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
+        newSessionHandleSring).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, "all");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killAllQueryOfUser() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery();
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByState() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    //kill Running queries
+    qHelper.killQuery(null, "RUNNING");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+    //kill Canceled query
+    qHelper.killQuery(null, "CANCELED");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+    //kill successful query
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle3);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+    qHelper.killQuery(null, "SUCCESSFUL");
+    QueryStatus queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.SUCCESSFUL);
+  }
+
+  //TODO: enable when the bug is fixed.
+
+   /* Currently doing kill query by queryName "query" will kill all the query with queryName as "*query*"
+    * Raised a JIRA for same
+    * When its Fixed Revisit this function */
+
+  @Test(enabled = false)
+  public void killQueryByQueryName() throws Exception {
+
+    String queryName1 = "queryNameFirst";
+    String queryName2 = "queryNameSecond";
+    String queryName3 = "Name";
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
+    logger.info("1st QUERY HANDLE : " + queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName2).getData();
+    logger.info("2nd QUERY HANDLE : " + queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName3).getData();
+    logger.info("3rd QUERY HANDLE : " + queryHandle3);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName3);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Cancelled");
+
+    qHelper.killQuery(queryName1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName2);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+  }
+
+  @Test(enabled = true)
+  public void killQueryByTimeRange() throws Exception {
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime1);
+    Thread.sleep(1000);
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    Thread.sleep(1000);
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime1);
+
+    Thread.sleep(1000);
+
+    String startTime2 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 2nd Query : " + startTime2);
+    Thread.sleep(1000);
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    Thread.sleep(1000);
+    String endTime2 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 2nd Query : " + endTime2);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, null, sessionHandleString, startTime1, endTime1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not CANCELED");
+
+    qHelper.killQuery(null, null, null, sessionHandleString, startTime2, endTime2);
+
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByAllFilter() throws Exception {
+
+    String queryName1 = "TestKill";
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime1);
+    Thread.sleep(1000);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
+    Thread.sleep(1000);
+
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime1);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName1, "RUNNING", lens.getUserName(), sessionHandleString, startTime1, endTime1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
index cad2937..93de982 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
@@ -52,12 +52,12 @@ public class ITListQueryTest extends BaseTestClass {
   public void initialize() throws IOException, JAXBException, LensException {
     servLens = ServiceManagerHelper.init();
     logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @BeforeMethod(alwaysRun = true)
   public void setUp(Method method) throws Exception {
     logger.info("Test Name: " + method.getName());
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @AfterMethod(alwaysRun = true)
@@ -65,12 +65,15 @@ public class ITListQueryTest extends BaseTestClass {
     logger.info("Test Name: " + method.getName());
     qHelper.killQuery(null, "QUEUED", "all");
     qHelper.killQuery(null, "RUNNING", "all");
+    if (sessionHandleString != null){
+      sHelper.closeSession();
+    }
+    sessionHandleString = null;
   }
 
   @AfterClass(alwaysRun = true)
   public void closeSession() throws Exception {
     logger.info("Closing Session");
-    sHelper.closeSession();
   }
 
   @DataProvider(name = "query-provider")

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
index fd73ba4..dc3d685 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
@@ -70,18 +70,27 @@ public class ITPreparedQueryTests extends BaseTestClass {
   public void initialize() throws IOException, JAXBException, LensException {
     servLens = ServiceManagerHelper.init();
     logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @BeforeMethod(alwaysRun = true)
   public void setUp(Method method) throws Exception {
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
     logger.info("Test Name: " + method.getName());
   }
 
+
+  @AfterMethod(alwaysRun = true)
+  public void afterMethod(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+    if (sessionHandleString != null){
+      sHelper.closeSession();
+    }
+    sessionHandleString = null;
+  }
+
   @AfterClass(alwaysRun = true)
   public void closeSession() throws Exception {
     logger.info("Closing Session");
-    sHelper.closeSession();
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
index 7b8b377..cf6f82a 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
@@ -20,9 +20,7 @@
 package org.apache.lens.regression.client;
 
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 
 import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.GenericType;
@@ -33,7 +31,6 @@ import org.apache.lens.api.LensConf;
 import org.apache.lens.api.query.*;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.cube.parse.CubeQueryConfUtil;
-import org.apache.lens.regression.core.constants.DriverConfig;
 import org.apache.lens.regression.core.constants.QueryInventory;
 import org.apache.lens.regression.core.constants.QueryURL;
 import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
@@ -56,7 +53,7 @@ public class ITQueryApiTests extends BaseTestClass {
   WebTarget servLens;
   private String sessionHandleString;
 
-  private String hiveDriverSitePath  = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
+  String lensSiteConf = lens.getServerDir() + "/conf/lens-site.xml";
   private static Logger logger = Logger.getLogger(ITQueryApiTests.class);
 
   @BeforeClass(alwaysRun = true)
@@ -262,7 +259,6 @@ public class ITQueryApiTests extends BaseTestClass {
 //    InMemoryQueryResult ResultSetJson = (InMemoryQueryResult) qHelper.getResultSetJson(queryHandle1, "0", "100");
   }
 
-
   @Test
   public void testQueryResultJsonPersistent() throws Exception {
 
@@ -398,125 +394,6 @@ public class ITQueryApiTests extends BaseTestClass {
     Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
   }
 
-  /* LENS-1019 : If query is repeated from user - with same query, same name, same conf on the same session
-     and earlier is still queued or running, then return the same handle.
-  */
-
-  @DataProvider(name = "query_names")
-  public Object[][] queryName() {
-    String[][] testData = {{"query-name"}, {null}};
-    return testData;
-  }
-
-  @Test(dataProvider = "query_names", enabled = true)
-  public void testRunningSameNameSessionQuery(String queryName) throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    List<QueryHandle> handleList = new ArrayList<>();
-    List<PersistentQueryResult> resultList = new ArrayList<>();
-
-    for(int i=0; i<3; i++){
-      handleList.add((QueryHandle) qHelper.executeQuery(query, queryName).getData());
-    }
-
-    Assert.assertEquals(handleList.get(1).getHandleIdString(), handleList.get(0).getHandleIdString());
-    Assert.assertEquals(handleList.get(2).getHandleIdString(), handleList.get(0).getHandleIdString());
-
-    for(QueryHandle handle : handleList){
-      LensQuery lq = qHelper.waitForCompletion(handle);
-      Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-      resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
-    }
-
-    Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
-    Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
-  }
-
-  @Test(enabled = true)
-  public void testQueuedSameNameSessionQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    List<QueryHandle> handleList = new ArrayList<>();
-    List<PersistentQueryResult> resultList = new ArrayList<>();
-    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "1");
-
-    try {
-      Util.changeConfig(map, hiveDriverSitePath);
-      lens.restart();
-
-      //Fire long running query so that 2nd  query is in queued state
-      qHelper.executeQuery(query, "query1").getData();
-
-      for (int i = 0; i < 3; i++) {
-        handleList.add((QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, "query1").getData());
-      }
-
-      Assert.assertEquals(handleList.get(1), handleList.get(0));
-      Assert.assertEquals(handleList.get(2), handleList.get(0));
-
-      for (QueryHandle handle : handleList) {
-        LensQuery lq = qHelper.waitForCompletion(handle);
-        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-        resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
-      }
-
-      Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
-      Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
-
-    } finally {
-      Util.changeConfig(hiveDriverSitePath);
-      lens.restart();
-    }
-  }
-
-  @Test(enabled = false)
-  public void differentQuerySameNameSession() throws Exception {
-
-    String cost5 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_5"), "5");
-    String cost3 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_3"), "3");
-
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(cost5, "queryName").getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(cost3, "queryName").getData();
-
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentSessionSameNameQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    String session1 = sHelper.openSession("user1", "pwd1", lens.getCurrentDB());
-    String session2 = sHelper.openSession("user2", "pwd2", lens.getCurrentDB());
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name", session1).getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name", session2).getData();
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentNameSameSessionQuery() throws Exception {
-    String query = QueryInventory.getSleepQuery("3");
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name1").getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name2").getData();
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentConfSameNameSessionQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("5");
-    LensConf lensConf = new LensConf();
-
-    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
-    QueryHandle qhr1 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
-        lensConf).getData();
-
-    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "true");
-    QueryHandle qhr2 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
-         lensConf).getData();
-
-    Assert.assertFalse(qhr1.getHandleIdString().equals(qhr2.getHandleIdString()));
-  }
-
   // LENS-1186
   @Test
   public void testInvalidOperation() throws Exception {
@@ -556,4 +433,61 @@ public class ITQueryApiTests extends BaseTestClass {
     });
     Assert.assertEquals(result.getErrorCode(), 2005);
   }
+
+  //LENS-1304
+  @Test(enabled = true)
+  public void testDriverQueryAfterQueryPurge() throws Exception {
+
+    try{
+      HashMap<String, String> map = LensUtil.getHashMap(LensConfConstants.PURGE_INTERVAL, "3000");
+      Util.changeConfig(map, lensSiteConf);
+      lens.restart();
+
+      QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData();
+      QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
+
+      qHelper.waitForCompletion(q1);
+      qHelper.waitForCompletion(q2);
+
+      String hiveDriverQuery = "INSERT OVERWRITE DIRECTORY \""+lens.getServerHdfsUrl()+"/tmp/lensreports/hdfsout/"
+          + q1 + "\" ROW FORMAT SERDE 'org.apache.lens.lib.query.CSVSerde' STORED AS TEXTFILE SELECT "
+          + "(sample_dim2.id), (sample_dim2.name) FROM "+lens.getCurrentDB()+".local_dim_table2 sample_dim2 WHERE "
+          + "((((sample_dim2.name) != 'first') AND ((sample_dim2.dt = 'latest'))))";
+
+      String jdbcDriverQuery = "SELECT (sample_db_dim.id), (sample_db_dim.name) FROM " + lens.getCurrentDB()
+          + ".mydb_dim_table3 sample_db_dim WHERE ((((sample_db_dim.name) != 'first')))";
+
+      //Waiting for query to get purged
+      Thread.sleep(5000);
+
+      LensQuery l1 =  qHelper.getLensQuery(sessionHandleString, q1);
+      LensQuery l2 =  qHelper.getLensQuery(sessionHandleString, q2);
+
+      Assert.assertEquals(l1.getDriverQuery().trim(), hiveDriverQuery);
+      Assert.assertEquals(l2.getDriverQuery().trim(), jdbcDriverQuery);
+
+      //TODO : assert value from DB as well.
+
+    } catch(Exception e){
+      Util.changeConfig(lensSiteConf);
+      lens.restart();
+    }
+  }
+
+  @Test
+  public void testTimeout() throws Exception {
+
+    sHelper.setAndValidateParam(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
+    sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+    sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+    String query = QueryInventory.getSleepQuery("10");
+
+    Long t1 = System.currentTimeMillis();
+    QueryHandleWithResultSet qhr1 = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(query, "80000",
+        null, sessionHandleString).getData();
+    Long t2 = System.currentTimeMillis();
+    long diff = (t2 - t1)/1000;
+    Assert.assertTrue(diff < 20); // adding 10 seconds extra buffer time
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/97fe26d3/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
deleted file mode 100644
index 4e45c4c..0000000
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
+++ /dev/null
@@ -1,284 +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.regression.client;
-
-import java.lang.reflect.Method;
-import java.util.Calendar;
-import java.util.List;
-
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-
-import org.apache.lens.api.APIResult;
-import org.apache.lens.api.scheduler.*;
-import org.apache.lens.regression.core.constants.QueryInventory;
-import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
-import org.apache.lens.regression.core.testHelper.BaseTestClass;
-import org.apache.lens.regression.util.Util;
-
-import org.apache.log4j.Logger;
-
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-
-
-public class ITScheduleQueryTests extends BaseTestClass {
-
-  WebTarget servLens;
-  private String sessionHandleString;
-
-  private static Logger logger = Logger.getLogger(ITScheduleQueryTests.class);
-  private static String format = "yyyy-MM-dd HH:mm:ss";
-  private static String currentDate = Util.getCurrentDate(format);
-
-  @BeforeClass(alwaysRun = true)
-  public void initialize() throws Exception {
-    servLens = ServiceManagerHelper.init();
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setUp(Method method) throws Exception {
-    logger.info("Test Name: " + method.getName());
-    logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
-  }
-
-  @AfterMethod(alwaysRun = true)
-  public void closeSession() throws Exception {
-    logger.info("Closing Session");
-    if (sessionHandleString != null){
-      sHelper.closeSession();
-    }
-  }
-
-
-  @Test
-  public void submitJob() throws Exception {
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 4);
-    XJob xJob = scheduleHelper.getXJob("job-submit", QueryInventory.QUERY, null, currentDate, endDate,
-        XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.NEW);
-  }
-
-  @Test
-  public void submitNScheduleQuery() throws Exception {
-
-    String startDate = Util.modifyDate(currentDate, format, Calendar.DATE, -1);
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-submit-schedule", QueryInventory.JDBC_CUBE_QUERY, null, startDate,
-        endDate, XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    SchedulerJobInfo jobInfo = scheduleHelper.getJobDetails(jobHandle, sessionHandleString);
-    Assert.assertNotNull(jobInfo);
-    Assert.assertEquals(jobInfo.getJob().getName(), "job-submit-schedule");
-  }
-
-  //submit and schedule and also get job definition
-  @Test
-  public void submitNScheduleQueryCronExp() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob xJob = scheduleHelper.getXJob("job-submit-schedule-cronExp", QueryInventory.QUERY, null, currentDate,
-        endDate, "0/30 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-
-    XJob job = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString, MediaType.APPLICATION_XML_TYPE,
-        MediaType.APPLICATION_XML);
-    Assert.assertNotNull(job);
-    Assert.assertEquals(job.getName(), "job-submit-schedule-cronExp");
-  }
-
-
-  @Test
-  public void testDeleteJob() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob xJob = scheduleHelper.getXJob("job-delete", QueryInventory.QUERY, null, currentDate, endDate,
-         "0/30 * * * * ?");
-
-    //delete in submit state
-    String jobHandle = scheduleHelper.submitJob(xJob, sessionHandleString);
-    APIResult res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in scheduled state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in suspended state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    scheduleHelper.updateJob(jobHandle, "SUSPEND", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SUSPENDED);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in expired state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.EXPIRED);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-  }
-
-  @Test
-  public void testUpdateJob() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 4);
-    XJob job = scheduleHelper.getXJob("job-update", QueryInventory.QUERY, null, currentDate, endDate,
-        XFrequencyEnum.WEEKLY);
-    String jobHandle = scheduleHelper.submitJob(job, sessionHandleString);
-
-    XJob tmp = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString);
-    tmp.setName("modified-name");
-    endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 6);
-    tmp.setEndTime(Util.getGregorianCalendar(endDate));
-    APIResult res = scheduleHelper.updateJob(tmp, jobHandle, sessionHandleString);
-    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-
-    XJob modifiedJob = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString);
-    Assert.assertEquals(modifiedJob.getName(), "modified-name");
-    String modifiedEndTime = Util.getDateStringFromGregorainCalender(modifiedJob.getEndTime(), format);
-    Assert.assertEquals(modifiedEndTime, endDate);
-  }
-
-  @Test
-  public void testUpdateJobAction() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob job = scheduleHelper.getXJob("job-update-action", QueryInventory.QUERY, null, currentDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitJob(job, sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.NEW);
-
-    scheduleHelper.updateJob(jobHandle, "SCHEDULE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    scheduleHelper.updateJob(jobHandle, "SUSPEND", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SUSPENDED);
-
-    scheduleHelper.updateJob(jobHandle, "RESUME", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.EXPIRED);
-  }
-
-  @Test
-  public void testGetAllInstancesOfAJob() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 5);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 4);
-    XJob xJob = scheduleHelper.getXJob("job-update-action", QueryInventory.QUERY, null, startDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-
-    Thread.sleep(60000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 3);
-  }
-
-
-  @Test
-  public void updateInstance() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 10);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-update-action", QueryInventory.JDBC_DIM_QUERY, null, startDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-
-    Thread.sleep(20000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-
-    Thread.sleep(10000);
-
-    APIResult res = scheduleHelper.updateInstance(instanceList.get(0).getId().getHandleIdString(),
-        "RERUN", sessionHandleString);
-    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-
-    SchedulerJobInstanceInfo instanceInfo = scheduleHelper.getInstanceDetails(instanceList.get(0).getId()
-        .getHandleIdString(), sessionHandleString);
-    List<SchedulerJobInstanceRun> runList = instanceInfo.getInstanceRunList();
-    Assert.assertEquals(runList.size(), 2);
-    Assert.assertEquals(runList.get(1).getRunId(), 2);
-  }
-
-
-  @Test(enabled = true)
-  public void restart() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 5);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 2);
-    XJob xJob = scheduleHelper.getXJob("job-restart", QueryInventory.QUERY, null, startDate, endDate, "0/20 * * * * ?");
-
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-
-    Thread.sleep(20000);
-    lens.stop();
-    Thread.sleep(20000);
-    lens.start();
-    Thread.sleep(60000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "50",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 6);
-  }
-
-  //LENS
-  @Test
-  public void testMisfiredEvents() throws Exception {
-
-    String startDate = Util.modifyDate(currentDate, format, Calendar.DATE, -2);
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-misfire", QueryInventory.JDBC_CUBE_QUERY, null, startDate,
-        endDate, XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 3);
-
-    if (jobHandle!=null){
-      scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    }
-  }
-}