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

[37/50] [abbrv] lens git commit: LENS-224: FinishedLensQuery is not storing selectedDriver

LENS-224: FinishedLensQuery is not storing selectedDriver


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

Branch: refs/heads/current-release-line
Commit: e5b793c83f2a627d049fac7de2ceee7a730574de
Parents: 5bae273
Author: Deepak Barr <de...@gmail.com>
Authored: Mon Sep 28 19:03:15 2015 +0530
Committer: Rajat Khandelwal <ra...@gmail.com>
Committed: Mon Sep 28 19:03:15 2015 +0530

----------------------------------------------------------------------
 .../server/api/query/FinishedLensQuery.java     | 34 ++++++++++++++++++--
 .../apache/lens/server/query/LensServerDAO.java | 10 +++---
 2 files changed, 37 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/e5b793c8/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
index 7a06c44..8308198 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
@@ -19,6 +19,7 @@
 package org.apache.lens.server.api.query;
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import org.apache.lens.api.LensConf;
 import org.apache.lens.api.query.QueryHandle;
@@ -164,6 +165,13 @@ public class FinishedLensQuery {
   @Setter
   private String queryName;
 
+  /**
+   * The selected driver class name.
+   */
+  @Getter
+  @Setter
+  private String driverClass;
+
   @Getter
   private LensDriver selectedDriver;
 
@@ -195,11 +203,21 @@ public class FinishedLensQuery {
       this.queryName = ctx.getQueryName().toLowerCase();
     }
     this.selectedDriver = ctx.getSelectedDriver();
+    if (null != ctx.getSelectedDriver()) {
+      this.driverClass = ctx.getSelectedDriver().getClass().getName();
+    }
   }
 
   public QueryContext toQueryContext(Configuration conf, Collection<LensDriver> drivers) {
-    QueryContext qctx = new QueryContext(userQuery, submitter, new LensConf(), conf, drivers, null, submissionTime,
-      false);
+
+    if (null == selectedDriver && null != driverClass) {
+      selectedDriver = getDriverFromClassName(drivers);
+    }
+
+    QueryContext qctx =
+      new QueryContext(userQuery, submitter, new LensConf(), conf, drivers, selectedDriver, submissionTime,
+        false);
+
     qctx.setQueryHandle(QueryHandle.fromString(handle));
     qctx.setLaunchTime(this.startTime);
     qctx.setEndTime(getEndTime());
@@ -212,6 +230,18 @@ public class FinishedLensQuery {
     return qctx;
   }
 
+  private LensDriver getDriverFromClassName(Collection<LensDriver> drivers) {
+    Iterator<LensDriver> iterator = drivers.iterator();
+    while (iterator.hasNext()) {
+      LensDriver driver = iterator.next();
+      if (driverClass.equals(driver.getClass().getName())) {
+        //TODO : LENS-123 - Ability to load different instances of same driver class
+        return driver;
+      }
+    }
+    return null;
+  }
+
   public ImmutableSet<WaitingQueriesSelectionPolicy> getDriverSelectionPolicies() {
     return this.selectedDriver.getWaitingQuerySelectionPolicies();
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/e5b793c8/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
index 59b1221..8a2ac19 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
@@ -85,8 +85,8 @@ public class LensServerDAO {
       + "userquery varchar(10000) not null," + "submitter varchar(255) not null," + "starttime bigint, "
       + "endtime bigint," + "result varchar(255)," + "status varchar(255), " + "metadata varchar(100000), "
       + "rows int, " + "filesize bigint, " + "errormessage varchar(10000), " + "driverstarttime bigint, "
-      + "driverendtime bigint, " + "metadataclass varchar(10000), " + "queryname varchar(255), "
-      + "submissiontime bigint" + ")";
+      + "driverendtime bigint, " + "metadataclass varchar(10000), " + "driverclass varchar(10000), "
+      + "queryname varchar(255), " + "submissiontime bigint" + ")";
     try {
       QueryRunner runner = new QueryRunner(ds);
       runner.update(sql);
@@ -109,15 +109,15 @@ public class LensServerDAO {
       Connection conn = null;
       String sql = "insert into finished_queries (handle, userquery,submitter,"
         + "starttime,endtime,result,status,metadata,rows,filesize,"
-        + "errormessage,driverstarttime,driverendtime, metadataclass, queryname, submissiontime)"
-        + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+        + "errormessage,driverstarttime,driverendtime, metadataclass, driverclass, queryname, submissiontime)"
+        + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
       try {
         conn = getConnection();
         QueryRunner runner = new QueryRunner();
         runner.update(conn, sql, query.getHandle(), query.getUserQuery(), query.getSubmitter(), query.getStartTime(),
           query.getEndTime(), query.getResult(), query.getStatus(), query.getMetadata(), query.getRows(),
           query.getFileSize(), query.getErrorMessage(), query.getDriverStartTime(), query.getDriverEndTime(),
-          query.getMetadataClass(), query.getQueryName(), query.getSubmissionTime());
+          query.getMetadataClass(), query.getDriverClass(), query.getQueryName(), query.getSubmissionTime());
         conn.commit();
       } finally {
         DbUtils.closeQuietly(conn);