lens git commit: LENS-835 : Optimizing fact subquery by removing non aggregated expression columns from group by clause

2015-10-24 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 3cd03a37a -> 1f885cd3d


LENS-835 : Optimizing fact subquery by removing non aggregated expression 
columns from group by clause


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

Branch: refs/heads/master
Commit: 1f885cd3d74310ea1cb4e2049692d53d49e5e7cc
Parents: 3cd03a3
Author: Sushil Mohanty <sushilmoha...@apache.org>
Authored: Sun Oct 25 11:27:20 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sun Oct 25 11:27:20 2015 +0530

--
 .../lens/driver/jdbc/ColumnarSQLRewriter.java   |  18 ++-
 .../driver/jdbc/TestColumnarSQLRewriter.java| 149 +--
 2 files changed, 85 insertions(+), 82 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/1f885cd3/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
--
diff --git 
a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
 
b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
index 2d81ff2..3fdb40e 100644
--- 
a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
+++ 
b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
@@ -533,15 +533,19 @@ public class ColumnarSQLRewriter implements QueryRewriter 
{
   log.debug("AST is null ");
   return;
 }
-if (node.getToken().getType() == HiveParser.DOT
-  && node.getParent().getChild(0).getType() != HiveParser.Identifier) {
-  String table = HQLParser.findNodeByPath(node, TOK_TABLE_OR_COL, 
Identifier).toString();
-  String column = node.getChild(1).toString().toLowerCase();
+if (HQLParser.isAggregateAST(node)) {
+  return;
+} else {
+  if (node.getToken().getType() == HiveParser.DOT
+  && node.getParent().getChild(0).getType() != 
HiveParser.Identifier) {
+String table = HQLParser.findNodeByPath(node, TOK_TABLE_OR_COL, 
Identifier).toString();
+String column = node.getChild(1).toString().toLowerCase();
 
-  String factAlias = getFactAlias();
+String factAlias = getFactAlias();
 
-  if (table.equals(factAlias)) {
-factKeys.add(factAlias + "." + column);
+if (table.equals(factAlias)) {
+  factKeys.add(factAlias + "." + column);
+}
   }
 }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/1f885cd3/lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestColumnarSQLRewriter.java
--
diff --git 
a/lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestColumnarSQLRewriter.java
 
b/lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestColumnarSQLRewriter.java
index 77ab302..41c3c85 100644
--- 
a/lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestColumnarSQLRewriter.java
+++ 
b/lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestColumnarSQLRewriter.java
@@ -578,32 +578,31 @@ public class TestColumnarSQLRewriter {
 + "( time_dim___time_dim . day ), ( item_dim___item_dim . item_key 
), sum(alias1) dollars_sold , "
 + "round(sum(alias2),  2 ), avg(alias3), min(alias4), max(alias5), 
 location_name  "
 + "from  (select sales_fact___fact.time_key, 
sales_fact___fact.location_key, "
-+ "sales_fact___fact.item_key, sales_fact___fact.dollars_sold,sum( 
case  "
-+ "when (( sales_fact___fact . dollars_sold ) =  0 ) then  0.0  
else "
-+ "( sales_fact___fact . dollars_sold ) end ) as alias1, "
++ "sales_fact___fact.item_key,sum( case  when (( sales_fact___fact 
. dollars_sold ) =  0 ) "
++ "then  0.0  else ( sales_fact___fact . dollars_sold ) end ) as 
alias1, "
 + "sum(( sales_fact___fact . units_sold )) as alias2, "
 + "avg(( sales_fact___fact . dollars_sold )) as alias3, "
-+ "min(( sales_fact___fact . dollars_sold )) as alias4, "
-+ "max(( sales_fact___fact . dollars_sold )) as alias5 "
-+ "from sales_fact sales_fact___fact where 
sales_fact___fact.time_key "
-+ "in  (  select time_dim .time_key from time_dim where "
-+ "( time_dim. time_key ) between  '2013-01-01'  and  '2013-01-31' 
 ) "
-+ "and sales_fact___f

lens git commit: LENS-845 : Allow regex rename arguments to passed configuration in columnar sql rewriter

2015-10-26 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master daa65a5af -> e274c2dfd


LENS-845 : Allow regex rename arguments to passed configuration in columnar sql 
rewriter


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

Branch: refs/heads/master
Commit: e274c2dfd8907a6fad012989bad63bc131dee444
Parents: daa65a5
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Mon Oct 26 18:59:11 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Oct 26 18:59:11 2015 +0530

--
 .../lens/driver/jdbc/ColumnarSQLRewriter.java   | 30 ++--
 .../driver/jdbc/JDBCDriverConfConstants.java|  1 +
 .../src/main/resources/jdbcdriver-default.xml   |  6 +++
 .../driver/jdbc/TestColumnarSQLRewriter.java| 49 +++-
 .../src/test/resources/jdbcdriver-site.xml  |  6 +++
 5 files changed, 55 insertions(+), 37 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/e274c2df/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
--
diff --git 
a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
 
b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
index c6797aa..ccb2b7f 100644
--- 
a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
+++ 
b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
@@ -176,6 +176,7 @@ public class ColumnarSQLRewriter implements QueryRewriter {
   /** The from ast. */
   @Getter
   protected ASTNode fromAST;
+  private HashMap<String, String> regexReplaceMap = new HashMap<>();
 
   /**
* Instantiates a new columnar sql rewriter.
@@ -185,6 +186,14 @@ public class ColumnarSQLRewriter implements QueryRewriter {
 
   @Override
   public void init(Configuration conf) {
+if (conf.get(JDBCDriverConfConstants.REGEX_REPLACEMENT_VALUES) != null) {
+  for (String kv : 
conf.get(JDBCDriverConfConstants.REGEX_REPLACEMENT_VALUES).split("(? imputnmatch = new LinkedHashMap<String, String>();
-imputnmatch.put("to_date", "date");
-imputnmatch.put("format_number", "format");
-imputnmatch.put("date_sub\\((.*?),\\s*([0-9]+\\s*)\\)", "date_sub($1, 
interval $2 day)");
-imputnmatch.put("date_add\\((.*?),\\s*([0-9]+\\s*)\\)", "date_add($1, 
interval $2 day)");
-
-for (Map.Entry<String, String> entry : imputnmatch.entrySet()) {
+for (Map.Entry<String, String> entry : regexReplaceMap.entrySet()) {
   query = query.replaceAll(entry.getKey(), entry.getValue());
 }
 return query;
@@ -1212,8 +1215,9 @@ public class ColumnarSQLRewriter implements QueryRewriter 
{
 reset();
 
 try {
+  String finalRewrittenQuery;
   if (query.toLowerCase().matches("(.*)union all(.*)")) {
-String finalRewrittenQuery = "";
+finalRewrittenQuery = "";
 String[] queries = query.toLowerCase().split("union all");
 for (int i = 0; i < queries.length; i++) {
   log.info("Union Query Part {} : {}", i, queries[i]);
@@ -1223,16 +1227,14 @@ public class ColumnarSQLRewriter implements 
QueryRewriter {
   finalRewrittenQuery = mergedQuery.toString().substring(0, 
mergedQuery.lastIndexOf("union all"));
   reset();
 }
-queryReplacedUdf = replaceUDFForDB(finalRewrittenQuery);
-log.info("Input Query : {}", query);
-log.info("Rewritten Query : {}", queryReplacedUdf);
   } else {
 ast = HQLParser.parseHQL(query, metastoreConf);
 buildQuery(conf, metastoreConf);
-queryReplacedUdf = replaceUDFForDB(rewrittenQuery.toString());
-log.info("Input Query : {}", query);
-log.info("Rewritten Query :  {}", queryReplacedUdf);
+finalRewrittenQuery = rewrittenQuery.toString();
   }
+  queryReplacedUdf = replaceUDFForDB(finalRewrittenQuery);
+  log.info("Input Query : {}", query);
+  log.info("Rewritten Query : {}", queryReplacedUdf);
 } catch (SemanticException e) {
   throw new LensException(e);
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/e274c2df/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriverConfConstants.java
--
diff --git 
a/lens-driver-jdbc/src/main/java/org/apache/lens/driv

lens git commit: LENS-816 : Fix ThreadSafeEstimatedQueryCollection methods not to ignore driver arguments

2015-10-14 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line 3c4056a29 -> 7fb9be456


LENS-816 : Fix ThreadSafeEstimatedQueryCollection methods not to ignore driver 
arguments


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

Branch: refs/heads/current-release-line
Commit: 7fb9be4562b5437b90d9489ea8f028a3ac960239
Parents: 3c4056a
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Thu Oct 15 05:53:25 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Oct 15 05:55:44 2015 +0530

--
 .../ThreadSafeEstimatedQueryCollection.java |  4 +-
 .../ThreadSafeEstimatedQueryCollectionTest.java | 81 
 2 files changed, 83 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7fb9be45/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 5d24379..ca24a8b 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
@@ -41,12 +41,12 @@ public class ThreadSafeEstimatedQueryCollection implements 
EstimatedQueryCollect
 
   @Override
   public synchronized Set getQueries(LensDriver driver) {
-return this.estimatedQueries.getQueries();
+return this.estimatedQueries.getQueries(driver);
   }
 
   @Override
   public synchronized int getQueriesCount(LensDriver driver) {
-return this.estimatedQueries.getQueriesCount();
+return this.estimatedQueries.getQueriesCount(driver);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lens/blob/7fb9be45/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
new file mode 100644
index 000..9138f8e
--- /dev/null
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/constraint/ThreadSafeEstimatedQueryCollectionTest.java
@@ -0,0 +1,81 @@
+/*
+ * 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.constraint;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import static org.testng.Assert.assertEquals;
+
+import org.apache.lens.server.api.driver.LensDriver;
+import org.apache.lens.server.api.query.QueryContext;
+import 
org.apache.lens.server.api.query.constraint.MaxConcurrentDriverQueriesConstraint;
+import org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint;
+import org.apache.lens.server.api.query.cost.FactPartitionBasedQueryCost;
+import org.apache.lens.server.api.query.cost.QueryCost;
+import org.apache.lens.server.query.collect.DefaultEstimatedQueryCollection;
+import org.apache.lens.server.query.collect.DefaultQueryCollection;
+import org.apache.lens.server.query.collect.ThreadSafeEstimatedQueryCollection;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class ThreadSafeEstimatedQueryCollectionTest {
+  public static final QueryCost COST = new FactPartitionBasedQueryCost(10);
+
+  @DataProvider
+  public Object[][] dpTestAllowsLaunchOfQuery() {
+return new Object[][]{{2, true}, {3, false}, {11, false}};
+  }
+
+  @Test(dataPr

lens git commit: LENS-745 : Fix dropping latest partition from timeline

2015-08-30 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 2901b4b33 - 86f251a75


LENS-745 : Fix dropping latest partition from timeline


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

Branch: refs/heads/master
Commit: 86f251a75b3a010a795f29be982ee19d9b2ba780
Parents: 2901b4b
Author: Rajat Khandelwal pro...@apache.org
Authored: Mon Aug 31 10:19:56 2015 +0530
Committer: Amareshwari Sriramadasu amareshw...@apache.org
Committed: Mon Aug 31 10:19:56 2015 +0530

--
 .../lens/cube/metadata/TimePartition.java   |   2 -
 .../apache/lens/cube/metadata/UpdatePeriod.java |  57 ++--
 .../timeline/StoreAllPartitionTimeline.java |   5 +-
 .../org/apache/lens/cube/parse/DateUtil.java|  77 --
 .../org/apache/lens/cube/parse/TimeRange.java   |   2 +-
 .../cube/metadata/TestCubeMetastoreClient.java  |  21 +--
 .../lens/cube/metadata/TestTimePartition.java   |  64 +
 .../lens/cube/metadata/UpdatePeriodTest.java|  60 
 .../timeline/TestPartitionTimelines.java| 143 +++
 .../apache/lens/cube/parse/TestDateUtil.java|   4 +-
 10 files changed, 258 insertions(+), 177 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/86f251a7/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
index 11e6ef6..d52f168 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
@@ -37,8 +37,6 @@ public class TimePartition implements 
ComparableTimePartition, Named {
 
   private TimePartition(@NonNull UpdatePeriod updatePeriod, @NonNull Date 
date) {
 this.updatePeriod = updatePeriod;
-Calendar cal = Calendar.getInstance();
-cal.setTime(date);
 this.date = updatePeriod.truncate(date);
 this.dateString = updatePeriod.format().format(this.date);
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/86f251a7/lens-cube/src/main/java/org/apache/lens/cube/metadata/UpdatePeriod.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/UpdatePeriod.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/UpdatePeriod.java
index b4dff46..6c61e94 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/UpdatePeriod.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/UpdatePeriod.java
@@ -27,22 +27,28 @@ import java.util.Calendar;
 import java.util.Comparator;
 import java.util.Date;
 
+import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.parse.DateUtil;
+import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang3.time.DateUtils;
 
+import lombok.Getter;
+
 public enum UpdatePeriod implements Named {
-  SECONDLY(SECOND, 1000, 1.4f, -MM-dd-HH-mm-ss),
-  MINUTELY(MINUTE, 60 * SECONDLY.weight(), 1.35f, -MM-dd-HH-mm),
-  HOURLY(HOUR_OF_DAY, 60 * MINUTELY.weight(), 1.3f, -MM-dd-HH),
-  DAILY(DAY_OF_MONTH, 24 * HOURLY.weight(), 1f, -MM-dd),
-  WEEKLY(WEEK_OF_YEAR, 7 * DAILY.weight(), 0.7f, -'W'ww),
-  MONTHLY(MONTH, 30 * DAILY.weight(), 0.6f, -MM),
-  QUARTERLY(MONTH, 3 * MONTHLY.weight(), 0.55f, -MM),
-  YEARLY(YEAR, 12 * MONTHLY.weight(), 0.52f, ),
-  CONTINUOUS(Calendar.SECOND, 1, 1.5f, -MM-dd-HH-mm-ss);
+  SECONDLY(second, SECOND, 1000, 1.4f, -MM-dd-HH-mm-ss),
+  MINUTELY(minute, MINUTE, 60 * SECONDLY.weight(), 1.35f, 
-MM-dd-HH-mm),
+  HOURLY(hour, HOUR_OF_DAY, 60 * MINUTELY.weight(), 1.3f, -MM-dd-HH),
+  DAILY(day, DAY_OF_MONTH, 24 * HOURLY.weight(), 1f, -MM-dd),
+  WEEKLY(week, WEEK_OF_YEAR, 7 * DAILY.weight(), 0.7f, -'W'ww),
+  MONTHLY(month, MONTH, 30 * DAILY.weight(), 0.6f, -MM),
+  QUARTERLY(quarter, MONTH, 3 * MONTHLY.weight(), 0.55f, -MM),
+  YEARLY(year, YEAR, 12 * MONTHLY.weight(), 0.52f, ),
+  CONTINUOUS(continuous, Calendar.SECOND, 1, 1.5f, -MM-dd-HH-mm-ss);
 
   public static final long MIN_INTERVAL = values()[0].weight();
+  @Getter
+  private String unitName;
   private final int calendarField;
   private final long weight;
   /**
@@ -159,7 +165,8 @@ public enum UpdatePeriod implements Named {
   private static ThreadLocalDateFormat quarterlyFormat;
   private static ThreadLocalDateFormat yearlyFormat;
 
-  UpdatePeriod(int calendarField, long diff, float normalizationFactor, String 
format) {
+  UpdatePeriod

lens git commit: LENS-392 : Look ahead timerange should not look for all finer granularity partitions to be present

2015-09-15 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4e81ef4dd -> 08135aa69


LENS-392 : Look ahead timerange should not look for all finer granularity 
partitions to be present


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

Branch: refs/heads/master
Commit: 08135aa693658aa454e55a2c1e81c9e0fa19444b
Parents: 4e81ef4
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Wed Sep 16 09:50:55 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Sep 16 09:50:55 2015 +0530

--
 .../lens/cube/metadata/FactPartition.java   | 14 ++-
 .../lens/cube/metadata/TimePartition.java   |  9 ++
 .../lens/cube/metadata/TimePartitionRange.java  |  5 +
 .../timeline/RangesPartitionTimeline.java   |  4 +-
 .../cube/parse/AbridgedTimeRangeWriter.java |  5 +-
 .../lens/cube/parse/StorageTableResolver.java   | 43 -
 .../apache/lens/cube/parse/CubeTestSetup.java   | 52 ++-
 .../lens/cube/parse/TestCubeRewriter.java   | 97 ++--
 8 files changed, 130 insertions(+), 99 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/08135aa6/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
index fc2d85b..f934ad3 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
@@ -42,6 +42,7 @@ public class FactPartition implements 
Comparable {
   @Getter
   @Setter
   private FactPartition containingPart;
+  @Getter
   private final DateFormat partFormat;
   @Getter
   @Setter
@@ -59,7 +60,18 @@ public class FactPartition implements 
Comparable {
   public FactPartition(String partCol, Date partSpec, UpdatePeriod period, 
FactPartition containingPart,
 DateFormat partFormat, Set storageTables) {
 this(partCol, partSpec, period, containingPart, partFormat);
-this.storageTables.addAll(storageTables);
+if (storageTables != null) {
+  this.storageTables.addAll(storageTables);
+}
+  }
+
+  public FactPartition(String partCol, TimePartition timePartition) {
+this(partCol, timePartition, null, null);
+  }
+
+  public FactPartition(String partCol, TimePartition timePartition, 
FactPartition containingPart, Set
+storageTables) {
+this(partCol, timePartition.getDate(), timePartition.getUpdatePeriod(), 
containingPart, null, storageTables);
   }
 
   public boolean hasContainingPart() {

http://git-wip-us.apache.org/repos/asf/lens/blob/08135aa6/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
index d52f168..0026262 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartition.java
@@ -121,6 +121,7 @@ public class TimePartition implements 
Comparable, Named {
 return rangeUpto(next());
   }
 
+
   @Override
   public String getName() {
 return getDateString();
@@ -129,4 +130,12 @@ public class TimePartition implements 
Comparable, Named {
   public TimePartitionRange emptyRange() throws LensException {
 return this.rangeUpto(this);
   }
+
+  public static TimePartition max(TimePartition p1, TimePartition p2) {
+return p1.compareTo(p2) >= 0 ? p1 : p2;
+  }
+
+  public static TimePartition min(TimePartition p1, TimePartition p2) {
+return p1.compareTo(p2) < 0 ? p1 : p2;
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/08135aa6/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java
index f5f8d4c..01069a5 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.cube.metadata;
 
+import java.util.Date;
 import java.util.Iterator;
 
 import org.apache.lens.cube.parse.DateUtil;
@@ -33,6 +34,10 @@ public cla

[1/2] lens git commit: LENS-742 : Adds query feature : Saved query and parameterization

2015-09-15 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4addd7b62 -> 4e81ef4dd


http://git-wip-us.apache.org/repos/asf/lens/blob/4e81ef4d/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
new file mode 100644
index 000..9dfde0d
--- /dev/null
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
@@ -0,0 +1,483 @@
+/**
+ * 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.save;
+
+import java.io.IOException;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import javax.ws.rs.core.MultivaluedMap;
+
+import org.apache.lens.api.query.save.ListResponse;
+import org.apache.lens.api.query.save.Parameter;
+import org.apache.lens.api.query.save.SavedQuery;
+import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.query.save.exception.SavedQueryNotFound;
+
+import org.apache.commons.dbutils.QueryRunner;
+import org.apache.commons.dbutils.ResultSetHandler;
+import org.apache.commons.lang3.StringEscapeUtils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+public class SavedQueryDao {
+
+  private static final ObjectMapper MAPPER = new ObjectMapper();
+  private static final String VALUE_ALIAS = "value_alias";
+  private static final String SAVED_QUERY_TABLE_NAME = "saved_query";
+  private static final String ID_COL_NAME = "id";
+  private static final String NAME_COL_NAME = "name";
+  private static final String DESCRIPTION_COL_NAME = "description";
+  private static final String QUERY_COL_NAME = "query";
+  private static final String PARAMS_COL_NAME = "params_json";
+  private static final String CREATED_AT_COL_NAME = "created_at";
+  private static final String UPDATED_AT_COL_NAME = "updated_at";
+
+  private final QueryRunner runner;
+  private final Dialect dialect;
+
+  SavedQueryDao(String dialectClass, QueryRunner runner)
+throws LensException {
+try {
+  this.runner = runner;
+  this.dialect = (Dialect) Class.forName(dialectClass).newInstance();
+  createSavedQueryTableIfNotExists();
+} catch (Exception e) {
+  throw new LensException("Error initializing saved query dao", e);
+}
+  }
+
+  /**
+   * Creates the saved query table
+   *
+   * @throws LensException
+   */
+  public void createSavedQueryTableIfNotExists() throws LensException {
+try {
+  runner.update(dialect.getCreateTableSyntax());
+} catch (SQLException e) {
+  throw new LensException("Cannot create saved query table!", e);
+}
+  }
+
+  /**
+   * Saves the query passed
+   *
+   * @param savedQuery
+   * @return
+   * @throws LensException
+   */
+  public long saveQuery(SavedQuery savedQuery) throws LensException {
+try {
+  final ECMAEscapedSavedQuery ecmaEscaped = 
ECMAEscapedSavedQuery.getFor(savedQuery);
+  runner.update(
+"insert into " + SAVED_QUERY_TABLE_NAME + " values (" + 
dialect.getAutoIncrementId(runner) + ", "
+  + "'" + ecmaEscaped.getName() + "'"
+  + ", "
+  + "'" + ecmaEscaped.getDescription() + "'"
+  + ","
+  + "'" + ecmaEscaped.getQuery() + "'"
+  + ","
+  + "'" + ecmaEscaped.getParameters() + "'"
+  + ","
+  + "now()"
+  + ","
+  + "now()"
+  + ")"
+  );
+  return dialect.getLastInsertedID(runner);
+} catch (SQLException e) {
+  throw new LensException("Save query failed !", e);
+}
+  }
+
+  /**
+   * Updates the saved query id with new payload
+   *
+   * @param id
+   * @param savedQuery
+   * @throws LensException
+   */
+  public 

[2/2] lens git commit: LENS-742 : Adds query feature : Saved query and parameterization

2015-09-15 Thread amareshwari
LENS-742 : Adds query feature : Saved query and parameterization


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

Branch: refs/heads/master
Commit: 4e81ef4ddfef2d8c89c48576e474c2094cbbc56b
Parents: 4addd7b
Author: Amruth S <amruthkesa...@gmail.com>
Authored: Tue Sep 15 18:05:20 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Sep 15 18:05:20 2015 +0530

--
 .../lens/api/error/LensCommonErrorCode.java |  10 +-
 .../lens/api/query/save/ListResponse.java   |  51 ++
 .../apache/lens/api/query/save/Parameter.java   |  80 +++
 .../api/query/save/ParameterCollectionType.java |  40 ++
 .../lens/api/query/save/ParameterDataType.java  |  48 ++
 .../api/query/save/ParameterParserResponse.java |  50 ++
 .../query/save/ResourceModifiedResponse.java|  70 +++
 .../apache/lens/api/query/save/SavedQuery.java  |  70 +++
 lens-api/src/main/resources/lens-errors.conf|  27 ++
 .../lens/server/api/LensConfConstants.java  |  16 +
 .../server/api/query/save/SavedQueryHelper.java |  93 
 .../api/query/save/SavedQueryService.java   |  94 
 .../exception/MissingParameterException.java|  46 ++
 .../exception/ParameterCollectionException.java |  53 ++
 .../save/exception/ParameterValueException.java |  51 ++
 .../save/exception/PrivilegeException.java  |  51 ++
 .../save/exception/SavedQueryNotFound.java  |  45 ++
 .../save/exception/ValueEncodeException.java|  49 ++
 .../param/ParameterCollectionTypeEncoder.java   |  70 +++
 .../save/param/ParameterDataTypeEncoder.java|  91 
 .../api/query/save/param/ParameterParser.java   | 135 ++
 .../api/query/save/param/ParameterResolver.java | 126 +
 .../api/query/save/TestParameterParser.java |  79 +++
 .../api/query/save/TestParameterResolution.java | 176 +++
 lens-server/enunciate.xml   |   1 +
 .../lens/server/query/save/SavedQueryApp.java   |  48 ++
 .../lens/server/query/save/SavedQueryDao.java   | 483 +++
 .../server/query/save/SavedQueryResource.java   | 307 
 .../query/save/SavedQueryServiceImpl.java   | 141 ++
 .../apache/lens/server/util/UtilityMethods.java |  19 +-
 .../src/main/resources/lensserver-default.xml   |  33 +-
 .../query/save/TestSavedQueryService.java   | 274 +++
 lens-server/src/test/resources/lens-site.xml|  22 +-
 src/site/apt/admin/config.apt   |  92 ++--
 src/site/apt/user/index.apt |  23 +
 35 files changed, 3017 insertions(+), 47 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4e81ef4d/lens-api/src/main/java/org/apache/lens/api/error/LensCommonErrorCode.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/error/LensCommonErrorCode.java 
b/lens-api/src/main/java/org/apache/lens/api/error/LensCommonErrorCode.java
index 754e6e1..9c5eaf5 100644
--- a/lens-api/src/main/java/org/apache/lens/api/error/LensCommonErrorCode.java
+++ b/lens-api/src/main/java/org/apache/lens/api/error/LensCommonErrorCode.java
@@ -26,7 +26,15 @@ public enum LensCommonErrorCode {
 
   INTERNAL_SERVER_ERROR(1001),
 
-  INVALID_XML_ERROR(1002);
+  INVALID_XML_ERROR(1002),
+
+  RESOURCE_NOT_FOUND(1003),
+
+  NOT_AUTHORIZED(1004),
+
+  MISSING_PARAMETERS(1005),
+
+  INVALID_PARAMETER_VALUE(1006);
 
   public int getValue() {
 return this.errorCode;

http://git-wip-us.apache.org/repos/asf/lens/blob/4e81ef4d/lens-api/src/main/java/org/apache/lens/api/query/save/ListResponse.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/query/save/ListResponse.java 
b/lens-api/src/main/java/org/apache/lens/api/query/save/ListResponse.java
new file mode 100644
index 000..e707642
--- /dev/null
+++ b/lens-api/src/main/java/org/apache/lens/api/query/save/ListResponse.java
@@ -0,0 +1,51 @@
+/**
+ * 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

lens git commit: LENS-891 : Fix Weekly covering info for last Sunday of year and first Sunday of next year

2015-12-09 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b3b7e5f4d -> b63e06c0c


LENS-891 : Fix Weekly covering info for last Sunday of year and first Sunday of 
next year


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

Branch: refs/heads/master
Commit: b63e06c0cdec67ffb6dc5f14d89f7d10091ef2d5
Parents: b3b7e5f
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Thu Dec 10 11:06:52 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Dec 10 11:06:52 2015 +0530

--
 .../src/main/java/org/apache/lens/cube/parse/DateUtil.java  | 9 +
 .../test/java/org/apache/lens/cube/parse/TestDateUtil.java  | 4 
 2 files changed, 5 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b63e06c0/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
index 5e17eac..cd05c68 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
@@ -343,20 +343,13 @@ public final class DateUtil {
 
 Calendar cal = Calendar.getInstance();
 cal.setTime(from);
-int fromWeek = cal.get(Calendar.WEEK_OF_YEAR);
 int fromDay = cal.get(Calendar.DAY_OF_WEEK);
-int fromYear = cal.get(YEAR);
-
-cal.clear();
-cal.set(YEAR, fromYear);
-cal.set(Calendar.WEEK_OF_YEAR, fromWeek);
 cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
-int maxDayInWeek = cal.getActualMaximum(Calendar.DAY_OF_WEEK);
 Date fromWeekStartDate = cal.getTime();
 boolean coverable = dayDiff % 7 == 0;
 if (fromWeekStartDate.before(from)) {
   // Count from the start of next week
-  dayDiff -= (maxDayInWeek - (fromDay - Calendar.SUNDAY));
+  dayDiff -= (cal.getActualMaximum(Calendar.DAY_OF_WEEK) - (fromDay - 
Calendar.SUNDAY));
   coverable = false;
 }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b63e06c0/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDateUtil.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDateUtil.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDateUtil.java
index ab88fbe..ff9a96d 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDateUtil.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDateUtil.java
@@ -76,6 +76,7 @@ public class TestDateUtil {
 }
   }
 
+
   @Test
   public void testMonthsBetween() throws Exception {
 int i = 0;
@@ -194,6 +195,9 @@ public class TestDateUtil {
 
 weeks = getWeeklyCoveringInfo(DATE_FMT.parse("2013-May-26"), 
DATE_FMT.parse("2013-Jun-10"));
 assertEquals(weeks, new CoveringInfo(2, false), "2013-May-26 to 
2013-Jun-10");
+
+weeks = getWeeklyCoveringInfo(DATE_FMT.parse("2015-Dec-27"), 
DATE_FMT.parse("2016-Jan-03"));
+assertEquals(weeks, new CoveringInfo(1, true), "2015-Dec-27 to 
2016-Jan-03");
   }
 
   @Test



lens git commit: LENS-888 : Fix limit of 4000 on total string length of dim attribute names of derived cube

2015-12-09 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b63e06c0c -> 22e202208


LENS-888 : Fix limit of 4000 on total string length of dim attribute names of 
derived cube


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

Branch: refs/heads/master
Commit: 22e202208cf6e7f216321f53a5cdc2cbdc113801
Parents: b63e06c
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Thu Dec 10 11:10:08 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Dec 10 11:10:08 2015 +0530

--
 .../apache/lens/cube/metadata/DerivedCube.java  | 27 +++
 .../lens/cube/metadata/MetastoreUtil.java   | 16 ++-
 .../cube/metadata/TestCubeMetastoreClient.java  | 28 +---
 3 files changed, 56 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/22e20220/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
index 3c30f78..681aa7b 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
@@ -137,16 +137,23 @@ public class DerivedCube extends AbstractCubeTable 
implements CubeInterface {
   @Override
   public void addProperties() {
 super.addProperties();
-getProperties().put(MetastoreUtil.getCubeMeasureListKey(getName()), 
StringUtils.join(measures, ",").toLowerCase());
-getProperties().put(MetastoreUtil.getCubeDimensionListKey(getName()),
-  StringUtils.join(dimensions, ",").toLowerCase());
+updateMeasureProperties();
+updateDimAttributeProperties();
 getProperties().put(MetastoreUtil.getParentCubeNameKey(getName()), 
parent.getName().toLowerCase());
 getProperties().put(MetastoreUtil.getParentCubeNameKey(getName()), 
parent.getName().toLowerCase());
   }
+  public void updateDimAttributeProperties() {
+MetastoreUtil.addNameStrings(getProperties(), 
MetastoreUtil.getCubeDimensionListKey(getName()),
+  MetastoreUtil.getNamedSetFromStringSet(dimensions));
+  }
+  public void updateMeasureProperties() {
+MetastoreUtil.addNameStrings(getProperties(), 
MetastoreUtil.getCubeMeasureListKey(getName()),
+  MetastoreUtil.getNamedSetFromStringSet(measures));
+  }
 
   public static Set getMeasures(String name, Map<String, String> 
props) {
 Set measures = new HashSet();
-String measureStr = props.get(MetastoreUtil.getCubeMeasureListKey(name));
+String measureStr = MetastoreUtil.getNamedStringValue(props, 
MetastoreUtil.getCubeMeasureListKey(name));
 measures.addAll(Arrays.asList(StringUtils.split(measureStr, ',')));
 return measures;
   }
@@ -164,7 +171,7 @@ public class DerivedCube extends AbstractCubeTable 
implements CubeInterface {
 
   public static Set getDimensions(String name, Map<String, String> 
props) {
 Set dimensions = new HashSet();
-String dimStr = props.get(MetastoreUtil.getCubeDimensionListKey(name));
+String dimStr = MetastoreUtil.getNamedStringValue(props, 
MetastoreUtil.getCubeDimensionListKey(name));
 dimensions.addAll(Arrays.asList(StringUtils.split(dimStr, ',')));
 return dimensions;
   }
@@ -234,7 +241,7 @@ public class DerivedCube extends AbstractCubeTable 
implements CubeInterface {
*/
   public void addMeasure(String measure) throws HiveException {
 measures.add(measure.toLowerCase());
-getProperties().put(MetastoreUtil.getCubeMeasureListKey(getName()), 
StringUtils.join(measures, ",").toLowerCase());
+updateMeasureProperties();
   }
 
   /**
@@ -245,8 +252,7 @@ public class DerivedCube extends AbstractCubeTable 
implements CubeInterface {
*/
   public void addDimension(String dimension) throws HiveException {
 dimensions.add(dimension.toLowerCase());
-getProperties().put(MetastoreUtil.getCubeDimensionListKey(getName()),
-  StringUtils.join(dimensions, ",").toLowerCase());
+updateDimAttributeProperties();
   }
 
   /**
@@ -256,8 +262,7 @@ public class DerivedCube extends AbstractCubeTable 
implements CubeInterface {
*/
   public void removeDimension(String dimName) {
 dimensions.remove(dimName.toLowerCase());
-getProperties().put(MetastoreUtil.getCubeDimensionListKey(getName()),
-  StringUtils.join(dimensions, ",").toLowerCase());
+updateDimAttributeProperties();
   }
 
   /**
@@ -267,7 +272,7 @@ public class DerivedCub

lens git commit: LENS-851 : Replace columns with aliases in where clause of the inner query

2015-12-12 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master ff891e2cf -> bf4c0bec0


LENS-851 : Replace columns with aliases in where clause of the inner query


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

Branch: refs/heads/master
Commit: bf4c0bec023307417de75f4c13ed1c344fc1f06e
Parents: ff891e2
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Sat Dec 12 15:30:23 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Dec 12 15:30:23 2015 +0530

--
 lens-api/src/main/resources/lens-errors.conf| 25 +--
 .../lens/cube/error/LensCubeErrorCode.java  |  6 +-
 .../apache/lens/cube/metadata/ExprColumn.java   | 60 ++---
 .../lens/cube/metadata/MetastoreUtil.java   | 16 +
 .../apache/lens/cube/parse/CandidateFact.java   |  8 +--
 .../apache/lens/cube/parse/GroupbyResolver.java | 15 +
 .../org/apache/lens/cube/parse/HQLParser.java   | 11 +++-
 .../lens/cube/parse/SingleFactHQLContext.java   |  8 +--
 .../parse/SingleFactMultiStorageHQLContext.java | 68 +++-
 .../apache/lens/cube/parse/UnionHQLContext.java |  2 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 10 +--
 .../lens/cube/metadata/TestExprColumn.java  | 20 +++---
 .../apache/lens/cube/parse/CubeTestSetup.java   |  2 +-
 .../lens/cube/parse/TestCubeRewriter.java   |  4 +-
 .../apache/lens/server/metastore/JAXBUtils.java |  8 +--
 15 files changed, 161 insertions(+), 102 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-api/src/main/resources/lens-errors.conf
--
diff --git a/lens-api/src/main/resources/lens-errors.conf 
b/lens-api/src/main/resources/lens-errors.conf
index ca8562f..c880543 100644
--- a/lens-api/src/main/resources/lens-errors.conf
+++ b/lens-api/src/main/resources/lens-errors.conf
@@ -284,9 +284,15 @@ lensCubeErrorsForQuery = [
   }
 
   {
-  errorCode = 3031
-  httpStatusCode = ${BAD_REQUEST}
-  errorMsg = "The query is answerable from two storages but union is 
disabled."
+errorCode = 3031
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "The query is answerable from two storages but union is 
disabled."
+  }
+
+  {
+errorCode = 3032
+httpStatusCode = ${INTERNAL_SERVER_ERROR}
+errorMsg = "Could not parse expression %s"
   }
 ]
 
@@ -298,10 +304,17 @@ lensCubeErrorsForMetastore = [
   }
 
   {
-  errorCode = 3102
-  httpStatusCode = ${BAD_REQUEST}
-  errorMsg = "No timeline found for fact=%s, storage=%s, update period=%s, 
partition column=%s."
+errorCode = 3102
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "No timeline found for fact=%s, storage=%s, update period=%s, 
partition column=%s."
   }
+
+  {
+errorCode = 3103
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "The Expression %s is Not Parsable."
+  }
+
 ]
 
 lensCubeErrors = ${lensCubeErrorsForQuery}${lensCubeErrorsForMetastore}

http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java 
b/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
index 6c5dc2f..68cd80b 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/error/LensCubeErrorCode.java
@@ -54,10 +54,12 @@ public enum LensCubeErrorCode {
   NO_CANDIDATE_FACT_AVAILABLE(3028, 1200),
   NO_CANDIDATE_DIM_STORAGE_TABLES(3029, 1300),
   NO_STORAGE_TABLE_AVAIABLE(3030, 1400),
-  STORAGE_UNION_DISABLED(3031, 100),
+  STORAGE_UNION_DISABLED(3031, 1500),
+  COULD_NOT_PARSE_EXPRESSION(3032, 1500),
   // Error codes greater than 3100 are errors while doing a metastore 
operation.
   ERROR_IN_ENTITY_DEFINITION(3101, 100),
-  TIMELINE_ABSENT(3102, 100);
+  TIMELINE_ABSENT(3102, 100),
+  EXPRESSION_NOT_PARSABLE(3103, 1500);
 
   public LensErrorInfo getLensErrorInfo() {
 return this.errorInfo;

http://git-wip-us.apache.org/repos/asf/lens/blob/bf4c0bec/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java
index b418517..da87e31 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/

lens git commit: LENS-890 : Adds per-queue and per-priority driver max launched queries constraints

2015-12-15 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 73f92430c -> 4d3d2f82f


LENS-890 : Adds per-queue and per-priority driver max launched queries 
constraints


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

Branch: refs/heads/master
Commit: 4d3d2f82fb93ee4d5c52dc3b4910573953094c0a
Parents: 73f9243
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Tue Dec 15 18:45:08 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Dec 15 18:45:08 2015 +0530

--
 .../org/apache/lens/api/util/CommonUtils.java   |  27 ++-
 .../FactPartitionBasedQueryCostCalculator.java  |   8 +-
 .../org/apache/lens/driver/hive/HiveDriver.java |  68 +++---
 .../apache/lens/driver/hive/TestHiveDriver.java | 233 ---
 .../src/test/resources/priority_tests.data  |   1 +
 .../server/api/driver/AbstractLensDriver.java   |  13 +-
 .../lens/server/api/driver/LensDriver.java  |  13 +-
 .../server/api/query/AbstractQueryContext.java  |   9 +-
 .../lens/server/api/query/QueryContext.java |  12 +-
 .../MaxConcurrentDriverQueriesConstraint.java   |  54 -
 ...oncurrentDriverQueriesConstraintFactory.java |  49 +++-
 .../api/query/TestAbstractQueryContext.java |   4 +-
 ...axConcurrentDriverQueriesConstraintTest.java | 181 +-
 .../server/query/QueryExecutionServiceImpl.java |   1 +
 .../ThreadSafeEstimatedQueryCollectionTest.java |   3 +-
 15 files changed, 527 insertions(+), 149 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java 
b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
index 38d58c7..119c924 100644
--- a/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
+++ b/lens-api/src/main/java/org/apache/lens/api/util/CommonUtils.java
@@ -27,6 +27,25 @@ public class CommonUtils {
 
   }
 
+  public interface EntryParser<K, V> {
+K parseKey(String str);
+
+V parseValue(String str);
+  }
+
+  private static EntryParser<String, String> defaultEntryParser = new 
EntryParser<String, String>() {
+@Override
+public String parseKey(String str) {
+  return str;
+}
+
+@Override
+public String parseValue(String str) {
+  return str;
+}
+  };
+
+
   /**
* Splits given String str around non-escaped commas. Then parses each of 
the split element
* as map entries in the format `key=value`. Constructs a map of such 
entries.
@@ -36,7 +55,11 @@ public class CommonUtils {
* @return parsed map
*/
   public static Map<String, String> parseMapFromString(String str) {
-Map<String, String> map = new HashMap<>();
+return parseMapFromString(str, defaultEntryParser);
+  }
+
+  public static <K, V> Map<K, V> parseMapFromString(String str, EntryParser<K, 
V> parser) {
+Map<K, V> map = new HashMap<>();
 if (str != null) {
   for (String kv : str.split("(? 1) {
 value = kvArray[1].replaceAll(",", ",").trim();
   }
-  map.put(key, value);
+  map.put(parser.parseKey(key), parser.parseValue(value));
 }
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/4d3d2f82/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
index d56e1c7..9fecdbc 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/query/cost/FactPartitionBasedQueryCostCalculator.java
@@ -47,8 +47,11 @@ public class FactPartitionBasedQueryCostCalculator 
implements QueryCostCalculato
*/
 
   @SuppressWarnings("unchecked") // required for (Set) casting
-  private double getTotalPartitionCost(final AbstractQueryContext 
queryContext, LensDriver driver)
+  private Double getTotalPartitionCost(final AbstractQueryContext 
queryContext, LensDriver driver)
 throws LensException {
+if (queryContext.getDriverRewriterPlan(driver) == null) {
+  return null;
+}
 double cost = 0;
 for (Map.Entry<String, Set> entry : getAllPartiti

lens git commit: LENS-879 : Adds Base framework for scheduler

2015-12-10 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 0e4c18cb9 -> 7e9e47ea6


LENS-879 : Adds Base framework for scheduler


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

Branch: refs/heads/master
Commit: 7e9e47ea66109470327607fafb26045080fc969d
Parents: 0e4c18c
Author: Ajay Yadava <ajayyad...@apache.org>
Authored: Thu Dec 10 16:28:40 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Dec 10 16:28:40 2015 +0530

--
 .../lens/api/query/SchedulerJobHandle.java  |  82 ++
 .../apache/lens/api/query/SchedulerJobInfo.java |  68 +
 .../api/query/SchedulerJobInstanceHandle.java   |  86 ++
 .../api/query/SchedulerJobInstanceInfo.java |  84 ++
 .../src/main/resources/scheduler-job-0.1.xsd| 283 +++
 .../src/main/resources/example-job.xml  |  55 
 .../api/scheduler/QuerySchedulerService.java|  26 --
 .../server/api/scheduler/SchedulerJobStats.java |  29 ++
 .../server/api/scheduler/SchedulerService.java  | 238 
 .../lens/server/metrics/MetricsServiceImpl.java |   4 +-
 .../scheduler/QuerySchedulerServiceImpl.java|  55 
 .../server/scheduler/SchedulerServiceImpl.java  | 200 +
 .../src/main/resources/lensserver-default.xml   |   2 +-
 .../server/healthcheck/TestHealthChecks.java|   4 +-
 pom.xml |   2 +-
 src/site/apt/admin/config.apt   |   2 +-
 16 files changed, 1132 insertions(+), 88 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/7e9e47ea/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobHandle.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobHandle.java 
b/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobHandle.java
new file mode 100644
index 000..aa4dc13
--- /dev/null
+++ b/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobHandle.java
@@ -0,0 +1,82 @@
+/**
+ * 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.api.query;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.commons.lang.StringUtils;
+
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+/**
+ * Handle for SchedulerJob.
+ */
+@XmlRootElement
+@AllArgsConstructor
+@NoArgsConstructor(access = AccessLevel.PROTECTED)
+@EqualsAndHashCode(callSuper = false)
+public class SchedulerJobHandle implements Serializable {
+
+  /**
+   * The Constant serialVersionUID.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * The handle id.
+   */
+  @XmlElement
+  @Getter
+  private UUID handleId;
+
+  /**
+   * From string.
+   *
+   * @param handle the handle for scheduler job
+   * @return the handle for
+   */
+  public static SchedulerJobHandle fromString(String handle) {
+return new SchedulerJobHandle(UUID.fromString(handle));
+  }
+
+  public String getHandleIdString() {
+if (handleId == null) {
+  return StringUtils.EMPTY;
+}
+return handleId.toString();
+  }
+
+  /**
+   * String representation of the SchedulerJobHandle.
+   * @return string representation of the handleId
+   */
+  @Override
+  public String toString() {
+return getHandleIdString();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/7e9e47ea/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobInfo.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/query/SchedulerJobInfo.java 
b/lens-api/src/main/java/org/apache/lens/api/query/Schedul

lens git commit: LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query

2016-01-08 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master d5e923e25 -> 1b475f2ea


LENS-851 : Fix aliasing for non-aggregate functions in multi fact union query


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

Branch: refs/heads/master
Commit: 1b475f2ea67a275b22248f677a08d5caec7f959a
Parents: d5e923e
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Jan 8 14:53:17 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Jan 8 14:53:17 2016 +0530

--
 .../java/org/apache/lens/cube/parse/HQLParser.java   | 15 +++
 .../cube/parse/SingleFactMultiStorageHQLContext.java |  2 +-
 .../org/apache/lens/cube/parse/TestCubeRewriter.java | 15 +++
 3 files changed, 31 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
index 6c3d4c3..bfb65c7 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
@@ -732,6 +732,21 @@ public final class HQLParser {
 return false;
   }
 
+  public static boolean isNonAggregateFunctionAST(ASTNode node) {
+int exprTokenType = node.getToken().getType();
+if (exprTokenType == HiveParser.TOK_FUNCTION || exprTokenType == 
HiveParser.TOK_FUNCTIONDI
+  || exprTokenType == HiveParser.TOK_FUNCTIONSTAR) {
+  assert (node.getChildCount() != 0);
+  if (node.getChild(0).getType() == HiveParser.Identifier) {
+String functionName = 
BaseSemanticAnalyzer.unescapeIdentifier(node.getChild(0).getText());
+if (FunctionRegistry.getGenericUDAFResolver(functionName) == null) {
+  return true;
+}
+  }
+}
+return false;
+  }
+
   /**
* @param node an ASTNode
* @return true when input node is a SELECT AST Node. Otherwise, false.

http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
index e531e6b..ac56328 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/SingleFactMultiStorageHQLContext.java
@@ -185,7 +185,7 @@ public class SingleFactMultiStorageHQLContext extends 
UnionHQLContext {
   outerAST.addChild(dotAST);
   innerToOuterASTs.put(new HashableASTNode(innerSelectASTWithoutAlias), 
outerAST);
   return outerAST;
-} else if (isTableColumnAST(astNode)) {
+} else if (isTableColumnAST(astNode) || 
isNonAggregateFunctionAST(astNode)) {
   if (innerToOuterASTs.containsKey(new HashableASTNode(astNode))) {
 return innerToOuterASTs.get(new HashableASTNode(astNode));
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/1b475f2e/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index f02cdb0..61fb73c 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -417,6 +417,21 @@ public class TestCubeRewriter extends TestQueryRewrite {
   }
   conf.setBoolean(CubeQueryConfUtil.ENABLE_STORAGES_UNION, true);
 
+  hqlQuery = rewrite("select ascii(cityid) as `City ID`, msr8, msr7 as 
`Third measure` "
++ "from testCube where cityid = 'a' and zipcode = 'b' and " + 
TWO_MONTHS_RANGE_UPTO_HOURS, conf);
+
+  expected = getExpectedUnionQuery(TEST_CUBE_NAME, storages, provider,
+"SELECT testcube.alias0 as `City ID`, sum(testcube.alias1) + 
max(testcube.alias2), "
+  + "case when sum(testcube.alias1) = 0 then 0 else 
sum(testcube.alias3)/sum(testcube.alias1) end "
+  + "as `Third Measure`",
+null, "group by testcube.alias0",
+"select ascii(testcube.cityid)

lens git commit: LENS-884 : Fix lens-ship-jars.jar to have version in the assembly as well

2015-11-26 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 942f071f9 -> 404d4518d


LENS-884 : Fix lens-ship-jars.jar to have version in the assembly as well


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

Branch: refs/heads/master
Commit: 404d4518d9cf96d1a2c41a73da598fc27fece992
Parents: 942f071
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Nov 27 12:46:54 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Nov 27 12:46:54 2015 +0530

--
 lens-dist/src/main/assembly/bin-dist.xml |  1 -
 lens-ship-jars/pom.xml   | 19 ---
 pom.xml  | 22 ++
 3 files changed, 22 insertions(+), 20 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/404d4518/lens-dist/src/main/assembly/bin-dist.xml
--
diff --git a/lens-dist/src/main/assembly/bin-dist.xml 
b/lens-dist/src/main/assembly/bin-dist.xml
index 535e991..dede085 100644
--- a/lens-dist/src/main/assembly/bin-dist.xml
+++ b/lens-dist/src/main/assembly/bin-dist.xml
@@ -411,7 +411,6 @@
 
   
../lens-ship-jars/target/lens-ship-jars-${project.version}.jar
   /server/shipjars/
-  lens-ship-jars.jar
 
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/404d4518/lens-ship-jars/pom.xml
--
diff --git a/lens-ship-jars/pom.xml b/lens-ship-jars/pom.xml
index b150980..ece22a1 100644
--- a/lens-ship-jars/pom.xml
+++ b/lens-ship-jars/pom.xml
@@ -81,26 +81,7 @@
 
   
 
-
-  
-package
-
-  shade
-
-
-  
-
-
-  log4j.properties
-
-
-
-  
-
-  
-
   
 
   
-
 

http://git-wip-us.apache.org/repos/asf/lens/blob/404d4518/pom.xml
--
diff --git a/pom.xml b/pom.xml
index b19857f..732b3bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -567,6 +567,28 @@
 
   
 
+
+  org.apache.maven.plugins
+  maven-shade-plugin
+  
+
+  package
+  
+shade
+  
+  
+
+  
+  
+log4j.properties
+  
+  
+  
+
+  
+
+  
+
   
 
 



lens git commit: LENS-840 : LDAP config loader should be more forgiving for attribute absense

2015-11-29 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 114dab346 -> b3b7e5f4d


LENS-840 : LDAP config loader should be more forgiving for attribute absense


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

Branch: refs/heads/master
Commit: b3b7e5f4d087be5377e0f043e00b57dfb6e4e124
Parents: 114dab3
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Mon Nov 30 11:37:14 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Nov 30 11:37:14 2015 +0530

--
 .../lens/server/user/LDAPBackedDatabaseUserConfigLoader.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b3b7e5f4/lens-server/src/main/java/org/apache/lens/server/user/LDAPBackedDatabaseUserConfigLoader.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/user/LDAPBackedDatabaseUserConfigLoader.java
 
b/lens-server/src/main/java/org/apache/lens/server/user/LDAPBackedDatabaseUserConfigLoader.java
index 82b76c9..a647282 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/user/LDAPBackedDatabaseUserConfigLoader.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/user/LDAPBackedDatabaseUserConfigLoader.java
@@ -29,6 +29,7 @@ import java.util.concurrent.TimeUnit;
 import javax.naming.Context;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
 import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
 import javax.naming.ldap.InitialLdapContext;
@@ -155,7 +156,8 @@ public class LDAPBackedDatabaseUserConfigLoader extends 
DatabaseUserConfigLoader
 String[] attributes = new String[ldapFields.length];
 SearchResult sr = findAccountByAccountName(user);
 for (int i = 0; i < attributes.length; i++) {
-  attributes[i] = sr.getAttributes().get(ldapFields[i]).get().toString();
+  Attribute attr = sr.getAttributes().get(ldapFields[i]);
+  attributes[i] = (attr == null ? null : attr.get().toString());
 }
 return attributes;
   }



[2/2] lens git commit: LENS-123 : Adds ability to load different instances of same driver class

2015-11-29 Thread amareshwari
LENS-123 : Adds ability to load different instances of same driver class


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

Branch: refs/heads/master
Commit: 114dab34642929152230cd049f1436ad796bedc2
Parents: 404d451
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Mon Nov 30 11:06:12 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Nov 30 11:06:12 2015 +0530

--
 .../lens/api/query/LensPreparedQuery.java   |   8 +-
 .../org/apache/lens/api/query/LensQuery.java|   4 +-
 .../lens/cli/commands/LensQueryCommands.java|   2 +-
 .../drivers/hive/hive1/hivedriver-site.xml  |  80 ++
 .../org/apache/lens/client/LensStatement.java   |   2 +-
 .../drivers/hive/hive1/hivedriver-site.xml  |  80 ++
 .../lens/driver/cube/TestMinCostSelector.java   |   8 +-
 .../org/apache/lens/driver/es/ESDriver.java |  13 +-
 .../org/apache/lens/driver/es/ESDriverTest.java |   2 +-
 .../org/apache/lens/driver/hive/HiveDriver.java |  51 ---
 .../apache/lens/driver/hive/TestHiveDriver.java |   4 +-
 .../lens/driver/hive/TestRemoteHiveDriver.java  |  16 +-
 .../drivers/hive/hive1/hivedriver-site.xml  |  49 +++
 .../src/test/resources/hivedriver-site.xml  |  49 ---
 .../org/apache/lens/driver/jdbc/JDBCDriver.java |  38 ++---
 .../driver/jdbc/TestColumnarSQLRewriter.java|   6 +-
 .../apache/lens/driver/jdbc/TestJDBCFinal.java  |   2 +-
 .../apache/lens/driver/jdbc/TestJdbcDriver.java |  12 +-
 .../drivers/jdbc/jdbc1/jdbcdriver-site.xml  |  70 +
 .../src/test/resources/jdbcdriver-site.xml  |  70 -
 .../drivers/hive/hive1/hivedriver-site.xml  |  80 ++
 lens-ml-lib/src/test/resources/lens-site.xml|   2 +-
 .../lib/query/TestAbstractFileFormatter.java|   2 +-
 .../lens/server/api/LensConfConstants.java  |  20 ++-
 .../server/api/driver/AbstractLensDriver.java   |  71 +
 .../lens/server/api/driver/LensDriver.java  |  13 +-
 .../server/api/query/AbstractQueryContext.java  |   2 +-
 .../api/query/DriverSelectorQueryContext.java   |   4 +-
 .../server/api/query/FinishedLensQuery.java |  15 +-
 .../server/api/query/PreparedQueryContext.java  |   7 +-
 .../lens/server/api/query/QueryContext.java |   3 +-
 .../lens/server/api/driver/MockDriver.java  |  14 +-
 .../lens/server/api/query/MockQueryContext.java |   2 +-
 .../api/query/TestAbstractQueryContext.java |   4 +-
 .../apache/lens/server/query/LensServerDAO.java |  10 +-
 .../server/query/QueryExecutionServiceImpl.java | 146 ++-
 .../apache/lens/server/rewrite/RewriteUtil.java |   2 +-
 .../lens/server/session/LensSessionImpl.java|  15 +-
 .../src/main/resources/lensserver-default.xml   |   2 +-
 .../org/apache/lens/server/LensJerseyTest.java  |   3 +
 .../apache/lens/server/TestServerRestart.java   |  10 +-
 .../lens/server/query/TestEventService.java |   2 +
 .../apache/lens/server/query/TestLensDAO.java   |   2 +-
 .../lens/server/query/TestQueryConstraints.java |  60 +---
 .../lens/server/query/TestQueryService.java |  38 +++--
 .../lens/server/rewrite/TestRewriting.java  |  17 ++-
 .../drivers/hive/hive1/hivedriver-site.xml  |  85 +++
 .../drivers/hive/hive2/hivedriver-site.xml  |  85 +++
 .../drivers/jdbc/jdbc1/jdbcdriver-site.xml  |  58 
 .../mock/fail1/failing-query-driver-site.xml|  32 
 .../mockHive/mockHive1/hivedriver-site.xml  |  95 
 .../mockHive/mockHive2/hivedriver-site.xml  |  95 
 .../resources/failing-query-driver-site.xml |  27 
 .../src/test/resources/hivedriver-site.xml  |  80 --
 .../src/test/resources/jdbcdriver-site.xml  |  55 ---
 lens-server/src/test/resources/lens-site.xml|   4 +-
 src/site/apt/admin/config-server.apt|  37 -
 src/site/apt/admin/config.apt   |   2 +-
 src/site/apt/lenshome/install-and-run.apt   |  18 ++-
 .../drivers/hive/hive1/hivedriver-site.xml  |  57 
 .../drivers/jdbc/jdbc1/jdbcdriver-site.xml  |  50 +++
 .../server/hivedriver-site.xml  |  57 
 .../server/jdbcdriver-site.xml  |  50 ---
 tools/conf-pseudo-distr/server/lens-site.xml|   2 +-
 .../drivers/hive/hive1/hivedriver-site.xml  |  41 ++
 .../drivers/jdbc/jdbc1/jdbcdriver-site.xml  |  50 +++
 tools/conf/server/hivedriver-site.xml   |  41 --
 tools/conf/server/jdbcdriver-site.xml   |  50 ---
 tools/conf/server/lens-site.xml |   2 +-
 69 files changed, 1463 insertions(+), 7

[1/2] lens git commit: LENS-123 : Adds ability to load different instances of same driver class

2015-11-29 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 404d4518d -> 114dab346


http://git-wip-us.apache.org/repos/asf/lens/blob/114dab34/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 7201e0d..ffd2d42 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
@@ -47,6 +47,7 @@ import org.apache.lens.driver.hive.HiveDriver;
 import org.apache.lens.server.BaseLensService;
 import org.apache.lens.server.LensServerConf;
 import org.apache.lens.server.LensServices;
+import org.apache.lens.server.api.LensConfConstants;
 import org.apache.lens.server.api.driver.*;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.error.LensMultiCauseException;
@@ -72,7 +73,8 @@ import org.apache.lens.server.util.FairPriorityBlockingQueue;
 import org.apache.lens.server.util.UtilityMethods;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
@@ -86,6 +88,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.*;
 import lombok.extern.slf4j.Slf4j;
 
@@ -337,25 +340,9 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
* @throws LensException the lens exception
*/
   private void loadDriversAndSelector() throws LensException {
-Class[] driverClasses = conf.getClasses(DRIVER_CLASSES);
-if (driverClasses != null) {
-  for (Class driverClass : driverClasses) {
-try {
-  LensDriver driver = (LensDriver) driverClass.newInstance();
-  driver.configure(LensServerConf.getConfForDrivers());
-  if (driver instanceof HiveDriver) {
-driver.registerDriverEventListener(driverEventListener);
-  }
-  drivers.put(driverClass.getName(), driver);
-  log.info("Driver for {} is loaded", driverClass);
-} catch (Exception e) {
-  log.warn("Could not load the driver:{}", driverClass, e);
-  throw new LensException("Could not load driver " + driverClass, e);
-}
-  }
-} else {
-  throw new LensException("No drivers specified");
-}
+//Load all configured Drivers
+loadDrivers();
+//Load configured Driver Selector
 try {
   Class driverSelectorClass = 
conf.getClass(DRIVER_SELECTOR_CLASS,
 MinQueryCostSelector.class,
@@ -369,6 +356,87 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
 }
   }
 
+  /**
+   * Loads drivers for the configured Driver types in lens-site.xml
+   *
+   * The driver's resources (-site.xml and other files) should be 
present
+   * under directory conf/drivers//
+   * Example :conf/drivers/hive/h1, conf/drivers/hive/h2, 
conf/drivers/jdbc/mysql1, conf/drivers/jdbc/vertica1
+   *
+   * @throws LensException
+   */
+  private void loadDrivers() throws LensException {
+Collection driverTypes = 
conf.getStringCollection(DRIVER_TYPES_AND_CLASSES);
+if (driverTypes.isEmpty()) {
+  throw new LensException("No drivers configured");
+}
+File driversBaseDir = new 
File(System.getProperty(LensConfConstants.CONFIG_LOCATION,
+LensConfConstants.DEFAULT_CONFIG_LOCATION), 
LensConfConstants.DRIVERS_BASE_DIR);
+if (!driversBaseDir.isDirectory()) {
+  throw new LensException("No drivers found at location " + 
driversBaseDir.getAbsolutePath());
+}
+for (String driverType : driverTypes) {
+  if (StringUtils.isBlank(driverType)) {
+throw new LensException("Driver type Configuration not specified 
correctly. Encountered blank driver type");
+  }
+  String[] driverTypeAndClass = StringUtils.split(driverType.trim(), ':');
+  if (driverTypeAndClass.length != 2) {
+throw new LensException("Driver type Configuration not specified 
correctly : " + driverType);
+  }
+  loadDriversForType(driverTypeAndClass[0], driverTypeAndClass[1], 
driversBaseDir);
+}
+if (drivers.isEmpty()){
+  throw new LensException("No drivers loaded. Please check the drivers in 
:"+driversBaseDir);
+}
+  }
+  /**
+   * Loads drivers of a particular type
+   *
+   * @param driverType : type of driver (hive, jdbc, el, etc)
+   * @param driverTypeClassName :driver class name
+   * @param driversBaseDir :path for 

lens git commit: LENS-881 : Remove hive-metastore jar from lens-ship-jars

2015-11-25 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b71be2dc9 -> 5d79ecfdb


LENS-881 : Remove hive-metastore jar from lens-ship-jars


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

Branch: refs/heads/master
Commit: 5d79ecfdbce74bd5b1f77911f200af1b7d76a01a
Parents: b71be2d
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Thu Nov 26 10:25:10 2015 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Nov 26 10:25:10 2015 +0530

--
 lens-ship-jars/pom.xml | 6 --
 1 file changed, 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/5d79ecfd/lens-ship-jars/pom.xml
--
diff --git a/lens-ship-jars/pom.xml b/lens-ship-jars/pom.xml
index 6268445..b150980 100644
--- a/lens-ship-jars/pom.xml
+++ b/lens-ship-jars/pom.xml
@@ -52,11 +52,6 @@
   net.sf.opencsv
   opencsv
 
-
-  org.apache.hive
-  hive-metastore
-  compile
-
   
 
   
@@ -72,7 +67,6 @@
   org.apache.lens:lens-storage-db
   org.apache.lens:lens-cube
   org.apache.lens:lens-query-lib
-  org.apache.hive:hive-metastore
   net.sf.opencsv:opencsv
 
   



lens git commit: LENS-917 : Fixs table pruning for multiple chains for same destination table

2016-01-11 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 9c03c76e6 -> c7451f8e8


LENS-917 : Fixs table pruning for multiple chains for same destination table


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

Branch: refs/heads/master
Commit: c7451f8e8e8f429fc55458b03dbb10a2b7428be9
Parents: 9c03c76
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Tue Jan 12 11:09:24 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Jan 12 11:09:24 2016 +0530

--
 .../org/apache/lens/cube/parse/Aliased.java |   4 +
 .../lens/cube/parse/CandidateTableResolver.java | 150 +--
 .../lens/cube/parse/CubeQueryContext.java   |  43 +++---
 .../lens/cube/parse/ExpressionResolver.java |   3 +
 .../lens/cube/parse/StorageTableResolver.java   |   4 +-
 .../lens/cube/parse/join/AutoJoinContext.java   |  12 +-
 .../apache/lens/cube/parse/CubeTestSetup.java   |  28 
 .../cube/parse/TestDenormalizationResolver.java |  16 +-
 8 files changed, 152 insertions(+), 108 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c7451f8e/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
index 56fe9fc..160a9c6 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/Aliased.java
@@ -36,4 +36,8 @@ public class Aliased {
   public static  Aliased create(K obj, String alias) {
 return new Aliased(obj, alias);
   }
+
+  public String getName() {
+return object.getName();
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/c7451f8e/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
index 38ff5a4..00ccf36 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
@@ -67,9 +67,9 @@ class CandidateTableResolver implements ContextRewriter {
   checkForQueriedColumns = false;
 } else {
   // populate optional tables
-  for (Dimension dim : cubeql.getOptionalDimensions()) {
+  for (Aliased dim : cubeql.getOptionalDimensions()) {
 log.info("Populating optional dim:{}", dim);
-populateDimTables(dim, cubeql, true);
+populateDimTables(dim.getObject(), cubeql, true);
   }
   if (cubeql.getAutoJoinCtx() != null) {
 // Before checking for candidate table columns, prune join paths 
containing non existing columns
@@ -117,7 +117,7 @@ class CandidateTableResolver implements ContextRewriter {
   return;
 }
 try {
-  Set candidates = new HashSet();
+  Set candidates = new HashSet<>();
   cubeql.getCandidateDimTables().put(dim, candidates);
   List dimtables = 
cubeql.getMetastoreClient().getAllDimensionTables(dim);
   if (dimtables.isEmpty()) {
@@ -126,7 +126,7 @@ class CandidateTableResolver implements ContextRewriter {
 "Dimension tables do not exist");
 } else {
   log.info("Not considering optional dimension {}  as, No dimension 
tables exist", dim);
-  removeOptionalDim(cubeql, dim);
+  removeOptionalDimWithoutAlias(cubeql, dim);
 }
   }
   for (CubeDimensionTable dimtable : dimtables) {
@@ -139,44 +139,30 @@ class CandidateTableResolver implements ContextRewriter {
 }
   }
 
-  private void pruneOptionalDims(CubeQueryContext cubeql) {
-Set tobeRemoved = new HashSet();
-Set allCandidates = new HashSet();
-allCandidates.addAll(cubeql.getCandidateFacts());
-for (Set cdims : cubeql.getCandidateDimTables().values()) {
-  allCandidates.addAll(cdims);
-}
-Set removedCandidates = new HashSet();
-for (Map.Entry<Dimension, OptionalDimCtx> optdimEntry : 
cubeql.getOptionalDimensionMap().entrySet()) {
-  Dimension dim = optdimEntry.getKey();
-  OptionalDimCtx optdim = optdimEntry.getValue();
-  Iterator iter = optdim.requiredForCandidates.iterator();
-  while (iter.hasNext()) {
-CandidateTable candidate = iter.next();
-if (!allCandidates.contains(candidate)) {
-  l

lens git commit: LENS-987 : Add AlarmService for scheduling time based queries

2016-06-13 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 68c5267f0 -> 92456effb


LENS-987 : Add AlarmService for scheduling time based queries


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

Branch: refs/heads/master
Commit: 92456effb9508d4578894a82c1f2a419fe504d97
Parents: 68c5267
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Mon Jun 13 17:17:04 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Jun 13 17:17:04 2016 +0530

--
 lens-server-api/pom.xml |   4 +
 .../server/api/events/SchedulerAlarmEvent.java  |  51 +
 lens-server/pom.xml |   4 +
 .../org/apache/lens/server/LensServices.java|   7 +-
 .../lens/server/metrics/MetricsServiceImpl.java |   2 +
 .../notification/services/AlarmService.java | 220 +++
 .../notification/services/AlarmServiceTest.java | 180 +++
 pom.xml |   6 +
 8 files changed, 473 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/92456eff/lens-server-api/pom.xml
--
diff --git a/lens-server-api/pom.xml b/lens-server-api/pom.xml
index 5508fb9..b59c249 100644
--- a/lens-server-api/pom.xml
+++ b/lens-server-api/pom.xml
@@ -105,5 +105,9 @@
   org.slf4j
   jcl-over-slf4j
 
+
+  joda-time
+  joda-time
+
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/92456eff/lens-server-api/src/main/java/org/apache/lens/server/api/events/SchedulerAlarmEvent.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/events/SchedulerAlarmEvent.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/SchedulerAlarmEvent.java
new file mode 100644
index 000..2bcf0d6
--- /dev/null
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/SchedulerAlarmEvent.java
@@ -0,0 +1,51 @@
+/**
+ * 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.events;
+
+import org.apache.lens.api.query.SchedulerJobHandle;
+
+import org.joda.time.DateTime;
+
+import lombok.Data;
+
+/**
+ * This event is triggered by the AlarmService whenever a scheduled query 
needs to be scheduled.
+ */
+@Data
+public class SchedulerAlarmEvent extends LensEvent {
+
+  /**
+   * jobHandle for which the alarm needs to be triggered.
+   */
+  private SchedulerJobHandle jobHandle;
+
+  private DateTime nominalTime;
+
+  public SchedulerAlarmEvent(SchedulerJobHandle jobHandle, DateTime 
nominalTime) {
+super(nominalTime.getMillis());
+this.jobHandle = jobHandle;
+this.nominalTime = nominalTime;
+  }
+
+  @Override
+  public String getEventId() {
+return jobHandle.getHandleIdString();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/92456eff/lens-server/pom.xml
--
diff --git a/lens-server/pom.xml b/lens-server/pom.xml
index b73cd05..2294b2a 100644
--- a/lens-server/pom.xml
+++ b/lens-server/pom.xml
@@ -242,6 +242,10 @@
   guava
 
 
+  org.quartz-scheduler
+  quartz
+
+
   org.apache.lens
   lens-server-api
   test-jar

http://git-wip-us.apache.org/repos/asf/lens/blob/92456eff/lens-server/src/main/java/org/apache/lens/server/LensServices.java
--
diff --git a/lens-server/src/main/java/org/apache/lens/server/LensServices.java 
b/lens-server/src/main/java/org/apache/lens/server/LensServices.java
index 10ec8b7..f6f2f36 100644
--- a/lens-server/src/main/java/org/apache/lens/server/LensServices.java
+++ b/lens-server/src/main/java/org/apache/lens/server/LensServi

lens git commit: LENS-1151 : Add logs for Queries moving between waiting and queued queries data structures

2016-06-16 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4fea0c4a2 -> 714aae99d


LENS-1151 : Add logs for Queries moving between waiting and queued queries data 
structures


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

Branch: refs/heads/master
Commit: 714aae99d67319a1719b08a3386b5893d2b250ce
Parents: 4fea0c4
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Jun 17 10:35:27 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Jun 17 10:35:27 2016 +0530

--
 .../lens/server/query/QueryExecutionServiceImpl.java   | 13 +++--
 .../query/collect/UnioningWaitingQueriesSelector.java  |  3 +++
 .../DefaultQueryLaunchingConstraintsChecker.java   |  3 +++
 3 files changed, 9 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/714aae99/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 1f6ec13..2de098d 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
@@ -697,18 +697,12 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
   log.debug("Acquiring lock in QuerySubmitter");
   removalFromLaunchedQueriesLock.lock();
   try {
-
-boolean isQueryAllowedToLaunch = 
this.constraintsChecker.canLaunch(query, launchedQueries);
-
-log.debug("isQueryAllowedToLaunch:{}", isQueryAllowedToLaunch);
-if (isQueryAllowedToLaunch) {
-
+if (this.constraintsChecker.canLaunch(query, launchedQueries)) 
{
   /* Query is not going to be added to waiting queries. No 
need to keep the lock.
   First release lock, then launch query */
   removalFromLaunchedQueriesLock.unlock();
   launchQuery(query);
 } else {
-
   /* Query is going to be added to waiting queries. Keep 
holding the lock to avoid any removal from
   launched queries. First add to waiting queries, then release 
lock */
   addToWaitingQueries(query);
@@ -3185,12 +3179,11 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
 
 Set eligibleWaitingQueries = this.waitingQueriesSelector
   .selectQueries(finishedQuery, this.waitingQueries);
-
+log.info("Eligible queries to pick from waiting queries: {}", 
eligibleWaitingQueries);
 if (eligibleWaitingQueries.isEmpty()) {
-  log.debug("No queries eligible to move out of waiting state.");
+  log.info("No queries eligible to move out of waiting state.");
   return;
 }
-
 waitingQueries.removeAll(eligibleWaitingQueries);
 queuedQueries.addAll(eligibleWaitingQueries);
 if (log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/lens/blob/714aae99/lens-server/src/main/java/org/apache/lens/server/query/collect/UnioningWaitingQueriesSelector.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/UnioningWaitingQueriesSelector.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/UnioningWaitingQueriesSelector.java
index 8db059e..40b837f 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/UnioningWaitingQueriesSelector.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/UnioningWaitingQueriesSelector.java
@@ -32,11 +32,13 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import lombok.NonNull;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * Selects queries eligible by all {@link WaitingQueriesSelectionPolicy} to 
move them out of waiting state.
  *
  */
+@Slf4j
 public class UnioningWaitingQueriesSelector implements WaitingQueriesSelector {
 
   private final ImmutableSet selectionPolicies;
@@ -86,6 +88,7 @@ public class UnioningWaitingQueriesSelector implements 
WaitingQueriesSelector {
 
   Set candiateQueries = 
selectionPolicy.selectQueries(finishedQuery, waitingQueries);
   candidateQueriesSets.add(candiateQueries);
+  l

lens git commit: LENS-909 : Remove sending result as part of email incase of inmemory results

2016-02-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b805ee989 -> bee5cfd8d


LENS-909 : Remove sending result as part of email incase of inmemory results


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

Branch: refs/heads/master
Commit: bee5cfd8d6f216a0af042a4ae6772aa4dabfe320
Parents: b805ee9
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Sun Feb 7 15:11:34 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sun Feb 7 15:11:34 2016 +0530

--
 .../lens/server/query/QueryEndNotifier.java | 26 +++-
 .../server/query/TestQueryEndEmailNotifier.java | 19 +++---
 2 files changed, 40 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bee5cfd8/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
index ca00b4d..63c38d9 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
@@ -34,6 +34,8 @@ import javax.mail.internet.MimeMultipart;
 
 import org.apache.lens.api.query.QueryStatus;
 import org.apache.lens.server.LensServices;
+import org.apache.lens.server.api.driver.InMemoryResultSet;
+import org.apache.lens.server.api.driver.LensResultSet;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.events.AsyncEventListener;
 import org.apache.lens.server.api.metrics.MetricsService;
@@ -44,6 +46,9 @@ import org.apache.lens.server.model.LogSegregationContext;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hive.conf.HiveConf;
 
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+
 import lombok.Data;
 import lombok.NonNull;
 import lombok.extern.slf4j.Slf4j;
@@ -60,6 +65,18 @@ public class QueryEndNotifier extends 
AsyncEventListener {
   /** The Constant EMAIL_ERROR_COUNTER. */
   public static final String EMAIL_ERROR_COUNTER = "email-send-errors";
 
+  /** The time in seconds for which in memory result is available */
+  private final int inMemoryResultsetTTLSecs;
+
+  /** Time formatter for email message corresponding to InMemoryResultset
+   *  Example : 2016-01-25 07:05:46 PM, IST
+   */
+  static final DateTimeFormatter MESSAGE_DATE_FORMATTER = 
DateTimeFormat.forPattern("-MM-dd hh:mm:SS aaa, z");
+
+  /** Mail message corresponding to InMemoryResultset*/
+  static final String RESULT_AVAILABLE_UNTIL_MSG =
+  "Query result is temporarily cached in the server and will be available 
until ";
+
   /** The from. */
   private final String from;
 
@@ -97,6 +114,7 @@ public class QueryEndNotifier extends 
AsyncEventListener {
 mailSmtpConnectionTimeout = 
Integer.parseInt(conf.get(MAIL_SMTP_CONNECTIONTIMEOUT,
   MAIL_DEFAULT_SMTP_CONNECTIONTIMEOUT));
 this.logSegregationContext = logSegregationContext;
+this.inMemoryResultsetTTLSecs =conf.getInt(INMEMORY_RESULT_SET_TTL_SECS, 
DEFAULT_INMEMORY_RESULT_SET_TTL_SECS);
   }
 
   /*
@@ -172,7 +190,13 @@ public class QueryEndNotifier extends 
AsyncEventListener {
 
   private String getResultMessage(QueryContext queryContext) {
 try {
-  return 
queryService.getResultset(queryContext.getQueryHandle()).toQueryResult().toPrettyString();
+  LensResultSet result = 
queryService.getResultset(queryContext.getQueryHandle());
+  if (result instanceof InMemoryResultSet) { // Do not include the result 
rows for InMemory results.
+long availableUntilTime = 
((InMemoryResultSet)result).getCreationTime() + inMemoryResultsetTTLSecs;
+return RESULT_AVAILABLE_UNTIL_MSG + 
MESSAGE_DATE_FORMATTER.print(availableUntilTime);
+  } else {
+return result.toQueryResult().toPrettyString();
+  }
 } catch (LensException e) {
   log.error("Error retrieving result of query handle {} for sending 
e-mail", queryContext.getQueryHandle(), e);
   return "Error retrieving result.";

http://git-wip-us.apache.org/repos/asf/lens/blob/bee5cfd8/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/q

[2/3] lens git commit: LENS-791 : Fix CLI output to print yaml representation of entity

2016-02-05 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml
new file mode 100644
index 000..c4128b8
--- /dev/null
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml
@@ -0,0 +1,43 @@
+
+
+
+  
+table1
+table2
+  
+  false
+  MapReduce
+  scanning mode 1
+  plan is to
+run this
+big query one
+by one
+  
+  
+1000
+1.0
+HIGH
+  
+  
+81799e48-574c-4305-bd51-1c277c15713d
+  
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml
new file mode 100644
index 000..879227a
--- /dev/null
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml
@@ -0,0 +1,29 @@
+# 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.
+Tables Queried: table1, table2
+Is Has Sub Query: false
+Exec Mode: MapReduce
+Scan Mode: scanning mode 1
+Prepare Handle: 81799e48-574c-4305-bd51-1c277c15713d
+Plan String: plan is to
+run this
+big query one
+by one
+
+Query Cost:
+  Estimated Exec Time Millis: 1000
+  Estimated Resource Usage: 1.0
+  Cost Type: HIGH

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml
 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml
new file mode 100644
index 000..21c5294
--- /dev/null
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml
@@ -0,0 +1,24 @@
+
+
+
+  81799e48-574c-4305-bd51-1c277c15713d
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml
 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml
new file mode 100644
index 000..8bce762
--- /dev/null
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml
@@ -0,0 +1,16 @@
+# 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.
+81799e48-574c-4305-bd51-1c277c15713d
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml
 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml
new file 

lens git commit: LENS-901 : Add option to stream results from execute timeout api, along with persisting the result

2016-02-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master f88cf9bc3 -> 58d863643


LENS-901 : Add option to stream results from execute timeout api, along with 
persisting the result


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

Branch: refs/heads/master
Commit: 58d8636433f2166e4428a7a1c933e76aeadf2fde
Parents: f88cf9b
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Fri Feb 5 08:31:15 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Feb 5 08:31:15 2016 +0530

--
 .../api/query/QueryHandleWithResultSet.java |   7 +
 .../org/apache/lens/api/query/QueryStatus.java  |   5 +
 .../lens/driver/es/client/ESResultSet.java  |   6 -
 .../org/apache/lens/driver/hive/HiveDriver.java |  21 +-
 .../lens/driver/hive/HiveInMemoryResultSet.java |   8 +-
 .../org/apache/lens/driver/jdbc/JDBCDriver.java |  18 +-
 .../apache/lens/driver/jdbc/JDBCResultSet.java  |  13 --
 .../apache/lens/driver/jdbc/TestJdbcDriver.java |  84 
 .../lens/server/api/LensConfConstants.java  |  20 ++
 .../server/api/driver/AbstractLensDriver.java   |  34 +++-
 .../server/api/driver/InMemoryResultSet.java|   4 +-
 .../PartiallyFetchedInMemoryResultSet.java  | 177 +
 .../lens/server/api/query/QueryContext.java |  86 +++--
 .../lens/server/api/driver/MockDriver.java  |   5 -
 .../server/query/QueryExecutionServiceImpl.java | 191 +--
 .../src/main/resources/lenssession-default.xml  |  21 ++
 .../apache/lens/server/query/TestLensDAO.java   |   2 +-
 .../lens/server/query/TestQueryService.java | 174 +
 .../lens/server/query/TestResultFormatting.java |   2 +-
 src/site/apt/admin/session-config.apt   |  28 +--
 20 files changed, 733 insertions(+), 173 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/58d86364/lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
 
b/lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
index a5da867..bf8967e 100644
--- 
a/lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
+++ 
b/lens-api/src/main/java/org/apache/lens/api/query/QueryHandleWithResultSet.java
@@ -54,6 +54,13 @@ public class QueryHandleWithResultSet extends 
QuerySubmitResult {
   private QueryResult result;
 
   /**
+   * The result metadata
+   */
+  @Getter
+  @Setter
+  private QueryResultSetMetadata resultMetadata;
+
+  /**
* The status.
*/
   @Getter

http://git-wip-us.apache.org/repos/asf/lens/blob/58d86364/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java 
b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
index 915dac7..40e5d87 100644
--- a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
+++ b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
@@ -212,6 +212,11 @@ public class QueryStatus implements Serializable {
 return status.equals(Status.SUCCESSFUL) || status.equals(Status.FAILED) || 
status.equals(Status.CANCELED);
   }
 
+  public boolean successful() {
+return status.equals(Status.SUCCESSFUL);
+  }
+
+
   public boolean launched() {
 return status.equals(Status.LAUNCHED);
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/58d86364/lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
--
diff --git 
a/lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
 
b/lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
index 464b535..b59949b 100644
--- 
a/lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
+++ 
b/lens-driver-es/src/main/java/org/apache/lens/driver/es/client/ESResultSet.java
@@ -23,7 +23,6 @@ import java.util.Iterator;
 import org.apache.lens.api.query.ResultRow;
 import org.apache.lens.server.api.driver.InMemoryResultSet;
 import org.apache.lens.server.api.driver.LensResultSetMetadata;
-import org.apache.lens.server.api.error.LensException;
 
 import lombok.NonNull;
 
@@ -68,9 +67,4 @@ public class ESResultSet extends InMemoryResultSet {
   public LensResultSetMetadata getMetadata() {
 return resultSetMetadata;
   }
-
-  @Override
-  public boolean seekToStart() throw

[1/3] lens git commit: LENS-791 : Fix CLI output to print yaml representation of entity

2016-02-05 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 58d863643 -> b805ee989


http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact2.yaml
--
diff --git a/lens-examples/src/test/resources/yaml/fact2.yaml 
b/lens-examples/src/test/resources/yaml/fact2.yaml
new file mode 100644
index 000..97112c8
--- /dev/null
+++ b/lens-examples/src/test/resources/yaml/fact2.yaml
@@ -0,0 +1,36 @@
+# 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.
+columns:
+  dim1: type: INT
+  dim3: type: INT
+  measure2: type: INT
+  measure3: type: FLOAT
+  measure4: type: FLOAT
+properties:
+  cube.fact.is.aggregated: true
+storageTables:
+  local:
+updatePeriods: HOURLY, DAILY
+tableDesc:
+  partCols:
+dt: type: STRING, comment: Time column
+  timePartCols: dt
+  external: true
+  tableLocation: /tmp/examples/fact2_local
+  fieldDelimiter: ,
+name: fact2
+cubeName: sample_cube
+weight: 200.0

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/local-cluster-storage.yaml
--
diff --git a/lens-examples/src/test/resources/yaml/local-cluster-storage.yaml 
b/lens-examples/src/test/resources/yaml/local-cluster-storage.yaml
new file mode 100644
index 000..e9f4ffe
--- /dev/null
+++ b/lens-examples/src/test/resources/yaml/local-cluster-storage.yaml
@@ -0,0 +1,19 @@
+# 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.
+properties:
+  storage.url: hdfs://localhost:8020/
+name: cluster1
+classname: org.apache.lens.cube.metadata.HDFSStorage

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/local-storage.yaml
--
diff --git a/lens-examples/src/test/resources/yaml/local-storage.yaml 
b/lens-examples/src/test/resources/yaml/local-storage.yaml
new file mode 100644
index 000..4835fcb
--- /dev/null
+++ b/lens-examples/src/test/resources/yaml/local-storage.yaml
@@ -0,0 +1,19 @@
+# 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.
+properties:
+  storage.url: file:///
+name: local
+classname: org.apache.lens.cube.metadata.HDFSStorage

http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/product-local-parts.yaml
--
diff --git a/lens-examples/src/test/resources/yaml/product-local-parts.yaml 
b/lens-examples/src/test/resources/yaml/product-local-parts.yaml
new file mode 100644
index 000..bd2c543
--- /dev/null
+++ 

[3/3] lens git commit: LENS-791 : Fix CLI output to print yaml representation of entity

2016-02-05 Thread amareshwari
LENS-791 : Fix CLI output to print yaml representation of entity


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

Branch: refs/heads/master
Commit: b805ee989188c5889e6472b48572d126b6515414
Parents: 58d8636
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Feb 5 14:12:29 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Feb 5 14:12:29 2016 +0530

--
 lens-api/pom.xml|   7 +
 .../java/org/apache/lens/api/APIResult.java |  33 +-
 .../main/java/org/apache/lens/api/DateTime.java |   2 +-
 .../main/java/org/apache/lens/api/LensConf.java |   6 +-
 .../org/apache/lens/api/LensSessionHandle.java  |  47 +--
 .../java/org/apache/lens/api/ToXMLString.java   |  73 
 .../java/org/apache/lens/api/ToYAMLString.java  | 121 ++
 .../apache/lens/api/jaxb/LensJAXBContext.java   |  47 ++-
 .../lens/api/jaxb/YAMLToStringStrategy.java | 389 +++
 .../lens/api/query/InMemoryQueryResult.java |   5 +
 .../lens/api/query/LensPreparedQuery.java   |   4 +-
 .../org/apache/lens/api/query/LensQuery.java|   3 +-
 .../org/apache/lens/api/query/QueryHandle.java  |  10 -
 .../lens/api/query/QueryPrepareHandle.java  |  10 -
 .../org/apache/lens/api/query/QueryResult.java  |   3 +-
 .../lens/api/query/QueryResultSetMetadata.java  |   4 +-
 .../org/apache/lens/api/query/QueryStatus.java  |  42 +-
 .../lens/api/query/QuerySubmitResult.java   |   3 +-
 .../apache/lens/api/query/SchedulerJobInfo.java |   2 +
 .../org/apache/lens/api/result/QueryCostTO.java |   1 -
 .../lens/api/jaxb/YAMLToStringStrategyTest.java | 166 
 .../toString/org.apache.lens.api.DateTime.xml   |  24 ++
 .../toString/org.apache.lens.api.DateTime.yaml  |  16 +
 .../toString/org.apache.lens.api.LensConf.xml   |  33 ++
 .../toString/org.apache.lens.api.LensConf.yaml  |  17 +
 ...pache.lens.api.query.InMemoryQueryResult.xml |  49 +++
 ...ache.lens.api.query.InMemoryQueryResult.yaml |  17 +
 apache.lens.api.query.LensPreparedQuery.xml |  43 ++
 ...apache.lens.api.query.LensPreparedQuery.yaml |  24 ++
 .../org.apache.lens.api.query.LensQuery.xml |  67 
 .../org.apache.lens.api.query.LensQuery.yaml|  42 ++
 ...che.lens.api.query.PersistentQueryResult.xml |  27 ++
 ...he.lens.api.query.PersistentQueryResult.yaml |  19 +
 .../org.apache.lens.api.query.QueryHandle.xml   |  24 ++
 .../org.apache.lens.api.query.QueryHandle.yaml  |  16 +
 lens.api.query.QueryHandleWithResultSet.xml |  26 ++
 ...lens.api.query.QueryHandleWithResultSet.yaml |  16 +
 .../org.apache.lens.api.query.QueryPlan.xml |  43 ++
 .../org.apache.lens.api.query.QueryPlan.yaml|  29 ++
 ...apache.lens.api.query.QueryPrepareHandle.xml |  24 ++
 ...pache.lens.api.query.QueryPrepareHandle.yaml |  16 +
 ...he.lens.api.query.QueryResultSetMetadata.xml |  33 ++
 ...e.lens.api.query.QueryResultSetMetadata.yaml |  17 +
 .../org.apache.lens.api.query.QueryStatus.xml   |  35 ++
 .../org.apache.lens.api.query.QueryStatus.yaml  |  22 ++
 .../org.apache.lens.api.query.ResultRow.xml |  33 ++
 .../org.apache.lens.api.query.ResultRow.yaml|  16 +
 ...apache.lens.api.query.SchedulerJobHandle.xml |  24 ++
 ...pache.lens.api.query.SchedulerJobHandle.yaml |  16 +
 .../org.apache.lens.api.result.QueryCostTO.xml  |  26 ++
 .../org.apache.lens.api.result.QueryCostTO.yaml |  18 +
 .../lens/cli/commands/BaseLensCommand.java  |  37 +-
 .../lens/cli/commands/LensCRUDCommand.java  |   7 +-
 .../cli/commands/LensConnectionCommands.java|  26 +-
 .../cli/commands/LensDimensionCommands.java |   7 +-
 .../lens/cli/commands/LensQueryCommands.java|   6 +-
 .../cli/commands/LogicalTableCrudCommand.java   |  13 +-
 .../apache/lens/cli/LensCliApplicationTest.java |   3 +-
 .../apache/lens/cli/TestLensCubeCommands.java   |   5 +-
 .../lens/cli/TestLensDimensionCommands.java |   4 +-
 .../cli/TestLensDimensionTableCommands.java |   6 +-
 .../apache/lens/cli/TestLensFactCommands.java   |   4 +-
 .../lens/cli/TestLensStorageCommands.java   |   4 +-
 .../java/org/apache/lens/client/LensClient.java |   1 +
 .../apache/lens/client/LensMetadataClient.java  |  26 +-
 .../org/apache/lens/client/LensStatement.java   |   2 +-
 .../src/main/resources/lens-client-default.xml  |   5 +
 lens-examples/pom.xml   |  16 +-
 .../apache/lens/examples/SampleMetastore.java   |   5 +-
 .../src/main/resources/example-job.xml  |   5 +-
 .../examples/ExampleSchemaToStringTest.java |  45 +++
 .../test/resources/yaml/city-local-part.yaml|  20 +
 lens-examples/src/test/resources/yaml/city.yaml |  23 ++
 .../src/test/resources/yaml/city_subset.yaml|  30 ++
 

lens git commit: LENS-946 : Fix filter clauses in multi fact or multi storage queries

2016-02-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master bee5cfd8d -> 0b3203d04


LENS-946 : Fix filter clauses in multi fact or multi storage queries


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

Branch: refs/heads/master
Commit: 0b3203d047d9738141d153e9f7894fcc6ac64f79
Parents: bee5cfd
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Mon Feb 8 12:00:53 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Feb 8 12:00:53 2016 +0530

--
 .../apache/lens/cube/parse/CandidateFact.java   | 22 ++-
 .../lens/cube/parse/CubeQueryContext.java   |  9 ++-
 .../apache/lens/cube/parse/DefaultQueryAST.java |  2 +-
 .../cube/parse/DenormalizationResolver.java | 13 +++-
 .../lens/cube/parse/ExpressionResolver.java | 12 +++-
 .../parse/SingleFactMultiStorageHQLContext.java | 10 ---
 .../apache/lens/cube/parse/CubeTestSetup.java   | 24 +--
 .../lens/cube/parse/TestBaseCubeQueries.java| 68 ++--
 .../lens/cube/parse/TestCubeRewriter.java   | 25 ++-
 9 files changed, 132 insertions(+), 53 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/0b3203d0/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
index 4faebe1..1b0de34 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
@@ -76,12 +76,11 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
   @Getter
   @Setter
   private Integer limitValue;
-  private List timenodes = Lists.newArrayList();
   private final List selectIndices = Lists.newArrayList();
   private final List dimFieldIndices = Lists.newArrayList();
   private Collection columns;
   @Getter
-  private final Map<String, String> storgeWhereClauseMap = new HashMap<>();
+  private final Map<String, ASTNode> storgeWhereClauseMap = new HashMap<>();
   @Getter
   private final Map<TimeRange, Map<String, LinkedHashSet>> 
rangeToStoragePartMap = new HashMap<>();
   @Getter
@@ -145,18 +144,6 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
 return alias;
   }
 
-  static class TimeRangeNode {
-ASTNode timenode;
-ASTNode parent;
-int childIndex;
-
-TimeRangeNode(ASTNode timenode, ASTNode parent, int childIndex) {
-  this.timenode = timenode;
-  this.parent = parent;
-  this.childIndex = childIndex;
-}
-  }
-
   void incrementPartsQueried(int incr) {
 numQueriedParts += incr;
   }
@@ -174,8 +161,8 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
   }
 
 
-  public String getWhereClause(String storageTable) {
-return getStorgeWhereClauseMap().get(storageTable);
+  public ASTNode getStorageWhereClause(String storageTable) {
+return storgeWhereClauseMap.get(storageTable);
   }
 
   public boolean isExpressionAnswerable(ASTNode node, CubeQueryContext 
context) throws LensException {
@@ -231,7 +218,7 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
 
   private Set getColsInExpr(final CubeQueryContext cubeql, final 
Set cubeCols,
 ASTNode expr) throws LensException {
-final Set cubeColsInExpr = new HashSet();
+final Set cubeColsInExpr = new HashSet<>();
 HQLParser.bft(expr, new ASTNodeVisitor() {
   @Override
   public void visit(TreeNode visited) {
@@ -346,7 +333,6 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
 return null;
   }
 
-
   /**
* @return the selectIndices
*/

http://git-wip-us.apache.org/repos/asf/lens/blob/0b3203d0/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
index ebf8875..b8b6db9 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
@@ -875,7 +875,7 @@ public class CubeQueryContext implements 
TrackQueriedColumns, QueryAST {
 ASTNode rangeAST = HQLParser.parseExpr(rangeWhere);
 range.getParent().setChild(range.getChildIndex(), rangeAST);
   }
- 

[2/7] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-02 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/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 ef8c1aa..d9b7679 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
@@ -33,10 +33,7 @@ import java.util.*;
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.core.*;
 
 import org.apache.lens.api.APIResult;
 import org.apache.lens.api.LensConf;
@@ -77,16 +74,11 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.IOUtils;
 
-import org.glassfish.jersey.client.ClientConfig;
 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.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 org.testng.annotations.*;
 
 import com.codahale.metrics.MetricRegistry;
 import com.google.common.base.Optional;
@@ -130,7 +122,7 @@ public class TestQueryService extends LensJerseyTest {
 super.setUp();
 queryService = LensServices.get().getService(QueryExecutionService.NAME);
 metricsSvc = LensServices.get().getService(MetricsService.NAME);
-Map sessionconf = new HashMap();
+Map sessionconf = new HashMap<>();
 sessionconf.put("test.session.key", "svalue");
 lensSessionId = queryService.openSession("foo@localhost", "bar", 
sessionconf); // @localhost should be removed
 // automatically
@@ -167,17 +159,6 @@ public class TestQueryService extends LensJerseyTest {
 return new 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";
 
@@ -188,7 +169,7 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void createTable(String tblName) throws InterruptedException {
-LensServerTestUtil.createTable(tblName, target(), lensSessionId);
+LensServerTestUtil.createTable(tblName, target(), lensSessionId, 
defaultMT);
   }
 
   /**
@@ -199,7 +180,7 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void loadData(String tblName, final String testDataFile) throws 
InterruptedException {
-LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), 
lensSessionId);
+LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), 
lensSessionId, defaultMT);
   }
 
   /**
@@ -209,19 +190,17 @@ public class TestQueryService extends LensJerseyTest {
* @throws InterruptedException the interrupted exception
*/
   private void dropTable(String tblName) throws InterruptedException {
-LensServerTestUtil.dropTable(tblName, target(), lensSessionId);
+LensServerTestUtil.dropTable(tblName, target(), lensSessionId, defaultMT);
   }
 
-  // test get a random query, should return 400
-
   /**
-   * Test get random query.
+   * Test get random query. should return 400
*/
-  @Test
-  public void testGetRandomQuery() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testGetRandomQuery(MediaType mt) {
 final WebTarget target = target().path("queryapi/queries");
 
-Response rs = target.path("random").queryParam("sessionid", 
lensSessionId).request().get();
+Response rs = target.path("random").queryParam("sessionid", 
lensSessionId).request(mt).get();
 assertEquals(rs.getStatus(), 400);
   }
 
@@ -229,7 +208,7 @@ public class TestQueryService extends LensJerseyTest {
   public void testLoadingMultipleDrivers() {
 Collection drivers = queryService.getDrivers();
 assertEquals(drivers.size(), 4);
-Set driverNames = new HashSet(drivers.size());
+Set driverNames = new HashSet<>(drivers.size());
 for 

[4/7] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-02 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/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 925fc86..4bc3f0a 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
@@ -29,10 +29,7 @@ import javax.ws.rs.BadRequestException;
 import javax.ws.rs.NotFoundException;
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Application;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.core.*;
 import javax.xml.bind.JAXBElement;
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.XMLGregorianCalendar;
@@ -44,6 +41,7 @@ import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.api.StringList;
 import org.apache.lens.api.error.LensCommonErrorCode;
 import org.apache.lens.api.metastore.*;
+import org.apache.lens.api.metastore.ObjectFactory;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.cube.metadata.*;
 import org.apache.lens.cube.metadata.ExprColumn.ExprSpec;
@@ -62,15 +60,9 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.mapred.SequenceFileInputFormat;
 
-import org.glassfish.jersey.client.ClientConfig;
-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.glassfish.jersey.test.TestProperties;
 import org.testng.Assert;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
@@ -80,8 +72,6 @@ import lombok.extern.slf4j.Slf4j;
 @Test(groups = "unit-test")
 public class TestMetastoreService extends LensJerseyTest {
   private ObjectFactory cubeObjectFactory;
-  protected String mediaType = MediaType.APPLICATION_XML;
-  protected MediaType medType = MediaType.APPLICATION_XML_TYPE;
   protected String dbPFX = "TestMetastoreService_";
   CubeMetastoreServiceImpl metastoreService;
   LensSessionHandle lensSessionId;
@@ -90,7 +80,7 @@ public class TestMetastoreService extends LensJerseyTest {
 assertEquals(result.getStatus(), Status.SUCCEEDED, String.valueOf(result));
   }
 
-  @BeforeTest
+  @BeforeMethod
   public void setUp() throws Exception {
 super.setUp();
 cubeObjectFactory = new ObjectFactory();
@@ -99,7 +89,7 @@ public class TestMetastoreService extends LensJerseyTest {
 
   }
 
-  @AfterTest
+  @AfterMethod
   public void tearDown() throws Exception {
 metastoreService.closeSession(lensSessionId);
 super.tearDown();
@@ -107,62 +97,67 @@ public class TestMetastoreService extends LensJerseyTest {
 
   @Override
   protected Application configure() {
+enable(TestProperties.LOG_TRAFFIC);
+enable(TestProperties.DUMP_ENTITY);
 return new MetastoreApp();
   }
 
-  @Override
-  protected void configureClient(ClientConfig config) {
-config.register(MultiPartFeature.class);
-  }
-
-  @Test
-  public void testSetDatabase() throws Exception {
-WebTarget dbTarget = target().path("metastore").path("databases/current");
-String dbName = "test_set_db";
+  @Test(dataProvider = "mediaTypeData")
+  public void testSetDatabase(MediaType mediaType) throws Exception {
+String prevDb = getCurrentDatabase(mediaType);
+String dbName = "test_set_db" + mediaType.getSubtype();
 try {
-  dbTarget.queryParam("sessionid", 
lensSessionId).request(mediaType).put(Entity.xml(dbName), APIResult.class);
-  fail("Should get 404");
-} catch (NotFoundException e) {
-  // expected
-}
+  WebTarget dbTarget = 
target().path("metastore").path("databases/current");
+  try {
+dbTarget.queryParam("sessionid", 
lensSessionId).request(mediaType).put(getEntityForString(dbName, mediaType),
+  APIResult.class);
+fail("Should get 404");
+  } catch (NotFoundException e) {
+// expected
+  }
 
-// create
-APIResult result = target().path("metastore").path("databases")
-  .queryParam("sessionid", 
lensSessionId).request(mediaType).post(Entity.xml(dbName), APIResult.class);
-assertNotNull(result);
-assertSuccess(result);
+  // create
+  APIResult result = target().path("metastore").path("databases")
+

[1/7] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-02 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master a5091fe0c -> d559ef2e5


http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
 
b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
index 3055ce5..bde7b9b 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
@@ -53,11 +53,10 @@ import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.ql.metadata.Hive;
 
-import org.glassfish.jersey.client.ClientConfig;
 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.glassfish.jersey.test.TestProperties;
 import org.testng.Assert;
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
@@ -101,39 +100,31 @@ public class TestSessionResource extends LensJerseyTest {
*/
   @Override
   protected Application configure() {
+enable(TestProperties.LOG_TRAFFIC);
+enable(TestProperties.DUMP_ENTITY);
 return new SessionApp();
   }
 
-  /*
-   * (non-Javadoc)
-   *
-   * @see 
org.glassfish.jersey.test.JerseyTest#configureClient(org.glassfish.jersey.client.ClientConfig)
-   */
-  @Override
-  protected void configureClient(ClientConfig config) {
-config.register(MultiPartFeature.class);
-  }
-
   /**
* Test session.
*/
-  @Test
-  public void testSession() {
+  @Test(dataProvider = "mediaTypeData")
+  public void testSession(MediaType mt) {
 final WebTarget target = target().path("session");
 final FormDataMultiPart mp = new FormDataMultiPart();
 
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), "foo"));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), "bar"));
 mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-  new LensConf(), MediaType.APPLICATION_XML_TYPE));
+  new LensConf(), mt));
 
-final LensSessionHandle handle = target.request().post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+final LensSessionHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
   LensSessionHandle.class);
 Assert.assertNotNull(handle);
 
 // get all session params
 final WebTarget paramtarget = target().path("session/params");
-StringList sessionParams = paramtarget.queryParam("sessionid", 
handle).request().get(StringList.class);
+StringList sessionParams = paramtarget.queryParam("sessionid", 
handle).request(mt).get(StringList.class);
 System.out.println("Session params:" + sessionParams.getElements());
 Assert.assertTrue(sessionParams.getElements().size() > 1);
 
Assert.assertTrue(sessionParams.getElements().contains("lens.session.cluster.user=testlensuser"));
@@ -142,14 +133,14 @@ public class TestSessionResource extends LensJerseyTest {
 // set hive variable
 FormDataMultiPart setpart = new FormDataMultiPart();
 setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-  MediaType.APPLICATION_XML_TYPE));
+  mt));
 setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("key").build(), 
"hivevar:myvar"));
 setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("value").build(), "10"));
-APIResult result = paramtarget.request().put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+APIResult result = paramtarget.request(mt).put(Entity.entity(setpart, 
MediaType.MULTIPART_FORM_DATA_TYPE),
   APIResult.class);
 Assert.assertEquals(result.getStatus(), APIResult.Status.SUCCEEDED);
 // get myvar session params
-sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request()
+sessionParams = paramtarget.queryParam("sessionid", 
handle).queryParam("key", "hivevar:myvar").request(mt)
   .get(StringList.class);
 System.out.println("Session params:" + sessionParams.getElements());
 Assert.assertEquals(sessionParams.getElements().size(), 1);
@@ -158,39 +149,39 @@ public class TestSessionResource extends LensJerseyTest {
 // set hive conf
 setpart = new FormDataMultiPart();
 setpart.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), handle,
-  MediaType.APPLICATION_XML_TYPE));
+  mt));
   

[7/7] lens git commit: LENS-920 : Fix issues in producing and consuming json for all api

2016-02-02 Thread amareshwari
LENS-920 : Fix issues in producing and consuming json for all api


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

Branch: refs/heads/master
Commit: d559ef2e524ee6c28d45b35cca827fd507b15665
Parents: a5091fe
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Tue Feb 2 18:50:28 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Feb 2 18:50:28 2016 +0530

--
 lens-api/pom.xml|   8 +
 .../java/org/apache/lens/api/APIResult.java |  29 +-
 .../main/java/org/apache/lens/api/LensConf.java |   2 +-
 .../org/apache/lens/api/LensSessionHandle.java  |   3 +
 .../main/java/org/apache/lens/api/Priority.java |   5 +
 .../java/org/apache/lens/api/UUIDAdapter.java   |  50 ++
 .../apache/lens/api/query/QueryCostType.java|   5 +
 .../org/apache/lens/api/query/QueryHandle.java  |   4 +
 .../lens/api/query/QueryPrepareHandle.java  |   4 +
 .../lens/api/query/QueryResultSetMetadata.java  |   2 +
 .../org/apache/lens/api/query/QueryStatus.java  |   4 +
 .../apache/lens/api/query/ResultColumnType.java |   2 +
 .../lens/api/query/SchedulerJobHandle.java  |   4 +
 .../api/query/SchedulerJobInstanceHandle.java   |   4 +
 .../org/apache/lens/api/result/QueryCostTO.java |   2 +-
 .../MoxyJsonConfigurationContextResolver.java   |  38 +
 lens-api/src/main/resources/cube-0.1.xsd|  12 +-
 .../apache/lens/cli/LensCliApplicationTest.java |   2 +-
 .../cli/TestLensDimensionTableCommands.java |   2 +-
 .../resources/cube_with_no_weight_facts.xml |  16 +-
 .../resources/dim-local-storage-element.xml |   2 +-
 lens-cli/src/test/resources/dim_table.xml   |  10 +-
 lens-cli/src/test/resources/dim_table2.xml  |   8 +-
 .../resources/fact-local-storage-element.xml|   2 +-
 lens-cli/src/test/resources/fact1.xml   |  10 +-
 .../src/test/resources/fact_without_weight.xml  |  10 +-
 .../src/test/resources/lens-client-site.xml |   4 +-
 lens-cli/src/test/resources/logback.xml |  49 ++
 lens-cli/src/test/resources/sample-cube.xml |  18 +-
 lens-cli/src/test/resources/test-detail.xml |   4 +-
 lens-cli/src/test/resources/test-dimension.xml  |  16 +-
 .../org/apache/lens/client/LensConnection.java  |   5 +-
 .../apache/lens/client/LensMetadataClient.java  | 196 ++---
 .../org/apache/lens/client/LensStatement.java   |  34 +-
 .../apache/lens/examples/SampleMetastore.java   |   3 +
 lens-examples/src/main/resources/city.xml   |   8 +-
 .../src/main/resources/city_subset.xml  |   4 +-
 lens-examples/src/main/resources/city_table.xml |  10 +-
 lens-examples/src/main/resources/customer.xml   |  14 +-
 .../src/main/resources/customer_table.xml   |  14 +-
 lens-examples/src/main/resources/dim_table.xml  |  10 +-
 lens-examples/src/main/resources/dim_table2.xml |   8 +-
 lens-examples/src/main/resources/dim_table3.xml |   8 +-
 lens-examples/src/main/resources/dim_table4.xml |  10 +-
 lens-examples/src/main/resources/fact1.xml  |  10 +-
 lens-examples/src/main/resources/fact2.xml  |  12 +-
 lens-examples/src/main/resources/product.xml|  16 +-
 .../src/main/resources/product_db_table.xml |  14 +-
 .../src/main/resources/product_table.xml|  16 +-
 lens-examples/src/main/resources/rawfact.xml|  16 +-
 .../resources/sales-aggr-continuous-fact.xml|  26 +-
 .../src/main/resources/sales-aggr-fact1.xml |  38 +-
 .../src/main/resources/sales-aggr-fact2.xml |  28 +-
 lens-examples/src/main/resources/sales-cube.xml |  54 +-
 .../src/main/resources/sales-raw-fact.xml   |  40 +-
 .../src/main/resources/sample-cube.xml  |  16 +-
 .../main/resources/sample-db-only-dimension.xml |   8 +-
 .../src/main/resources/sample-dimension.xml |   8 +-
 .../src/main/resources/sample-dimension2.xml|   6 +-
 .../java/org/apache/lens/ml/server/MLApp.java   |   5 +
 .../java/org/apache/lens/ml/TestMLRunner.java   |   8 -
 .../server/api/driver/InMemoryResultSet.java|   2 +-
 lens-server/pom.xml |   9 -
 .../java/org/apache/lens/server/BaseApp.java|  53 ++
 .../java/org/apache/lens/server/LensServer.java |   1 -
 .../apache/lens/server/ServerModeFilter.java|  15 +-
 .../metastore/CubeMetastoreServiceImpl.java |  24 +-
 .../apache/lens/server/metastore/JAXBUtils.java |  10 +-
 .../lens/server/metastore/MetastoreApp.java |  29 +-
 .../server/metastore/MetastoreResource.java |  20 +-
 .../org/apache/lens/server/query/QueryApp.java  |  24 +-
 .../lens/server/query/QueryServiceResource.java |   4 +-
 .../lens/server/query/save/SavedQueryApp.java   |  22 +-
 .../server/query/save/SavedQueryResource.java   |   4 +-
 .../lens/serv

lens git commit: LENS-970 : Send hivedriver and query-lib test logs to target/test.log

2016-02-27 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master d81211723 -> 84831297c


LENS-970 : Send hivedriver and query-lib test logs to target/test.log


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

Branch: refs/heads/master
Commit: 84831297c3e090ff603598854f95e63a5f9d3ae7
Parents: d812117
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Sat Feb 27 22:40:55 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Feb 27 22:40:55 2016 +0530

--
 lens-driver-hive/src/test/resources/logback.xml | 10 +++---
 lens-query-lib/src/test/resources/logback.xml   | 12 
 2 files changed, 15 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/84831297/lens-driver-hive/src/test/resources/logback.xml
--
diff --git a/lens-driver-hive/src/test/resources/logback.xml 
b/lens-driver-hive/src/test/resources/logback.xml
index 6da5fa4..c32886d 100644
--- a/lens-driver-hive/src/test/resources/logback.xml
+++ b/lens-driver-hive/src/test/resources/logback.xml
@@ -20,13 +20,17 @@
 
 -->
 
-  
+  
+target/test.log
 
-  %d (%t) [%p - %l] %m%n
+  %d{dd MMM  HH:mm:ss,SSS} [%t] %-5p %c %L - %m%n
 
+
+  INFO
+
   
   
-
+
   
 
 

http://git-wip-us.apache.org/repos/asf/lens/blob/84831297/lens-query-lib/src/test/resources/logback.xml
--
diff --git a/lens-query-lib/src/test/resources/logback.xml 
b/lens-query-lib/src/test/resources/logback.xml
index 2aa685f..c32886d 100644
--- a/lens-query-lib/src/test/resources/logback.xml
+++ b/lens-query-lib/src/test/resources/logback.xml
@@ -20,13 +20,17 @@
 
 -->
 
-  
+  
+target/test.log
 
-  %d (%t) [%p - %l] %m%n
+  %d{dd MMM  HH:mm:ss,SSS} [%t] %-5p %c %L - %m%n
 
+
+  INFO
+
   
-  
-
+  
+
   
 
 



lens git commit: LENS-933 : Allow presubmit hook to throw LensException

2016-01-27 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 919936bec -> 8a3657291


LENS-933 : Allow presubmit hook to throw LensException


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

Branch: refs/heads/master
Commit: 8a36572918540e83eae8c16a45c8479879ae7949
Parents: 919936b
Author: Rajat Khandelwal <prongs@apache,org>
Authored: Wed Jan 27 16:49:03 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Jan 27 16:49:03 2016 +0530

--
 .../java/org/apache/lens/server/api/driver/DriverQueryHook.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/8a365729/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
index 70d999a..ecac6be 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryHook.java
@@ -21,6 +21,7 @@
  */
 package org.apache.lens.server.api.driver;
 
+import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.query.AbstractQueryContext;
 
 /**
@@ -45,6 +46,7 @@ public interface DriverQueryHook {
   /**
* Should be Called before launch on the driver
* @param ctx
+   * @throws LensException
*/
-  void preLaunch(AbstractQueryContext ctx);
+  void preLaunch(AbstractQueryContext ctx) throws LensException;
 }



lens git commit: LENS-951 : Fix test failures in java8

2016-02-17 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 223da282d -> c1e4434fd


LENS-951 : Fix test failures in java8


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

Branch: refs/heads/master
Commit: c1e4434fde3143d38adc4fb5c501cad33ae6268b
Parents: 223da28
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Wed Feb 17 14:27:25 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Feb 17 14:27:25 2016 +0530

--
 .../src/test/resources/toString/org.apache.lens.api.LensConf.xml | 4 
 .../test/resources/toString/org.apache.lens.api.LensConf.yaml| 1 -
 .../toString/org.apache.lens.api.query.LensPreparedQuery.xml | 4 
 .../toString/org.apache.lens.api.query.LensPreparedQuery.yaml| 1 -
 .../resources/toString/org.apache.lens.api.query.LensQuery.xml   | 4 
 .../resources/toString/org.apache.lens.api.query.LensQuery.yaml  | 1 -
 6 files changed, 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c1e4434f/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.xml 
b/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.xml
index 41fc022..0f6447d 100644
--- a/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.xml
+++ b/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.xml
@@ -22,10 +22,6 @@
 
   
 
-  key2
-  value2
-
-
   key1
   value1
 

http://git-wip-us.apache.org/repos/asf/lens/blob/c1e4434f/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.yaml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.yaml 
b/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.yaml
index 82548fd..a8d3dc5 100644
--- a/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.yaml
+++ b/lens-api/src/test/resources/toString/org.apache.lens.api.LensConf.yaml
@@ -13,5 +13,4 @@
 # 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.
-key2: value2
 key1: value1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lens/blob/c1e4434f/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.xml
 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.xml
index 1276b61..99fe1b4 100644
--- 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.xml
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.xml
@@ -31,10 +31,6 @@
   
 
   
-key2
-value2
-  
-  
 key1
 value1
   

http://git-wip-us.apache.org/repos/asf/lens/blob/c1e4434f/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.yaml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.yaml
 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.yaml
index 7893ec0..8940954 100644
--- 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.yaml
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensPreparedQuery.yaml
@@ -20,5 +20,4 @@ Prepared User: user
 Selected Driver Name: selected-driver
 Driver Query: select blah from driver table
 Conf:
-  key2: value2
   key1: value1

http://git-wip-us.apache.org/repos/asf/lens/blob/c1e4434f/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensQuery.xml
--
diff --git 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensQuery.xml 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensQuery.xml
index 4f84433..a681bca 100644
--- 
a/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensQuery.xml
+++ 
b/lens-api/src/test/resources/toString/org.apache.lens.api.query.LensQuery.xml
@@ -48,10 +48,6 @@
   
 
   
-key2
-value2
-  
-  
 key1
 value1
   

http://git-wip-us.apache.org/repos/asf/lens/blob/c1

lens git commit: LENS-931 : Add unit test for fetch results being called before query completion

2016-02-17 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master c1e4434fd -> c4fa10723


LENS-931 : Add unit test for fetch results being called before query completion


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

Branch: refs/heads/master
Commit: c4fa10723e094b07c6a0ba4dc3b2e490a0ed189c
Parents: c1e4434
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Wed Feb 17 14:30:04 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Feb 17 14:30:04 2016 +0530

--
 .../lens/server/query/TestQueryService.java | 62 +++-
 1 file changed, 47 insertions(+), 15 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c4fa1072/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 737c99a..699fa68 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
@@ -46,14 +46,13 @@ import org.apache.lens.api.result.LensErrorTO;
 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.lib.query.FilePersistentFormatter;
 import org.apache.lens.lib.query.FileSerdeFormatter;
 import org.apache.lens.server.LensJerseyTest;
 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.driver.InMemoryResultSet;
-import org.apache.lens.server.api.driver.LensDriver;
-import org.apache.lens.server.api.driver.LensResultSetMetadata;
+import org.apache.lens.server.api.driver.*;
 import org.apache.lens.server.api.error.LensDriverErrorCode;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.metrics.LensMetricsRegistry;
@@ -697,7 +696,8 @@ public class TestQueryService extends LensJerseyTest {
   fail("unexpected cancel status: " + result.getStatus());
 }
 
-// Test http download end point
+// 1. Test http download end point and result path should be correct (when 
both driver and server persist)
+// 2. Test Fetch result should fail before query is marked successful
 log.info("Starting httpendpoint test");
 final FormDataMultiPart mp3 = new FormDataMultiPart();
 mp3.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), 
lensSessionId,
@@ -707,14 +707,31 @@ public class TestQueryService extends LensJerseyTest {
 mp3.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("operation").build(), 
"execute"));
 LensConf conf = new LensConf();
 conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+conf.addProperty(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, 
"true");
+conf.addProperty(LensConfConstants.QUERY_OUTPUT_FORMATTER, 
DeferredPersistentResultFormatter.class.getName());
+conf.addProperty("deferPersistenceByMillis", 5000); // defer persistence 
for 5 secs
 
 mp3.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(),
 conf,
   mt));
 final QueryHandle handle3 = target.request(mt).post(Entity.entity(mp3, 
MediaType.MULTIPART_FORM_DATA_TYPE),
   new GenericType<LensAPIResult>() {}).getData();
 
-// Get query
+QueryContext ctx3 = queryService.getQueryContext(handle3);
+assertFalse(ctx3.finished()); //Formatting is deferred so query will take 
time to finish
+try {
+  queryService.fetchResultSet(lensSessionId, handle3, 0, 100);
+  fail("client should not be allowed to fetch result before query finishes 
successfully");
+} catch (NotFoundException e) {
+  // Expected. Ignore
+}
 waitForQueryToFinish(target(), lensSessionId, handle3, Status.SUCCESSFUL, 
mt);
+LensResultSet rs = queryService.getResultset(handle3);
+//check persisted result path
+String expectedPath =
+ctx3.getConf().get(LensConfConstants.RESULT_SET_PARENT_DIR) + "/" + 
handle3.getHandleIdString()
++ ctx3.getConf().get(LensConfConstants.QUERY_OUTPUT_FILE_EXTN);
+assertTrue(((PersistentResultSet) 
rs).getOutputPath().endsWith(expectedPath));

lens git commit: LENS-963 : Fix table weight look up in FactPartition

2016-02-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master c4fa10723 -> 57f547a21


LENS-963 : Fix table weight look up in FactPartition


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

Branch: refs/heads/master
Commit: 57f547a215f8f34b22147cf2177f527cffc3b709
Parents: c4fa107
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Fri Feb 19 09:42:05 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Feb 19 09:42:05 2016 +0530

--
 .../java/org/apache/lens/cube/metadata/FactPartition.java| 8 ++--
 .../org/apache/lens/cube/metadata/TestFactPartition.java | 4 
 2 files changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/57f547a2/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
index 1e5ef93..355a1f0 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactPartition.java
@@ -179,9 +179,13 @@ public class FactPartition implements 
Comparable {
   }
 
   public double getAllTableWeights(ImmutableMap<String, Double> tableWeights) {
-float weight = 0;
+double weight = 0;
+Map<String, Double> tblWithoutDBWeghts = new HashMap<>();
+for (Map.Entry<String, Double> entry : tableWeights.entrySet()) {
+  
tblWithoutDBWeghts.put(entry.getKey().substring(entry.getKey().indexOf('.') + 
1), entry.getValue());
+}
 for (String tblName : getStorageTables()) {
-  Double tblWeight = tableWeights.get(tblName);
+  Double tblWeight = tblWithoutDBWeghts.get(tblName);
   if (tblWeight != null) {
 weight += tblWeight;
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/57f547a2/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestFactPartition.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestFactPartition.java 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestFactPartition.java
index e802c3c..dbcf20b 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestFactPartition.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestFactPartition.java
@@ -53,5 +53,9 @@ public class TestFactPartition {
 weights.put("st1", 0.2);
 weights.put("st2", 0.3);
 assertEquals(fp1.getAllTableWeights(ImmutableMap.copyOf(weights)), 0.5);
+weights.clear();
+weights.put("db1.st1", 0.4);
+weights.put("db2.st2", 0.5);
+assertEquals(fp1.getAllTableWeights(ImmutableMap.copyOf(weights)), 0.9);
   }
 }



lens git commit: LENS-961 : Remove unused dependencies from lens parent pom

2016-02-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 57f547a21 -> 1608b32b7


LENS-961 : Remove unused dependencies from lens parent pom


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

Branch: refs/heads/master
Commit: 1608b32b7375ac99641f03f60ab2083f8b44d617
Parents: 57f547a
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Feb 19 09:42:57 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Feb 19 09:42:57 2016 +0530

--
 lens-server/pom.xml |  9 -
 pom.xml | 39 ---
 2 files changed, 48 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/1608b32b/lens-server/pom.xml
--
diff --git a/lens-server/pom.xml b/lens-server/pom.xml
index 8dba837..75b8b32 100644
--- a/lens-server/pom.xml
+++ b/lens-server/pom.xml
@@ -143,11 +143,6 @@
 
 
 
-  org.mortbay.jetty
-  jetty
-
-
-
   org.testng
   testng
 
@@ -329,10 +324,6 @@
 
   
   
-org.mortbay.jetty
-maven-jetty-plugin
-  
-  
 org.codehaus.mojo
 exec-maven-plugin
 

http://git-wip-us.apache.org/repos/asf/lens/blob/1608b32b/pom.xml
--
diff --git a/pom.xml b/pom.xml
index b3afa59..e248114 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,6 @@
 1.7
 3.0.1
 2.5
-2.0
 2.0.1
 2.2.12
 1.4
@@ -67,10 +66,6 @@
 2.3.3
 2.3
 0.1.42
-
-0.9.0
-
-6.1.26
 2.22.1
 2.3.23
 3.0.2
@@ -93,7 +88,6 @@
 0.13.0
 0.9.5
 3.0
-${jetty.version}
 1.2.1
 1.28
 2.7
@@ -529,11 +523,6 @@
   ${jaxb2.basics.plugin.version}
 
 
-  org.mortbay.jetty
-  maven-jetty-plugin
-  ${jetty.plugin.version}
-
-
   org.codehaus.mojo
   exec-maven-plugin
   ${exec.plugin.version}
@@ -1308,11 +1297,6 @@
   
   
 org.glassfish.jersey.media
-jersey-media-json-jackson
-${jersey.version}
-  
-  
-org.glassfish.jersey.media
 jersey-media-moxy
 ${jersey.version}
   
@@ -1338,11 +1322,6 @@
 ${servlet.api.version}
   
   
-javax.servlet.jsp
-jsp-api
-${jsp.api.version}
-  
-  
 javax.xml.bind
 jaxb-api
 ${jaxb.api.version}
@@ -1355,19 +1334,6 @@
   
 
   
-org.mortbay.jetty
-jetty
-${jetty.version}
-compile
-  
-  
-org.mortbay.jetty
-jetty-plus
-${jetty.version}
-compile
-  
-
-  
 com.codahale.metrics
 metrics-core
 ${metrics.version}
@@ -1536,11 +1502,6 @@
 
   
   
-org.apache.thrift
-libthrift
-${libthrift.version}
-  
-  
 net.sf.opencsv
 opencsv
 ${opencsv.version}



lens git commit: LENS-959 : Remove cube keyword from all test cases of lens-cube

2016-02-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 1608b32b7 -> c0199ead2


LENS-959 : Remove cube keyword from all test cases of lens-cube


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

Branch: refs/heads/master
Commit: c0199ead2c4696599201b19000af2cd7a8cfa162
Parents: 1608b32
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Feb 19 09:44:16 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Feb 19 09:44:16 2016 +0530

--
 .../lens/cube/parse/TestBaseCubeQueries.java| 10 +++
 .../lens/cube/parse/TestCubeRewriter.java   | 28 ++--
 .../lens/cube/parse/TestExpressionResolver.java |  8 +++---
 .../lens/cube/parse/TestQueryMetrics.java   |  2 +-
 .../lens/cube/parse/TestRewriterPlan.java   | 10 +++
 .../lens/cube/parse/TestTimeRangeResolver.java  |  4 +--
 .../parse/TestTimeRangeWriterWithQuery.java |  2 +-
 7 files changed, 32 insertions(+), 32 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c0199ead/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
index 1d27558..de1d3ce 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
@@ -77,7 +77,7 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
 + TWO_DAYS_RANGE, conf);
 //maxCause : FACT_NOT_AVAILABLE_IN_RANGE, Ordinal : 1
 NoCandidateFactAvailableException ne2 = (NoCandidateFactAvailableException)
-getLensExceptionInRewrite("cube select dim1 from " + cubeName + " 
where " + LAST_YEAR_RANGE, getConf());
+getLensExceptionInRewrite("select dim1 from " + cubeName + " where 
" + LAST_YEAR_RANGE, getConf());
 assertEquals(ne1.compareTo(ne2), 8);
   }
 
@@ -554,7 +554,7 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
 conf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, false);
 String hql, expected;
 // Prefer fact that has a storage with part col on queried time dim
-hql = rewrite("cube select msr12 from basecube where " + TWO_DAYS_RANGE, 
conf);
+hql = rewrite("select msr12 from basecube where " + TWO_DAYS_RANGE, conf);
 expected = getExpectedQuery(BASE_CUBE_NAME, "select sum(basecube.msr12) 
FROM ", null, null,
   getWhereForDailyAndHourly2days(BASE_CUBE_NAME, "c1_testfact2_base"));
 compareQueries(hql, expected);
@@ -563,7 +563,7 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
 conf.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C4");
 conf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, true);
 LensException exc =
-  getLensExceptionInRewrite("cube select msr12 from basecube where " + 
TWO_DAYS_RANGE, conf);
+  getLensExceptionInRewrite("select msr12 from basecube where " + 
TWO_DAYS_RANGE, conf);
 NoCandidateFactAvailableException ne = (NoCandidateFactAvailableException) 
exc;
 PruneCauses.BriefAndDetailedError pruneCause = ne.getJsonMessage();
 assertTrue(pruneCause.getBrief().contains("Missing partitions"));
@@ -578,7 +578,7 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
 
 // fail on partial false. Should go to fallback column. Also testing 
transitivity of timedim relations
 conf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, false);
-hql = rewrite("cube select msr12 from basecube where " + TWO_DAYS_RANGE, 
conf);
+hql = rewrite("select msr12 from basecube where " + TWO_DAYS_RANGE, conf);
 String dTimeWhereClause = "basecube.d_time >= '" + 
HIVE_QUERY_DATE_PARSER.get().format(ABSDATE_PARSER.get().parse(
   getAbsDateFormatString(getDateUptoHours(
 TWODAYS_BACK + "' and "
@@ -598,7 +598,7 @@ public class TestBaseCubeQueries extends TestQueryRewrite {
 
 // Multiple timedims in single query. test that
 CubeQueryContext ctx =
-  rewriteCtx("cube select msr12 from basecube where " + TWO_DAYS_RANGE + " 
and " + TWO_DAYS_RANGE_TTD, conf);
+  rewriteCtx("select msr12 from basecube where " + TWO_DAYS_RANGE + " and 
" + TWO_DAYS_RANGE_TTD, conf);
 assertEquals(ctx

lens git commit: LENS-990 : Fix exception fetching results while purging a failed query

2016-03-21 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 8cd7c2022 -> a1445f3d3


LENS-990 : Fix exception fetching results while purging a failed query


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

Branch: refs/heads/master
Commit: a1445f3d35d4a7e452ced7b1ca4431051382141e
Parents: 8cd7c20
Author: Puneet Gupta <puneetgu...@apache.org>
Authored: Mon Mar 21 14:32:18 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Mar 21 14:32:18 2016 +0530

--
 .../org/apache/lens/server/api/driver/DriverQueryStatus.java | 4 
 .../java/org/apache/lens/server/api/query/QueryContext.java  | 8 
 .../apache/lens/server/query/QueryExecutionServiceImpl.java  | 2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java
index 79d8bf1..2374c1e 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java
@@ -212,4 +212,8 @@ public class DriverQueryStatus implements Serializable {
   || state.equals(DriverQueryState.CANCELED) || 
state.equals(DriverQueryState.CLOSED);
   }
 
+  public boolean isSuccessful() {
+return state.equals(DriverQueryState.SUCCESSFUL);
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index d01e4a4..8ee8a3b 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -335,10 +335,10 @@ public class QueryContext extends AbstractQueryContext {
   public boolean isResultAvailableInDriver() {
 // result is available in driver if driverStatus.isResultSetAvailable() - 
will be true for fetching inmemory
 // result set.
-// if result is persisted in driver driverStatus.isResultSetAvailable() 
will be false
-// so, for select queries, if result is persisted in driver, we return 
true sothat the result can be fetched thru
-// persistent resultset
-return isDriverPersistent() || driverStatus.isResultSetAvailable();
+// if result is persisted in driver driverStatus.isResultSetAvailable() 
will be false but isDriverPersistent will
+// be true. So, for select queries, if result is persisted in driver, we 
return true so that the result can be
+//  fetched thru persistent resultset
+return driverStatus.isSuccessful() && (isDriverPersistent() || 
driverStatus.isResultSetAvailable());
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/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 4c95506..90c25e4 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
@@ -538,7 +538,7 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
   if (ctx.isResultAvailableInDriver()) {
 try {
   driverRS = ctx.getSelectedDriver().fetchResultSet(getCtx());
-} catch (LensException e) {
+} catch (Exception e) {
   log.error(
   "Error while getting result ser form driver {}. Driver result 
set based purging logic will be ignored",
   ctx.getSelectedDriver(), e);



lens git commit: LENS-853 : Quit shell should close session all times

2016-03-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 0ba17ef5c -> b7773d6c7


LENS-853 : Quit shell should close session all times


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

Branch: refs/heads/master
Commit: b7773d6c74cc323be10c0f416f4ec93d8711fe00
Parents: 0ba17ef
Author: Raju Bairishetti <r...@apache.org>
Authored: Sat Mar 5 07:45:27 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Mar 5 07:45:27 2016 +0530

--
 .../apache/lens/cli/commands/BaseLensCommand.java| 12 +++-
 .../lens/cli/TestLensConnectionCliCommands.java  |  1 -
 .../org/apache/lens/cli/TestLensQueryCommands.java   | 15 ++-
 .../apache/lens/server/session/SessionResource.java  |  1 +
 4 files changed, 22 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b7773d6c/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
index 0c10198..be1ca12 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
@@ -57,7 +57,8 @@ public class BaseLensCommand implements ExecutionProcessor {
   protected DefaultPrettyPrinter pp;
 
   /** The is connection active. */
-  protected static boolean isConnectionActive;
+  protected boolean isConnectionActive;
+
   public static final String DATE_FMT = "-MM-dd'T'HH:mm:ss:SSS";
 
   private LensClient lensClient = null;
@@ -74,7 +75,7 @@ public class BaseLensCommand implements ExecutionProcessor {
 return DATE_PARSER.get().format(dt);
   }
 
-  static {
+  private void registerShutDownHook() {
 Runtime.getRuntime().addShutdownHook(new Thread() {
   public void run() {
 closeClientConnection();
@@ -85,10 +86,10 @@ public class BaseLensCommand implements ExecutionProcessor {
   /**
* Close client connection.
*/
-  protected static synchronized void closeClientConnection() {
+  protected synchronized void closeClientConnection() {
 if (isConnectionActive) {
   log.debug("Request for stopping lens cli received");
-  getClientWrapper().getClient().closeConnection();
+  lensClient.closeConnection();
   isConnectionActive = false;
 }
   }
@@ -97,6 +98,7 @@ public class BaseLensCommand implements ExecutionProcessor {
* Instantiates a new base lens command.
*/
   public BaseLensCommand() {
+registerShutDownHook();
 mapper = new ObjectMapper();
 mapper.setSerializationInclusion(Inclusion.NON_NULL);
 mapper.setSerializationInclusion(Inclusion.NON_DEFAULT);
@@ -118,13 +120,13 @@ public class BaseLensCommand implements 
ExecutionProcessor {
   }
 
   public void setClient(LensClient client) {
+isConnectionActive = true;
 lensClient = client;
   }
 
   public LensClient getClient() {
 if (lensClient == null) {
   setClient(getClientWrapper().getClient());
-  isConnectionActive = true;
 }
 return lensClient;
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/b7773d6c/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
index 3c4d320..d1ec94e 100644
--- 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
+++ 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
@@ -195,7 +195,6 @@ public class TestLensConnectionCliCommands extends 
LensCliApplicationTest {
 }
   }
 
-
   /**
* Test jar commands.
*/

http://git-wip-us.apache.org/repos/asf/lens/blob/b7773d6c/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
index 97e5512..616bf5d 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
@@ -92,6 +92,10 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 return qCom;
   }
 
+  private void clos

svn commit: r12897 - in /release/lens: 2.4-beta/ 2.5-beta/

2016-03-28 Thread amareshwari
Author: amareshwari
Date: Mon Mar 28 11:58:47 2016
New Revision: 12897

Log:
Release 2.5-beta

Added:
release/lens/2.5-beta/
release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz   (with props)
release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.asc
release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.md5
release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.sha512
release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip   (with 
props)
release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.asc
release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.md5
release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.sha512
Removed:
release/lens/2.4-beta/

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz
==
Binary file - no diff available.

Propchange: release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz
--
svn:mime-type = application/octet-stream

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.asc
==
--- release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.asc (added)
+++ release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.asc Mon Mar 28 
11:58:47 2016
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIcBAABAgAGBQJW66VhAAoJEImUbS/iTkagzuoP/jQ3AbSR4FVPjZLE9sEvsXx1
+McmSo8Ovd9fINObwpBA2WVl898pXtoKfT3A1CO+zJwXBCoZKS9TUqFADCbSaZFIl
+PyXKiHrJXyomulQQLeWZO3HBZaJldG8YaEU+Tl5X2lcqYEyx9cspGDq6tR1GBZ3q
+5n3wUEqPfbSUUJVBESjw+29UGir435xfM3RL8CuDr1y4sq7z/zshFT8xuInAaDZ2
+8LbA85bckgrqBklay3guyywN2Le/ezY6p79xhYCvd842IPnyROaVmRz9pFrhbTuB
+bsgw5XIoWJbCgNAmkGQZWSgwV6uCp7y9L5yuHhcfgbMlSTsjHpPquTD7yWDA0Ub1
+dCM/e84hrOr2LtZ8GSjmVK/ugxGEQUyFwBB1SlfEuBZlc0D5tqQzJu6XsbXgSgSc
+0gOr+nsPVANV6P9UMpaYywn7WvpE1dRjGrXzzjLXUg2kzTfm/rduZ0LRBMvDKAfK
+nNpfOZ4PsHKfb3eyFL2UglWDEXF99BVF0hwulWss1rZSS5ExUvYVNGXHxgyroDIo
+CpiubueoF63TrS3uSzbT8xZpiezAqBKcESFhwp4lvHOjp5pxciPTmzrqeUEK7jm2
+7n59ZRbek25r18xfqbHqU6yfySDEQ0A3NaYHYlt7ScoTw0WCyQgv/qRK2lAx6Par
+BvEvO8jIxLTXHVy2+VOZ
+=ACDa
+-END PGP SIGNATURE-

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.md5
==
--- release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.md5 (added)
+++ release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.md5 Mon Mar 28 
11:58:47 2016
@@ -0,0 +1,2 @@
+apache-lens-2.5.0-beta-bin.tar.gz: 73 CA 22 29 B6 4E 7E 77  58 7F 47 49 52 56 
72
+   98

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.sha512
==
--- release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.sha512 (added)
+++ release/lens/2.5-beta/apache-lens-2.5.0-beta-bin.tar.gz.sha512 Mon Mar 28 
11:58:47 2016
@@ -0,0 +1,4 @@
+apache-lens-2.5.0-beta-bin.tar.gz: 17273D87 7AD70C2D 68C4DB36 3C152D39 E61D325C
+   BCAA147E 45F961DE 750A1436 EBE81738 0E434671
+   E45E BF56E537 1B3A7D7E 7F0176BD CE62011A
+   2EAA40DF

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip
==
Binary file - no diff available.

Propchange: release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip
--
svn:mime-type = application/octet-stream

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.asc
==
--- release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.asc (added)
+++ release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.asc Mon Mar 
28 11:58:47 2016
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIcBAABAgAGBQJW66PrAAoJEImUbS/iTkagiZMP/j4YP+MOkSTEzpZVfJLYnVbf
+QyrH9pCpUvlEXF8Z4PwlPCCsKH89VgEyxNp4Psqi9iek3WYB7rboJBMdC47e/NWM
+Gz84qc5zvJK4KPO+iQlI2ef4fk4ojfvH/qPjX9X2mJ8L8h3EEotBc6fJnzdnE+dE
+4Js+2yL8XZugXEBxxYg6OQ5vL8TFHCq+Dkv9zoek4YpeArXMPfn0bwbrZyXJfLPW
+4oj/CHvJVsrU7ibq0ZdVZrK4eIp1YNb1v/aXYrw72Q0FcIDfxjei++eDLxsy7m2m
+nKR5vqNNDXbuUfyg3uR87a2oYoiOHW/B5YgO2+5X0cpIRelQeDbvxQW+JNS6g7Fh
+LmwtxI8eHOh0o7kQfjbcBKdeRfKDMkchzRpEXznZITRwdN9TtIGodjMhIoxnHaGH
+yjhsCRxqWUIdL51vCmhu8H+848nAzXTbpxybx6yqnCdjZa2tJ/lRaiXYtT9l37Fs
+16I3pb5UJlpl/sckWUTsQB0DqRazNka5BTiqtTritYuZ2zaxoSzafG5Pz9l3S+vM
+6dlk19CjZufaIh39nME1BVm559j00Xo0ZidbMWwZ8VoQPPH69jXLlDdHsRiHrxBI
+zy4wg+DYXA69elYiG0Qg7g+3ZQgP++dpIhddth4hx+o9rcejYf6vRzhaqFtfafJS
+pKD1XebhObYaIXYT8sxG
+=7ESF
+-END PGP SIGNATURE-

Added: release/lens/2.5-beta/apache-lens-2.5.0-beta-source-release.zip.md5

lens git commit: LENS-993 : Fix thread pool creations on server

2016-03-28 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master a1445f3d3 -> aeca66ad4


LENS-993 : Fix thread pool creations on server


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

Branch: refs/heads/master
Commit: aeca66ad432d7717b9d7651d7a3c9277da25bb70
Parents: a1445f3
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Mon Mar 28 15:37:11 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Mar 28 15:37:11 2016 +0530

--
 .../server/api/events/AsyncEventListener.java   | 22 +++-
 .../lens/server/query/QueryEndNotifier.java |  5 ++---
 .../server/query/QueryExecutionServiceImpl.java |  3 ++-
 .../lens/server/query/ResultFormatter.java  |  5 ++---
 .../lens/server/query/TestEventService.java |  2 +-
 5 files changed, 15 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/aeca66ad/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
index 84728e5..9473465 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/events/AsyncEventListener.java
@@ -60,44 +60,38 @@ public abstract class AsyncEventListener implements LensEve
* Create a single threaded event listener with an unbounded queue, with 
daemon threads.
*/
   public AsyncEventListener() {
-this(1, 1);
+this(1);
   }
 
   /**
* Create a event listener with poolSize threads with an unbounded queue and 
daemon threads.
*
* @param poolSize the pool size
-   * @param maxPoolSize the max pool size
*/
-  public AsyncEventListener(int poolSize, int maxPoolSize) {
-this(poolSize, maxPoolSize, -1, 10, true);
+  public AsyncEventListener(int poolSize) {
+this(poolSize, 60, true);
   }
 
   /**
* Create an asynchronous event listener which uses a thread poool to 
process events.
*
* @param poolSize   size of the event processing pool
-   * @param maxPoolSizethe max pool size
-   * @param maxQueueSize   max size of the event queue, if this is non 
positive, then the queue is unbounded
* @param timeOutSeconds time out in seconds when an idle thread is destroyed
* @param isDaemon   if the threads used to process should be daemon 
threads,
*   if false, then implementation should call stop()
*   to stop the thread pool
*/
-  public AsyncEventListener(int poolSize, int maxPoolSize, int maxQueueSize, 
long timeOutSeconds,
-  final boolean isDaemon) {
-if (maxQueueSize <= 0) {
-  eventQueue = new LinkedBlockingQueue();
-} else {
-  eventQueue = new ArrayBlockingQueue(maxQueueSize);
-}
+  public AsyncEventListener(int poolSize, long timeOutSeconds, final boolean 
isDaemon) {
+eventQueue = new LinkedBlockingQueue<>();
 
 ThreadFactory factory = new BasicThreadFactory.Builder()
   .namingPattern(getName()+"_AsyncThread-%d")
   .daemon(isDaemon)
   .priority(Thread.NORM_PRIORITY)
   .build();
-processor = new ThreadPoolExecutor(poolSize, maxPoolSize, timeOutSeconds, 
TimeUnit.SECONDS, eventQueue, factory);
+// fixed pool with min and max equal to poolSize
+processor = new ThreadPoolExecutor(poolSize, poolSize, timeOutSeconds, 
TimeUnit.SECONDS, eventQueue, factory);
+processor.allowCoreThreadTimeOut(true);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/lens/blob/aeca66ad/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
index 63c38d9..91fddc9 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEndNotifier.java
@@ -95,8 +95,7 @@ public class QueryEndNotifier extends 
AsyncEventListener {
   private final LogSegregationContext logSegregationContext;
 
   /** QueryEndNotifier core and max pool size */
-  private static final int CORE_POOL_SIZE = 2;
-  private static final int MAX_POOL_SIZE = 5;
+  private static final int CORE_POOL_SIZE = 5;

[2/3] lens git commit: LENS-788 : Push expressions before flattening and convert filters to array_contains filters for bridge tables

2016-03-29 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/dba885ca/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
index e8ad8ff..e8905c1 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java
@@ -48,14 +48,14 @@ public class TestBridgeTableQueries extends 
TestQueryRewrite {
   public void testBridgeTablesWithoutDimtablePartitioning() throws Exception {
 String query = "select usersports.name, sum(msr2) from basecube where " + 
TWO_DAYS_RANGE;
 String hqlQuery = rewrite(query, hConf);
-String expected = getExpectedQuery("basecube", "select usersports.name, 
sum(basecube.msr2) FROM ",
+String expected = getExpectedQuery("basecube", "select usersports.balias0, 
sum(basecube.msr2) FROM ",
   " join " + getDbName() + "c1_usertable userdim ON basecube.userid = 
userdim.id "
-+ " join (select user_interests.user_id as 
user_id,collect_set(usersports.name) as name"
++ " join (select user_interests.user_id as 
user_id,collect_set(usersports.name) as balias0"
 + " from " + getDbName() + "c1_user_interests_tbl user_interests"
 + " join " + getDbName() + "c1_sports_tbl usersports on 
user_interests.sport_id = usersports.id"
 + " group by user_interests.user_id) usersports"
 + " on userdim.id = usersports.user_id ",
-  null, "group by usersports.name", null,
+  null, "group by usersports.balias0", null,
   getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base"));
 TestCubeRewriter.compareQueries(hqlQuery, expected);
 // run with chain ref column
@@ -68,14 +68,14 @@ public class TestBridgeTableQueries extends 
TestQueryRewrite {
   public void testBridgeTablesForExprFieldWithoutDimtablePartitioning() throws 
Exception {
 String query = "select substr(usersports.name, 10), sum(msr2) from 
basecube where " + TWO_DAYS_RANGE;
 String hqlQuery = rewrite(query, hConf);
-String expected = getExpectedQuery("basecube", "select 
substr(usersports.name, 10), sum(basecube.msr2) FROM ",
+String expected = getExpectedQuery("basecube", "select usersports.balias0, 
sum(basecube.msr2) FROM ",
   " join " + getDbName() + "c1_usertable userdim ON basecube.userid = 
userdim.id "
-+ " join (select user_interests.user_id as 
user_id,collect_set(usersports.name) as name"
++ " join (select user_interests.user_id as 
user_id,collect_set(substr(usersports.name, 10)) as balias0"
 + " from " + getDbName() + "c1_user_interests_tbl user_interests"
 + " join " + getDbName() + "c1_sports_tbl usersports on 
user_interests.sport_id = usersports.id"
 + " group by user_interests.user_id) usersports"
 + " on userdim.id = usersports.user_id ",
-  null, "group by substr(( usersports . name ),  10 )", null,
+  null, "group by usersports.balias0", null,
   getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base"));
 TestCubeRewriter.compareQueries(hqlQuery, expected);
 // run with chain ref column
@@ -109,14 +109,14 @@ public class TestBridgeTableQueries extends 
TestQueryRewrite {
 conf.set(CubeQueryConfUtil.BRIDGE_TABLE_FIELD_AGGREGATOR, "custom_aggr");
 String query = "select usersports.name, sum(msr2) from basecube where " + 
TWO_DAYS_RANGE;
 String hqlQuery = rewrite(query, conf);
-String expected = getExpectedQuery("basecube", "select usersports.name, 
sum(basecube.msr2) FROM ",
+String expected = getExpectedQuery("basecube", "select usersports.balias0, 
sum(basecube.msr2) FROM ",
   " join " + getDbName() + "c1_usertable userdim ON basecube.userid = 
userdim.id "
-+ " join (select user_interests.user_id as 
user_id,custom_aggr(usersports.name) as name"
++ " join (select user_interests.user_id as 
user_id,custom_aggr(usersports.name) as balias0"
 + " from " + getDbName() + "c1_user_interests_tbl user_interests"
 + " join " + getDbName() + "c1_sports_tbl usersports on 
user_interests.sport_id = usersports.id"
 + " group by user_interests.user_id) usersports"
 + " on userdim.id = usersports.user_id ",
-  null, "group by usersports.name", null,
+  null, "group by usersports.balias0", null,
   getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base"));
 TestCubeRewriter.compareQueries(hqlQuery, expected);
 // run with chain ref column
@@ -129,16 +129,17 @@ public class TestBridgeTableQueries extends 
TestQueryRewrite {
   public void testBridgeTablesWithMegringChains() throws Exception {
 String query = "select userInterestIds.sport_id, usersports.name, 
sum(msr2) from basecube where 

[3/3] lens git commit: LENS-788 : Push expressions before flattening and convert filters to array_contains filters for bridge tables

2016-03-29 Thread amareshwari
LENS-788 : Push expressions before flattening and convert filters to 
array_contains filters for bridge tables


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

Branch: refs/heads/master
Commit: dba885ca972e8a11281f1bc44ceb4b7dd3906ce0
Parents: 79b95f0
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Wed Mar 30 10:25:20 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Mar 30 10:25:20 2016 +0530

--
 .../apache/lens/cube/parse/CandidateFact.java   |  51 +-
 .../lens/cube/parse/CubeQueryConfUtil.java  |   5 +
 .../lens/cube/parse/CubeQueryContext.java   |  21 +-
 .../lens/cube/parse/DefaultAliasDecider.java|  13 +-
 .../apache/lens/cube/parse/DefaultQueryAST.java |   5 +-
 .../apache/lens/cube/parse/DimHQLContext.java   |  29 +-
 .../lens/cube/parse/DimOnlyHQLContext.java  |  10 -
 .../org/apache/lens/cube/parse/HQLParser.java   |  49 +-
 .../apache/lens/cube/parse/JoinResolver.java|   9 +-
 .../lens/cube/parse/MultiFactHQLContext.java|   3 -
 .../org/apache/lens/cube/parse/QueryAST.java|   6 +-
 .../parse/SingleFactMultiStorageHQLContext.java |   8 -
 .../SingleFactSingleStorageHQLContext.java  |  12 -
 .../lens/cube/parse/join/AutoJoinContext.java   | 104 +---
 .../cube/parse/join/BridgeTableJoinContext.java | 321 ++
 .../src/main/resources/olap-query-conf.xml  |  18 +
 .../apache/lens/cube/parse/CubeTestSetup.java   |  19 +-
 .../lens/cube/parse/TestBridgeTableQueries.java | 618 +--
 .../cube/parse/TestDefaultAliasDecider.java |  53 ++
 .../apache/lens/cube/parse/TestHQLParser.java   |  82 +++
 .../org/apache/lens/cube/parse/TestQuery.java   |  18 +-
 .../cube/parse/join/TestBridgeTableJoinCtx.java | 122 
 lens-dist/src/main/assembly/bin-dist.xml|  16 +
 .../lens/examples/PopulateSampleMetastore.java  |   2 +
 .../apache/lens/examples/SampleMetastore.java   |   4 +
 .../src/main/resources/cube-queries.sql |   6 +-
 .../resources/customer-interests-local-part.xml |  30 +
 .../resources/customer-interests-local.data |   6 +
 .../src/main/resources/customer-interests.xml   |  31 +
 .../main/resources/customer_interests_table.xml |  52 ++
 .../src/main/resources/db-storage-schema.sql|  18 +
 .../src/main/resources/interests-local-part.xml |  29 +
 .../src/main/resources/interests-local.data |   4 +
 lens-examples/src/main/resources/interests.xml  |  31 +
 .../src/main/resources/interests_table.xml  |  51 ++
 lens-examples/src/main/resources/sales-cube.xml |  24 +
 src/site/apt/user/olap-cube.apt |   8 +
 src/site/apt/user/olap-query-conf.apt   |  48 +-
 tools/conf/client/lens-client-site.xml  |  16 +-
 39 files changed, 1678 insertions(+), 274 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/dba885ca/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
index 82ca4f4..3f724b6 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java
@@ -23,8 +23,6 @@ import static org.apache.hadoop.hive.ql.parse.HiveParser.*;
 import java.util.*;
 
 import org.apache.lens.cube.metadata.*;
-import org.apache.lens.cube.parse.HQLParser.ASTNodeVisitor;
-import org.apache.lens.cube.parse.HQLParser.TreeNode;
 import org.apache.lens.server.api.error.LensException;
 
 import org.apache.commons.lang.StringUtils;
@@ -76,6 +74,8 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
   @Getter
   @Setter
   private Integer limitValue;
+  @Getter
+  private String fromString;
   private final List selectIndices = Lists.newArrayList();
   private final List dimFieldIndices = Lists.newArrayList();
   private Collection columns;
@@ -166,7 +166,7 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
   }
 
   public boolean isExpressionAnswerable(ASTNode node, CubeQueryContext 
context) throws LensException {
-return getColumns().containsAll(getColsInExpr(context, 
context.getCube().getAllFieldNames(), node));
+return 
getColumns().containsAll(HQLParser.getColsInExpr(context.getAliasForTableName(context.getCube()),
 node));
   }
 
   /**
@@ -182,7 +182,7 @@ public class CandidateFact implements CandidateTable, 
QueryAST {
 int currentChild = 0;
 for (int i = 0; i < cubeql.getSelectAST().get

svn commit: r12823 - /release/lens/KEYS

2016-03-23 Thread amareshwari
Author: amareshwari
Date: Wed Mar 23 08:21:03 2016
New Revision: 12823

Log:
Uploading Deepak Barr's KEYS

Modified:
release/lens/KEYS

Modified: release/lens/KEYS
==
--- release/lens/KEYS (original)
+++ release/lens/KEYS Wed Mar 23 08:21:03 2016
@@ -1451,3 +1451,73 @@ OSZtGkNYe7hcZ+/Qxnuj/Si0nIVpgKOV0ZRO6QK+
 qA==
 =hmbB
 -END PGP PUBLIC KEY BLOCK-
+pub   4096R/E24E46A0 2016-02-25 [expires: 2020-02-25]
+  Key fingerprint = D12C 73D3 550F F992 825B  6071 8994 6D2F E24E 46A0
+uid  Deepak Kumar Barr <deepakb...@apache.org>
+sig 315A87037 2016-02-25  Rajat Khandelwal <pro...@apache.org>
+sig 3E24E46A0 2016-02-25  Deepak Kumar Barr <deepakb...@apache.org>
+sub   4096R/D84CF2BC 2016-02-25 [expires: 2020-02-25]
+sig  E24E46A0 2016-02-25  Deepak Kumar Barr <deepakb...@apache.org>
+-BEGIN PGP PUBLIC KEY BLOCK-
+
+mQINBFbO+/4BEACdsXxgskD768xS/Q5swV/hqF6Ht+0/tHSX6Va/pi/VMiInlpGw
+cn38LGtXIHjt4AsUpTrvuTvzJzCrV6Pchv9tx6/RqOT2E1rVkqtewsChHuTXhYPM
+avWsOSUDPL6HemLK791b2lL2pHPrv5bzK6T3eBWIXmy5ERyimPj354OQAi7bqSsi
+f0cts6x0gGFJkr7mMnS/TdlXjYjn2qHO55EY1TeZWScleSoQJCTMuE8UlyxfsbS4
+cRm1zL7XjHesgfG/3vFRK/J6P6nNAbTotT6W5SbJ2Kevph9ZDv6nEs5oCAqHd70S
+/693zsh8BjwP0BKYim19UQItirJ0Sk//2OOuQ3cc37LgsExFV4ldhOKnrP6W4AJI
+KDNGb5LZlEbzPw7WOCQ5QzMW8xeVFJ1wfTfvZzdwWPdjDVd3baufF3b8bfYj/G5T
+EKsxl39xsxI6/OZCeOKI5UcsOnwnMWGD/XWaa316tT+3bzbqFeDsLXW1u63R5sng
+fN1ei+9imlKBHW7dBmAw9/+s1HdlVAi624s+NbnHi2vt9iCL0hMAGuCQlqVQc/3q
+b261RYL+uLPCWf3MHUU9AX24vc5D7ZTVLXV+G2fibX7XEdj2HKHSGTWTLZILEWXu
+QKd6pai+b3LoIZF+UacYrPE+MIxdmYajN+AsPNyGYJs01z+eiMDirMlCHwARAQAB
+tClEZWVwYWsgS3VtYXIgQmFyciA8ZGVlcGFrYmFyckBhcGFjaGUub3JnPokCHAQT
+AQoABgUCVs7/qQAKCRDfPFJjFahwN2SbEACGS7jA6fqe6GgO3264eBOPecH44KXQ
+E5m4ieDv1urSnzlEBFvcB5Z75NIgOH5thx/tNk7Ssdr3rHZlAMpvGxs5/wHdIBKn
+mWIY9tFgiV4bkgkfVDNjvjD6k9gx86yFVtxUfiQfndfXzNeeTt4RA0xhaR3cmqB5
+NZBJloR25zoi6b0vTVJrl3RKpVAdmwlwUE9Wwz0C/hsizACEQ0S1JrhArKrwgGzd
+PbZprj/XjYrfsE7nsdzlDdPR+H2Wp1hUc231txaPhcuqMhb49xbFkYJlTcypYVxE
+MtFH9QYrD6Z0CBIxgvkfz+XNfyLQ/nawh1Lts8oZtxW/F4ee2dV6XEuJB/PuXVq1
+wBIuDEU6rOVzCbjrNtjmfD3gMp0veDsZiFNqEeXsSi94Xwh7CFB2eNVLL6rHVKT3
+3qcZrhUjJoerhgb4jbKNehkXSHatWi7ro/UkK+nuCjMyvuFcnoMLxUiEzlDL8bb/
+seJM4QnMVad2ZusNM2IfUH4tScdG4k5fb13cSpiYB2IMVXbD0P0j1Mu0bUwhLSIJ
+rzAFt/9XorC0jLIrIYwtC9tDaCKQ72mOXYOkljLzZjqTeEZD3jBr29SiUUycPxuN
+qnxs6NtY1uCURjHbraufA76ELbWQUMdU1J4E9es0fLhV10OOQTKWnHO4ypzC4RzW
+LGbIgQ8Zan83EokCPwQTAQgAKQUCVs77/gIbAwUJB4YfgAcLCQgHAwIBBhUIAgkK
+CwQWAgMBAh4BAheAAAoJEImUbS/iTkag8NUQAIJj9p6QQ9cIpI9v4xUoDI3gS/9n
+zkiPR1puG0qFiGB5sK0khZ41ygrO28wqeNfE5RadCNPQe4eJm9OO41AHnWSl0ms0
+nwfagXoBVqG28ScT8B2frnwwkKPK7tBdZcL7TXjI4Q+KO7lYuEUc7+/LYn9Pc/Q1
+RnVz76Q6KDgho4DysI1/7rHqwMdlawbWy6ZYXwePaisQ5jsReZlQR2+e+xKj8r+A
+CHQfePNHr8csP14cMi2rPD6m77JKosEGOo1hEcLTarok0XQs/Yp+nOBSkDCH5z6a
+lpcYsSfVffzkeyoc/JtIwQnKSBWIR7G80tnOuTL7aOlDhIiZiU+nU+wCy7dNn0GF
+I5F4CD9CgM5A4q2wDWOiqaaDOXEqLuDBfcJWqkt8XtQf6Qk4JQ3Iin4ArhqP25qr
+xEy4Odh2NjV8se2Mr5S6yOOJK6wRu67WTpC5jkBvTzcdZBKUExZjorx13Qrr2hNg
+/wcx6Pkfd6+cddZVUSY8Wzsm00gZyWXavHJ3WaNdABu1ZmJMkAo1H3PDkaUsarWN
+YkuLzw20x9OEApnvTm1BDYSSGX5w1NHj2Ac4faoCIbtH+g50cti3nnb+FzrATfOa
+GM2kXalQfpyHUlZpnW1VpIr2Ji7LGlb7rkAOtoN56ROc0vsV9Xlsf971gJLtNsU4
+4xMqBW8elmXCpG0YuQINBFbO+/4BEADW+50qJbne94wQcAietC7bAagfsjj3lgmO
+8wJbCw46burnWTgeFKEI07D3lwZbwlnQjJHTkmBuPEkarxLnL9qPUJAMcsLIXSiS
+5FhZqnE2+9pEuggTqQ+3rw3npLlrNorGVWi+CyioUh1EjH9RhxVQVaPlBSMx/+ZP
+GICCmEFGMMnbyKVDL3wk73e+fvP4hflBSlcvXDgDp9OK/4jtm30H8N+3ZwRvIptj
++ZnyvVPj/yWHdieBT1G6S6lhucOO0g2Meym1kXzBCD53wwcablf6WOQbSxvznSEs
+MpfuoSqoYYcGmL6SQ4E5RmLcsNvys3hhsVjwaL4BYvKXtwh5PhfiEZPzU2e4Ftka
+6PnfdyKmygSaNGRsCcOeBbH89bIox7dFOfBrw93kpiPpDD3A390LmuLw96A3gFIm
+LqMlF2eIdySmtF6qD9D53pciTAP6u0ZcKMZftXVHhfEOLftedeHAVpthDCaeGU4z
+AkWM0WGeNg6tGj+RLXWgAc0/L35RhR1k4dv/yoC0aduDx2ojTJiRYUomBbJwWR5b
+tEHldRLYfaJ8i79LNrr9CyXn7+1D7aTXKXY+jFYxsCKe7VzCxP6foK/O8aW3Q9a3
+LyVS+0Y3Dv2Miwve9zA0M679ZhkJevP3Oa9cg5tTyqgviezhMCAfy/MMT0Ojlld8
+jBn7fiQQZQARAQABiQIlBBgBCAAPBQJWzvv+AhsMBQkHhh+AAAoJEImUbS/iTkag
+R9sP/iVqyd+KmSNiF7Lc9sqjbaKd3zVZWRudB96O7aftDeSCrud2piE7xWd5ifRz
+GT11c/oqUpwfyuytjmds0fvKvtN4wlsE02jOyQLWEMOVPMhw16mnGWJqfX4kRNib
+rYlN6mEfjziDu5RGyKAM8vpnOEXgMYV/DaDllXAMpxG+4QwC3QeoN9+n4Myhu38o
+WZAu2a0+Ag05mIKh05M3Degs3MsdJcFyyneYlFJUPkAV8dkf0Cnuku872I59MkUg
+aN2m3K5k/vgsElyN6wZRWeGE4FXAnYQifwUwDhbz1HpPriFoWs1MjgCTnbuevCgW
+rPcXoEa5fFjpcCFb565Ktr7LFreeVKdTe7KsUkYDkKnci59mNAZnpF+hymdVvfqp
+966CP0UKH8Pq8quH64W4P+SHKQmC+AMJnelRxDajBZ/L8x3T/BF2eu2XRV0IrIJn
+TlfIgjQOo7BZ0cWc5URKV6yD6o9v2uGOJUGhB+cnWdPQaf1J0r4/FYMkoFevJphu
+1zMUj19RFQucZZNwnHmYtwh6tJ/4Mcx7FIhFi4MaANv48ex+fIXzLhtEusVRnxFg
+Zvj3MUKejruKx/WGcPNQOm41TuTsHiGWt9ZsY+fj8xvKLssGfBQJs620Pty1bKWv
+1ksRP8Yc23NKnj7yzRvRydZUKwhth3rrwgjElcH+PIxQjGXX
+=ld2T
+-END PGP PUBLIC KEY BLOCK-
+




lens git commit: LENS-1013 : Add postDriverSelection to DriverQueryHook

2016-04-27 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 6995962fd -> 9b7541bcb


LENS-1013 : Add postDriverSelection to DriverQueryHook


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

Branch: refs/heads/master
Commit: 9b7541bcbcc33faf3cbde71452f334783795ea27
Parents: 6995962
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Thu Apr 28 09:36:38 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Apr 28 09:36:38 2016 +0530

--
 .../org/apache/lens/driver/hive/HiveDriver.java |  6 ++-
 .../apache/lens/driver/hive/TestHiveDriver.java |  3 --
 .../lens/driver/hive/TestRemoteHiveDriver.java  |  3 --
 .../org/apache/lens/driver/jdbc/JDBCDriver.java |  6 ++-
 .../apache/lens/driver/jdbc/TestJdbcDriver.java |  3 --
 .../server/api/driver/AbstractLensDriver.java   |  7 +++
 .../lens/server/api/driver/DriverQueryHook.java | 39 --
 .../lens/server/api/driver/LensDriver.java  |  6 +++
 .../server/api/driver/NoOpDriverQueryHook.java  | 14 +++--
 .../server/api/user/MockDriverQueryHook.java| 34 +---
 .../server/query/QueryExecutionServiceImpl.java | 18 ---
 .../org/apache/lens/server/LensJerseyTest.java  | 11 +++-
 .../apache/lens/server/TestServerRestart.java   | 55 +---
 .../lens/server/query/TestQueryService.java |  7 ++-
 .../drivers/hive/hive1/hivedriver-site.xml  |  7 +++
 .../drivers/hive/hive2/hivedriver-site.xml  |  7 +++
 16 files changed, 176 insertions(+), 50 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/9b7541bc/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 6eec3f7..19a010e 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
@@ -559,7 +559,6 @@ public class HiveDriver extends AbstractLensDriver {
   Configuration qdconf = ctx.getDriverConf(this);
   qdconf.set("mapred.job.name", ctx.getQueryHandle().toString());
   decidePriority(ctx);
-  queryHook.preLaunch(ctx);
   SessionHandle sessionHandle = getSession(ctx);
   OperationHandle op = getClient().executeStatementAsync(sessionHandle, 
ctx.getSelectedDriverQuery(),
 qdconf.getValByRegex(".*"));
@@ -1370,4 +1369,9 @@ public class HiveDriver extends AbstractLensDriver {
   public boolean hasLensSession(LensSessionHandle session) {
 return lensToHiveSession.containsKey(session.getPublicId().toString());
   }
+
+  @Override
+  public DriverQueryHook getQueryHook() {
+return queryHook;
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/9b7541bc/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
--
diff --git 
a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
 
b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
index 3f77b0c..cf51909 100644
--- 
a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
+++ 
b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
@@ -39,7 +39,6 @@ import org.apache.lens.server.api.query.QueryContext;
 import org.apache.lens.server.api.query.cost.QueryCost;
 import org.apache.lens.server.api.query.priority.CostRangePriorityDecider;
 import org.apache.lens.server.api.query.priority.CostToPriorityRangeConf;
-import org.apache.lens.server.api.user.MockDriverQueryHook;
 import org.apache.lens.server.api.util.LensUtil;
 
 import org.apache.hadoop.conf.Configuration;
@@ -121,7 +120,6 @@ public class TestHiveDriver {
 conf = new HiveConf();
 conf.addResource("drivers/hive/hive1/hivedriver-site.xml");
 conf.setClass(HiveDriver.HIVE_CONNECTION_CLASS, 
EmbeddedThriftConnection.class, ThriftConnection.class);
-conf.setClass(HiveDriver.HIVE_QUERY_HOOK_CLASS, MockDriverQueryHook.class, 
DriverQueryHook.class);
 conf.set("hive.lock.manager", 
"org.apache.hadoop.hive.ql.lockmgr.EmbeddedLockManager");
 conf.setBoolean(HiveDriver.HS2_CALCULATE_PRIORITY, true);
 driver = new HiveDriver();
@@ -484,7 +482,6 @@ public class TestHiveDriver {
*/
   protected void validateExecuteAsync(QueryContext ctx, DriverQueryState 
finalState, boolean isPersisten

lens git commit: LENS-906 : Reduce test time for TestCubeMetastoreClient

2016-04-26 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master f21130992 -> 6e11d780f


LENS-906 : Reduce test time for TestCubeMetastoreClient


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

Branch: refs/heads/master
Commit: 6e11d780f8ede78745f5247d983c0f63f42fb41d
Parents: f211309
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Wed Apr 27 08:45:30 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Apr 27 08:45:30 2016 +0530

--
 .../cube/metadata/TestCubeMetastoreClient.java  | 73 ++--
 1 file changed, 69 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/6e11d780/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
index 0773005..02571ee 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
@@ -72,6 +72,10 @@ public class TestCubeMetastoreClient {
   private static Set dimensions;
   private static Set cubeMeasures;
   private static Set cubeDimensions;
+  private static Set moreMeasures = Sets.newHashSet();
+  private static Set moreDimensions = Sets.newHashSet();
+  private static Set moreCubeMeasures = Sets.newHashSet();
+  private static Set moreCubeDimensions = Sets.newHashSet();
   private static Set hourlyAndDaily = Sets.newHashSet(HOURLY, 
DAILY);
   private static final String CUBE_NAME = "testMetastoreCube";
   private static final String CUBE_NAME_WITH_PROPS = 
"testMetastoreCubeWithProps";
@@ -340,16 +344,20 @@ public class TestCubeMetastoreClient {
 });
 cubeDimensions.add(new ReferencedDimAttribute(new 
FieldSchema("zipcityname", "string", "zip city name"),
   "Zip city name", "cityFromZip", "name", null, null, null));
-cubeMeasures.addAll(dummyMeasure);
-cubeDimensions.addAll(dummyDimAttributes);
+moreCubeMeasures.addAll(cubeMeasures);
+moreCubeMeasures.addAll(dummyMeasure);
+moreCubeDimensions.addAll(cubeDimensions);
+moreCubeDimensions.addAll(dummyDimAttributes);
 cube = new Cube(cubeName, cubeMeasures, cubeDimensions, cubeExpressions, 
joinChains, emptyHashMap, 0.0);
 measures = Sets.newHashSet("msr1", "msr2", "msr3");
+moreMeasures.addAll(measures);
 for(CubeMeasure measure: dummyMeasure) {
-  measures.add(measure.getName());
+  moreMeasures.add(measure.getName());
 }
 dimensions = Sets.newHashSet("dim1", "dim2", "dim3");
+moreDimensions.addAll(dimensions);
 for(CubeDimAttribute dimAttribute: dummyDimAttributes) {
-  dimensions.add(dimAttribute.getName());
+  moreDimensions.add(dimAttribute.getName());
 }
 derivedCube = new DerivedCube(derivedCubeName, measures, dimensions, cube);
 
@@ -784,6 +792,63 @@ public class TestCubeMetastoreClient {
   }
 
   @Test(priority = 1)
+  public void testCubeWithMoreMeasures() throws Exception {
+String cubeName = "cubeWithMoreMeasures";
+Cube cube = new Cube(cubeName, moreCubeMeasures, moreCubeDimensions, 
cubeExpressions, joinChains, emptyHashMap,
+  0.0);
+client.createCube(cubeName, moreCubeMeasures, moreCubeDimensions, 
cubeExpressions, joinChains, emptyHashMap);
+assertTrue(client.tableExists(cubeName));
+Table cubeTbl = client.getHiveTable(cubeName);
+assertTrue(client.isCube(cubeTbl));
+Cube cube2 = new Cube(cubeTbl);
+assertTrue(cube.equals(cube2));
+assertFalse(cube2.isDerivedCube());
+assertTrue(cube2.getTimedDimensions().isEmpty());
+assertEquals(moreCubeMeasures.size(), cube2.getMeasureNames().size());
+// +8 is for hierarchical dimension
+assertEquals(moreCubeDimensions.size() + 8, 
cube2.getDimAttributeNames().size());
+assertEquals(moreCubeMeasures.size(), cube2.getMeasures().size());
+assertEquals(cubeExpressions.size(), cube2.getExpressions().size());
+assertEquals(cubeExpressions.size(), cube2.getExpressionNames().size());
+assertEquals(moreCubeDimensions.size(), cube2.getDimAttributes().size());
+assertEquals(moreCubeDimensions.size() + 8 + moreCubeMeasures.size() + 
cubeExpressions.size(), cube2
+  .getAllFieldNames().size());
+assertNotNull(cube2

lens git commit: LENS-730 : Fix issues with column aliases in multifact query

2016-04-26 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 6e11d780f -> 3b3f42da5


LENS-730 : Fix issues with column aliases in multifact query


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

Branch: refs/heads/master
Commit: 3b3f42da51808e1bb0d23357e1bfaecaca978896
Parents: 6e11d78
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Wed Apr 27 09:52:06 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Apr 27 09:52:06 2016 +0530

--
 .../lens/cube/parse/AggregateResolver.java  |   4 +-
 .../apache/lens/cube/parse/ColumnResolver.java  |  44 +++--
 .../lens/cube/parse/ExpressionResolver.java |   2 +-
 .../apache/lens/cube/parse/CubeTestSetup.java   |   5 +
 .../lens/cube/parse/TestBaseCubeQueries.java| 165 ---
 .../lens/cube/parse/TestBridgeTableQueries.java |  46 +++---
 .../lens/cube/parse/TestCubeRewriter.java   |  10 +-
 .../lens/cube/parse/TestExpressionResolver.java |  12 +-
 8 files changed, 210 insertions(+), 78 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/3b3f42da/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
index fd7036a..1593a54 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
@@ -170,8 +170,8 @@ class AggregateResolver implements ContextRewriter {
   ASTNode tabident = HQLParser.findNodeByPath(node, TOK_TABLE_OR_COL, 
Identifier);
   ASTNode colIdent = (ASTNode) node.getChild(1);
 
-  colname = colIdent.getText();
-  tabname = tabident.getText();
+  colname = colIdent.getText().toLowerCase();
+  tabname = tabident.getText().toLowerCase();
 }
 
 String msrname = StringUtils.isBlank(tabname) ? colname : tabname + "." + 
colname;

http://git-wip-us.apache.org/repos/asf/lens/blob/3b3f42da/lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java
index 75aa3f4..58a1d4d 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java
@@ -61,10 +61,10 @@ class ColumnResolver implements ContextRewriter {
 }
 getColsForSelectTree(cubeql);
 getColsForWhereTree(cubeql);
-getColsForTree(cubeql, cubeql.getJoinAST(), cubeql);
-getColsForTree(cubeql, cubeql.getGroupByAST(), cubeql);
-getColsForTree(cubeql, cubeql.getHavingAST(), cubeql);
-getColsForTree(cubeql, cubeql.getOrderByAST(), cubeql);
+getColsForTree(cubeql, cubeql.getJoinAST(), cubeql, true);
+getColsForTree(cubeql, cubeql.getGroupByAST(), cubeql, true);
+getColsForTree(cubeql, cubeql.getHavingAST(), cubeql, true);
+getColsForTree(cubeql, cubeql.getOrderByAST(), cubeql, true);
 
 // Update join dimension tables
 for (String table : cubeql.getTblAliasToColumns().keySet()) {
@@ -77,7 +77,8 @@ class ColumnResolver implements ContextRewriter {
   }
 
   // finds columns in AST passed.
-  static void getColsForTree(final CubeQueryContext cubeql, ASTNode tree, 
final TrackQueriedColumns tqc)
+  static void getColsForTree(final CubeQueryContext cubeql, ASTNode tree, 
final TrackQueriedColumns tqc,
+final boolean skipAliases)
 throws LensException {
 if (tree == null) {
   return;
@@ -98,7 +99,7 @@ class ColumnResolver implements ContextRewriter {
   // Take child ident.totext
   ASTNode ident = (ASTNode) node.getChild(0);
   String column = ident.getText().toLowerCase();
-  if (cubeql.getExprToAliasMap().values().contains(column)) {
+  if (skipAliases && 
cubeql.getExprToAliasMap().values().contains(column)) {
 // column is an existing alias
 return;
   }
@@ -137,18 +138,12 @@ class ColumnResolver implements ContextRewriter {
   // Updates alias for each selected expression.
   // Alias is updated as follows:
   // Case 1: If select expression does not have an alias
-  // ** And the expression has only one column queried, the column name is put
-  // as
-  // select alias.
-  // ** If the expression has more t

lens git commit: LENS-1022 : Reduce time for TestLensQueryCommands

2016-04-27 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master e26ee5a71 -> d1c58cbcf


LENS-1022 : Reduce time for TestLensQueryCommands


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

Branch: refs/heads/master
Commit: d1c58cbcf755321ae72d0fb1d9e9994e95f9f189
Parents: e26ee5a
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Wed Apr 27 18:18:14 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Apr 27 18:18:14 2016 +0530

--
 .../org/apache/lens/cli/TestLensQueryCommands.java  | 16 
 .../lens/server/api/query/FinishedLensQuery.java|  2 +-
 .../lens/server/query/TestResultFormatting.java |  4 +++-
 lens-server/src/test/resources/lens-site.xml|  2 +-
 4 files changed, 13 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/d1c58cbc/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
index dbb5e9d..1dd2ffe 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
@@ -175,10 +175,10 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 int chkCount = 0;
 while (!qCom.getAllQueries("SUCCESSFUL", null, "all", null, -1, 
Long.MAX_VALUE).contains(
 "Total number of queries: " + (noOfSuccQueriesSoFar + 1))) {
-  Thread.sleep(2000);
+  Thread.sleep(100);
   chkCount++;
-  if (chkCount > 30) {
-fail("Unable to get successful status for query even after 30 checks");
+  if (chkCount > 100) {
+fail("Unable to get successful status for query even after 100 
checks");
   }
 }
 if (closeConn) {
@@ -215,7 +215,7 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 String handle = qCom.executePreparedQuery(qh, true, "testPrepQuery2");
 log.debug("Perpared query handle is   " + handle);
 while (!qCom.getClient().getQueryStatus(handle).finished()) {
-  Thread.sleep(5000);
+  Thread.sleep(100);
 }
 String status = qCom.getStatus(handle);
 log.debug("Prepared Query Status is  " + status);
@@ -225,8 +225,8 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 result = qCom.getQueryResults(handle, null, true);
 log.debug("Prepared Query Result is  " + result);
 assertTrue(result.contains("1\tfirst"));
-//Wait for query to purge. Purger runs every second
-Thread.sleep(3000);
+//Wait for query to purge. Purger runs every 100 millis
+Thread.sleep(300);
 //Fetch again. Should not get resultset
 result = qCom.getQueryResults(handle, null, true);
 log.debug("Prepared Query Result is  " + result);
@@ -335,7 +335,7 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 String details = qCom.getDetails(null);
 assertTrue(details.contains("Driver Query:"));
   }
-  Thread.sleep(1000);
+  Thread.sleep(100);
   queryStatus = qCom.getClient().getQueryStatus(qh);
 }
 
@@ -521,7 +521,7 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
 String query = "cube select id,name from test_dim";
 String qh = qCom.executeQuery(query, true, "testQuery");
 while (!qCom.getClient().getQueryStatus(qh).finished()) {
-  Thread.sleep(5000);
+  Thread.sleep(100);
 }
 assertTrue(qCom.getStatus(qh).contains("Status: SUCCESSFUL"));
 

http://git-wip-us.apache.org/repos/asf/lens/blob/d1c58cbc/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 e1ce415..1d56757 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
@@ -225,7 +225,7 @@ public class FinishedLensQuery {
 qctx.setLaunchTime(this.startTime);
 qctx.setEndTime(getEndTime());
 qctx.setStatusSkippingTransitionTe

lens git commit: LENS-1033 : Fix HQLParser to honor double spaces in literals

2016-05-08 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 34223e880 -> 4e822031f


LENS-1033 : Fix HQLParser to honor double spaces in literals


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

Branch: refs/heads/master
Commit: 4e822031f4a3d75b45281ec5aadaf8f64cbb7542
Parents: 34223e8
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Mon May 9 10:08:31 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon May 9 10:08:31 2016 +0530

--
 .../org/apache/lens/cube/parse/HQLParser.java   | 36 
 .../lens/cube/parse/TestBaseCubeQueries.java| 36 
 .../lens/cube/parse/TestBridgeTableQueries.java |  8 +-
 .../lens/cube/parse/TestCubeRewriter.java   | 24 +++---
 .../lens/cube/parse/TestExpressionContext.java  | 64 +++---
 .../apache/lens/cube/parse/TestHQLParser.java   | 87 
 .../cube/parse/join/TestBridgeTableJoinCtx.java | 42 +-
 .../driver/jdbc/TestColumnarSQLRewriter.java| 30 +++
 8 files changed, 170 insertions(+), 157 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4e822031/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
--
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
index 0d00188..1f6b66c 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
@@ -372,7 +372,7 @@ public final class HQLParser {
   || KW_FALSE == rootType || KW_FORMATTED == rootType || KW_EXTENDED == 
rootType || KW_DEPENDENCY == rootType) {
   // StringLiterals should not be lower cased.
   if (StringLiteral == rootType) {
-buf.append(' ').append(rootText).append(' ');
+buf.append(rootText);
   } else if (KW_TRUE == rootType) {
 buf.append(" true ");
   } else if (KW_FALSE == rootType) {
@@ -380,12 +380,9 @@ public final class HQLParser {
   } else if (Identifier == rootType && TOK_SELEXPR == 
root.getParent().getType()) {
 // back quote column alias in all cases. This is required since some 
alias values can match DB keywords
 // (example : year as alias) and in such case queries can fail on 
certain DBs if the alias in not back quoted
-buf.append(" as `").append(rootText).append("` ");
-  } else if (Identifier == rootType && TOK_FUNCTIONSTAR == 
root.getParent().getType()) {
-// count(*) or count(someTab.*): Don't append space after the 
identifier
-buf.append(" ").append(rootText == null ? "" : rootText.toLowerCase());
+buf.append(" as `").append(rootText).append("`");
   } else {
-buf.append(" ").append(rootText == null ? "" : 
rootText.toLowerCase()).append(" ");
+buf.append(rootText == null ? "" : rootText.toLowerCase());
   }
 
 } else if (TOK_ALLCOLREF == rootType) {
@@ -395,14 +392,14 @@ public final class HQLParser {
 }
 buf.append(".");
   }
-  buf.append(" * ");
+  buf.append("*");
 } else if (TOK_FUNCTIONSTAR == rootType) {
   if (root.getChildCount() > 0) {
 for (int i = 0; i < root.getChildCount(); i++) {
   toInfixString((ASTNode) root.getChild(i), buf);
 }
   }
-  buf.append("(*) ");
+  buf.append("(*)");
 } else if (UNARY_OPERATORS.contains(rootType)) {
   if (KW_NOT == rootType) {
 // Check if this is actually NOT IN
@@ -410,7 +407,7 @@ public final class HQLParser {
   buf.append(" not ");
 }
   } else if (TILDE == rootType) {
-buf.append(" ~ ");
+buf.append(" ~");
   }
 
   for (int i = 0; i < root.getChildCount(); i++) {
@@ -429,7 +426,7 @@ public final class HQLParser {
   if (MINUS == rootType && root.getChildCount() == 1) {
 // If minus has only one child, then it's a unary operator.
 // Add Operator name first
-buf.append(' ').append(rootText.toLowerCase()).append(' ');
+buf.append(rootText.toLowerCase());
 // Operand
 toInfixString((ASTNode) root.getChild(0), buf);
   } else {
@@ -508,7 +505,7 @@ public final class HQLParser {
   // Distinct is a different case.
   String fname = root.getChild(0).getText();
 
-  buf

lens git commit: LENS-1029 : Fix exception handling in lens server snapshotter

2016-05-09 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4e822031f -> d264c9a44


LENS-1029 : Fix exception handling in lens server snapshotter


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

Branch: refs/heads/master
Commit: d264c9a44b3f0b889e87241a6eb9ec1051f7c6a5
Parents: 4e82203
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Mon May 9 16:43:42 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon May 9 16:43:42 2016 +0530

--
 .../lens/lib/query/AbstractFileFormatter.java   |  12 +-
 .../lens/server/api/LensConfConstants.java  |  27 +--
 .../org/apache/lens/server/LensServices.java| 237 ++-
 .../src/main/resources/lensserver-default.xml   |  20 +-
 .../apache/lens/server/TestServerRestart.java   |  16 +-
 src/site/apt/admin/config.apt   | 106 -
 src/site/apt/admin/deployment.apt   |  10 +-
 7 files changed, 220 insertions(+), 208 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/d264c9a4/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java
--
diff --git 
a/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java
 
b/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java
index 8c06621..2cd6b3f 100644
--- 
a/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java
+++ 
b/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java
@@ -18,9 +18,7 @@
  */
 package org.apache.lens.lib.query;
 
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
+import java.io.*;
 
 import org.apache.lens.server.api.driver.LensResultSetMetadata;
 import org.apache.lens.server.api.query.QueryContext;
@@ -97,15 +95,15 @@ public abstract class AbstractFileFormatter extends 
AbstractOutputFormatter impl
   public void writeExternal(ObjectOutput out) throws IOException {
 out.writeUTF(metadata.toJson());
 out.writeUTF(finalPath.toString());
-out.writeInt(numRows);
-out.writeLong(fileSize);
+out.writeObject(numRows); // writeObject and readObject have handling for 
null objects
+out.writeObject(fileSize);
   }
 
   @Override
   public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
 metadata = LensResultSetMetadata.fromJson(in.readUTF());
 finalPath = new Path(in.readUTF());
-numRows = in.readInt();
-fileSize = in.readLong();
+numRows = (Integer)in.readObject();
+fileSize = (Long)in.readObject();
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/d264c9a4/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
index 23537cb..7cf6449 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
@@ -141,14 +141,14 @@ public final class LensConfConstants {
   public static final String DEFAULT_SERVER_BASE_URL = 
"http://0.0.0.0:/lensapi;;
 
   /**
-   * The Constant SERVER_RESTART_ENABLED.
+   * The Constant SERVER_STATE_PERSISTENCE_ENABLED.
*/
-  public static final String SERVER_RESTART_ENABLED = SERVER_PFX + 
"restart.enabled";
+  public static final String SERVER_STATE_PERSISTENCE_ENABLED = SERVER_PFX + 
"state.persistence.enabled";
 
   /**
-   * The Constant DEFAULT_SERVER_RESTART_ENABLED.
+   * The Constant DEFAULT_SERVER_STATE_PERSISTENCE_ENABLED.
*/
-  public static final boolean DEFAULT_SERVER_RESTART_ENABLED = true;
+  public static final boolean DEFAULT_SERVER_STATE_PERSISTENCE_ENABLED = true;
 
   /**
* The Constant SERVER_STATE_PERSIST_LOCATION.
@@ -161,16 +161,6 @@ public final class LensConfConstants {
   public static final String DEFAULT_SERVER_STATE_PERSIST_LOCATION = 
"file:///tmp/lensserver";
 
   /**
-   * The Constant SERVER_RECOVER_ON_RESTART.
-   */
-  public static final String SERVER_RECOVER_ON_RESTART = SERVER_PFX + 
"recover.onrestart";
-
-  /**
-   * The Constant DEFAULT_SERVER_RECOVER_ON_RESTART.
-   */
-  public static final boolean DEFAULT_SERVER_RECOVER_ON_RESTART = true;
-
-  /**
* The Constant SESSION_TIMEOUT_SECONDS.
*/
   public static final String SESS

lens git commit: LENS-1032 : Add option to kill the query on timeout api upon timeout

2016-05-11 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 382881940 -> 389daac9a


LENS-1032 : Add option to kill the query on timeout api upon timeout


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

Branch: refs/heads/master
Commit: 389daac9a66b0cb69ac729a56b39b3aa903ad36a
Parents: 3828819
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Thu May 12 10:08:11 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu May 12 10:08:11 2016 +0530

--
 .../org/apache/lens/api/query/QueryStatus.java  |   8 ++
 .../src/main/resources/lens-client-default.xml  |   7 ++
 .../org/apache/lens/driver/hive/HiveDriver.java |   3 +
 .../lens/server/api/LensConfConstants.java  |  11 ++
 .../server/query/QueryExecutionServiceImpl.java | 120 +++
 .../lens/server/query/QueryServiceResource.java |   6 +-
 .../src/main/resources/lenssession-default.xml  |   8 ++
 .../lens/server/query/TestQueryService.java |  36 +-
 src/site/apt/admin/session-config.apt   |  58 -
 9 files changed, 201 insertions(+), 56 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/389daac9/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java 
b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
index 67d1e79..daedbf9 100644
--- a/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
+++ b/lens-api/src/main/java/org/apache/lens/api/query/QueryStatus.java
@@ -205,6 +205,14 @@ public class QueryStatus extends ToYAMLString implements 
Serializable {
 return status.equals(Status.FAILED);
   }
 
+  public boolean cancelled() {
+return status.equals(Status.CANCELED);
+  }
+
+  public boolean executed() {
+return status.equals(Status.EXECUTED);
+  }
+
 
   /**
* Checks if is valid transition.

http://git-wip-us.apache.org/repos/asf/lens/blob/389daac9/lens-client/src/main/resources/lens-client-default.xml
--
diff --git a/lens-client/src/main/resources/lens-client-default.xml 
b/lens-client/src/main/resources/lens-client-default.xml
index 96506ac..132e1b1 100644
--- a/lens-client/src/main/resources/lens-client-default.xml
+++ b/lens-client/src/main/resources/lens-client-default.xml
@@ -75,4 +75,11 @@
 is used to execute a query. The default value is 10 seconds.
 
   
+  
+lens.query.cancel.on.timeout
+false
+Specifies whether to attempt cancellation of a query whose 
execution takes longer than the timeout
+  value specified while submitting the query for execution.
+
+  
 

http://git-wip-us.apache.org/repos/asf/lens/blob/389daac9/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 1463cc2..b85a66f 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
@@ -1048,6 +1048,9 @@ public class HiveDriver extends AbstractLensDriver {
   this.timeoutMillis = timeoutMillis;
   this.listener = listener;
   this.pollInterval = timeoutMillis / 10;
+  if (pollInterval < 5000) {
+pollInterval = 5000; //minimum poll interval is 5 secs
+  }
 }
 
 /*

http://git-wip-us.apache.org/repos/asf/lens/blob/389daac9/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
index 7cf6449..a6df138 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/LensConfConstants.java
@@ -1070,4 +1070,15 @@ public final class LensConfConstants {
* Default value of DEFAULT_STATUS_UPDATE_EXPONENTIAL_WAIT_FACTOR is 3 
millis (30 seconds)
*/
   public static final long DEFAULT_STATUS_UPDATE_EXPONENTIAL_WAIT_FACTOR = 
3;
+
+  /**
+   * Specifies whether to attempt cancellation of a query whose execution 
takes longer than the timeout value
+   * specified while su

lens git commit: LENS-383 :Add connection and read timeouts on rest api calls in lens client

2016-05-02 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 9b7541bcb -> dce5a812d


LENS-383 :Add connection and read timeouts on rest api calls in lens client


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

Branch: refs/heads/master
Commit: dce5a812ddef01800bd83e229d6ccbad4ddee18a
Parents: 9b7541b
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Tue May 3 10:06:28 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue May 3 10:06:28 2016 +0530

--
 .../apache/lens/client/LensClientConfig.java|  8 ++
 .../org/apache/lens/client/LensConnection.java  | 13 ++-
 .../org/apache/lens/client/LensStatement.java   | 41 +++--
 .../src/main/resources/lens-client-default.xml  | 12 +++
 .../org/apache/lens/client/TestLensClient.java  | 95 +---
 .../server/MockQueryExecutionServiceImpl.java   | 74 +++
 src/site/apt/admin/config.apt   |  4 +-
 src/site/apt/user/client-config.apt | 16 ++--
 8 files changed, 239 insertions(+), 24 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/dce5a812/lens-client/src/main/java/org/apache/lens/client/LensClientConfig.java
--
diff --git 
a/lens-client/src/main/java/org/apache/lens/client/LensClientConfig.java 
b/lens-client/src/main/java/org/apache/lens/client/LensClientConfig.java
index 6a35a5e..b703e13 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensClientConfig.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensClientConfig.java
@@ -82,6 +82,14 @@ public class LensClientConfig extends Configuration {
 
   public static final String WS_FILTER_IMPL_SFX = ".ws.filter.impl";
 
+  public static final String READ_TIMEOUT_MILLIS = CLIENT_PFX + 
"read.timeout.millis";
+
+  public static final int DEFAULT_READ_TIMEOUT_MILLIS = 30; //5 mins
+
+  public static final String CONNECTION_TIMEOUT_MILLIS = CLIENT_PFX + 
"connection.timeout.millis";
+
+  public static final int DEFAULT_CONNECTION_TIMEOUT_MILLIS = 6; //60 secs
+
   /**
* Get the username from config
*

http://git-wip-us.apache.org/repos/asf/lens/blob/dce5a812/lens-client/src/main/java/org/apache/lens/client/LensConnection.java
--
diff --git 
a/lens-client/src/main/java/org/apache/lens/client/LensConnection.java 
b/lens-client/src/main/java/org/apache/lens/client/LensConnection.java
index 0c2557c..4951866 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensConnection.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensConnection.java
@@ -18,6 +18,8 @@
  */
 package org.apache.lens.client;
 
+import static org.apache.lens.client.LensClientConfig.*;
+
 import java.net.ConnectException;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -39,6 +41,7 @@ import org.apache.lens.api.StringList;
 import org.apache.lens.api.util.MoxyJsonConfigurationContextResolver;
 import org.apache.lens.client.exceptions.LensClientServerConnectionException;
 
+import org.glassfish.jersey.client.ClientProperties;
 import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
@@ -120,7 +123,15 @@ public class LensConnection {
 while (itr.hasNext()) {
   cb.register(itr.next());
 }
-return cb.build();
+Client client = cb.build();
+
+//Set Timeouts
+LensClientConfig config = params.getConf();
+client.property(ClientProperties.CONNECT_TIMEOUT, 
config.getInt(CONNECTION_TIMEOUT_MILLIS,
+  DEFAULT_CONNECTION_TIMEOUT_MILLIS));
+client.property(ClientProperties.READ_TIMEOUT, 
config.getInt(READ_TIMEOUT_MILLIS, DEFAULT_READ_TIMEOUT_MILLIS));
+
+return client;
   }
 
   private WebTarget getSessionWebTarget() {

http://git-wip-us.apache.org/repos/asf/lens/blob/dce5a812/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
--
diff --git 
a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java 
b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
index f06bcd1..3cae717 100644
--- a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
+++ b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.client;
 
+import java.net.SocketTimeoutException;
 import java.util.List;
 
 import javax.ws.rs.clie

lens git commit: LENS-1156 : Fix TestUnionQueries.testDimAttrExpressionQuery test failure

2016-07-28 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master e4d8b88f9 -> 3f03d29ba


LENS-1156 : Fix TestUnionQueries.testDimAttrExpressionQuery test failure


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

Branch: refs/heads/master
Commit: 3f03d29ba47755913e06cd3a397119c679b2f65a
Parents: e4d8b88
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Fri Jul 29 10:11:32 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Jul 29 10:11:32 2016 +0530

--
 .../lens/cube/parse/TestUnionQueries.java   | 176 +++
 1 file changed, 100 insertions(+), 76 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/3f03d29b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java
index f5657e5..d5bc81c 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java
@@ -218,96 +218,120 @@ public class TestUnionQueries extends TestQueryRewrite {
 conf.set(getValidUpdatePeriodsKey("testfact", "C1"), "DAILY,HOURLY");
 conf.set(getValidUpdatePeriodsKey("testfact2", "C1"), "YEARLY");
 conf.set(getValidUpdatePeriodsKey("testfact", "C2"), "MONTHLY,DAILY");
-ArrayList storages = Lists.newArrayList("c1_testfact", 
"c2_testfact");
-getStorageToUpdatePeriodMap().put("c1_testfact", 
Lists.newArrayList(HOURLY, DAILY));
-getStorageToUpdatePeriodMap().put("c2_testfact", 
Lists.newArrayList(MONTHLY));
-StoragePartitionProvider provider = new StoragePartitionProvider() {
-  @Override
-  public Map<String, String> providePartitionsForStorage(String storage) {
-return getWhereForMonthlyDailyAndHourly2monthsUnionQuery(storage);
-  }
-};
+
 String hqlQuery = rewrite("select asciicity as `City Name`, cityAndState 
as citystate, isIndia as isIndia,"
   + " msr8, msr7 as `Third measure` "
   + "from testCube where asciicity = 'c' and cityname = 'a' and zipcode = 
'b' and "
   + TWO_MONTHS_RANGE_UPTO_HOURS, conf);
-String expected = getExpectedUnionQuery(TEST_CUBE_NAME, storages, provider,
-  "SELECT testcube.alias0 as `City Name`, testcube.alias1 as citystate, 
testcube.alias2 as isIndia, "
-+ "sum(testcube.alias3) + max(testcube.alias4), "
-+ "case when sum(testcube.alias3) = 0 then 0 else 
sum(testcube.alias5)/sum(testcube.alias3) end "
-+ "as `Third Measure`",
-  null, " group by testcube.alias0, testcube.alias1, testcube.alias2",
-  "select ascii(cubecity.name) as `alias0`, concat(cubecity.name, \":\", 
cubestate.name) as alias1,"
-+ "cubecity.name == 'DELHI' OR cubestate.name == 'KARNATAKA' OR 
cubestate.name == 'MAHARASHTRA' as alias2,"
-+ "sum(testcube.msr2) as `alias3`, max(testcube.msr3) as `alias4`, "
-+ "sum(case when testcube.cityid = 'x' then testcube.msr21 else 
testcube.msr22 end) as `alias5`", " join "
-+ getDbName() + "c1_statetable cubestate on testcube.stateid = 
cubestate.id and (cubestate.dt = 'latest') join"
-+ getDbName() + "c1_citytable cubecity on testcube.cityid = 
cubecity.id and (cubecity.dt = 'latest')",
-  "ascii(cubecity.name) = 'c' and cubecity.name = 'a' and testcube.zipcode 
= 'b'",
-  " group by ascii(cubecity.name)), concat(cubecity.name, \":\", 
cubestate.name),"
-+ "cubecity.name == 'DELHI' OR cubestate.name == 'KARNATAKA' OR 
cubestate.name == 'MAHARASHTRA'");
-compareQueries(hqlQuery, expected);
+String joinExpr1 =  " join "
+  + getDbName() + "c1_statetable cubestate on testcube.stateid = 
cubestate.id and (cubestate.dt = 'latest') join"
+  + getDbName() + "c1_citytable cubecity on testcube.cityid = cubecity.id 
and (cubecity.dt = 'latest')";
+String joinExpr2 =  " join "
+  + getDbName() + "c1_citytable cubecity on testcube.cityid = cubecity.id 
and (cubecity.dt = 'latest') join"
+  + getDbName() + "c1_statetable cubestate on testcube.stateid = 
cubestat

lens git commit: LENS-1254 : Fix TestLensQueryCommands.showPersistentResultSet failure

2016-08-03 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 90c710018 -> ca372c1dc


LENS-1254 : Fix TestLensQueryCommands.showPersistentResultSet failure


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

Branch: refs/heads/master
Commit: ca372c1dc28c79677d0f417370bf09fcf1a329e8
Parents: 90c7100
Author: Puneet Gupta <puneet.k.gu...@gmail.com>
Authored: Thu Aug 4 10:42:11 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Aug 4 10:42:11 2016 +0530

--
 .../src/test/java/org/apache/lens/cli/TestLensQueryCommands.java| 1 +
 1 file changed, 1 insertion(+)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/ca372c1d/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
index ae30e9f..e1b19de 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensQueryCommands.java
@@ -461,6 +461,7 @@ public class TestLensQueryCommands extends 
LensCliApplicationTest {
   public void showPersistentResultSet(LensQueryCommands qCom) throws Exception 
{
 System.out.println("@@PERSISTENT_RESULT_TEST-");
 
qCom.getClient().setConnectionParam("lens.query.enable.persistent.resultset", 
"true");
+
qCom.getClient().setConnectionParam("lens.query.prefetch.inmemory.resultset", 
"false");
 String query = "cube select id,name from test_dim";
 try {
   String result = qCom.executeQuery(query, false, "testQuery3");



lens git commit: LENS-1184 : Add REST API for the scheduler

2016-07-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4bcb7aa96 -> 265c4667a


LENS-1184 : Add REST API for the scheduler


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

Branch: refs/heads/master
Commit: 265c4667af0dd7850892d0180c9ee72bb40b3e83
Parents: 4bcb7aa
Author: Ajay Yadava <ajayyad...@apache.org>
Authored: Tue Jul 5 10:16:07 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Jul 5 10:16:07 2016 +0530

--
 .../server/api/scheduler/SchedulerService.java  |  25 ++-
 .../lens/server/scheduler/LensScheduler.java|  48 +
 .../lens/server/scheduler/ScheduleResource.java | 181 ++-
 .../server/scheduler/SchedulerServiceImpl.java  |  73 ++--
 4 files changed, 288 insertions(+), 39 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/265c4667/lens-server-api/src/main/java/org/apache/lens/server/api/scheduler/SchedulerService.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/scheduler/SchedulerService.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/scheduler/SchedulerService.java
index 700a255..d0af876 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/scheduler/SchedulerService.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/scheduler/SchedulerService.java
@@ -19,18 +19,22 @@
 package org.apache.lens.server.api.scheduler;
 
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 
 import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.api.scheduler.*;
+import org.apache.lens.server.api.LensService;
+import org.apache.lens.server.api.SessionValidator;
 import org.apache.lens.server.api.error.LensException;
 
 
 /**
  * Scheduler interface.
  */
-public interface SchedulerService {
+public interface SchedulerService extends LensService, SessionValidator {
+
+  /** The constant NAME */
+  String NAME = "scheduler";
 
   /**
* Submit a job.
@@ -104,11 +108,9 @@ public interface SchedulerService {
*
* @param sessionHandle handle for the current session.
* @param jobHandle handle for the job
-   * @param expiryTimetime after which the job shouldn't execute.
* @throws LensException the lens exception
*/
-  void expireJob(LensSessionHandle sessionHandle, SchedulerJobHandle jobHandle,
- Date expiryTime) throws LensException;
+  void expireJob(LensSessionHandle sessionHandle, SchedulerJobHandle 
jobHandle) throws LensException;
 
 
   /**
@@ -131,12 +133,10 @@ public interface SchedulerService {
*
* @param sessionHandle handle for the session.
* @param jobHandle handle for the job
-   * @param effectiveTime time from which to resume the instances.
* @return true if the job was resumed successfully, false otherwise.
* @throws LensException the lens exception
*/
-  boolean resumeJob(LensSessionHandle sessionHandle, SchedulerJobHandle 
jobHandle,
-Date effectiveTime) throws LensException;
+  boolean resumeJob(LensSessionHandle sessionHandle, SchedulerJobHandle 
jobHandle) throws LensException;
 
   /**
* Delete a job.
@@ -155,16 +155,13 @@ public interface SchedulerService {
*  if null no entries will be removed from result
* @param user  filter for user who submitted the job, if specified 
only jobs submitted by the given user
*  will be returned, if not specified no entries will 
be removed from result on basis of userName
-   * @param jobName   filter for jobName, if specified only the jobs with 
name same as given name will be considered
-   *  , else no jobs will be filtered out on the basis of 
name.
* @param startTime if specified only instances with scheduleTime after 
this time will be considered.
* @param endTime   if specified only instances with scheduleTime before 
this time will be considered.
* @return A collection of stats per job
* @throws LensException
*/
   Collection getAllJobStats(LensSessionHandle sessionHandle,
-  String state, String user,
-  String jobName, long startTime, long 
endTime) throws LensException;
+  String state, String user, long 
startTime, long endTime) throws LensException;
 
   /**
* Returns stats for a job.
@@ -187,10 +184,10 @@ public interface SchedulerService {
* @param sessionHandle handle for the session.
* @p

lens git commit: LENS-991 : Remove shutdown hook getting added for each command

2016-07-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 265c4667a -> 42c4dfcb6


LENS-991 : Remove shutdown hook getting added for each command


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

Branch: refs/heads/master
Commit: 42c4dfcb64f59c341ad244b96872a921ea9043db
Parents: 265c466
Author: Raju Bairishetti <r...@apache.org>
Authored: Tue Jul 5 11:13:49 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Jul 5 11:13:49 2016 +0530

--
 .../lens/cli/commands/BaseLensCommand.java  |  12 +-
 .../lens/cli/TestLensConnectionCliCommands.java | 146 +--
 .../apache/lens/cli/TestLensCubeCommands.java   |   6 +-
 .../lens/cli/TestLensDatabaseCommands.java  |   5 +-
 .../lens/cli/TestLensNativeTableCommands.java   |   4 +-
 .../apache/lens/cli/TestLensQueryCommands.java  |   5 -
 .../org/apache/lens/client/TestLensClient.java  |  56 +++
 7 files changed, 107 insertions(+), 127 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/42c4dfcb/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
index 9eb73b3..479746a 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java
@@ -57,8 +57,7 @@ public class BaseLensCommand implements ExecutionProcessor {
   protected DefaultPrettyPrinter pp;
 
   /** The is connection active. */
-  protected boolean isConnectionActive;
-
+  protected static boolean isConnectionActive;
   public static final String DATE_FMT = "-MM-dd'T'HH:mm:ss:SSS";
 
   private LensClient lensClient = null;
@@ -75,7 +74,7 @@ public class BaseLensCommand implements ExecutionProcessor {
 return DATE_PARSER.get().format(dt);
   }
 
-  private void registerShutDownHook() {
+  static {
 Runtime.getRuntime().addShutdownHook(new Thread() {
   public void run() {
 closeClientConnection();
@@ -86,10 +85,10 @@ public class BaseLensCommand implements ExecutionProcessor {
   /**
* Close client connection.
*/
-  protected synchronized void closeClientConnection() {
+  protected static synchronized void closeClientConnection() {
 if (isConnectionActive) {
   log.debug("Request for stopping lens cli received");
-  lensClient.closeConnection();
+  getClientWrapper().getClient().closeConnection();
   isConnectionActive = false;
 }
   }
@@ -98,7 +97,6 @@ public class BaseLensCommand implements ExecutionProcessor {
* Instantiates a new base lens command.
*/
   public BaseLensCommand() {
-registerShutDownHook();
 mapper = new ObjectMapper();
 mapper.setSerializationInclusion(Inclusion.NON_NULL);
 mapper.setSerializationInclusion(Inclusion.NON_DEFAULT);
@@ -120,13 +118,13 @@ public class BaseLensCommand implements 
ExecutionProcessor {
   }
 
   public void setClient(LensClient client) {
-isConnectionActive = true;
 lensClient = client;
   }
 
   public LensClient getClient() {
 if (lensClient == null) {
   setClient(getClientWrapper().getClient());
+  isConnectionActive = true;
 }
 return lensClient;
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/42c4dfcb/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
index d1ec94e..76d387d 100644
--- 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
+++ 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensConnectionCliCommands.java
@@ -63,19 +63,19 @@ public class TestLensConnectionCliCommands extends 
LensCliApplicationTest {
*/
   @Test
   public void testConnectionCommand() {
-LensClient client = new LensClient();
-LensConnectionCommands commands = new LensConnectionCommands();
-commands.setClient(client);
-String key = "connectiontest1";
-String value = "connectiontest1val";
-String keyvalList = commands.showParameters();
-
-Assert.assertFalse(keyvalList.contains("connectiontest1"));
-
-commands.setParam(key + "=" + value);
-String val = commands.getParam(key);
-Assert.assertEquals(val,

[2/2] lens git commit: LENS-1386 : Add support for separate tables for update periods in one storage

2017-02-20 Thread amareshwari
LENS-1386 : Add support for separate tables for update periods in one storage


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

Branch: refs/heads/master
Commit: f0dadd79bb626fe6f8bbf21569e3062aeb9be070
Parents: 0cd22b1
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Mon Feb 20 15:08:40 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Feb 20 15:08:40 2017 +0530

--
 lens-api/src/main/resources/cube-0.1.xsd|  28 +-
 .../lens/cube/metadata/CubeFactTable.java   |  68 +++-
 .../lens/cube/metadata/CubeMetastoreClient.java | 339 +++
 .../lens/cube/metadata/MetastoreUtil.java   |   6 +
 .../org/apache/lens/cube/metadata/Storage.java  |  30 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 151 -
 .../metastore/CubeMetastoreServiceImpl.java | 182 ++
 .../apache/lens/server/metastore/JAXBUtils.java |  66 +++-
 .../server/metastore/TestMetastoreService.java  | 186 +-
 9 files changed, 811 insertions(+), 245 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f0dadd79/lens-api/src/main/resources/cube-0.1.xsd
--
diff --git a/lens-api/src/main/resources/cube-0.1.xsd 
b/lens-api/src/main/resources/cube-0.1.xsd
index f438f48..431d68b 100644
--- a/lens-api/src/main/resources/cube-0.1.xsd
+++ b/lens-api/src/main/resources/cube-0.1.xsd
@@ -681,8 +681,27 @@
   
 
   
-
+
+  
+A list of update_period which contains either update period table 
descriptor or list of update_peroid enum.
+  
+
+
+  
   
+
+  
+
+  
+
+  
+An update period descriptor keeps an enum of update period and a 
storage table descriptor.
+  
+
+
+  
+  
 
   
 
@@ -1001,13 +1020,14 @@
   
 
   
-Storage and storage table description and update periods
+Storage and storage table description and update periods. table_desc 
is invalid when update_periods has a list
+of update_period_table_descriptor instead of a list of enums.
   
 
 
-  
+  
   
-  
+  
 
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/f0dadd79/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
index adb6c92..896a7a1 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
@@ -29,10 +29,14 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.metadata.Table;
 
 import com.google.common.collect.Lists;
+import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
 public class CubeFactTable extends AbstractCubeTable {
+  @Getter
+  // Map<StorageName, Map<update_period, storage_table_prefix>>
+  private final Map<String, Map<UpdatePeriod, String>> 
storagePrefixUpdatePeriodMap;
   private String cubeName;
   private final Map<String, Set> storageUpdatePeriods;
 
@@ -40,8 +44,10 @@ public class CubeFactTable extends AbstractCubeTable {
 super(hiveTable);
 this.storageUpdatePeriods = getUpdatePeriods(getName(), getProperties());
 this.cubeName = getCubeName(getName(), getProperties());
+this.storagePrefixUpdatePeriodMap = getUpdatePeriodMap(getName(), 
getProperties());
   }
 
+
   public CubeFactTable(String cubeName, String factName, List 
columns,
 Map<String, Set> storageUpdatePeriods) {
 this(cubeName, factName, columns, storageUpdatePeriods, 0L, new 
HashMap<String, String>());
@@ -54,9 +60,18 @@ public class CubeFactTable extends AbstractCubeTable {
 
   public CubeFactTable(String cubeName, String factName, List 
columns,
 Map<String, Set> storageUpdatePeriods, double weight, 
Map<String, String> properties) {
+this(cubeName, factName, columns, storageUpdatePeriods, weight, properties,
+  new HashMap<String, Map<UpdatePeriod, String>>());
+
+  }
+
+  public CubeFactTable(String cubeName, String factName, List 
columns,
+Map<String, Set> storageUpdatePeriods, double weight, 
Map<String, String> properties,
+Map<String, Map<UpdatePeriod, String>> storagePrefixUpdatePeriodMap) {
 super(factName, columns, properties, weight);
 this.cubeName = c

lens git commit: LENS-1278 : Fix too many instances of UDFClassLoader

2016-08-19 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 66bd58e4c -> 210e31fc0


LENS-1278 : Fix too many instances of UDFClassLoader


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

Branch: refs/heads/master
Commit: 210e31fc076a884b664dbbb87f8ab09fb481dc98
Parents: 66bd58e
Author: Amareshwari Sriramadasu <amareshw...@apache.org>
Authored: Fri Aug 19 12:37:02 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Aug 19 12:37:02 2016 +0530

--
 .../java/org/apache/lens/server/session/LensSessionImpl.java| 4 
 .../java/org/apache/lens/server/session/SessionClassLoader.java | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/210e31fc/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java 
b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
index 3003ab7..a6013e7 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/session/LensSessionImpl.java
@@ -221,6 +221,8 @@ public class LensSessionImpl extends HiveSessionImpl 
implements AutoCloseable {
   }
   sessionDbClassLoaders.clear();
 }
+// reset classloader in close
+
Thread.currentThread().setContextClassLoader(LensSessionImpl.class.getClassLoader());
   }
 
   public CubeMetastoreClient getCubeMetastoreClient() throws LensException {
@@ -272,6 +274,8 @@ public class LensSessionImpl extends HiveSessionImpl 
implements AutoCloseable {
 setActive();
 if (acquireCount.decrementAndGet() == 0) {
   super.release(userAccess);
+  // reset classloader in release
+  
Thread.currentThread().setContextClassLoader(LensSessionImpl.class.getClassLoader());
 }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/210e31fc/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java
 
b/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java
index f5e2068..0230db6 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/session/SessionClassLoader.java
@@ -20,7 +20,8 @@ package org.apache.lens.server.session;
 
 import java.io.IOException;
 import java.net.URL;
-import java.net.URLClassLoader;
+
+import org.apache.hadoop.hive.ql.exec.UDFClassLoader;
 
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -29,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
 @EqualsAndHashCode(callSuper = false)
-public class SessionClassLoader extends URLClassLoader {
+public class SessionClassLoader extends UDFClassLoader {
   @Getter
   @Setter
   private boolean closed;



lens git commit: LENS-1274 : Saved query table create failure shouldn't stop lens server from starting

2016-08-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 603cd0fd0 -> 66bd58e4c


LENS-1274 : Saved query table create failure shouldn't stop lens server from 
starting


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

Branch: refs/heads/master
Commit: 66bd58e4c4354e88cb6af9dcfcb219fdaf9fdf2a
Parents: 603cd0f
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Fri Aug 19 09:52:35 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Aug 19 09:52:35 2016 +0530

--
 .../org/apache/lens/server/query/save/SavedQueryDao.java  | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/66bd58e4/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
index 8762aff..4f072e2 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/save/SavedQueryDao.java
@@ -45,7 +45,9 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
 
+@Slf4j
 public class SavedQueryDao {
 
   private static final ObjectMapper MAPPER = new ObjectMapper();
@@ -65,12 +67,12 @@ public class SavedQueryDao {
   SavedQueryDao(String dialectClass, QueryRunner runner)
 throws LensException {
 try {
-  this.runner = runner;
   this.dialect = (Dialect) Class.forName(dialectClass).newInstance();
-  createSavedQueryTableIfNotExists();
-} catch (Exception e) {
+} catch (InstantiationException | IllegalAccessException | 
ClassNotFoundException e) {
   throw new LensException("Error initializing saved query dao", e);
 }
+this.runner = runner;
+createSavedQueryTableIfNotExists();
   }
 
   /**
@@ -82,7 +84,7 @@ public class SavedQueryDao {
 try {
   runner.update(dialect.getCreateTableSyntax());
 } catch (SQLException e) {
-  throw new LensException("Cannot create saved query table!", e);
+  log.warn("Unable to create saved query table.");
 }
   }
 



[1/2] lens git commit: LENS-1241 : Fix tests failures with setup and teardown issues

2016-08-22 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line 35aba09ab -> 15cf0b577


LENS-1241 : Fix tests failures with setup and teardown issues


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

Branch: refs/heads/current-release-line
Commit: 8fcc1a12b652c667fb153bb0e95e4a8de4f8638a
Parents: 35aba09
Author: Sushil Mohanty <sushilmoha...@apache.org>
Authored: Mon Aug 22 17:20:25 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 22 17:28:57 2016 +0530

--
 .../lens/server/metrics/MetricsServiceImpl.java |  6 --
 .../org/apache/lens/server/TestServerMode.java  | 20 +++-
 .../server/healthcheck/TestHealthChecks.java|  4 +---
 .../server/metastore/TestMetastoreService.java  | 11 +--
 .../metrics/TestResourceMethodMetrics.java  | 15 ++-
 .../lens/server/query/TestEventService.java |  4 ++--
 .../server/query/TestQueryEndEmailNotifier.java | 10 +-
 .../server/query/TestQueryResultPurger.java |  8 +++-
 .../lens/server/query/TestQueryService.java | 10 +-
 .../lens/server/query/TestResultFormatting.java | 16 +++-
 .../query/save/TestSavedQueryService.java   | 14 ++
 .../TestUserQueryToCubeQueryRewriter.java   |  4 ++--
 .../lens/server/scheduler/AlarmServiceTest.java |  4 ++--
 .../server/session/TestSessionResource.java |  9 +++--
 .../lens/server/user/TestUserConfigLoader.java  |  8 +++-
 15 files changed, 93 insertions(+), 50 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/8fcc1a12/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
index e09180f..b88c717 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/metrics/MetricsServiceImpl.java
@@ -585,12 +585,6 @@ public class MetricsServiceImpl extends AbstractService 
implements MetricsServic
   isHealthy = false;
 }
 
-// Also unhealthy if 30% of queries have failed.
-if (getTotalFailedQueries()/(float)getTotalAcceptedQueries() > 0.3) {
-  details.append("30% of queries have failed.");
-  isHealthy = false;
-}
-
 if (!isHealthy) {
   log.error(details.toString());
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/8fcc1a12/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 caf968a..bc3955d 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
@@ -43,9 +43,7 @@ import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
 import org.testng.Assert;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
 
 /**
  * The Class TestServerMode.
@@ -61,8 +59,12 @@ public class TestServerMode extends 
LensAllApplicationJerseyTest {
   @BeforeTest
   public void setUp() throws Exception {
 super.setUp();
-LensServerTestUtil.createTable("test_table", target(), 
RestAPITestUtil.openFooBarSession(target(), defaultMT),
-  defaultMT);
+  }
+  @BeforeClass
+  public void create() throws Exception {
+LensSessionHandle fooBarSessonHandle = 
RestAPITestUtil.openFooBarSession(target(), defaultMT);
+LensServerTestUtil.createTable("test_table", target(), fooBarSessonHandle, 
defaultMT);
+RestAPITestUtil.closeSession(target(), fooBarSessonHandle, defaultMT);
   }
 
   /*
@@ -75,6 +77,14 @@ public class TestServerMode extends 
LensAllApplicationJerseyTest {
 super.tearDown();
   }
 
+  @AfterClass
+  public void drop() throws Exception {
+LensSessionHandle fooBarSessonHandle = 
RestAPITestUtil.openFooBarSession(target(), defaultMT);
+LensServerTestUtil.dropTable("test_table", target(), fooBarSessonHandle,
+defaultMT);
+RestAPITestUtil.closeSession(target(), foo

lens git commit: LENS-1269 : Time range fallback in lens examples should not give empty results

2016-08-22 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line 15cf0b577 -> 2748cd9c4


LENS-1269 : Time range fallback in lens examples should not give empty results


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

Branch: refs/heads/current-release-line
Commit: 2748cd9c4fdf23b57c3ebd70c75d8311a6538cde
Parents: 15cf0b5
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Mon Aug 22 17:35:10 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 22 17:35:53 2016 +0530

--
 lens-examples/src/main/resources/sales-aggr-fact2-local3.data | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/2748cd9c/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
--
diff --git a/lens-examples/src/main/resources/sales-aggr-fact2-local3.data 
b/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
index a0cb704..407b097 100644
--- a/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
+++ b/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
@@ -1,2 +1,2 @@
-2015-04-13 00:00:00,2015-04-13 04:00:00,1,1,1,1,1,1,5,0
-2015-04-13 00:00:00,2015-04-13 04:00:00,2,1,2,2,2,1,8,2
\ No newline at end of file
+2015-04-13 03:00:00,2015-04-13 04:00:00,1,1,1,1,1,1,5,0
+2015-04-13 03:00:00,2015-04-13 04:00:00,2,1,2,2,2,1,8,2
\ No newline at end of file



lens git commit: LENS-1281 : Fix license issue with quartz dependency

2016-08-22 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 443ec5f5f -> c6e3abc63


LENS-1281 : Fix license issue with quartz dependency


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

Branch: refs/heads/master
Commit: c6e3abc63be51ff9953b6d0b5222745264ede49e
Parents: 443ec5f
Author: Ajay Yadava <ajayyad...@apache.org>
Authored: Mon Aug 22 17:21:50 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 22 17:21:50 2016 +0530

--
 pom.xml | 8 
 1 file changed, 8 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c6e3abc6/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 7c03862..871d1ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -815,6 +815,14 @@
 org.quartz-scheduler
 quartz
 ${quartz.version}
+
+
+  
+c3p0
+c3p0
+  
+
   
   
 org.projectlombok



lens git commit: LENS-1269 : Time range fallback in lens examples should not give empty results

2016-08-22 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master c6e3abc63 -> 99f8e344e


LENS-1269 : Time range fallback in lens examples should not give empty results


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

Branch: refs/heads/master
Commit: 99f8e344ee35a43c302d527d6b4579d9de091f40
Parents: c6e3abc
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Mon Aug 22 17:35:10 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 22 17:35:10 2016 +0530

--
 lens-examples/src/main/resources/sales-aggr-fact2-local3.data | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/99f8e344/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
--
diff --git a/lens-examples/src/main/resources/sales-aggr-fact2-local3.data 
b/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
index a0cb704..407b097 100644
--- a/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
+++ b/lens-examples/src/main/resources/sales-aggr-fact2-local3.data
@@ -1,2 +1,2 @@
-2015-04-13 00:00:00,2015-04-13 04:00:00,1,1,1,1,1,1,5,0
-2015-04-13 00:00:00,2015-04-13 04:00:00,2,1,2,2,2,1,8,2
\ No newline at end of file
+2015-04-13 03:00:00,2015-04-13 04:00:00,1,1,1,1,1,1,5,0
+2015-04-13 03:00:00,2015-04-13 04:00:00,2,1,2,2,2,1,8,2
\ No newline at end of file



lens git commit: LENS-1298 : Make the test event handler sync

2016-09-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master d9911f618 -> 85cb0c59f


LENS-1298 : Make the test event handler sync


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

Branch: refs/heads/master
Commit: 85cb0c59f4300d92e8512eefcea5f4cc16f6aea6
Parents: d9911f6
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Thu Sep 8 09:38:19 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Sep 8 09:38:19 2016 +0530

--
 .../test/java/org/apache/lens/server/query/TestEventService.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/85cb0c59/lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java 
b/lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java
index 31b6625..526accc 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestEventService.java
@@ -568,10 +568,10 @@ public class TestEventService {
 }
   }
 
-  private static class TestEventHandler extends AsyncEventListener {
+  private static class TestEventHandler implements 
LensEventListener {
 
 @Override
-public void process(TestEvent event) {
+public void onEvent(TestEvent event) throws LensException {
   event.processed = true;
 }
   }



lens git commit: LENS-1197 : Update doc for api getAllFacts of a cube

2016-09-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line be839122d -> ca19ead47


LENS-1197 : Update doc for api getAllFacts of a cube


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

Branch: refs/heads/current-release-line
Commit: ca19ead475e4f929a7154de4ca9c92dc034b0f2c
Parents: be83912
Author: Archana H <archana.h...@gmail.com>
Authored: Thu Sep 8 09:43:09 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Sep 8 09:43:58 2016 +0530

--
 .../java/org/apache/lens/server/metastore/MetastoreResource.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/ca19ead4/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
 
b/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
index f684247..9d823da 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
@@ -668,7 +668,7 @@ public class MetastoreResource {
*
* @param sessionid The sessionid in which user is working
* @param cubeName  name of the base cube or derived cube
-   * @return List of {@link XFactTable} objects
+   * @return StringList consisting of all the fact names in the given cube
*/
   @GET
   @Path("/cubes/{cubeName}/facts")



lens git commit: LENS-1197 : Update doc for api getAllFacts of a cube

2016-09-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 85cb0c59f -> 051ad2d3e


LENS-1197 : Update doc for api getAllFacts of a cube


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

Branch: refs/heads/master
Commit: 051ad2d3ecd8c3364745297f3c915f1520b26b4c
Parents: 85cb0c5
Author: Archana H <archana.h...@gmail.com>
Authored: Thu Sep 8 09:43:09 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Sep 8 09:43:09 2016 +0530

--
 .../java/org/apache/lens/server/metastore/MetastoreResource.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/051ad2d3/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
 
b/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
index f684247..9d823da 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/metastore/MetastoreResource.java
@@ -668,7 +668,7 @@ public class MetastoreResource {
*
* @param sessionid The sessionid in which user is working
* @param cubeName  name of the base cube or derived cube
-   * @return List of {@link XFactTable} objects
+   * @return StringList consisting of all the fact names in the given cube
*/
   @GET
   @Path("/cubes/{cubeName}/facts")



lens git commit: LENS-1344 : Make individual component headers on cube schema page on UI left aligned

2016-10-05 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 1a57cdd82 -> e6a59b739


LENS-1344 : Make individual component headers on cube schema page on UI left 
aligned


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

Branch: refs/heads/master
Commit: e6a59b7391364f1c7ad2b2894efcaf731dca119b
Parents: 1a57cdd
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Wed Oct 5 14:57:58 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Oct 5 14:57:58 2016 +0530

--
 lens-ui/app/components/CubeSchemaComponent.js | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/e6a59b73/lens-ui/app/components/CubeSchemaComponent.js
--
diff --git a/lens-ui/app/components/CubeSchemaComponent.js 
b/lens-ui/app/components/CubeSchemaComponent.js
index 27adfac..d7492eb 100644
--- a/lens-ui/app/components/CubeSchemaComponent.js
+++ b/lens-ui/app/components/CubeSchemaComponent.js
@@ -66,7 +66,7 @@ function constructMeasureTable(cubeName, measures) {
   return (
 
   
-Measures
+Measures
 {header}
 {table}
   
@@ -131,7 +131,7 @@ function constructDimensionTable(cubeName, dimensions, 
join_chains_by_name) {
   return (
 
   
-Dim-Attributes
+Dim-Attributes
 {header}
 {table}
   
@@ -165,7 +165,7 @@ function constructJoinChainTable(cubeName, join_chains) {
   return (
 
   
-Join Chains
+Join Chains
 {header}
 {table}
   
@@ -201,7 +201,7 @@ function constructExpressionTable(cubeName, expressions) {
   return (
 
   
-Expressions
+Expressions
 {header}
 {table}
   



lens git commit: LENS-1317 : Lens Query Conf to be persisted in Finished_Queries store

2016-09-19 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master fe4ea6bd6 -> 4fa61d994


LENS-1317 : Lens Query Conf to be persisted in Finished_Queries store


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

Branch: refs/heads/master
Commit: 4fa61d9940af6ede89401d5837f1f7796810f254
Parents: fe4ea6b
Author: Srikanth Sundarrajan <srik...@apache.org>
Authored: Tue Sep 20 10:59:28 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Sep 20 10:59:28 2016 +0530

--
 .../server/api/query/FinishedLensQuery.java |  9 +++--
 .../apache/lens/server/query/LensServerDAO.java | 38 +---
 .../apache/lens/server/query/TestLensDAO.java   |  5 +++
 3 files changed, 45 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4fa61d99/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 edd4284..b58fcf9 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
@@ -46,7 +46,7 @@ import lombok.ToString;
  *
  * @see java.lang.Object#hashCode()
  */
-@EqualsAndHashCode(exclude = "selectedDriver")
+@EqualsAndHashCode(exclude = {"selectedDriver", "conf"})
 /*
  * (non-Javadoc)
  *
@@ -174,6 +174,10 @@ public class FinishedLensQuery {
   @Setter
   private String priority;
 
+  @Getter
+  @Setter
+  private LensConf conf;
+
   /**
* The selected driver's query.
*/
@@ -217,6 +221,7 @@ public class FinishedLensQuery {
 if (null != ctx.getPriority()) {
   this.priority = ctx.getPriority().toString();
 }
+this.conf = ctx.getLensConf();
   }
 
   public QueryContext toQueryContext(Configuration conf, 
Collection drivers) {
@@ -226,7 +231,7 @@ public class FinishedLensQuery {
 }
 
 QueryContext qctx =
-  new QueryContext(userQuery, submitter, new LensConf(), conf, drivers, 
selectedDriver, submissionTime,
+  new QueryContext(userQuery, submitter, this.conf, conf, drivers, 
selectedDriver, submissionTime,
 false);
 
 qctx.setQueryHandle(QueryHandle.fromString(handle));

http://git-wip-us.apache.org/repos/asf/lens/blob/4fa61d99/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 2ec938e..997b5a8 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
@@ -18,6 +18,7 @@
  */
 package org.apache.lens.server.query;
 
+import java.nio.charset.Charset;
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -26,12 +27,16 @@ import java.util.List;
 
 import javax.sql.DataSource;
 
+import org.apache.lens.api.LensConf;
 import org.apache.lens.api.query.QueryHandle;
 import org.apache.lens.api.query.QueryStatus;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.query.FinishedLensQuery;
 import org.apache.lens.server.util.UtilityMethods;
 
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.dbutils.BasicRowProcessor;
+import org.apache.commons.dbutils.BeanProcessor;
 import org.apache.commons.dbutils.DbUtils;
 import org.apache.commons.dbutils.QueryRunner;
 import org.apache.commons.dbutils.ResultSetHandler;
@@ -87,7 +92,8 @@ public class LensServerDAO {
   + "starttime bigint, " + "endtime bigint," + "result varchar(255)," + 
"status varchar(255), "
   + "metadata varchar(10), " + "rows int, " + "filesize bigint, " + 
"errormessage varchar(1), "
   + "driverstarttime bigint, " + "driverendtime bigint, " + "drivername 
varchar(1), "
-  + "queryname varchar(255), " + "submissiontime bigint, " + "driverquery 
varchar(100)" + ")";
+  + "queryname varchar(255), " + "submissiontime bigint, " + "driverquery 
varchar(100), "
+  

lens git commit: LENS-1283 : Map failure in APIResult to exception in LensClient

2016-09-20 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4fa61d994 -> 8108ba062


LENS-1283 : Map failure in APIResult to exception in LensClient


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

Branch: refs/heads/master
Commit: 8108ba0625a477a15a7c7cbc65d73157ad83be14
Parents: 4fa61d9
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Wed Sep 21 09:39:16 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Sep 21 09:39:16 2016 +0530

--
 .../java/org/apache/lens/api/APIResult.java |  27 ++-
 .../java/org/apache/lens/api/ToYAMLString.java  |   5 +-
 .../lens/api/jaxb/YAMLToStringStrategyTest.java |  14 +-
 ...lens.api.query.QueryHandleWithResultSet.yaml |   2 +-
 .../apache/lens/cli/LensCliApplicationTest.java |   2 +-
 .../lens/cli/TestLensDatabaseCommands.java  |   9 +-
 .../apache/lens/client/LensMetadataClient.java  | 203 ++-
 .../exceptions/LensBriefErrorException.java |   5 +
 .../lens/client/model/IdBriefErrorTemplate.java |  22 +-
 .../client/model/IdBriefErrorTemplateTest.java  |   4 +-
 .../examples/ExampleSchemaToStringTest.java |   8 +-
 11 files changed, 163 insertions(+), 138 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/8108ba06/lens-api/src/main/java/org/apache/lens/api/APIResult.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/APIResult.java 
b/lens-api/src/main/java/org/apache/lens/api/APIResult.java
index e147fec..cba564e 100644
--- a/lens-api/src/main/java/org/apache/lens/api/APIResult.java
+++ b/lens-api/src/main/java/org/apache/lens/api/APIResult.java
@@ -20,6 +20,8 @@ package org.apache.lens.api;
 
 import javax.xml.bind.annotation.*;
 
+import org.apache.commons.lang.StringUtils;
+
 import lombok.AccessLevel;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -74,7 +76,7 @@ public class APIResult extends ToYAMLString {
 FAILED
   }
 
-  private static final APIResult SUCCESS = new APIResult(Status.SUCCEEDED, "");
+  private static final APIResult SUCCESS = new APIResult(Status.SUCCEEDED, 
null);
 
   public static APIResult partial(int actual, int expected) {
 return new APIResult(Status.PARTIAL, actual + " out of " + expected);
@@ -113,13 +115,22 @@ public class APIResult extends ToYAMLString {
   }
 
   private static String extractCause(Throwable e) {
-StringBuilder cause = new StringBuilder();
-String sep = "";
-while (e != null) {
-  cause.append(sep).append(e.getMessage());
-  e = e.getCause();
-  sep = ": ";
+if (e == null) {
+  return null;
+}
+if (e.getCause() != null) {
+  String causeMessage = extractCause(e.getCause());
+  if (StringUtils.isBlank(e.getMessage())) {
+return causeMessage;
+  } else {
+if (e.getMessage().contains(causeMessage)) {
+  return causeMessage;
+} else {
+  return e.getMessage() + ": " + causeMessage;
+}
+  }
+} else {
+  return e.getMessage();
 }
-return cause.toString();
   }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/8108ba06/lens-api/src/main/java/org/apache/lens/api/ToYAMLString.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/ToYAMLString.java 
b/lens-api/src/main/java/org/apache/lens/api/ToYAMLString.java
index 65a0c44..ea8e8d1 100644
--- a/lens-api/src/main/java/org/apache/lens/api/ToYAMLString.java
+++ b/lens-api/src/main/java/org/apache/lens/api/ToYAMLString.java
@@ -68,7 +68,10 @@ public abstract class ToYAMLString implements ToString {
   for (Field field : this.getClass().getDeclaredFields()) {
 try {
   Method getter = getGetter(field);
-  fieldNameAndValueList.add(new 
FieldNameAndValue(getReadableName(getter), getter.invoke(this)));
+  Object value = getter.invoke(this);
+  if (value != null) {
+fieldNameAndValueList.add(new 
FieldNameAndValue(getReadableName(getter), value));
+  }
 } catch (IllegalAccessException | InvocationTargetException e) {
   throw new RuntimeException(e);
 } catch (NoSuchMethodException e) {

http://git-wip-us.apache.org/repos/asf/lens/blob/8108ba06/lens-api/src/test/java/org/apache/lens/api/jaxb/YAMLToStringStrategyTest.java
--
diff --git 
a/lens-api/src/test/java/org/apache/lens/api/jaxb/YAMLToStringStrategyTest.java 
b/lens-api/src/test/java/org/apache/l

lens git commit: LENS-1314 : Update 2.6 release documentation

2016-09-20 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 8108ba062 -> 0d31b74b3


LENS-1314 : Update 2.6 release documentation


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

Branch: refs/heads/master
Commit: 0d31b74b39019b3f7370084e7a8e1f9b647afb5b
Parents: 8108ba0
Author: Puneet Gupta <puneetgu...@apache.org>
Authored: Wed Sep 21 09:57:56 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Sep 21 09:57:56 2016 +0530

--
 src/site/apt/releases/download.apt|  2 +-
 src/site/apt/releases/release-history.apt | 35 ++
 2 files changed, 36 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/0d31b74b/src/site/apt/releases/download.apt
--
diff --git a/src/site/apt/releases/download.apt 
b/src/site/apt/releases/download.apt
index d0b313f..7e6895d 100644
--- a/src/site/apt/releases/download.apt
+++ b/src/site/apt/releases/download.apt
@@ -20,7 +20,7 @@
 Download
 
   The latest release of Apache Lens can be
-  {{{http://www.apache.org/dyn/closer.lua/lens/2.5-beta}downloaded from the 
ASF}}.
+  {{{http://www.apache.org/dyn/closer.lua/lens/2.6}downloaded from the ASF}}.
 
   Older releases may be found {{{http://archive.apache.org/dist/lens}in the 
archives}}.
   Releases prior to graduation may be found 
{{{http://archive.apache.org/dist/incubator/lens}in the incubator archives}}.

http://git-wip-us.apache.org/repos/asf/lens/blob/0d31b74b/src/site/apt/releases/release-history.apt
--
diff --git a/src/site/apt/releases/release-history.apt 
b/src/site/apt/releases/release-history.apt
index 95891be..5ed0af8 100644
--- a/src/site/apt/releases/release-history.apt
+++ b/src/site/apt/releases/release-history.apt
@@ -23,6 +23,8 @@ All Apache Lens releases
 *--+--+---+--+--+--+--+
 |Release version|Major features|Release documentation|Release 
Notes|Download|Incompatibilities|More Info |
 *--+--+---+--+--+--+--+
+|2.6.0| GA release, Apache Hive 2 support, Query Scheduler, Lens UI 
enhancements, Python client, Streaming results, New regression module, Weighted 
Driver selector, Limit number of open sessions, Exponential back off for hive 
status updates, Single execution for duplicate queries, Auto kill queries on 
timeout, Convert dimension filter to fact filters for performance improvement, 
Code cleanup and refactor, Doc/javadoc improvements, Bug fixes| 
{{{../versions/2.6.0/index.html} 2.6.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12333846==12315923}
 2.6 release notes}} |{{{http://archive.apache.org/dist/lens/2.6/} Download}} 
|{{{#a2.6.x_from_2.5.x} 2.6.x-incompatibilities}} | - |
+*--+--+---+--+--+--+--+
 |2.5.0-beta| Support for multiple instances of a driver, REST API 
enhancements, Derived cube validation, Per-queue driver max launched queries 
constraint, New error codes for Hive and JDBC Driver, Lens CLI improvements, 
Query result retention policy, UI Enhancements, Code cleanup and refactor, 
Doc/javadoc improvements, Bug fixes| {{{../versions/2.5.0-beta/index.html} 
2.5.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=1226=12315923}
 2.5 release notes}} |{{{http://archive.apache.org/dist/lens/2.5-beta/} 
Download}} |{{{#a2.5.x_from_2.4.x} 2.5.x-incompatibilities}} | - |
 *--+--+---+--+--+--+--+
 |2.4.0-beta| JDK8 support, new web client, Saved Query and Parameterization, 
Support flattening of columns selected through bridge-tables(many-to-many 
relationships), column name mapping for columns in underlying storage tables, 
Enhancements cube.xsd and jdbc driver, Improvements in Error codes, Doc 
improvements, bug fixes| {{{../versions/2.4.0-beta/index.html} 2.4.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315923=12333087}
 2.4 release notes}} |{{{http://archive.apache.org/dist/lens/2.4-beta/} 
Download}} |{{{#a2.4.x_from_2.3.x} 2.4.x-incompatibilities}} | - |
@@ -44,6 +46,39 @@ All Apache Lens releases
 
 * Incompatibilities
 
+** 2.6.x from 2.5.x
+
+  * LENS-919: For older deployments the schema for "finished_queries" table 
needs to be modified to include "priority"
+
+  * LENS-1212: Saved query service is enabled by default now. "saved_query" 
table will be created to store information
+pertaining to saved queries
+
+  * LENS-833: Number of open sessions allowed for each user is capped at 10 by 
default now
+
+  * LENS-1244: Dropping beta from lens releases. Lens 2.6 will be a GA release
+
+

lens git commit: LENS-1314 : Update 2.6 release documentation

2016-09-20 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line ca19ead47 -> 035959184


LENS-1314 : Update 2.6 release documentation


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

Branch: refs/heads/current-release-line
Commit: 03595918430cf9fd3944539a7c8f26b724a3e773
Parents: ca19ead
Author: Puneet Gupta <puneetgu...@apache.org>
Authored: Wed Sep 21 09:57:56 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Sep 21 09:58:46 2016 +0530

--
 src/site/apt/releases/download.apt|  2 +-
 src/site/apt/releases/release-history.apt | 35 ++
 2 files changed, 36 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/03595918/src/site/apt/releases/download.apt
--
diff --git a/src/site/apt/releases/download.apt 
b/src/site/apt/releases/download.apt
index d0b313f..7e6895d 100644
--- a/src/site/apt/releases/download.apt
+++ b/src/site/apt/releases/download.apt
@@ -20,7 +20,7 @@
 Download
 
   The latest release of Apache Lens can be
-  {{{http://www.apache.org/dyn/closer.lua/lens/2.5-beta}downloaded from the 
ASF}}.
+  {{{http://www.apache.org/dyn/closer.lua/lens/2.6}downloaded from the ASF}}.
 
   Older releases may be found {{{http://archive.apache.org/dist/lens}in the 
archives}}.
   Releases prior to graduation may be found 
{{{http://archive.apache.org/dist/incubator/lens}in the incubator archives}}.

http://git-wip-us.apache.org/repos/asf/lens/blob/03595918/src/site/apt/releases/release-history.apt
--
diff --git a/src/site/apt/releases/release-history.apt 
b/src/site/apt/releases/release-history.apt
index 95891be..5ed0af8 100644
--- a/src/site/apt/releases/release-history.apt
+++ b/src/site/apt/releases/release-history.apt
@@ -23,6 +23,8 @@ All Apache Lens releases
 *--+--+---+--+--+--+--+
 |Release version|Major features|Release documentation|Release 
Notes|Download|Incompatibilities|More Info |
 *--+--+---+--+--+--+--+
+|2.6.0| GA release, Apache Hive 2 support, Query Scheduler, Lens UI 
enhancements, Python client, Streaming results, New regression module, Weighted 
Driver selector, Limit number of open sessions, Exponential back off for hive 
status updates, Single execution for duplicate queries, Auto kill queries on 
timeout, Convert dimension filter to fact filters for performance improvement, 
Code cleanup and refactor, Doc/javadoc improvements, Bug fixes| 
{{{../versions/2.6.0/index.html} 2.6.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12333846==12315923}
 2.6 release notes}} |{{{http://archive.apache.org/dist/lens/2.6/} Download}} 
|{{{#a2.6.x_from_2.5.x} 2.6.x-incompatibilities}} | - |
+*--+--+---+--+--+--+--+
 |2.5.0-beta| Support for multiple instances of a driver, REST API 
enhancements, Derived cube validation, Per-queue driver max launched queries 
constraint, New error codes for Hive and JDBC Driver, Lens CLI improvements, 
Query result retention policy, UI Enhancements, Code cleanup and refactor, 
Doc/javadoc improvements, Bug fixes| {{{../versions/2.5.0-beta/index.html} 
2.5.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=1226=12315923}
 2.5 release notes}} |{{{http://archive.apache.org/dist/lens/2.5-beta/} 
Download}} |{{{#a2.5.x_from_2.4.x} 2.5.x-incompatibilities}} | - |
 *--+--+---+--+--+--+--+
 |2.4.0-beta| JDK8 support, new web client, Saved Query and Parameterization, 
Support flattening of columns selected through bridge-tables(many-to-many 
relationships), column name mapping for columns in underlying storage tables, 
Enhancements cube.xsd and jdbc driver, Improvements in Error codes, Doc 
improvements, bug fixes| {{{../versions/2.4.0-beta/index.html} 2.4.x docs}} 
|{{{https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315923=12333087}
 2.4 release notes}} |{{{http://archive.apache.org/dist/lens/2.4-beta/} 
Download}} |{{{#a2.4.x_from_2.3.x} 2.4.x-incompatibilities}} | - |
@@ -44,6 +46,39 @@ All Apache Lens releases
 
 * Incompatibilities
 
+** 2.6.x from 2.5.x
+
+  * LENS-919: For older deployments the schema for "finished_queries" table 
needs to be modified to include "priority"
+
+  * LENS-1212: Saved query service is enabled by default now. "saved_query" 
table will be created to store information
+pertaining to saved queries
+
+  * LENS-833: Number of open sessions allowed for each user is capped at 10 by 
default now
+
+  * LENS-1244: Dropping beta from lens releases. Lens 2.

lens git commit: LENS-1300 : Query submission to be rejected on sessions marked for close

2016-09-17 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master d1a463552 -> 4556773e3


LENS-1300 : Query submission to be rejected on sessions marked for close


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

Branch: refs/heads/master
Commit: 4556773e3e4e2d80c1c68afd87338a4fe2de0e6d
Parents: d1a4635
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Sat Sep 17 11:43:29 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Sep 17 11:43:29 2016 +0530

--
 .../java/org/apache/lens/api/APIResult.java |   3 +
 .../lens/server/api/session/SessionService.java |   7 ++
 .../org/apache/lens/server/BaseLensService.java |   8 +-
 .../lens/server/session/HiveSessionService.java |  15 ++-
 .../lens/server/session/LensSessionImpl.java|   4 +-
 .../lens/server/session/SessionResource.java|  20 +++-
 .../TestQueryIndependenceFromSessionClose.java  | 105 +--
 7 files changed, 121 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/4556773e/lens-api/src/main/java/org/apache/lens/api/APIResult.java
--
diff --git a/lens-api/src/main/java/org/apache/lens/api/APIResult.java 
b/lens-api/src/main/java/org/apache/lens/api/APIResult.java
index 26e9926..e147fec 100644
--- a/lens-api/src/main/java/org/apache/lens/api/APIResult.java
+++ b/lens-api/src/main/java/org/apache/lens/api/APIResult.java
@@ -98,6 +98,9 @@ public class APIResult extends ToYAMLString {
   public static APIResult success() {
 return SUCCESS;
   }
+  public static APIResult success(String message) {
+return new APIResult(Status.SUCCEEDED, message);
+  }
 
   public static APIResult failure(Exception e) {
 String cause = extractCause(e);

http://git-wip-us.apache.org/repos/asf/lens/blob/4556773e/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java
--
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java
index 80ce030..20ec686 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/session/SessionService.java
@@ -67,6 +67,13 @@ public interface SessionService {
   void closeSession(LensSessionHandle sessionHandle) throws LensException;
 
   /**
+   * Close idle sessions.
+   *
+   * @throws LensException the lens exception
+   */
+
+  void cleanupIdleSessions() throws LensException;
+  /**
* Adds the resource.
*
* @param sessionHandle the session handle

http://git-wip-us.apache.org/repos/asf/lens/blob/4556773e/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java 
b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
index e0e4bf8..d7ce434 100644
--- a/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
+++ b/lens-server/src/main/java/org/apache/lens/server/BaseLensService.java
@@ -547,7 +547,13 @@ public abstract class BaseLensService extends 
CompositeService implements Extern
 if (handle == null) {
   throw new LensException(SESSION_ID_NOT_PROVIDED.getLensErrorInfo());
 }
-if (!getSession(handle).isActive()) {
+LensSessionImpl session;
+try {
+  session = getSession(handle);
+} catch (ClientErrorException e) {
+  throw new LensException(SESSION_CLOSED.getLensErrorInfo(), handle, e);
+}
+if (!session.isActive() || session.isMarkedForClose()) {
   throw new LensException(SESSION_CLOSED.getLensErrorInfo(), handle);
 }
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/4556773e/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
 
b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
index 8909098..21e2a62 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/session/HiveSessionService.java
@@ -22,9 +22,7 @@ import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.

lens git commit: LENS-1323 : Fix TestRemoteHiveDriver#testMultiThreadClient test failure

2016-09-17 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 4556773e3 -> fe4ea6bd6


LENS-1323 : Fix TestRemoteHiveDriver#testMultiThreadClient test failure


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

Branch: refs/heads/master
Commit: fe4ea6bd60596f7fb62239d9011050b338acced0
Parents: 4556773
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Sat Sep 17 11:57:39 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Sep 17 11:57:39 2016 +0530

--
 .../org/apache/lens/driver/hive/HiveDriver.java | 87 +---
 .../lens/driver/hive/TestRemoteHiveDriver.java  |  6 +-
 2 files changed, 44 insertions(+), 49 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/fe4ea6bd/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 0218be3..84d9933 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
@@ -583,7 +583,7 @@ public class HiveDriver extends AbstractLensDriver {
   }
 
   private DriverQueryStatus 
updateDriverStateFromOperationStatus(OperationHandle handle, DriverQueryStatus 
status)
-throws LensException, HiveSQLException {
+throws LensException, HiveSQLException, IOException {
 if (status == null) {
   status = new DriverQueryStatus();
 }
@@ -626,34 +626,13 @@ public class HiveDriver extends AbstractLensDriver {
 default:
   throw new LensException("Query is in unknown state at HiveServer");
 }
-return status;
-  }
-  /*
-   * (non-Javadoc)
-   *
-   * @see 
org.apache.lens.server.api.driver.LensDriver#updateStatus(org.apache.lens.server.api.query.QueryContext)
-   */
-  @Override
-  public void updateStatus(QueryContext context) throws LensException {
-log.debug("GetStatus: {}", context.getQueryHandle());
-if (context.getDriverStatus().isFinished()) {
-  return;
-}
-OperationHandle hiveHandle = getHiveHandle(context.getQueryHandle());
-ByteArrayInputStream in = null;
-try {
-  // Get operation status from hive server
-  log.debug("GetStatus hiveHandle: {}", hiveHandle);
-  fetchLogs(hiveHandle);
-  OperationStatus opStatus = getClient().getOperationStatus(hiveHandle);
-  updateDriverStateFromOperationStatus(hiveHandle, 
context.getDriverStatus());
-  float progress = 0f;
-  String jsonTaskStatus = opStatus.getTaskStatus();
-  String errorMsg = null;
-  if (StringUtils.isNotBlank(jsonTaskStatus)) {
+float progress = 0f;
+String jsonTaskStatus = opStatus.getTaskStatus();
+String errorMsg = null;
+if (StringUtils.isNotBlank(jsonTaskStatus)) {
+  try (ByteArrayInputStream in = new 
ByteArrayInputStream(jsonTaskStatus.getBytes("UTF-8"))) {
 ObjectMapper mapper = new ObjectMapper();
 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, 
false);
-in = new ByteArrayInputStream(jsonTaskStatus.getBytes("UTF-8"));
 List taskStatuses = mapper.readValue(in, new 
TypeReference<List>() {
 });
 int completedTasks = 0;
@@ -670,32 +649,44 @@ public class HiveDriver extends AbstractLensDriver {
 }
 progress = taskStatuses.size() == 0 ? 0 : (float) completedTasks / 
taskStatuses.size();
 errorMsg = errorMessage.toString();
-  } else {
-log.warn("Empty task statuses");
-  }
-  String error = null;
-  if (StringUtils.isNotBlank(errorMsg)) {
-error = errorMsg;
-  } else if (opStatus.getState().equals(OperationState.ERROR)) {
-error = context.getDriverStatus().getErrorMessage();
   }
-  context.getDriverStatus().setErrorMessage(error);
-  context.getDriverStatus().setProgressMessage(jsonTaskStatus);
-  context.getDriverStatus().setProgress(progress);
-  
context.getDriverStatus().setDriverStartTime(opStatus.getOperationStarted());
-  
context.getDriverStatus().setDriverFinishTime(opStatus.getOperationCompleted());
+} else {
+  log.warn("Empty task statuses");
+}
+String error = null;
+if (StringUtils.isNotBlank(errorMsg)) {
+  error = errorMsg;
+} else if (status.getState().equals(DriverQueryState.FAILED)) {
+  error = status.getErrorMessage();
+}
+status.setE

lens git commit: LENS-1322 : Display join chain details as a tooltip on dim attributes using that join chain

2016-09-16 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b438aa2f2 -> d1a463552


LENS-1322 : Display join chain details as a tooltip on dim attributes using 
that join chain


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

Branch: refs/heads/master
Commit: d1a4635526f770287099c60ddc1e9665644b9cc9
Parents: b438aa2
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Sat Sep 17 11:21:34 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Sat Sep 17 11:21:34 2016 +0530

--
 lens-ui/app/components/CubeSchemaComponent.js | 44 --
 lens-ui/app/stores/CubeStore.js   |  5 +++
 lens-ui/app/styles/css/global.css |  4 ++
 lens-ui/app/styles/css/query-component.css|  2 +-
 lens-ui/package.json  |  2 +-
 5 files changed, 43 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/d1a46355/lens-ui/app/components/CubeSchemaComponent.js
--
diff --git a/lens-ui/app/components/CubeSchemaComponent.js 
b/lens-ui/app/components/CubeSchemaComponent.js
index 6a2b7af..27adfac 100644
--- a/lens-ui/app/components/CubeSchemaComponent.js
+++ b/lens-ui/app/components/CubeSchemaComponent.js
@@ -23,6 +23,7 @@ import CubeStore from '../stores/CubeStore';
 import UserStore from '../stores/UserStore';
 import AdhocQueryActions from '../actions/AdhocQueryActions';
 import Loader from '../components/LoaderComponent';
+import {Tooltip, OverlayTrigger} from 'react-bootstrap'
 
 function getCubes(database) {
   return CubeStore.getCubes(database);
@@ -73,23 +74,41 @@ function constructMeasureTable(cubeName, measures) {
   );
 }
 
-function constructDimensionTable(cubeName, dimensions) {
+function constructDimensionTable(cubeName, dimensions, join_chains_by_name) {
   let table = dimensions.map((dimension) => {
 if (typeof(dimension) == "string") {
   return (
 
-  { dimension}
 
   );
 } else {
+  let join_chain_column;
+  if (dimension.chain_ref_column) {
+let inner =  dimension.chain_ref_column.map((ref) => {
+  let join_chain = join_chains_by_name[ref.chain_name];
+  let tooltip =  {
+join_chain.paths.path.map((path) => {
+  let paths = path.edges.edge.map((edge) => {
+return edge.from.table + "." + edge.from.column + "=" + 
edge.to.table + "." + edge.to.column
+  }).join("->")
+  return ({paths})
+})
+  }
+  ;
+  return (
+
+  {ref.chain_name}
+{"."+ref.ref_col}
+  );
+});
+join_chain_column = ({inner});
+  }
   return (
 
   { dimension.name }
   { dimension.display_string }
   { dimension.description }
-  { dimension.chain_ref_column ? 
dimension.chain_ref_column.map((ref) => {
-return ref.chain_name + "." + ref.ref_col
-  }).join("  ") : ""}
+  {join_chain_column}
 
   );
 }
@@ -194,11 +213,11 @@ function constructExpressionTable(cubeName, expressions) {
 class CubeSchema extends React.Component {
   constructor(props) {
 super(props);
-this.state = {cube: {}, database: props.params.databaseName};
+this.state = {cube: {}, database: UserStore.currentDatabase()};
 this._onChange = this._onChange.bind(this);
 
 AdhocQueryActions
-  .getCubeDetails(UserStore.getUserDetails().secretToken, 
props.params.databaseName, props.params.cubeName);
+  .getCubeDetails(UserStore.getUserDetails().secretToken, 
UserStore.currentDatabase(), props.params.cubeName);
   }
 
   componentDidMount() {
@@ -212,7 +231,7 @@ class CubeSchema extends React.Component {
   componentWillReceiveProps(props) {
 // TODO are props updated automatically, unlike state?
 let cubeName = props.params.cubeName;
-let cube = getCubes(props.params.databaseName)[cubeName];
+let cube = getCubes(UserStore.currentDatabase())[cubeName];
 
 if (cube.isLoaded) {
   this.setState({cube: cube, database: props.params.database});
@@ -220,10 +239,10 @@ class CubeSchema extends React.Component {
 }
 
 AdhocQueryActions
-  .getCubeDetails(UserStore.getUserDetails().secretToken, 
props.params.databaseName, cubeName);
+  .getCubeDetails(UserStore.getUserDetails().secretToken, 
UserStore.currentDatabase(), cubeName);
 
 // empty the

lens git commit: LENS-1334 : Fix full outer join condition for multi fact queries with more than two tables

2016-09-27 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master fa865bfb6 -> f1a959bdd


LENS-1334 : Fix full outer join condition for multi fact queries with more than 
two tables


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

Branch: refs/heads/master
Commit: f1a959bdd78e4161b7883734776e4dc4c464bb49
Parents: fa865bf
Author: Sushil Mohanty <sushilmoha...@apache.org>
Authored: Tue Sep 27 16:38:28 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Sep 27 16:38:28 2016 +0530

--
 .../lens/cube/parse/MultiFactHQLContext.java| 36 ---
 .../lens/cube/parse/TestBaseCubeQueries.java| 46 +++-
 2 files changed, 45 insertions(+), 37 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f1a959bd/lens-cube/src/main/java/org/apache/lens/cube/parse/MultiFactHQLContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/MultiFactHQLContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/MultiFactHQLContext.java
index 7fbcd7e..b3547db 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/MultiFactHQLContext.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/MultiFactHQLContext.java
@@ -129,6 +129,17 @@ class MultiFactHQLContext extends SimpleHQLContext {
 return select.toString();
   }
 
+  private String getMultiFactJoinCondition(int i, String dim) {
+StringBuilder joinCondition = new StringBuilder();
+if (i <= 1) {
+  return "".toString();
+} else {
+  joinCondition.append("mq").append(i - 
2).append(".").append(dim).append(" <=> ").
+  append("mq").append(i - 1).append(".").append(dim);
+}
+return joinCondition.toString();
+  }
+
   private String getFromString() throws LensException {
 StringBuilder fromBuilder = new StringBuilder();
 int aliasCount = 1;
@@ -137,24 +148,17 @@ class MultiFactHQLContext extends SimpleHQLContext {
   SimpleHQLContext facthql = factHQLContextMap.get(fact);
   
fromBuilder.append(sep).append("(").append(facthql.toHQL()).append(")").append("
 mq").append(aliasCount++);
   sep = " full outer join ";
-}
-CandidateFact firstFact = facts.iterator().next();
-if (!firstFact.getDimFieldIndices().isEmpty()) {
-  fromBuilder.append(" on ");
-}
-for (int i = 2; i <= facts.size(); i++) {
-  Iterator dimIter = firstFact.getDimFieldIndices().iterator();
-  while (dimIter.hasNext()) {
-String dim = query.getSelectAlias(dimIter.next());
-fromBuilder.append("mq1").append(".").append(dim).append(" <=> 
").append("mq").append(i).append(".")
-  .append(dim);
-if (dimIter.hasNext()) {
-  fromBuilder.append(" AND ");
+  if (!fact.getDimFieldIndices().isEmpty() && aliasCount > 2) {
+fromBuilder.append(" on ");
+Iterator dimIter = fact.getDimFieldIndices().iterator();
+while (dimIter.hasNext()) {
+  String dim = query.getSelectAlias(dimIter.next());
+  fromBuilder.append(getMultiFactJoinCondition(aliasCount, dim));
+  if (dimIter.hasNext()) {
+fromBuilder.append(" AND ");
+  }
 }
   }
-  if (i != facts.size() && firstFact.getDimFieldIndices().size() > 0) {
-fromBuilder.append(" AND ");
-  }
 }
 return fromBuilder.toString();
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/f1a959bd/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
index 6fb027a..053cad3 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
@@ -331,42 +331,46 @@ public class TestBaseCubeQueries extends TestQueryRewrite 
{
   @Test
   public void testMultiFactQueryInvolvingThreeFactTables() throws Exception {
 // query with 3 fact tables
-String hqlQuery = rewrite("select dim1, msr12, roundedmsr2, msr13, msr3 
from basecube where " + TWO_DAYS_RANGE,
-  conf);
+String hqlQuery = rewrite("select dim

lens git commit: LENS-1326 : Disable hive session and operation timeouts

2016-10-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 47a3012ed -> bf25ac578


LENS-1326 : Disable hive session and operation timeouts


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

Branch: refs/heads/master
Commit: bf25ac578d0643e664daafb2d19f95dda158ea18
Parents: 47a3012
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Tue Oct 4 12:49:35 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Oct 4 12:49:35 2016 +0530

--
 .../src/main/resources/lensserver-default.xml   |  12 +
 src/site/apt/admin/config.apt   | 240 ++-
 2 files changed, 134 insertions(+), 118 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/bf25ac57/lens-server/src/main/resources/lensserver-default.xml
--
diff --git a/lens-server/src/main/resources/lensserver-default.xml 
b/lens-server/src/main/resources/lensserver-default.xml
index d88ab3c..8e5fe8a 100644
--- a/lens-server/src/main/resources/lensserver-default.xml
+++ b/lens-server/src/main/resources/lensserver-default.xml
@@ -491,6 +491,18 @@
   
 
   
+hive.server2.idle.session.timeout
+0
+Session should be closed by lens. There would be a mismatch 
when hive has closed session due to timeout
+and lens is not aware of that.
+  
+
+hive.server2.idle.operation.timeout
+0
+Closing of operations should be handled by lens. Hive should 
not invalidate operations upon timeout
+
+  
+  
 hive.server2.async.exec.threads
 5
 Number of threads required in async thread pool for query 
execution in the lens directly. Lens uses

http://git-wip-us.apache.org/repos/asf/lens/blob/bf25ac57/src/site/apt/admin/config.apt
--
diff --git a/src/site/apt/admin/config.apt b/src/site/apt/admin/config.apt
index a1d4d1a..f22fc0c 100644
--- a/src/site/apt/admin/config.apt
+++ b/src/site/apt/admin/config.apt
@@ -36,245 +36,249 @@ Lens server configuration
 *--+--+---+--+
 |6|hive.server2.authentication.ldap.url| |LDAP connection URL|
 *--+--+---+--+
-|7|hive.server2.log.redirection.enabled|false|Disable the log direction on the 
lens server sessions. There are no logs required for each session in lens 
sessions. This will decrease number of file handles associated to lens server.|
+|7|hive.server2.idle.operation.timeout|0|Closing of operations should be 
handled by lens. Hive should not invalidate operations upon timeout|
 *--+--+---+--+
-|8|hive.server2.logging.operation.enabled|false|Disable the operation logging, 
since there are no execution operation happening in lens session. Keeping it 
true might conflict with Hive Server if both are running on the same machine 
causing disappearance of the operation log directory.|
+|8|hive.server2.idle.session.timeout|0|Session should be closed by lens. There 
would be a mismatch when hive has closed session due to timeout and lens is not 
aware of that.|
 *--+--+---+--+
-|9|lens.query.current.time.millis|0|Query current time in millis. This is used 
to resolve 'now'. If value is set to zero, 'now' is resolved to current value|
+|9|hive.server2.log.redirection.enabled|false|Disable the log direction on the 
lens server sessions. There are no logs required for each session in lens 
sessions. This will decrease number of file handles associated to lens server.|
 *--+--+---+--+
-|10|lens.server.alarm.service.impl|org.apache.lens.server.scheduler.AlarmService|Implementation
 class for alarm service|
+|10|hive.server2.logging.operation.enabled|false|Disable the operation 
logging, since there are no execution operation happening in lens session. 
Keeping it true might conflict with Hive Server if both are running on the same 
machine causing disappearance of the operation log directory.|
 *--+--+---+--+
-|11|lens.server.appevent.ws.listener.impl|org.apache.lens.server.LensApplicationListener|Implementation
 class for Lens Application Listener|
+|11|lens.query.current.time.millis|0|Query current time in millis. This is 
used to resolve 'now'. If value is set to zero, 'now' is resolved to current 
value|
 *--+--+---+--+
-|12|lens.server.base.url|http://0.0.0.0:/lensapi/|The base url for the 
lens server|
+|12|lens.server.alarm.service.impl|org.apache.lens.server.scheduler.AlarmService|Implementation
 class for alarm service|
 *--+--+---+--+
-|13|lens.server.consistentState.ws.filter.impl|org.apache.lens.server.ConsistentStateFilter|Implementation
 class for ConsistentState Filter|
+|13|lens.server.appevent.ws.listener.impl|org.apache.lens.server.LensAppl

lens git commit: LENS-1340 : Add DataCompletenessChecker

2016-10-04 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 08ce29785 -> 47a3012ed


LENS-1340 : Add DataCompletenessChecker


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

Branch: refs/heads/master
Commit: 47a3012edc9604e94795d1453a77ac4ee2b1b936
Parents: 08ce297
Author: Narayan Periwal <narayan.peri...@inmobi.com>
Authored: Tue Oct 4 12:44:15 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Oct 4 12:44:15 2016 +0530

--
 .../cube/parse/DataCompletenessChecker.java | 55 
 1 file changed, 55 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/47a3012e/lens-cube/src/main/java/org/apache/lens/cube/parse/DataCompletenessChecker.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/DataCompletenessChecker.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/DataCompletenessChecker.java
new file mode 100644
index 000..026c9a9
--- /dev/null
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/DataCompletenessChecker.java
@@ -0,0 +1,55 @@
+/**
+ * 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.cube.parse;
+
+import org.apache.lens.server.api.error.LensException;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * DataCompletenessChecker is for identifying the completeness of data in a 
fact for the given set of measures, start
+ * and end date. A fact will have a dataCompletenessTag, multiple facts can 
have the same dataCompletenessTag.
+ * Similarly, measures will have a dataCompletenessTag, multiple measures can 
have the same dataCompletenessTag.
+ * The api will take the dataCompletenessTag for the facts and measures and 
compute the completeness based on these
+ * tags. The utility of having tags is that the similar kind of measures or 
facts which will have the same level of
+ * completeness can use the same tag, thus we avoid the redundant completeness 
computation for similar measures
+ * and facts.
+ * The implementations of the interface can truncate the start and end date.
+ */
+public interface DataCompletenessChecker {
+
+/**
+ * Get completeness of the set of measures in a fact based on the 
dataCompletenessTag for the given starttime and
+ * endtime.
+ *
+ * @param factTag This is the dataCompletenessTag for a fact. The tag can 
be specified by setting the property
+ *named dataCompletenessTag for the fact. Mutltiple facts 
can have the same dataCompletenessTag.
+ * @param start Start time of the query (Inclusive).
+ * @param end End time of the query (Exclusive).
+ * @param measureTag List of distinct tag of the measures in the query. 
Multiple measures can have the same
+ *   dataCompletenessTag.
+ * @return map; key is the name of the dataCompletenessTag which refers to 
one or more measures. Value is the map
+ * of date and %completeness.
+ */
+Map<String, Map<Date, Float>> getCompleteness(String factTag, Date start, 
Date end, Set measureTag)
+throws LensException;
+
+}



lens git commit: LENS-1374 : Add more logs in FieldValidator

2016-11-09 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 08d79631b -> 666fc776a


LENS-1374 : Add more logs in FieldValidator


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

Branch: refs/heads/master
Commit: 666fc776a1f22c5b308b6eb1ea054a52d6ec141d
Parents: 08d7963
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Thu Nov 10 11:11:51 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Nov 10 11:11:51 2016 +0530

--
 .../main/java/org/apache/lens/cube/parse/FieldValidator.java | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/666fc776/lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java
index 7f4aa93..48af0c9 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java
@@ -33,10 +33,12 @@ import org.apache.hadoop.hive.ql.parse.ASTNode;
 import org.apache.hadoop.hive.ql.parse.HiveParser;
 
 import com.google.common.collect.ImmutableSet;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * Validate fields based on cube queryability
  */
+@Slf4j
 public class FieldValidator implements ContextRewriter {
 
   @Override
@@ -73,12 +75,13 @@ public class FieldValidator implements ContextRewriter {
   // do validation
   // Find atleast one derived cube which contains all the dimensions
   // queried.
-
+  log.info("Chained columns: {}, Queried dim attributes: {}", 
chainedSrcColumns, queriedDimAttrs);
   boolean derivedCubeFound = false;
   for (DerivedCube dcube : dcubes) {
 
 if (dcube.getDimAttributeNames().containsAll(chainedSrcColumns)
   && dcube.getDimAttributeNames().containsAll(queriedDimAttrs)) {
+  log.info("Derived cube found: {}", dcube.getName());
   // remove all the measures that are covered
   queriedMsrs.removeAll(dcube.getMeasureNames());
   derivedCubeFound = true;
@@ -93,9 +96,10 @@ public class FieldValidator implements ContextRewriter {
   }
 
   if (!queriedMsrs.isEmpty()) {
+log.info("Uncovered queried Measures: {}", queriedMsrs);
 // Add appropriate message to know which fields are not queryable 
together
 if (!nonQueryableFields.isEmpty()) {
-
+  log.info("Non queryable fields: {}", nonQueryableFields);
   conflictingFields.addAll(nonQueryableFields);
   conflictingFields.addAll(queriedMsrs);
   throw new FieldsCannotBeQueriedTogetherException(new 
ConflictingFields(conflictingFields));



[1/2] lens git commit: LENS-1333: Add data completeness checks on query writing path

2016-11-10 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 0cce226f7 -> 078555c1a


http://git-wip-us.apache.org/repos/asf/lens/blob/078555c1/src/site/apt/admin/config.apt
--
diff --git a/src/site/apt/admin/config.apt b/src/site/apt/admin/config.apt
index 21b23f9..f89caab 100644
--- a/src/site/apt/admin/config.apt
+++ b/src/site/apt/admin/config.apt
@@ -44,245 +44,249 @@ Lens server configuration
 *--+--+---+--+
 |10|hive.server2.logging.operation.enabled|false|Disable the operation 
logging, since there are no execution operation happening in lens session. 
Keeping it true might conflict with Hive Server if both are running on the same 
machine causing disappearance of the operation log directory.|
 *--+--+---+--+
-|11|lens.query.current.time.millis|0|Query current time in millis. This is 
used to resolve 'now'. If value is set to zero, 'now' is resolved to current 
value|
+|11|lens.cube.metastore.completeness.checker.class|org.apache.lens.server.api.metastore.DefaultChecker|The
 class that implements the DataCompletenessChecker Interface. This will take 
effect if the flag "lens.cube.metastore.enable.datacompleteness.check" is set.|
 *--+--+---+--+
-|12|lens.server.alarm.service.impl|org.apache.lens.server.scheduler.AlarmService|Implementation
 class for alarm service|
+|12|lens.cube.metastore.enable.datacompleteness.check|false|This property is 
to enable Data Completeness Checks while resolving partitions.|
 *--+--+---+--+
-|13|lens.server.appevent.ws.listener.impl|org.apache.lens.server.LensApplicationListener|Implementation
 class for Lens Application Listener|
+|13|lens.query.current.time.millis|0|Query current time in millis. This is 
used to resolve 'now'. If value is set to zero, 'now' is resolved to current 
value|
 *--+--+---+--+
-|14|lens.server.base.url|http://0.0.0.0:/lensapi/|The base url for the 
lens server|
+|14|lens.server.alarm.service.impl|org.apache.lens.server.scheduler.AlarmService|Implementation
 class for alarm service|
 *--+--+---+--+
-|15|lens.server.consistentState.ws.filter.impl|org.apache.lens.server.ConsistentStateFilter|Implementation
 class for ConsistentState Filter|
+|15|lens.server.appevent.ws.listener.impl|org.apache.lens.server.LensApplicationListener|Implementation
 class for Lens Application Listener|
 *--+--+---+--+
-|16|lens.server.database.resource.dir|/tmp/lens/resources|Top level directory 
to store database specific static resources which are added to each database. 
To add a static resource for a DB, create a directory with the same name as 
that of the DB under this directory, and place the resources inside the DB 
directory. Any subdirectories under the DB directory and the resources under 
them will be ignored|
+|16|lens.server.base.url|http://0.0.0.0:/lensapi/|The base url for the 
lens server|
 *--+--+---+--+
-|17|lens.server.db.driver.name|org.hsqldb.jdbcDriver|Database driver for 
database where Finished queries have to be stored. Also used for database based 
user config loaders|
+|17|lens.server.consistentState.ws.filter.impl|org.apache.lens.server.ConsistentStateFilter|Implementation
 class for ConsistentState Filter|
 *--+--+---+--+
-|18|lens.server.db.jdbc.pass| |JDBC Password for Finished queries table. Also 
used for database based user config loaders|
+|18|lens.server.database.resource.dir|/tmp/lens/resources|Top level directory 
to store database specific static resources which are added to each database. 
To add a static resource for a DB, create a directory with the same name as 
that of the DB under this directory, and place the resources inside the DB 
directory. Any subdirectories under the DB directory and the resources under 
them will be ignored|
 *--+--+---+--+
-|19|lens.server.db.jdbc.url|jdbc:hsqldb:/tmp/lensserver/queries.db|JDBC URL 
where the database for storing finished queries is located. Also used for 
database based user config loaders|
+|19|lens.server.db.driver.name|org.hsqldb.jdbcDriver|Database driver for 
database where Finished queries have to be stored. Also used for database based 
user config loaders|
 *--+--+---+--+
-|20|lens.server.db.jdbc.user|SA|JDBC User for Finished queries table. Also 
used for database based user config loaders|
+|20|lens.server.db.jdbc.pass| |JDBC Password for Finished queries table. Also 
used for database based user config loaders|
 *--+--+---+--+
-|21|lens.server.db.validation.query|select 1 from 
INFORMATION_SCHEMA.SYSTEM_USERS|BasicDatasource has a config parameter called 
validationQuery. This query is run before passing the Datasource to the 
application to verify if connection is valid.\ |
+|21|lens.server.db.jdbc.url|jdbc:hsqldb:/tmp/lensserver/queries.db|JDBC URL 
where the database for storing finished queries is located. Also used for 
database based user config loaders|
+*--+--+---+--+
+|22|lens.server.db.jdbc.user|SA|JDBC User for Finished queries table. Also 
used for database based user config loaders|

lens git commit: LENS-1325 : Add tests and document passing encoded urls for query http notifications

2016-10-19 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 70855ea8c -> 54961853f


LENS-1325 : Add tests and document passing encoded urls for query http 
notifications


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

Branch: refs/heads/master
Commit: 54961853fb6762431f5e20d0af95be3bb00d2afa
Parents: 70855ea
Author: Puneet Gupta <puneetgu...@apache.org>
Authored: Thu Oct 20 09:53:24 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Oct 20 09:53:24 2016 +0530

--
 .../server/query/QueryEventHttpNotifier.java|  6 ++---
 .../src/main/resources/lenssession-default.xml  |  3 ++-
 .../query/TestQueryNotifictaionResource.java| 23 ++--
 .../lens/server/query/TestQueryService.java | 15 ++---
 src/site/apt/admin/session-config.apt   |  2 +-
 5 files changed, 39 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/54961853/lens-server/src/main/java/org/apache/lens/server/query/QueryEventHttpNotifier.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEventHttpNotifier.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEventHttpNotifier.java
index 1760bec..6e7bd3b 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryEventHttpNotifier.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryEventHttpNotifier.java
@@ -146,7 +146,7 @@ public abstract class QueryEventHttpNotifier extends Async
   queryContext.getQueryHandleString(), httpEndPoint, responseCode);
   } catch (LensException e) {
 log.error("Error while sending {} HTTP Notification for Query {} to 
{}", getNotificationType(),
-  queryContext.getQueryHandleString(), httpEndPoint, e);
+  queryContext.getQueryHandleString(), httpEndPoint, e); // continue 
to try other httpEndPoints..
   }
 }
   }
@@ -187,7 +187,6 @@ public abstract class QueryEventHttpNotifier extends Async
*/
   private int notifyEvent(String httpEndPoint, Map<String, Object> 
eventDetails, MediaType mediaType)
 throws LensException {
-
 final WebTarget target = buildClient().target(httpEndPoint);
 FormDataMultiPart mp = new FormDataMultiPart();
 for (Map.Entry<String, Object> eventDetail : eventDetails.entrySet()) {
@@ -203,8 +202,9 @@ public abstract class QueryEventHttpNotifier extends Async
 } catch (Exception e) {
   throw new LensException("Error while publishing Http notification", e);
 }
+
 //2XX = SUCCESS
-if (!(response.getStatus() >= 200 && response.getStatus() < 300)) {
+if 
(!response.getStatusInfo().getFamily().equals(Response.Status.Family.SUCCESSFUL))
 {
   throw new LensException("Error while publishing Http notification. 
Response code " + response.getStatus());
 }
 return response.getStatus();

http://git-wip-us.apache.org/repos/asf/lens/blob/54961853/lens-server/src/main/resources/lenssession-default.xml
--
diff --git a/lens-server/src/main/resources/lenssession-default.xml 
b/lens-server/src/main/resources/lenssession-default.xml
index b6bfa2e..9a8f9da 100644
--- a/lens-server/src/main/resources/lenssession-default.xml
+++ b/lens-server/src/main/resources/lenssession-default.xml
@@ -263,7 +263,8 @@
 lens.query.http.notification.urls
 
 These are the http end points for Query http notifications. 
Users can specify more than one comma
-  separated end points for a query. If this property is not set, no http 
notification will be sent out by lens
+  separated end points for a query. Url parameter values that include 
special characters should be
+  encoded. Please note that if this property is not set, no http 
notification will be sent out by lens
   server for the query.
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/54961853/lens-server/src/test/java/org/apache/lens/server/query/TestQueryNotifictaionResource.java
--
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryNotifictaionResource.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryNotifictaionResource.java
index 6a57b20..da1a1c6 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryNotifictaionResource.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryNotifictaionResource.java
@@ -45,6 +

lens git commit: LENS-1361 : Ignore DB failure while scheduler startup

2016-10-20 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 54961853f -> f274e29d5


LENS-1361 : Ignore DB failure while scheduler startup


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

Branch: refs/heads/master
Commit: f274e29d53998f482697bfd8c57a3841b1779abc
Parents: 5496185
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Fri Oct 21 10:33:22 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Oct 21 10:33:22 2016 +0530

--
 .../org/apache/lens/server/scheduler/SchedulerDAO.java   | 11 ++-
 .../lens/server/scheduler/SchedulerServiceImpl.java  |  6 +-
 2 files changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f274e29d/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java 
b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
index 69e81c1..5f472fc 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
@@ -60,8 +60,9 @@ public class SchedulerDAO {
   this.store.createJobInstanceTable();
   this.store.createJobInstanceRunTable();
 } catch (SQLException e) {
+  // If tables are not created, the DAO operations will fail at runtime.
+  // The APIs will fail with Internal Server Error.
   log.error("Error creating job tables", e);
-  throw new LensException("Error creating job tables ", e);
 } catch (ClassNotFoundException e) {
   log.error("No class found ", e);
   throw new LensException("No class found ", e);
@@ -239,7 +240,7 @@ public class SchedulerDAO {
   return store.getAllJobInstances(id.getHandleIdString());
 } catch (SQLException e) {
   log.error("Error while getting instances of a job with id {}", 
id.getHandleIdString(), e);
-  return null;
+  return new ArrayList<>();
 }
   }
 
@@ -258,7 +259,7 @@ public class SchedulerDAO {
   return store.getJobs(username, jobStates == null ? new 
SchedulerJobState[] {} : jobStates, startTime, endTime);
 } catch (SQLException e) {
   log.error("Error while getting jobs ", e);
-  return null;
+  return new ArrayList<>();
 }
   }
 
@@ -273,7 +274,7 @@ public class SchedulerDAO {
   return store.getJobsByName(jobName);
 } catch (SQLException e) {
   log.error("Error while getting jobs ", e);
-  return null;
+  return new ArrayList<>();
 }
   }
 
@@ -288,7 +289,7 @@ public class SchedulerDAO {
   return store.getInstanceRuns(states);
 } catch (SQLException e) {
   log.error("Error while getting jobs ", e);
-  return null;
+  return new ArrayList<>();
 }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/f274e29d/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
index 00130d0..73277de 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
@@ -81,6 +81,7 @@ public class SchedulerServiceImpl extends BaseLensService 
implements SchedulerSe
   private AlarmService alarmService;
 
   private int maxJobsPerUser = 
LensConfConstants.DEFAULT_MAX_SCHEDULED_JOB_PER_USER;
+  private boolean healthy = true;
 
   /**
* Instantiates a new scheduler service.
@@ -105,6 +106,7 @@ public class SchedulerServiceImpl extends BaseLensService 
implements SchedulerSe
   getEventService().addListenerForType(schedulerQueryEventListener, 
QueryEnded.class);
 } catch (LensException e) {
   log.error("Error Initialising Scheduler-service", e);
+  healthy = false;
 }
   }
 
@@ -126,7 +128,6 @@ public class SchedulerServiceImpl extends BaseLensService 
implements SchedulerSe
*/
   @Override
   public synchronized void start() {
-super.start();
 List instanceRuns = schedulerDAO
   .getInstanceRuns(SchedulerJobInstanceState.WAITING, 
SchedulerJobInstanceState.LAUNCHED,
 Schedule

lens git commit: LENS-1342 : Close InputStreamReader in PropertyBasedUserConfigLoader

2016-11-02 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 95a4f596c -> d1a0e0e26


LENS-1342 : Close InputStreamReader in PropertyBasedUserConfigLoader


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

Branch: refs/heads/master
Commit: d1a0e0e266b5f7ffd0ad1d5b742fb92e4a91eeb3
Parents: 95a4f59
Author: Ted Yu <yuzhih...@gmail.com>
Authored: Thu Nov 3 10:40:13 2016 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Nov 3 10:40:13 2016 +0530

--
 .../apache/lens/server/user/PropertyBasedUserConfigLoader.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/d1a0e0e2/lens-server/src/main/java/org/apache/lens/server/user/PropertyBasedUserConfigLoader.java
--
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/user/PropertyBasedUserConfigLoader.java
 
b/lens-server/src/main/java/org/apache/lens/server/user/PropertyBasedUserConfigLoader.java
index 1c025dd..632f71c 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/user/PropertyBasedUserConfigLoader.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/user/PropertyBasedUserConfigLoader.java
@@ -52,8 +52,8 @@ public class PropertyBasedUserConfigLoader implements 
UserConfigLoader {
   throw new UserConfigLoaderException("property file path not provided for 
property based resolver."
 + "Please set property " + 
LensConfConstants.USER_RESOLVER_PROPERTYBASED_FILENAME);
 }
-try {
-  properties.load(new InputStreamReader(new FileInputStream(new 
File(filename)), "UTF-8"));
+try (InputStreamReader reader = new InputStreamReader(new 
FileInputStream(new File(filename)), "UTF-8")) {
+  properties.load(reader);
 } catch (IOException e) {
   throw new UserConfigLoaderException("property file not found. Provided 
path was: " + filename);
 }



lens git commit: LENS-1410 : Make the filter while getting a list of partitions mandatory

2017-04-20 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master cf944c10c -> de8f2ec6f


LENS-1410 : Make the filter while getting a list of partitions mandatory


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

Branch: refs/heads/master
Commit: de8f2ec6fa812d7d34e8d882c621f0215abe777d
Parents: cf944c1
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Thu Apr 20 16:06:13 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Thu Apr 20 16:06:13 2017 +0530

--
 lens-api/src/main/resources/lens-errors.conf|  7 
 .../lens/cli/commands/LensFactCommands.java |  2 +-
 .../apache/lens/cli/TestLensFactCommands.java   | 14 ++--
 .../lens/cube/error/LensCubeErrorCode.java  |  3 +-
 .../server/metastore/MetastoreResource.java |  4 +++
 .../server/metastore/TestMetastoreService.java  | 35 
 6 files changed, 53 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/de8f2ec6/lens-api/src/main/resources/lens-errors.conf
--
diff --git a/lens-api/src/main/resources/lens-errors.conf 
b/lens-api/src/main/resources/lens-errors.conf
index 94505ef..236d678 100644
--- a/lens-api/src/main/resources/lens-errors.conf
+++ b/lens-api/src/main/resources/lens-errors.conf
@@ -365,6 +365,13 @@ lensCubeErrorsForMetastore = [
 httpStatusCode = ${NOT_FOUND}
 errorMsg = "%s %s Not found."
   }
+
+  {
+errorCode = 3105
+httpStatusCode = ${BAD_REQUEST}
+errorMsg = "Partition filter can not be null or empty"
+  }
+
 ]
 
 lensDriverErrors = [

http://git-wip-us.apache.org/repos/asf/lens/blob/de8f2ec6/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java
index 9ea887a..a01d6c0 100644
--- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java
+++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensFactCommands.java
@@ -191,7 +191,7 @@ public class LensFactCommands extends 
LogicalTableCrudCommand {
   public String getAllPartitionsOfFact(
 @CliOption(key = {"", "fact_name"}, mandatory = true, help = 
"") String tableName,
 @CliOption(key = {"", "storage_name"}, mandatory = true, help = 
"") String storageName,
-@CliOption(key = {"", "filter"}, mandatory = false, help = 
"") String filter) {
+@CliOption(key = {"", "filter"}, mandatory = true, help = 
"") String filter) {
 return getAllPartitions(tableName, storageName, filter);
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/de8f2ec6/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
--
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
index f176078..d31e25c 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.*;
 import java.io.*;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.Calendar;
 import java.util.List;
 
 import javax.ws.rs.NotFoundException;
@@ -30,6 +31,7 @@ import javax.ws.rs.NotFoundException;
 import org.apache.lens.cli.commands.LensCubeCommands;
 import org.apache.lens.cli.commands.LensFactCommands;
 import org.apache.lens.client.LensClient;
+import org.apache.lens.cube.metadata.UpdatePeriod;
 
 import org.testng.annotations.AfterTest;
 import org.testng.annotations.Test;
@@ -241,7 +243,10 @@ public class TestLensFactCommands extends 
LensCliApplicationTest {
   private void testFactPartitionActions() throws URISyntaxException {
 LensFactCommands command = getCommand();
 verifyEmptyTimelines();
-assertTrue(command.getAllPartitionsOfFact("fact1", FACT_LOCAL, 
null).trim().isEmpty());
+Calendar cal = Calendar.getInstance();
+cal.set(2000, 01, 01);
+String filter =  "dt>'" + UpdatePeriod.HOURLY.format(cal.getTime()) + "'";
+assertTrue(command.getAllPartitionsOfFact("fact1", FACT_LOCAL, 
filter).trim().isEmpty());
 String singlePartPath = new File(
   
TestLensFactCo

lens git commit: LENS-1393 : Upgrade javax mail version

2017-04-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master ae83caae5 -> b94fc5be3


LENS-1393 : Upgrade javax mail version


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

Branch: refs/heads/master
Commit: b94fc5be3f3338db2200b068a2d92e02b2dfddf5
Parents: ae83caa
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Tue Apr 18 11:47:08 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Apr 18 11:47:08 2017 +0530

--
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b94fc5be/pom.xml
--
diff --git a/pom.xml b/pom.xml
index f1b72a0..4b1974b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,7 +40,7 @@
 2.5
 2.0.1
 2.2.12
-1.4
+1.4.7
 
 
 2.6.0



lens git commit: LENS-1409 : Remove Unknown.log file before lens startup

2017-04-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master b94fc5be3 -> f8a387917


LENS-1409 : Remove Unknown.log file before lens startup


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

Branch: refs/heads/master
Commit: f8a3879172c923d5ceac76c3d853b77eea002ca9
Parents: b94fc5b
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Tue Apr 18 11:54:31 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Apr 18 11:54:31 2017 +0530

--
 tools/conf/server/logback.xml | 2 +-
 tools/scripts/lens-ctl| 6 +-
 2 files changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/f8a38791/tools/conf/server/logback.xml
--
diff --git a/tools/conf/server/logback.xml b/tools/conf/server/logback.xml
index 5173321..4f98529 100644
--- a/tools/conf/server/logback.xml
+++ b/tools/conf/server/logback.xml
@@ -100,7 +100,7 @@
   
 
   queryLogId
-  unknown
+  ${query.log.default.id}
 
 
   

http://git-wip-us.apache.org/repos/asf/lens/blob/f8a38791/tools/scripts/lens-ctl
--
diff --git a/tools/scripts/lens-ctl b/tools/scripts/lens-ctl
index 6e1d363..304b4f5 100755
--- a/tools/scripts/lens-ctl
+++ b/tools/scripts/lens-ctl
@@ -136,7 +136,7 @@ start() {
 
   mkdir -p $LENS_LOG_DIR
 
-  JAVA_PROPERTIES="${JAVA_PROPERTIES} $LENS_OPTS $LENS_PROPERTIES 
-Dlens.log.dir=$LENS_LOG_DIR -Dlens.home=${LENS_HOME_DIR} 
-Dconfig.location=$LENS_CONF"
+  JAVA_PROPERTIES="${JAVA_PROPERTIES} $LENS_OPTS $LENS_PROPERTIES 
-Dlens.log.dir=$LENS_LOG_DIR -Dlens.home=${LENS_HOME_DIR} 
-Dconfig.location=$LENS_CONF -Dquery.log.default.id=unknown"
   shift
 
   while [[ ${1} =~ ^\-D ]]; do
@@ -144,6 +144,10 @@ start() {
   shift
   done
 
+  queryLogIDFile="${LENS_LOG_DIR}/unknown.log"
+  if [ -f "$queryLogIDFile" ] ; then
+  rm "$queryLogIDFile"
+  fi
   if [ -n "$opt_verbose" ] ; then
 JAVA_PROPERTIES="-Dlensserver.root.logger=INFO,CONSOLE 
-Dlensserver.request.logger=INFO,CONSOLE ${JAVA_PROPERTIES}"
 ${JAVA_BIN} ${JAVA_PROPERTIES} -cp ${LENSCPPATH} 
org.apache.lens.server.LensServer $*



lens git commit: LENS-1391 : Fix pending review comments on MaxCoveringFactResolver and LeastPartitionResolver

2017-04-18 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master f8a387917 -> c4cd6d84e


LENS-1391 : Fix pending review comments on MaxCoveringFactResolver and 
LeastPartitionResolver


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

Branch: refs/heads/master
Commit: c4cd6d84ec533d84c24717591c890972f5d858cb
Parents: f8a3879
Author: Lavkesh Lahngir <lavk...@linux.com>
Authored: Wed Apr 19 11:05:57 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Apr 19 11:05:57 2017 +0530

--
 .../lens/cli/commands/LensSchemaCommands.java   | 12 +-
 .../cube/parse/CandidateTablePruneCause.java|  7 ++
 .../lens/cube/parse/LeastPartitionResolver.java | 15 +++--
 .../cube/parse/MaxCoveringFactResolver.java | 23 ++--
 .../lens/cube/parse/StorageCandidate.java   |  5 +++--
 .../server/query/QueryAPIErrorResponseTest.java |  2 +-
 6 files changed, 22 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/c4cd6d84/lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java
--
diff --git 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java
index befe4e6..d3f9142 100644
--- 
a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java
+++ 
b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java
@@ -20,19 +20,11 @@ package org.apache.lens.cli.commands;
 
 import java.io.File;
 import java.io.FilenameFilter;
-import java.util.List;
 import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.lens.api.metastore.SchemaTraverser;
-import org.apache.lens.api.metastore.XBaseCube;
-import org.apache.lens.api.metastore.XDerivedCube;
-import org.apache.lens.api.metastore.XDimension;
-import org.apache.lens.api.metastore.XDimensionTable;
-import org.apache.lens.api.metastore.XFactTable;
-import org.apache.lens.api.metastore.XSegmentation;
-import org.apache.lens.api.metastore.XStorage;
+import org.apache.lens.api.metastore.*;
 import org.apache.lens.cli.commands.annotations.UserDocumentation;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,9 +34,7 @@ import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
 import org.springframework.shell.support.logging.HandlerUtils;
 import org.springframework.stereotype.Component;
-import org.springframework.util.Assert;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
 @Component

http://git-wip-us.apache.org/repos/asf/lens/blob/c4cd6d84/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
index 1c0d356..29af419 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
@@ -235,6 +235,7 @@ public class CandidateTablePruneCause {
   // if a time dim is not supported by the fact. Would be set if and only if
   // the fact is not partitioned by part col of the time dim and time dim is 
not a dim attribute
   private Set unsupportedTimeDims;
+  private MaxCoveringFactResolver.TimeCovered maxTimeCovered;
   // time covered
   // ranges in which fact is invalid
   private List invalidRanges;
@@ -295,6 +296,12 @@ public class CandidateTablePruneCause {
 return cause;
   }
 
+  public static CandidateTablePruneCause 
lessData(MaxCoveringFactResolver.TimeCovered timeCovered) {
+CandidateTablePruneCause cause = new CandidateTablePruneCause(LESS_DATA);
+cause.setMaxTimeCovered(timeCovered);
+return cause;
+  }
+
   public static CandidateTablePruneCause noColumnPartOfAJoinPath(final 
Collection colSet) {
 CandidateTablePruneCause cause =
   new CandidateTablePruneCause(NO_COLUMN_PART_OF_A_JOIN_PATH);

http://git-wip-us.apache.org/repos/asf/lens/blob/c4cd6d84/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java
 
b/lens-cube/src/main/java/org/apache/

lens git commit: LENS-1405 : Add xsd for virtual fact

2017-04-19 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master c4cd6d84e -> cf944c10c


LENS-1405 : Add xsd for virtual fact


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

Branch: refs/heads/master
Commit: cf944c10c7fe68c151e2967612864251a72814ef
Parents: c4cd6d8
Author: Rajitha R <rajitha@gmail.com>
Authored: Wed Apr 19 12:11:22 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Wed Apr 19 12:11:22 2017 +0530

--
 lens-api/src/main/resources/cube-0.1.xsd| 70 
 .../src/main/resources/virtualfact1.xml | 27 
 2 files changed, 97 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/cf944c10/lens-api/src/main/resources/cube-0.1.xsd
--
diff --git a/lens-api/src/main/resources/cube-0.1.xsd 
b/lens-api/src/main/resources/cube-0.1.xsd
index 1d8a624..68ccc13 100644
--- a/lens-api/src/main/resources/cube-0.1.xsd
+++ b/lens-api/src/main/resources/cube-0.1.xsd
@@ -168,6 +168,76 @@
 
   
 
+  
+  
+
+  
+Virtual fact extends fact. It can override the cube of its source 
fact. It can have different
+properties associated with it than its source.
+Properties that can be set for a virtual fact are :
+-  Filters which would be added in query rewriting
+  
+
+
+
+  
+
+  Properties that can be set for a virtual fact are
+  1. cube.fact.query.where.filter : filter string that needs to be 
added in WHERE clause. This string would be added as an additional
+  filter when the query is being constructed in the cube query writing 
phase.
+  2. cube.fact.absolute.start.time: start time of the fact. For 
queries that ask for time before this,
+  this fact is not a candidate. Time format can be as you would 
specify in the time_range_in clause.
+  i.e. [-mm[-dd[-hh[:MM[:ss[,SSS]]
+  3. cube.fact.relative.start.time: Here you can specify fact's 
relative validity relative to current time.
+  Useful if you want to specify e.g. this fact is valid for today - 90 
days. Can be specified as just
+  a time difference e.g. "-90 days". Or can be specified in relative 
syntax.
+  e.g. now.year or now.day - 6 hour etc.
+  4. cube.fact.absolute.end.time: If you're deprecating this fact, put 
the final date till which the data of
+  the fact will be valid here. Format same as absolute start time.
+  5. cube.fact.relative.end.time: You can specify the end date for 
fact table
+  relative to current date e.g. fact table is valid for next 90days 
starting from today.
+  This can be specified as just a time difference e.g. "+90 days"
+
+
+  
+
+
+
+  
+
+  The Source fact name over which the Virtual fact is defined.
+
+  
+
+
+  
+
+  The base cube's name to which the Virtual fact is associated.
+
+  
+
+
+  
+
+  The virtual fact table name.
+
+  
+
+
+  
+
+  The weight of the fact table. LENS will use this attribute to decide 
the lightest table to query when there
+  are more than one eligible tables. If not defined, the source fact 
weight would be picked up.
+
+  
+  
+
+  
+
+  
+
+  
+
   
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/cf944c10/lens-examples/src/main/resources/virtualfact1.xml
--
diff --git a/lens-examples/src/main/resources/virtualfact1.xml 
b/lens-examples/src/main/resources/virtualfact1.xml
new file mode 100644
index 000..c89a9c5
--- /dev/null
+++ b/lens-examples/src/main/resources/virtualfact1.xml
@@ -0,0 +1,27 @@
+
+
+http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="uri:lens:cube:0.1 cube-0.1.xsd ">
+
+
+
+



lens git commit: LENS-1450 : Fix duplicate filters in query writing

2017-08-07 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 3da3bce4b -> 6c40b24ff


LENS-1450 : Fix duplicate filters in query writing


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

Branch: refs/heads/master
Commit: 6c40b24ffa8ff66b448a4f61054fb3897cffdd6a
Parents: 3da3bce
Author: Rajitha R <rajitha@gmail.com>
Authored: Mon Aug 7 17:29:26 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 7 17:29:26 2017 +0530

--
 .../java/org/apache/lens/cube/parse/CubeQueryContext.java |  3 ++-
 .../java/org/apache/lens/cube/parse/TestCubeRewriter.java | 10 +-
 2 files changed, 11 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/6c40b24f/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
index b5330a7..8b9583a 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
@@ -1169,7 +1169,8 @@ public class CubeQueryContext extends 
TracksQueriedColumns implements QueryAST,
 }
   }
 } else if (node.getParent() == null
-&& node.getToken().getType() != HiveParser.KW_AND) {
+&& node.getToken().getType() != HiveParser.KW_AND
+  && node.getChild(0).getType() != HiveParser.KW_AND) {
   // if node is the only child
   allFilters.add(HQLParser.getString((ASTNode) node));
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/6c40b24f/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
index 1c75e6c..bc0fa2e 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
@@ -509,8 +509,16 @@ public class TestCubeRewriter extends TestQueryRewrite {
 conf.setBoolean(DISABLE_AUTO_JOINS, false);
 conf.setBoolean(REWRITE_DIM_FILTER_TO_FACT_FILTER, true);
 
+// No filter
+String hql = rewrite("select cityid , msr2 from testCube where " + 
TWO_DAYS_RANGE, conf);
+
+String expectedQuery =  getExpectedQuery(TEST_CUBE_NAME, "select 
(testcube.cityid) as `cityid`, "
++ "sum((testcube.msr2)) as `msr2` from ", null, "group by 
testcube.cityid",
+  getWhereForHourly2days(TEST_CUBE_NAME, "c3_testfact2_raw"));
+compareQueries(expectedQuery, hql);
+
 // filter with =
-String hql = rewrite(
+hql = rewrite(
 "select cubecountry.name, msr2 from" + " testCube" + " where 
cubecountry.region = 'asia' and "
 + TWO_DAYS_RANGE, conf);
 String filterSubquery = "testcube.countryid in ( select id from 
TestQueryRewrite.c3_countrytable_partitioned "



[3/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
LENS-1412 : Add capability to define virtual facts in a cube


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

Branch: refs/heads/master
Commit: 5de45e0f8212c2e03eaf9886b720e13868a1c42a
Parents: 34500f1
Author: Rajitha R <rajitha@gmail.com>
Authored: Tue Jun 6 13:59:58 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Jun 6 13:59:58 2017 +0530

--
 .../lens/api/metastore/SchemaTraverser.java |   1 +
 lens-api/src/main/resources/cube-0.1.xsd| 176 +++
 lens-api/src/main/resources/lens-errors.conf|   6 +
 .../lens/cli/commands/LensFactCommands.java |   6 +-
 .../lens/cli/commands/LensSchemaCommands.java   |  18 +-
 .../apache/lens/cli/TestLensFactCommands.java   | 132 +-
 .../apache/lens/cli/TestLensSchemaCommands.java |   2 +-
 .../schema/cubes/base/virtual-cube.xml  |  30 ++
 .../resources/schema/facts/virtual_fact.xml |  28 ++
 .../java/org/apache/lens/client/LensClient.java |   2 +-
 .../apache/lens/client/LensMetadataClient.java  |  18 +-
 .../lens/cube/error/LensCubeErrorCode.java  |   3 +-
 .../lens/cube/metadata/AbstractCubeTable.java   |  22 +-
 .../lens/cube/metadata/CubeFactTable.java   |  52 ++-
 .../lens/cube/metadata/CubeMetastoreClient.java | 463 ++-
 .../cube/metadata/CubeVirtualFactTable.java | 186 
 .../apache/lens/cube/metadata/FactTable.java| 166 +++
 .../apache/lens/cube/metadata/JAXBUtils.java|  24 +-
 .../lens/cube/metadata/MetastoreConstants.java  |   2 +
 .../lens/cube/metadata/MetastoreUtil.java   |  26 +-
 .../apache/lens/cube/metadata/Segmentation.java |  13 +-
 .../org/apache/lens/cube/parse/Candidate.java   |   8 +-
 .../lens/cube/parse/CandidateTableResolver.java |  11 +-
 .../lens/cube/parse/StorageCandidate.java   |  55 +--
 .../cube/parse/StorageCandidateHQLContext.java  |  12 +-
 .../lens/cube/parse/StorageTableResolver.java   |   5 +-
 .../lens/cube/metadata/CubeFactTableTest.java   |  12 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 123 -
 .../apache/lens/cube/parse/CubeTestSetup.java   |  40 +-
 .../lens/cube/parse/TestCubeRewriter.java   |  16 +
 .../parse/TestCubeSegmentationRewriter.java |  15 +-
 .../lens/cube/parse/TestUnionQueries.java   |   2 +-
 .../resources/schema/cubes/base/virtualcube.xml |  36 ++
 .../test/resources/schema/facts/virtualfact.xml |  27 ++
 lens-driver-es/pom.xml  |   3 +-
 lens-examples/pom.xml   |   3 +-
 .../src/test/resources/yaml/fact1.yaml  |   4 +-
 .../src/test/resources/yaml/fact2.yaml  |   4 +-
 .../src/test/resources/yaml/rawfact.yaml|   4 +-
 .../yaml/sales-aggr-continuous-fact.yaml|   4 +-
 .../test/resources/yaml/sales-aggr-fact1.yaml   |   4 +-
 .../test/resources/yaml/sales-aggr-fact2.yaml   |   4 +-
 .../src/test/resources/yaml/sales-raw-fact.yaml |   4 +-
 .../api/metastore/CubeMetastoreService.java |   8 +-
 lens-server/pom.xml |   2 +-
 .../metastore/CubeMetastoreServiceImpl.java |  24 +-
 .../server/metastore/MetastoreResource.java |  17 +-
 .../lens/server/common/RestAPITestUtil.java |   7 +-
 .../server/metastore/TestMetastoreService.java  | 274 ++-
 src/site/apt/user/cli.apt   |   3 +-
 tools/scripts/generate-site-public.sh   |   2 +-
 51 files changed, 1646 insertions(+), 463 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/5de45e0f/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java 
b/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
index 9564443..09c848a 100644
--- a/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
+++ b/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
@@ -42,6 +42,7 @@ public class SchemaTraverser implements Runnable {
 types.put("cubes/derived", XDerivedCube.class);
 types.put("dimensions", XDimension.class);
 types.put("facts", XFactTable.class);
+types.put("facts/virtual", XVirtualFactTable.class);
 types.put("dimtables", XDimensionTable.class);
 types.put("dimensiontables", XDimensionTable.class);
 types.put("dimensiontables", XDimensionTable.class);

http://git-wip-us.apache.org/repos/asf/lens/blob/5de45e0f/lens-api/src/main/resources/cube-0.1.xsd
---

[2/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/5de45e0f/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
new file mode 100644
index 000..f87cf44
--- /dev/null
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
@@ -0,0 +1,166 @@
+/**
+ * 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.cube.metadata;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+
+/**
+ * The Fact table interface
+ */
+public interface FactTable extends Named {
+
+  /**
+   * Get map of storage to update period mapping
+   *
+   * @return Map of storage to set of update periods
+   */
+  public Map getUpdatePeriods();
+
+  /**
+   * Cube to which this fact belongs to
+   *
+   * @return the cube string
+   */
+  public String getCubeName();
+
+  /**
+   * The set of Storage names
+   *
+   * @return set of strings
+   */
+  public Set getStorages();
+
+  /**
+   *The type of the fact
+   *
+   * @return table type {@link CubeTableType}
+   */
+  public CubeTableType getTableType();
+
+  /**
+   * Config properties
+   *
+   * @return map of string, string
+   */
+  public Map getProperties();
+
+  /**
+   * Valid columns of the fact
+   *
+   * @return list of column names
+   */
+  public Set getValidColumns();
+
+  /**
+   * Weight of the fact
+   *
+   * @return weight of the fact in double
+   */
+  public double weight();
+
+  /**
+   * Set of all the columns names of the fact
+   *
+   * @return set of column names
+   */
+  public Set getAllFieldNames();
+
+  /**
+   *tag for checking data completeness
+   *
+   * @return Tag String
+   */
+  public String getDataCompletenessTag();
+
+  /**
+   * List of columns of the fact
+   *
+   * @return set of {@link FieldSchema}
+   */
+  public List getColumns();
+
+  /**
+   * Is Aggregated Fact
+   *
+   * @return true if fact is Aggregated , false otherwise
+   */
+  public boolean isAggregated();
+
+  /**
+   * Absolute start time of the fact
+   *
+   * @return Absolute Start time of the fact {@link Date}
+   */
+  public Date getAbsoluteStartTime();
+
+  /**
+   * Relative start time of the fact
+   *
+   * @return Relative Start time of the fact {@link Date}
+   */
+  public Date getRelativeStartTime();
+
+  /**
+   * Start time of the fact
+   *
+   * @return Start time of the fact {@link Date}
+   */
+  public Date getStartTime();
+
+  /**
+   * Absolute end time of the fact
+   *
+   * @return Absolute End time of the fact {@link Date}
+   */
+  public Date getAbsoluteEndTime();
+
+  /**
+   * Relative End time of the Fact
+   *
+   * @return Relative end time of the fact {@link Date}
+   */
+  public Date getRelativeEndTime();
+
+  /**
+   * End time of the fact
+   *
+   * @return End time of the fact {@link Date}
+   */
+  public Date getEndTime();
+
+  /**
+   * Is Virtual Fact
+   *
+   * @return true if fact is a virtual fact, false otherwise
+   */
+  public boolean isVirtualFact();
+
+  /**
+   * Storage name of the fact
+   *
+   * @return Storage name of the fact
+   */
+  public String getSourceFactName();
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/5de45e0f/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
index e1e3d16..7dfb166 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
@@ -718,6 +718,15 @@ public final class JAXBUtils {
   mapFromXProperties(fact.getProperties()), storageTablePrefixMap);
   }
 
+  public static CubeVirtualFactTable 
cubeVirtualFactFromFactTable(XVirtualFactTable fact, FactTable sourceFactTable)
+  

[2/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
http://git-wip-us.apache.org/repos/asf/lens/blob/27ad9aa8/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
new file mode 100644
index 000..f87cf44
--- /dev/null
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
@@ -0,0 +1,166 @@
+/**
+ * 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.cube.metadata;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+
+/**
+ * The Fact table interface
+ */
+public interface FactTable extends Named {
+
+  /**
+   * Get map of storage to update period mapping
+   *
+   * @return Map of storage to set of update periods
+   */
+  public Map getUpdatePeriods();
+
+  /**
+   * Cube to which this fact belongs to
+   *
+   * @return the cube string
+   */
+  public String getCubeName();
+
+  /**
+   * The set of Storage names
+   *
+   * @return set of strings
+   */
+  public Set getStorages();
+
+  /**
+   *The type of the fact
+   *
+   * @return table type {@link CubeTableType}
+   */
+  public CubeTableType getTableType();
+
+  /**
+   * Config properties
+   *
+   * @return map of string, string
+   */
+  public Map getProperties();
+
+  /**
+   * Valid columns of the fact
+   *
+   * @return list of column names
+   */
+  public Set getValidColumns();
+
+  /**
+   * Weight of the fact
+   *
+   * @return weight of the fact in double
+   */
+  public double weight();
+
+  /**
+   * Set of all the columns names of the fact
+   *
+   * @return set of column names
+   */
+  public Set getAllFieldNames();
+
+  /**
+   *tag for checking data completeness
+   *
+   * @return Tag String
+   */
+  public String getDataCompletenessTag();
+
+  /**
+   * List of columns of the fact
+   *
+   * @return set of {@link FieldSchema}
+   */
+  public List getColumns();
+
+  /**
+   * Is Aggregated Fact
+   *
+   * @return true if fact is Aggregated , false otherwise
+   */
+  public boolean isAggregated();
+
+  /**
+   * Absolute start time of the fact
+   *
+   * @return Absolute Start time of the fact {@link Date}
+   */
+  public Date getAbsoluteStartTime();
+
+  /**
+   * Relative start time of the fact
+   *
+   * @return Relative Start time of the fact {@link Date}
+   */
+  public Date getRelativeStartTime();
+
+  /**
+   * Start time of the fact
+   *
+   * @return Start time of the fact {@link Date}
+   */
+  public Date getStartTime();
+
+  /**
+   * Absolute end time of the fact
+   *
+   * @return Absolute End time of the fact {@link Date}
+   */
+  public Date getAbsoluteEndTime();
+
+  /**
+   * Relative End time of the Fact
+   *
+   * @return Relative end time of the fact {@link Date}
+   */
+  public Date getRelativeEndTime();
+
+  /**
+   * End time of the fact
+   *
+   * @return End time of the fact {@link Date}
+   */
+  public Date getEndTime();
+
+  /**
+   * Is Virtual Fact
+   *
+   * @return true if fact is a virtual fact, false otherwise
+   */
+  public boolean isVirtualFact();
+
+  /**
+   * Storage name of the fact
+   *
+   * @return Storage name of the fact
+   */
+  public String getSourceFactName();
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/27ad9aa8/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
index e1e3d16..7dfb166 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java
@@ -718,6 +718,15 @@ public final class JAXBUtils {
   mapFromXProperties(fact.getProperties()), storageTablePrefixMap);
   }
 
+  public static CubeVirtualFactTable 
cubeVirtualFactFromFactTable(XVirtualFactTable fact, FactTable sourceFactTable)
+  

[1/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 34500f1b3 -> 5de45e0f8


http://git-wip-us.apache.org/repos/asf/lens/blob/5de45e0f/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 6d32d23..ab24033 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
@@ -1856,6 +1856,24 @@ public class TestMetastoreService extends LensJerseyTest 
{
 return f;
   }
 
+
+  private XVirtualFactTable createVirtualFactTable(String factName, String 
sourceFactName) {
+return createVirtualFactTable(factName, "testCube", sourceFactName);
+  }
+
+  private XVirtualFactTable createVirtualFactTable(String factName, final 
String cubeName, String sourceFactName) {
+XVirtualFactTable f = cubeObjectFactory.createXVirtualFactTable();
+f.setProperties(new XProperties());
+f.setName(factName);
+f.setWeight(10.0);
+f.setCubeName(cubeName);
+f.setSourceFactName(sourceFactName);
+
+Map properties = LensUtil.getHashMap("foo1", "bar1");
+
f.getProperties().getProperty().addAll(JAXBUtils.xPropertiesFromMap(properties));
+return f;
+  }
+
   @Test(dataProvider = "mediaTypeData")
   public void testCreateFactTableWithMultipleUpdatePeriods(MediaType 
mediaType) throws Exception {
 
@@ -1877,7 +1895,7 @@ public class TestMetastoreService extends LensJerseyTest {
 .add(createStorageTblWithMultipleTableDescriptors("S1", tables, 
updatePeriods));
   APIResult result = 
target().path("metastore").path("facts").queryParam("sessionid", lensSessionId)
 .request(mediaType)
-.post(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFactTable(f)) {
+.post(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFact(f)) {
 }, mediaType), APIResult.class);
   assertSuccess(result);
 
@@ -1886,10 +1904,10 @@ public class TestMetastoreService extends 
LensJerseyTest {
   assertTrue(factNames.getElements().contains(table.toLowerCase()));
 
   // Get the created tables
-  JAXBElement gotFactElement = 
target().path("metastore/facts").path(table)
-.queryParam("sessionid", lensSessionId).request(mediaType).get(new 
GenericType() {
+  JAXBElement gotFactElement = 
target().path("metastore/facts").path(table)
+.queryParam("sessionid", lensSessionId).request(mediaType).get(new 
GenericType() {
 });
-  XFactTable gotFact = gotFactElement.getValue();
+  XFactTable gotFact = (XFactTable) gotFactElement.getValue();
   assertTrue(gotFact.getName().equalsIgnoreCase(table));
   assertEquals(gotFact.getWeight(), 10.0);
 
@@ -1915,15 +1933,15 @@ public class TestMetastoreService extends 
LensJerseyTest {
   // Update
   result = 
target().path("metastore").path("facts").path(table).queryParam("sessionid", 
lensSessionId)
 .request(mediaType)
-.put(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFactTable(update))
 {
+.put(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFact(update)) {
 }, mediaType), APIResult.class);
   assertSuccess(result);
 
   // Get the updated table
   gotFactElement = 
target().path("metastore/facts").path(table).queryParam("sessionid", 
lensSessionId)
-.request(mediaType).get(new GenericType() {
+.request(mediaType).get(new GenericType() {
 });
-  gotFact = gotFactElement.getValue();
+  gotFact = (XFactTable) gotFactElement.getValue();
   CubeFactTable ucf = JAXBUtils.cubeFactFromFactTable(gotFact);
   assertEquals(ucf.weight(), 20.0);
   assertTrue(ucf.getUpdatePeriods().get("S1").contains(HOURLY));
@@ -2032,6 +2050,7 @@ public class TestMetastoreService extends LensJerseyTest {
 
   @Test(dataProvider = "mediaTypeData")
   public void testCreateFactTable(MediaType mediaType) throws Exception {
+
 final String table = "testCreateFactTable";
 final String DB = dbPFX + "testCreateFactTable_DB" + 
mediaType.getSubtype();
 String prevDb = getCurrentDatabase(mediaType);
@@ -2049,7 +2068,7 @@ public class TestMetastoreService extends LensJerseyTest {
 .path("facts").queryParam("sessionid", lensSessionId)
 .request(mediaType)
 .post(Entity.entity(
-  new 
GenericEntity(cubeObjectFactory.createXFactTable(f)){},
 mediaType),
+  new 
GenericEntity(cubeObjectFactory.createXFact(f)){}, 
mediaType),
   APIResult.class);
   assertSuccess(result);
 
@@ 

[3/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
LENS-1412 : Add capability to define virtual facts in a cube


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

Branch: refs/heads/current-release-line
Commit: 27ad9aa8f27082a8ac6d82cbf91fff80b43ab689
Parents: 7c1171c
Author: Rajitha R <rajitha@gmail.com>
Authored: Tue Jun 6 13:59:58 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Tue Jun 6 14:01:49 2017 +0530

--
 .../lens/api/metastore/SchemaTraverser.java |   1 +
 lens-api/src/main/resources/cube-0.1.xsd| 176 +++
 lens-api/src/main/resources/lens-errors.conf|   6 +
 .../lens/cli/commands/LensFactCommands.java |   6 +-
 .../lens/cli/commands/LensSchemaCommands.java   |  18 +-
 .../apache/lens/cli/TestLensFactCommands.java   | 132 +-
 .../apache/lens/cli/TestLensSchemaCommands.java |   2 +-
 .../schema/cubes/base/virtual-cube.xml  |  30 ++
 .../resources/schema/facts/virtual_fact.xml |  28 ++
 .../java/org/apache/lens/client/LensClient.java |   2 +-
 .../apache/lens/client/LensMetadataClient.java  |  18 +-
 .../lens/cube/error/LensCubeErrorCode.java  |   3 +-
 .../lens/cube/metadata/AbstractCubeTable.java   |  22 +-
 .../lens/cube/metadata/CubeFactTable.java   |  52 ++-
 .../lens/cube/metadata/CubeMetastoreClient.java | 463 ++-
 .../cube/metadata/CubeVirtualFactTable.java | 186 
 .../apache/lens/cube/metadata/FactTable.java| 166 +++
 .../apache/lens/cube/metadata/JAXBUtils.java|  24 +-
 .../lens/cube/metadata/MetastoreConstants.java  |   2 +
 .../lens/cube/metadata/MetastoreUtil.java   |  26 +-
 .../apache/lens/cube/metadata/Segmentation.java |  13 +-
 .../org/apache/lens/cube/parse/Candidate.java   |   8 +-
 .../lens/cube/parse/CandidateTableResolver.java |  11 +-
 .../lens/cube/parse/StorageCandidate.java   |  55 +--
 .../cube/parse/StorageCandidateHQLContext.java  |  12 +-
 .../lens/cube/parse/StorageTableResolver.java   |   5 +-
 .../lens/cube/metadata/CubeFactTableTest.java   |  12 +-
 .../cube/metadata/TestCubeMetastoreClient.java  | 123 -
 .../apache/lens/cube/parse/CubeTestSetup.java   |  40 +-
 .../lens/cube/parse/TestCubeRewriter.java   |  16 +
 .../parse/TestCubeSegmentationRewriter.java |  15 +-
 .../lens/cube/parse/TestUnionQueries.java   |   2 +-
 .../resources/schema/cubes/base/virtualcube.xml |  36 ++
 .../test/resources/schema/facts/virtualfact.xml |  27 ++
 lens-driver-es/pom.xml  |   3 +-
 lens-examples/pom.xml   |   3 +-
 .../src/test/resources/yaml/fact1.yaml  |   4 +-
 .../src/test/resources/yaml/fact2.yaml  |   4 +-
 .../src/test/resources/yaml/rawfact.yaml|   4 +-
 .../yaml/sales-aggr-continuous-fact.yaml|   4 +-
 .../test/resources/yaml/sales-aggr-fact1.yaml   |   4 +-
 .../test/resources/yaml/sales-aggr-fact2.yaml   |   4 +-
 .../src/test/resources/yaml/sales-raw-fact.yaml |   4 +-
 .../api/metastore/CubeMetastoreService.java |   8 +-
 lens-server/pom.xml |   2 +-
 .../metastore/CubeMetastoreServiceImpl.java |  24 +-
 .../server/metastore/MetastoreResource.java |  17 +-
 .../lens/server/common/RestAPITestUtil.java |   7 +-
 .../server/metastore/TestMetastoreService.java  | 274 ++-
 src/site/apt/user/cli.apt   |   3 +-
 tools/scripts/generate-site-public.sh   |   2 +-
 51 files changed, 1646 insertions(+), 463 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/27ad9aa8/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
--
diff --git 
a/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java 
b/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
index 9564443..09c848a 100644
--- a/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
+++ b/lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java
@@ -42,6 +42,7 @@ public class SchemaTraverser implements Runnable {
 types.put("cubes/derived", XDerivedCube.class);
 types.put("dimensions", XDimension.class);
 types.put("facts", XFactTable.class);
+types.put("facts/virtual", XVirtualFactTable.class);
 types.put("dimtables", XDimensionTable.class);
 types.put("dimensiontables", XDimensionTable.class);
 types.put("dimensiontables", XDimensionTable.class);

http://git-wip-us.apache.org/repos/asf/lens/blob/27ad9aa8/lens-api/src/main/resources/cube-0.1.xsd
--

[1/3] lens git commit: LENS-1412 : Add capability to define virtual facts in a cube

2017-06-06 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line 7c1171c8d -> 27ad9aa8f


http://git-wip-us.apache.org/repos/asf/lens/blob/27ad9aa8/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 6d32d23..ab24033 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
@@ -1856,6 +1856,24 @@ public class TestMetastoreService extends LensJerseyTest 
{
 return f;
   }
 
+
+  private XVirtualFactTable createVirtualFactTable(String factName, String 
sourceFactName) {
+return createVirtualFactTable(factName, "testCube", sourceFactName);
+  }
+
+  private XVirtualFactTable createVirtualFactTable(String factName, final 
String cubeName, String sourceFactName) {
+XVirtualFactTable f = cubeObjectFactory.createXVirtualFactTable();
+f.setProperties(new XProperties());
+f.setName(factName);
+f.setWeight(10.0);
+f.setCubeName(cubeName);
+f.setSourceFactName(sourceFactName);
+
+Map properties = LensUtil.getHashMap("foo1", "bar1");
+
f.getProperties().getProperty().addAll(JAXBUtils.xPropertiesFromMap(properties));
+return f;
+  }
+
   @Test(dataProvider = "mediaTypeData")
   public void testCreateFactTableWithMultipleUpdatePeriods(MediaType 
mediaType) throws Exception {
 
@@ -1877,7 +1895,7 @@ public class TestMetastoreService extends LensJerseyTest {
 .add(createStorageTblWithMultipleTableDescriptors("S1", tables, 
updatePeriods));
   APIResult result = 
target().path("metastore").path("facts").queryParam("sessionid", lensSessionId)
 .request(mediaType)
-.post(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFactTable(f)) {
+.post(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFact(f)) {
 }, mediaType), APIResult.class);
   assertSuccess(result);
 
@@ -1886,10 +1904,10 @@ public class TestMetastoreService extends 
LensJerseyTest {
   assertTrue(factNames.getElements().contains(table.toLowerCase()));
 
   // Get the created tables
-  JAXBElement gotFactElement = 
target().path("metastore/facts").path(table)
-.queryParam("sessionid", lensSessionId).request(mediaType).get(new 
GenericType() {
+  JAXBElement gotFactElement = 
target().path("metastore/facts").path(table)
+.queryParam("sessionid", lensSessionId).request(mediaType).get(new 
GenericType() {
 });
-  XFactTable gotFact = gotFactElement.getValue();
+  XFactTable gotFact = (XFactTable) gotFactElement.getValue();
   assertTrue(gotFact.getName().equalsIgnoreCase(table));
   assertEquals(gotFact.getWeight(), 10.0);
 
@@ -1915,15 +1933,15 @@ public class TestMetastoreService extends 
LensJerseyTest {
   // Update
   result = 
target().path("metastore").path("facts").path(table).queryParam("sessionid", 
lensSessionId)
 .request(mediaType)
-.put(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFactTable(update))
 {
+.put(Entity.entity(new 
GenericEntity(cubeObjectFactory.createXFact(update)) {
 }, mediaType), APIResult.class);
   assertSuccess(result);
 
   // Get the updated table
   gotFactElement = 
target().path("metastore/facts").path(table).queryParam("sessionid", 
lensSessionId)
-.request(mediaType).get(new GenericType() {
+.request(mediaType).get(new GenericType() {
 });
-  gotFact = gotFactElement.getValue();
+  gotFact = (XFactTable) gotFactElement.getValue();
   CubeFactTable ucf = JAXBUtils.cubeFactFromFactTable(gotFact);
   assertEquals(ucf.weight(), 20.0);
   assertTrue(ucf.getUpdatePeriods().get("S1").contains(HOURLY));
@@ -2032,6 +2050,7 @@ public class TestMetastoreService extends LensJerseyTest {
 
   @Test(dataProvider = "mediaTypeData")
   public void testCreateFactTable(MediaType mediaType) throws Exception {
+
 final String table = "testCreateFactTable";
 final String DB = dbPFX + "testCreateFactTable_DB" + 
mediaType.getSubtype();
 String prevDb = getCurrentDatabase(mediaType);
@@ -2049,7 +2068,7 @@ public class TestMetastoreService extends LensJerseyTest {
 .path("facts").queryParam("sessionid", lensSessionId)
 .request(mediaType)
 .post(Entity.entity(
-  new 
GenericEntity(cubeObjectFactory.createXFactTable(f)){},
 mediaType),
+  new 
GenericEntity(cubeObjectFactory.createXFact(f)){}, 
mediaType),
   APIResult.class);
   

lens git commit: LENS-1474 : Fix NPE in ExpressionResolver for SegmentationCandidate

2017-09-10 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master 7c9707148 -> 24d4f1531


LENS-1474 : Fix NPE in ExpressionResolver for SegmentationCandidate


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

Branch: refs/heads/master
Commit: 24d4f1531497e8b877fe185a0ef742b18acf125c
Parents: 7c97071
Author: Rajitha R <rajitha@gmail.com>
Authored: Mon Sep 11 09:53:21 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Sep 11 09:53:21 2017 +0530

--
 .../apache/lens/cube/parse/ExpressionResolver.java | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/24d4f153/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
index 1268ef7..553468f 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
@@ -317,12 +317,14 @@ class ExpressionResolver implements ContextRewriter {
 }
 
 ExpressionContext getExpressionContext(String expr, String alias) {
-  for (ExpressionContext ec : allExprsQueried.get(expr)) {
-if (ec.getSrcAlias().equals(alias)) {
-  return ec;
+  if (allExprsQueried.get(expr) != null) {
+for (ExpressionContext ec : allExprsQueried.get(expr)) {
+  if (ec.getSrcAlias().equals(alias)) {
+return ec;
+  }
 }
   }
-  throw new IllegalArgumentException("no expression available for " + expr 
+ " alias:" + alias);
+  return null;
 }
 
 boolean hasMeasures(String expr, CubeInterface cube) {
@@ -540,8 +542,11 @@ class ExpressionResolver implements ContextRewriter {
   expressionContexts.add(expressionContext);
   for (StorageCandidate sc : scSet) {
 storageTableNames.add(sc.getStorageTable());
-expressionContexts.add(sc.getCubeQueryContext().getExprCtx()
-  .getExpressionContext(expressionContext.getExprCol().getName(), 
expressionContext.getSrcAlias()));
+ExpressionContext ex = 
sc.getCubeQueryContext().getExprCtx().getExpressionContext(expressionContext.
+getExprCol().getName(), expressionContext.getSrcAlias());
+if (ex != null) {
+  expressionContexts.add(ex);
+}
   }
   for (ExpressionContext ec : expressionContexts) {
 for (CandidateTable table : ec.evaluableExpressions.keySet()) {



lens git commit: LENS-1463 : Valid Columns addition in Virtual Fact

2017-08-28 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master e6f1ce0e2 -> b3352997c


LENS-1463 : Valid Columns addition in Virtual Fact


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

Branch: refs/heads/master
Commit: b3352997ca851b6a68e7e0d57caeb514d7e134d3
Parents: e6f1ce0
Author: Rajitha R <rajitha@gmail.com>
Authored: Mon Aug 28 16:31:33 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Mon Aug 28 16:31:33 2017 +0530

--
 .../lens/cube/metadata/CubeVirtualFactTable.java   |  9 -
 .../apache/lens/cube/parse/TestVirtualFactQueries.java | 13 +
 .../src/test/resources/schema/cubes/base/testcube2.xml |  2 ++
 .../src/test/resources/schema/facts/testfact9_base.xml |  3 ++-
 .../resources/schema/facts/virtual/virtualfact.xml |  2 ++
 5 files changed, 27 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/b3352997/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
index 1fc74b0..ce2a1a6 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
@@ -92,7 +92,14 @@ public class CubeVirtualFactTable extends AbstractCubeTable 
implements FactTable
 
   @Override
   public Set getValidColumns() {
-return this.sourceCubeFactTable.getValidColumns();
+String validColsStr =
+  MetastoreUtil.getNamedStringValue(this.getProperties(), 
MetastoreUtil.getValidColumnsKey(getName()));
+if (validColsStr == null) {
+  return this.sourceCubeFactTable.getValidColumns();
+} else {
+  return new 
HashSet<>(Arrays.asList(StringUtils.split(validColsStr.toLowerCase(),
+',')));
+}
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lens/blob/b3352997/lens-cube/src/test/java/org/apache/lens/cube/parse/TestVirtualFactQueries.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestVirtualFactQueries.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestVirtualFactQueries.java
index 4bcb376..94e836c 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestVirtualFactQueries.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestVirtualFactQueries.java
@@ -25,8 +25,11 @@ import static 
org.apache.lens.cube.parse.CubeQueryConfUtil.DISABLE_AGGREGATE_RES
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.fail;
 
+import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.server.api.LensServerAPITestUtil;
+import org.apache.lens.server.api.error.LensException;
 
 import org.apache.hadoop.conf.Configuration;
 
@@ -119,5 +122,15 @@ public class TestVirtualFactQueries extends 
TestQueryRewrite {
 
   }
 
+  @Test
+  public void testVirtualFactValidColumns() throws Exception {
+
+try {
+  rewriteCtx("select SUM(msr4) from virtualCube where " + TWO_DAYS_RANGE, 
getConfWithStorages("C1"));
+  fail("Rewrite should not succeed here");
+} catch (LensException exc) {
+  assertEquals(exc.getErrorCode(), 
LensCubeErrorCode.COLUMN_NOT_FOUND.getLensErrorInfo().getErrorCode());
+}
+  }
 }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b3352997/lens-cube/src/test/resources/schema/cubes/base/testcube2.xml
--
diff --git a/lens-cube/src/test/resources/schema/cubes/base/testcube2.xml 
b/lens-cube/src/test/resources/schema/cubes/base/testcube2.xml
index 9740e00..237e85a 100644
--- a/lens-cube/src/test/resources/schema/cubes/base/testcube2.xml
+++ b/lens-cube/src/test/resources/schema/cubes/base/testcube2.xml
@@ -27,5 +27,7 @@
   
 
+
   
 

http://git-wip-us.apache.org/repos/asf/lens/blob/b3352997/lens-cube/src/test/resources/schema/facts/testfact9_base.xml
--
diff --git a/lens-cube/src/test/resources/schema/facts/testfact9_base.xml 
b/lens-cube/src/test/resources/schema/facts/testfact9_base.xml
index 56e5746..9c94fe2 100644
--- a/lens-cube/src/test/resources/schema/facts/testfact9_base.xml
+++ b/lens-cube/src/test/resou

lens git commit: LENS-1466 : Fix for 'Rewritten queries not resolving time_range_in clause'

2017-09-01 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/master ef6e59c61 -> 8baae4133


LENS-1466 : Fix for 'Rewritten queries not resolving time_range_in clause'


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

Branch: refs/heads/master
Commit: 8baae4133d8f8306d9a49ff4512c091a997b1234
Parents: ef6e59c
Author: Rajitha R <rajitha@gmail.com>
Authored: Fri Sep 1 13:02:32 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Sep 1 13:02:32 2017 +0530

--
 .../lens/cube/parse/StorageCandidate.java   |  2 +-
 .../apache/lens/cube/metadata/DateFactory.java  |  6 ++
 .../apache/lens/cube/parse/CubeTestSetup.java   | 47 +++--
 .../lens/cube/parse/TestCubeRewriter.java   | 15 -
 .../resources/schema/cubes/base/testcube.xml|  2 +
 .../test/resources/schema/facts/summary5.xml| 70 
 .../src/test/resources/schema/storages/c98.xml  | 26 
 7 files changed, 159 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/8baae413/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
index 2b1add3..27835b3 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
@@ -533,9 +533,9 @@ public class StorageCandidate implements Candidate, 
CandidateTable {
   log.debug("Adding non existing partition {}", part);
   if (addNonExistingParts) {
 // Add non existing partitions for all cases of whether we 
populate all non existing or not.
-this.participatingUpdatePeriods.add(maxInterval);
 missingPartitions.add(part);
 if (!failOnPartialData) {
+  this.participatingUpdatePeriods.add(maxInterval);
   partitions.add(part);
   part.getStorageTables().add(storageTable);
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/8baae413/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
index 855f54a..75f2abd 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
@@ -150,6 +150,7 @@ public class DateFactory {
 
   // Time Instances as Date Type
   public static final Date NOW;
+  public static final Date ONEDAY_BACK;
   public static final Date TWODAYS_BACK;
   public static final Date TWO_MONTHS_BACK;
   public static final Date THIS_MONTH_TRUNCATED;
@@ -168,6 +169,7 @@ public class DateFactory {
   public static final String TWO_DAYS_RANGE_TTD2;
   public static final String TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS;
   public static final String TWO_DAYS_RANGE_IT;
+  public static final String ONE_DAY_RANGE_IT;
   public static final String THIS_YEAR_RANGE;
   public static final String LAST_YEAR_RANGE;
   public static final String TWO_MONTHS_RANGE_UPTO_MONTH;
@@ -189,6 +191,9 @@ public class DateFactory {
 // Figure out if current hour is 0th hour
 zerothHour = getDateStringWithOffset(HOURLY, 0).endsWith("-00");
 
+ONEDAY_BACK = getDateWithOffset(DAILY, -1);
+System.out.println("Test ONEDAY_BACK:" + ONEDAY_BACK);
+
 TWODAYS_BACK = getDateWithOffset(DAILY, -2);
 System.out.println("Test TWODAYS_BACK:" + TWODAYS_BACK);
 
@@ -214,6 +219,7 @@ public class DateFactory {
 TWO_DAYS_RANGE_TTD2 = getTimeRangeString("test_time_dim2", DAILY, -2, 0, 
HOURLY);
 TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS = getTimeRangeString("test_time_dim2", 
DAILY, -6, -4, HOURLY);
 TWO_DAYS_RANGE_IT = getTimeRangeString("it", DAILY, -2, 0, HOURLY);
+ONE_DAY_RANGE_IT = getTimeRangeString("it", DAILY, -1, 0, DAILY);
 THIS_YEAR_RANGE = getTimeRangeString(YEARLY, 0, 1);
 LAST_YEAR_RANGE = getTimeRangeString(YEARLY, -1, 0);
 TWO_MONTHS_RANGE_UPTO_MONTH = getTimeRangeString(MONTHLY, -2, 0);

http://git-wip-us.apache.org/repos/asf/lens/blob/8baae413/lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java
--
d

lens git commit: LENS-1466 : Fix for 'Rewritten queries not resolving time_range_in clause'

2017-09-01 Thread amareshwari
Repository: lens
Updated Branches:
  refs/heads/current-release-line 10eef27a0 -> ff4f3726a


LENS-1466 : Fix for 'Rewritten queries not resolving time_range_in clause'


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

Branch: refs/heads/current-release-line
Commit: ff4f3726a25db684ff7623fea68e954712dd925f
Parents: 10eef27
Author: Rajitha R <rajitha@gmail.com>
Authored: Fri Sep 1 13:02:32 2017 +0530
Committer: Amareshwari Sriramadasu <amareshw...@apache.org>
Committed: Fri Sep 1 15:23:45 2017 +0530

--
 .../lens/cube/parse/StorageCandidate.java   |  2 +-
 .../apache/lens/cube/metadata/DateFactory.java  |  6 ++
 .../apache/lens/cube/parse/CubeTestSetup.java   | 47 +++--
 .../lens/cube/parse/TestCubeRewriter.java   | 15 -
 .../resources/schema/cubes/base/testcube.xml|  2 +
 .../test/resources/schema/facts/summary5.xml| 70 
 .../src/test/resources/schema/storages/c98.xml  | 26 
 7 files changed, 159 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/lens/blob/ff4f3726/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
--
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 
b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
index 2b1add3..27835b3 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
@@ -533,9 +533,9 @@ public class StorageCandidate implements Candidate, 
CandidateTable {
   log.debug("Adding non existing partition {}", part);
   if (addNonExistingParts) {
 // Add non existing partitions for all cases of whether we 
populate all non existing or not.
-this.participatingUpdatePeriods.add(maxInterval);
 missingPartitions.add(part);
 if (!failOnPartialData) {
+  this.participatingUpdatePeriods.add(maxInterval);
   partitions.add(part);
   part.getStorageTables().add(storageTable);
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/ff4f3726/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
--
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
index 855f54a..75f2abd 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/metadata/DateFactory.java
@@ -150,6 +150,7 @@ public class DateFactory {
 
   // Time Instances as Date Type
   public static final Date NOW;
+  public static final Date ONEDAY_BACK;
   public static final Date TWODAYS_BACK;
   public static final Date TWO_MONTHS_BACK;
   public static final Date THIS_MONTH_TRUNCATED;
@@ -168,6 +169,7 @@ public class DateFactory {
   public static final String TWO_DAYS_RANGE_TTD2;
   public static final String TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS;
   public static final String TWO_DAYS_RANGE_IT;
+  public static final String ONE_DAY_RANGE_IT;
   public static final String THIS_YEAR_RANGE;
   public static final String LAST_YEAR_RANGE;
   public static final String TWO_MONTHS_RANGE_UPTO_MONTH;
@@ -189,6 +191,9 @@ public class DateFactory {
 // Figure out if current hour is 0th hour
 zerothHour = getDateStringWithOffset(HOURLY, 0).endsWith("-00");
 
+ONEDAY_BACK = getDateWithOffset(DAILY, -1);
+System.out.println("Test ONEDAY_BACK:" + ONEDAY_BACK);
+
 TWODAYS_BACK = getDateWithOffset(DAILY, -2);
 System.out.println("Test TWODAYS_BACK:" + TWODAYS_BACK);
 
@@ -214,6 +219,7 @@ public class DateFactory {
 TWO_DAYS_RANGE_TTD2 = getTimeRangeString("test_time_dim2", DAILY, -2, 0, 
HOURLY);
 TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS = getTimeRangeString("test_time_dim2", 
DAILY, -6, -4, HOURLY);
 TWO_DAYS_RANGE_IT = getTimeRangeString("it", DAILY, -2, 0, HOURLY);
+ONE_DAY_RANGE_IT = getTimeRangeString("it", DAILY, -1, 0, DAILY);
 THIS_YEAR_RANGE = getTimeRangeString(YEARLY, 0, 1);
 LAST_YEAR_RANGE = getTimeRangeString(YEARLY, -1, 0);
 TWO_MONTHS_RANGE_UPTO_MONTH = getTimeRangeString(MONTHLY, -2, 0);

http://git-wip-us.apache.org/repos/asf/lens/blob/ff4f3726/lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java

[lens] branch master updated (fb1a171 -> 4907964)

2019-07-24 Thread amareshwari
This is an automated email from the ASF dual-hosted git repository.

amareshwari pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/lens.git.


from fb1a171  Merge pull request #27 from jimmycasey/master
 new 98ab7a5  exposing jmx port for monitoring the threads, cpu and memory
 new d3b41b3  Fix for RNA-10440: Lens driver not picking hadoop conf
 new 69e9e64  added the files
 new 616aeec  Merge remote-tracking branch 'upstream/master'
 new 3db  Adding support for Partition Columns to queried without 
giving additional xml tag valid.columns
 new 7783450  reverting old change
 new 149a192  resolved imports
 new c7aa785  added Example for supporting the non-timed partition as 
filter while querying
 new 787c7e2  Merge remote-tracking branch 'upstream/master'
 new 1dc444c  Merge remote-tracking branch 'upstream/master'
 new c0cb51a  fixed the yaml
 new 65174d2  licence
 new dbbf4f5  Merge remote-tracking branch 'upstream/master'
 new 8e921d5  Merge remote-tracking branch 'upstream/master'
 new 0519d9d  made few changes to the code for azure deployment
 new bc6f628  Fixed the test case, removed instances where Prepare was 
hitting the underlying JDBC Driver
 new 2d6fb3d  reversed few changes
 new 0caecd7  removing not needed commits
 new 2ce78dc  undid the unit test cases
 new 2400d8e  made one more change
 new 926b604  fixed code review comments
 new 353dd56  fixed code review comments
 new fc4358e  made some changes
 new 5fa2800  fixed code review comments
 new b183d21  Merge branch 'master' of 
https://github.com/RajashekharInmobi/lens
 new 75c440d  Merge branch 'master' of 
https://github.com/RajashekharInmobi/lens
 new fe57a2e  added the files
 new 0cdd720  added the code review fix
 new dc67c27  added a unit test case
 new 8d3e015  added the test case
 new af1f5d4  fixed unit test case
 new 24783d6  fixed unit test case
 new 4907964  Merge pull request #34 from RajashekharInmobi/master

The 2447 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../lens/cube/metadata/CubeMetastoreClient.java| 33 --
 .../cube/metadata/TestCubeMetastoreClient.java | 50 
 .../org/apache/lens/driver/jdbc/JDBCDriver.java| 32 ++
 .../lens/driver/jdbc/JDBCDriverConfConstants.java  |  7 ++-
 .../server/api/query/PreparedQueryContext.java | 19 --
 .../apache/lens/server/query/LensServerDAO.java| 47 +++
 .../server/query/QueryExecutionServiceImpl.java| 15 +++--
 .../org/apache/lens/server/query/TestLensDAO.java  | 70 ++
 pom.xml|  2 +-
 9 files changed, 225 insertions(+), 50 deletions(-)



  1   2   >