[2/2] phoenix git commit: PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils

2016-01-19 Thread ndimiduk
PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils


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

Branch: refs/heads/4.x-HBase-1.0
Commit: b3e88afe8123b1e1228ea7c3fdd8baa99f061e13
Parents: 3661d98
Author: Nick Dimiduk 
Authored: Tue Jan 19 20:17:55 2016 -0800
Committer: Nick Dimiduk 
Committed: Tue Jan 19 20:52:01 2016 -0800

--
 bin/performance.py | 2 +-
 bin/phoenix_sandbox.py | 2 +-
 bin/psql.py| 3 ++-
 bin/queryserver.py | 2 +-
 bin/sqlline-thin.py| 3 ++-
 bin/sqlline.py | 3 ++-
 bin/traceserver.py | 3 ++-
 7 files changed, 11 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3e88afe/bin/performance.py
--
diff --git a/bin/performance.py b/bin/performance.py
index f28cd7e..84f1314 100755
--- a/bin/performance.py
+++ b/bin/performance.py
@@ -96,7 +96,7 @@ if java_home:
 else:
 java_cmd = 'java'
 
-execute = ('%s -cp "%s%s%s" -Dlog4j.configuration=file:' +
+execute = ('%s $PHOENIX_OPTS -cp "%s%s%s" -Dlog4j.configuration=file:' +
os.path.join(phoenix_utils.current_dir, "log4j.properties") +
' org.apache.phoenix.util.PhoenixRuntime -t %s %s ') % \
 (java_cmd, hbase_config_path, os.pathsep, 
phoenix_utils.phoenix_client_jar, table, zookeeper)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3e88afe/bin/phoenix_sandbox.py
--
diff --git a/bin/phoenix_sandbox.py b/bin/phoenix_sandbox.py
index 433bc98..4279dd6 100755
--- a/bin/phoenix_sandbox.py
+++ b/bin/phoenix_sandbox.py
@@ -43,7 +43,7 @@ cp_components = [phoenix_target_dir + "/*"]
 with open(cp_file_path, 'rb') as cp_file:
 cp_components.append(cp_file.read())
 
-java_cmd = ("java -Dlog4j.configuration=file:%s " +
+java_cmd = ("java $PHOENIX_OPTS -Dlog4j.configuration=file:%s " +
 "-cp %s org.apache.phoenix.Sandbox") % (
 logging_config, ":".join(cp_components))
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3e88afe/bin/psql.py
--
diff --git a/bin/psql.py b/bin/psql.py
index d4269d1..973d3de 100755
--- a/bin/psql.py
+++ b/bin/psql.py
@@ -62,7 +62,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java +' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " org.apache.phoenix.util.PhoenixRuntime " + args 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3e88afe/bin/queryserver.py
--
diff --git a/bin/queryserver.py b/bin/queryserver.py
index 78d340c..d4228b3 100755
--- a/bin/queryserver.py
+++ b/bin/queryserver.py
@@ -119,7 +119,7 @@ else:
 
 #" -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n " 
+ \
 #" -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true" + \
-java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
+java_cmd = '%(java)s $PHOENIX_OPTS -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
 phoenix_utils.phoenix_queryserver_jar + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 " -Dproc_phoenixserver" + \
 " -Dlog4j.configuration=file:" + os.path.join(phoenix_utils.current_dir, 
"log4j.properties") + \

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b3e88afe/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index d17d756..b37cd90 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -145,7 +145,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 

[2/3] phoenix git commit: PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils

2016-01-19 Thread ndimiduk
PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils


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

Branch: refs/heads/master
Commit: 588f449b0bfc5ba6398c30ee76745a78c4996976
Parents: 0b7a3c4
Author: Nick Dimiduk 
Authored: Tue Jan 19 20:17:55 2016 -0800
Committer: Nick Dimiduk 
Committed: Tue Jan 19 20:50:37 2016 -0800

--
 bin/performance.py | 2 +-
 bin/phoenix_sandbox.py | 2 +-
 bin/psql.py| 3 ++-
 bin/queryserver.py | 2 +-
 bin/sqlline-thin.py| 3 ++-
 bin/sqlline.py | 3 ++-
 bin/traceserver.py | 3 ++-
 7 files changed, 11 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/588f449b/bin/performance.py
--
diff --git a/bin/performance.py b/bin/performance.py
index fe39ddf..c16dd5a 100755
--- a/bin/performance.py
+++ b/bin/performance.py
@@ -96,7 +96,7 @@ if java_home:
 else:
 java_cmd = 'java'
 
-execute = ('%s -cp "%s%s%s" -Dlog4j.configuration=file:' +
+execute = ('%s $PHOENIX_OPTS -cp "%s%s%s" -Dlog4j.configuration=file:' +
os.path.join(phoenix_utils.current_dir, "log4j.properties") +
' org.apache.phoenix.util.PhoenixRuntime -t %s %s ') % \
 (java_cmd, hbase_config_path, os.pathsep, 
phoenix_utils.phoenix_client_jar, table, zookeeper)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/588f449b/bin/phoenix_sandbox.py
--
diff --git a/bin/phoenix_sandbox.py b/bin/phoenix_sandbox.py
index 433bc98..4279dd6 100755
--- a/bin/phoenix_sandbox.py
+++ b/bin/phoenix_sandbox.py
@@ -43,7 +43,7 @@ cp_components = [phoenix_target_dir + "/*"]
 with open(cp_file_path, 'rb') as cp_file:
 cp_components.append(cp_file.read())
 
-java_cmd = ("java -Dlog4j.configuration=file:%s " +
+java_cmd = ("java $PHOENIX_OPTS -Dlog4j.configuration=file:%s " +
 "-cp %s org.apache.phoenix.Sandbox") % (
 logging_config, ":".join(cp_components))
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/588f449b/bin/psql.py
--
diff --git a/bin/psql.py b/bin/psql.py
index d4269d1..973d3de 100755
--- a/bin/psql.py
+++ b/bin/psql.py
@@ -62,7 +62,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java +' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " org.apache.phoenix.util.PhoenixRuntime " + args 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/588f449b/bin/queryserver.py
--
diff --git a/bin/queryserver.py b/bin/queryserver.py
index 78d340c..d4228b3 100755
--- a/bin/queryserver.py
+++ b/bin/queryserver.py
@@ -119,7 +119,7 @@ else:
 
 #" -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n " 
+ \
 #" -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true" + \
-java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
+java_cmd = '%(java)s $PHOENIX_OPTS -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
 phoenix_utils.phoenix_queryserver_jar + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 " -Dproc_phoenixserver" + \
 " -Dlog4j.configuration=file:" + os.path.join(phoenix_utils.current_dir, 
"log4j.properties") + \

http://git-wip-us.apache.org/repos/asf/phoenix/blob/588f449b/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index d17d756..b37cd90 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -145,7 +145,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 

[1/2] phoenix git commit: PHOENIX-2608 Incompatibility between Jackson1 version shipped with Phoenix, Yarn (Ted Yu)

2016-01-19 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 3661d9841 -> d6cf933e9


PHOENIX-2608 Incompatibility between Jackson1 version shipped with Phoenix, 
Yarn (Ted Yu)


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

Branch: refs/heads/4.x-HBase-1.0
Commit: d6cf933e9f0ea7c180be1d4999657a1031bad921
Parents: b3e88af
Author: Nick Dimiduk 
Authored: Tue Jan 19 20:20:36 2016 -0800
Committer: Nick Dimiduk 
Committed: Tue Jan 19 20:52:01 2016 -0800

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d6cf933e/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 913362e..e149501 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@
 1.2
 2.5.1
 0.13.0
-1.8.8
+1.9.2
 3.5
 1.2.17
 1.6.4
@@ -99,7 +99,6 @@
 1.0
 1.1.8
 13.0.1
-1.8.8
 1.4.0
 1.3.2
 2.11



[2/2] phoenix git commit: PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils

2016-01-19 Thread ndimiduk
PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils


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

Branch: refs/heads/4.x-HBase-0.98
Commit: bd84e718f5dc806d244f2cd3273a22c789e15457
Parents: 5bfddad
Author: Nick Dimiduk 
Authored: Tue Jan 19 20:17:55 2016 -0800
Committer: Nick Dimiduk 
Committed: Tue Jan 19 20:52:38 2016 -0800

--
 bin/performance.py | 2 +-
 bin/phoenix_sandbox.py | 2 +-
 bin/psql.py| 3 ++-
 bin/queryserver.py | 2 +-
 bin/sqlline-thin.py| 3 ++-
 bin/sqlline.py | 3 ++-
 bin/traceserver.py | 3 ++-
 7 files changed, 11 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd84e718/bin/performance.py
--
diff --git a/bin/performance.py b/bin/performance.py
index f28cd7e..84f1314 100755
--- a/bin/performance.py
+++ b/bin/performance.py
@@ -96,7 +96,7 @@ if java_home:
 else:
 java_cmd = 'java'
 
-execute = ('%s -cp "%s%s%s" -Dlog4j.configuration=file:' +
+execute = ('%s $PHOENIX_OPTS -cp "%s%s%s" -Dlog4j.configuration=file:' +
os.path.join(phoenix_utils.current_dir, "log4j.properties") +
' org.apache.phoenix.util.PhoenixRuntime -t %s %s ') % \
 (java_cmd, hbase_config_path, os.pathsep, 
phoenix_utils.phoenix_client_jar, table, zookeeper)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd84e718/bin/phoenix_sandbox.py
--
diff --git a/bin/phoenix_sandbox.py b/bin/phoenix_sandbox.py
index 433bc98..4279dd6 100755
--- a/bin/phoenix_sandbox.py
+++ b/bin/phoenix_sandbox.py
@@ -43,7 +43,7 @@ cp_components = [phoenix_target_dir + "/*"]
 with open(cp_file_path, 'rb') as cp_file:
 cp_components.append(cp_file.read())
 
-java_cmd = ("java -Dlog4j.configuration=file:%s " +
+java_cmd = ("java $PHOENIX_OPTS -Dlog4j.configuration=file:%s " +
 "-cp %s org.apache.phoenix.Sandbox") % (
 logging_config, ":".join(cp_components))
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd84e718/bin/psql.py
--
diff --git a/bin/psql.py b/bin/psql.py
index d4269d1..973d3de 100755
--- a/bin/psql.py
+++ b/bin/psql.py
@@ -62,7 +62,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java +' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " org.apache.phoenix.util.PhoenixRuntime " + args 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd84e718/bin/queryserver.py
--
diff --git a/bin/queryserver.py b/bin/queryserver.py
index 78d340c..d4228b3 100755
--- a/bin/queryserver.py
+++ b/bin/queryserver.py
@@ -119,7 +119,7 @@ else:
 
 #" -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n " 
+ \
 #" -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true" + \
-java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
+java_cmd = '%(java)s $PHOENIX_OPTS -cp ' + hbase_config_path + os.pathsep + 
hadoop_config_path + os.pathsep + \
 phoenix_utils.phoenix_queryserver_jar + os.pathsep + 
phoenix_utils.phoenix_client_jar + \
 " -Dproc_phoenixserver" + \
 " -Dlog4j.configuration=file:" + os.path.join(phoenix_utils.current_dir, 
"log4j.properties") + \

http://git-wip-us.apache.org/repos/asf/phoenix/blob/bd84e718/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index d17d756..b37cd90 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -145,7 +145,8 @@ if java_home:
 else:
 java = 'java'
 
-java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
+java_cmd = java + ' $PHOENIX_OPTS ' + \
+' -cp "' + phoenix_utils.hbase_conf_dir + os.pathsep + 
phoenix_utils.phoenix_thin_client_jar + \
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 

phoenix git commit: PHOENIX-2492 Expose PhoenixRecordWritable outside of spark

2015-12-22 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 7c76bbabd -> 2f8d71db0


PHOENIX-2492 Expose PhoenixRecordWritable outside of spark


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 2f8d71db0e2757e2099c6e0d492b65364c7e409f
Parents: 7c76bba
Author: Nick Dimiduk 
Authored: Fri Dec 4 16:04:25 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 22 16:12:30 2015 -0500

--
 .../mapreduce/PhoenixRecordWritable.java| 192 +++
 1 file changed, 192 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/2f8d71db/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
new file mode 100644
index 000..8d7d97a
--- /dev/null
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
@@ -0,0 +1,192 @@
+/*
+ * 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.phoenix.mapreduce;
+
+import org.apache.hadoop.mapreduce.lib.db.DBWritable;
+import org.apache.phoenix.schema.types.*;
+import org.apache.phoenix.util.ColumnInfo;
+import org.joda.time.DateTime;
+
+import java.sql.Array;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class PhoenixRecordWritable implements DBWritable {
+
+private final List upsertValues = new ArrayList<>();
+private final Map resultMap = new HashMap<>();
+private List columnMetaDataList;
+
+/** For serialization; do not use. */
+public PhoenixRecordWritable() {
+this(new ArrayList());
+}
+
+public PhoenixRecordWritable(List columnMetaDataList) {
+this.columnMetaDataList = columnMetaDataList;
+}
+
+/**
+ * Helper method to create a {@link Array} for a specific {@link 
PDataType}, and set it on
+ * the provided {@code stmt}.
+ */
+private static void setArrayInStatement(PreparedStatement stmt, 
PDataType type,
+Object[] obj, int position) throws SQLException {
+Array sqlArray = stmt.getConnection().createArrayOf(
+PDataType.arrayBaseType(type).getSqlTypeName(), obj);
+stmt.setArray(position, sqlArray);
+}
+
+private static Object[] primativeArrayToObjectArray(byte[] a) {
+final Byte[] ret = new Byte[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(short[] a) {
+final Short[] ret = new Short[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(int[] a) {
+final Integer[] ret = new Integer[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(float[] a) {
+final Float[] ret = new Float[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(double[] a) {
+final Double[] ret = new Double[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static 

phoenix git commit: PHOENIX-2492 Expose PhoenixRecordWritable outside of spark

2015-12-22 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 05ff5618d -> c0d7a9fee


PHOENIX-2492 Expose PhoenixRecordWritable outside of spark


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

Branch: refs/heads/master
Commit: c0d7a9fee1a54eb20a870447e385e42cd6a4d81e
Parents: 05ff561
Author: Nick Dimiduk 
Authored: Fri Dec 4 16:04:25 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 22 15:56:32 2015 -0500

--
 .../mapreduce/PhoenixRecordWritable.java| 192 +++
 1 file changed, 192 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c0d7a9fe/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
new file mode 100644
index 000..8d7d97a
--- /dev/null
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
@@ -0,0 +1,192 @@
+/*
+ * 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.phoenix.mapreduce;
+
+import org.apache.hadoop.mapreduce.lib.db.DBWritable;
+import org.apache.phoenix.schema.types.*;
+import org.apache.phoenix.util.ColumnInfo;
+import org.joda.time.DateTime;
+
+import java.sql.Array;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class PhoenixRecordWritable implements DBWritable {
+
+private final List upsertValues = new ArrayList<>();
+private final Map resultMap = new HashMap<>();
+private List columnMetaDataList;
+
+/** For serialization; do not use. */
+public PhoenixRecordWritable() {
+this(new ArrayList());
+}
+
+public PhoenixRecordWritable(List columnMetaDataList) {
+this.columnMetaDataList = columnMetaDataList;
+}
+
+/**
+ * Helper method to create a {@link Array} for a specific {@link 
PDataType}, and set it on
+ * the provided {@code stmt}.
+ */
+private static void setArrayInStatement(PreparedStatement stmt, 
PDataType type,
+Object[] obj, int position) throws SQLException {
+Array sqlArray = stmt.getConnection().createArrayOf(
+PDataType.arrayBaseType(type).getSqlTypeName(), obj);
+stmt.setArray(position, sqlArray);
+}
+
+private static Object[] primativeArrayToObjectArray(byte[] a) {
+final Byte[] ret = new Byte[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(short[] a) {
+final Short[] ret = new Short[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(int[] a) {
+final Integer[] ret = new Integer[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(float[] a) {
+final Float[] ret = new Float[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(double[] a) {
+final Double[] ret = new Double[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] 

phoenix git commit: PHOENIX-2492 Expose PhoenixRecordWritable outside of spark

2015-12-22 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 49b574967 -> 1fc19625e


PHOENIX-2492 Expose PhoenixRecordWritable outside of spark


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 1fc19625e85642c783c9969f827c902db96489b1
Parents: 49b5749
Author: Nick Dimiduk 
Authored: Fri Dec 4 16:04:25 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 22 16:38:43 2015 -0500

--
 .../mapreduce/PhoenixRecordWritable.java| 192 +++
 1 file changed, 192 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/1fc19625/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
new file mode 100644
index 000..8d7d97a
--- /dev/null
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordWritable.java
@@ -0,0 +1,192 @@
+/*
+ * 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.phoenix.mapreduce;
+
+import org.apache.hadoop.mapreduce.lib.db.DBWritable;
+import org.apache.phoenix.schema.types.*;
+import org.apache.phoenix.util.ColumnInfo;
+import org.joda.time.DateTime;
+
+import java.sql.Array;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+public class PhoenixRecordWritable implements DBWritable {
+
+private final List upsertValues = new ArrayList<>();
+private final Map resultMap = new HashMap<>();
+private List columnMetaDataList;
+
+/** For serialization; do not use. */
+public PhoenixRecordWritable() {
+this(new ArrayList());
+}
+
+public PhoenixRecordWritable(List columnMetaDataList) {
+this.columnMetaDataList = columnMetaDataList;
+}
+
+/**
+ * Helper method to create a {@link Array} for a specific {@link 
PDataType}, and set it on
+ * the provided {@code stmt}.
+ */
+private static void setArrayInStatement(PreparedStatement stmt, 
PDataType type,
+Object[] obj, int position) throws SQLException {
+Array sqlArray = stmt.getConnection().createArrayOf(
+PDataType.arrayBaseType(type).getSqlTypeName(), obj);
+stmt.setArray(position, sqlArray);
+}
+
+private static Object[] primativeArrayToObjectArray(byte[] a) {
+final Byte[] ret = new Byte[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(short[] a) {
+final Short[] ret = new Short[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(int[] a) {
+final Integer[] ret = new Integer[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(float[] a) {
+final Float[] ret = new Float[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static Object[] primativeArrayToObjectArray(double[] a) {
+final Double[] ret = new Double[a.length];
+for (int i = 0; i < a.length; i++) {
+ret[i] = a[i];
+}
+return ret;
+}
+
+private static 

phoenix git commit: PHOENIX-2517 Bulk load tools should support multiple input files

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 09360c4e4 -> e6eb77121


PHOENIX-2517 Bulk load tools should support multiple input files


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

Branch: refs/heads/master
Commit: e6eb77121c0f543b9daf0dada6f53ea1d2518a30
Parents: 09360c4
Author: Nick Dimiduk 
Authored: Fri Dec 11 12:41:49 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 15 12:21:50 2015 -0800

--
 .../phoenix/mapreduce/CsvBulkLoadToolIT.java| 41 
 .../phoenix/mapreduce/AbstractBulkLoadTool.java | 16 
 .../mapreduce/MultiHfileOutputFormat.java   |  2 +-
 3 files changed, 50 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/e6eb7712/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index 4a440d6..7daacb4 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -36,6 +36,7 @@ import org.apache.phoenix.util.DateUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -166,6 +167,46 @@ public class CsvBulkLoadToolIT {
 }
 
 @Test
+public void testMultipleInputFiles() throws Exception {
+
+Statement stmt = conn.createStatement();
+stmt.execute("CREATE TABLE TABLE7 (ID INTEGER NOT NULL PRIMARY KEY, 
NAME VARCHAR, T DATE) SPLIT ON (1,2)");
+
+FileSystem fs = FileSystem.get(hbaseTestUtil.getConfiguration());
+FSDataOutputStream outputStream = fs.create(new 
Path("/tmp/input1.csv"));
+PrintWriter printWriter = new PrintWriter(outputStream);
+printWriter.println("1,Name 1,1970/01/01");
+printWriter.close();
+outputStream = fs.create(new Path("/tmp/input2.csv"));
+printWriter = new PrintWriter(outputStream);
+printWriter.println("2,Name 2,1970/01/02");
+printWriter.close();
+
+CsvBulkLoadTool csvBulkLoadTool = new CsvBulkLoadTool();
+csvBulkLoadTool.setConf(new 
Configuration(hbaseTestUtil.getConfiguration()));
+csvBulkLoadTool.getConf().set(DATE_FORMAT_ATTRIB,"/MM/dd");
+int exitCode = csvBulkLoadTool.run(new String[] {
+"--input", "/tmp/input1.csv,/tmp/input2.csv",
+"--table", "table7",
+"--zookeeper", zkQuorum});
+assertEquals(0, exitCode);
+
+ResultSet rs = stmt.executeQuery("SELECT id, name, t FROM table7 ORDER 
BY id");
+assertTrue(rs.next());
+assertEquals(1, rs.getInt(1));
+assertEquals("Name 1", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-01"), rs.getDate(3));
+assertTrue(rs.next());
+assertEquals(2, rs.getInt(1));
+assertEquals("Name 2", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-02"), rs.getDate(3));
+assertFalse(rs.next());
+
+rs.close();
+stmt.close();
+}
+
+@Test
 public void testImportWithIndex() throws Exception {
 
 Statement stmt = conn.createStatement();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/e6eb7712/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
index cf9ddef..1d2594d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
@@ -74,7 +74,7 @@ public abstract class AbstractBulkLoadTool extends Configured 
implements Tool {
 protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractBulkLoadTool.class);
 
 static final Option ZK_QUORUM_OPT = new Option("z", "zookeeper", true, 
"Supply zookeeper connection details (optional)");
-static final Option INPUT_PATH_OPT = new Option("i", "input", true, "Input 
path (mandatory)");
+static final Option INPUT_PATH_OPT = new Option("i", "input", true, "Input 

phoenix git commit: PHOENIX-2517 Bulk load tools should support multiple input files

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 59a859eb3 -> 99a523313


PHOENIX-2517 Bulk load tools should support multiple input files


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 99a523313469d49ee4abd8ee42ccd59c16aa54a9
Parents: 59a859e
Author: Nick Dimiduk 
Authored: Fri Dec 11 12:41:49 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 15 12:36:48 2015 -0800

--
 .../phoenix/mapreduce/CsvBulkLoadToolIT.java| 41 
 .../phoenix/mapreduce/AbstractBulkLoadTool.java | 16 
 .../mapreduce/MultiHfileOutputFormat.java   |  2 +-
 3 files changed, 50 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/99a52331/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index 4a440d6..7daacb4 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -36,6 +36,7 @@ import org.apache.phoenix.util.DateUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -166,6 +167,46 @@ public class CsvBulkLoadToolIT {
 }
 
 @Test
+public void testMultipleInputFiles() throws Exception {
+
+Statement stmt = conn.createStatement();
+stmt.execute("CREATE TABLE TABLE7 (ID INTEGER NOT NULL PRIMARY KEY, 
NAME VARCHAR, T DATE) SPLIT ON (1,2)");
+
+FileSystem fs = FileSystem.get(hbaseTestUtil.getConfiguration());
+FSDataOutputStream outputStream = fs.create(new 
Path("/tmp/input1.csv"));
+PrintWriter printWriter = new PrintWriter(outputStream);
+printWriter.println("1,Name 1,1970/01/01");
+printWriter.close();
+outputStream = fs.create(new Path("/tmp/input2.csv"));
+printWriter = new PrintWriter(outputStream);
+printWriter.println("2,Name 2,1970/01/02");
+printWriter.close();
+
+CsvBulkLoadTool csvBulkLoadTool = new CsvBulkLoadTool();
+csvBulkLoadTool.setConf(new 
Configuration(hbaseTestUtil.getConfiguration()));
+csvBulkLoadTool.getConf().set(DATE_FORMAT_ATTRIB,"/MM/dd");
+int exitCode = csvBulkLoadTool.run(new String[] {
+"--input", "/tmp/input1.csv,/tmp/input2.csv",
+"--table", "table7",
+"--zookeeper", zkQuorum});
+assertEquals(0, exitCode);
+
+ResultSet rs = stmt.executeQuery("SELECT id, name, t FROM table7 ORDER 
BY id");
+assertTrue(rs.next());
+assertEquals(1, rs.getInt(1));
+assertEquals("Name 1", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-01"), rs.getDate(3));
+assertTrue(rs.next());
+assertEquals(2, rs.getInt(1));
+assertEquals("Name 2", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-02"), rs.getDate(3));
+assertFalse(rs.next());
+
+rs.close();
+stmt.close();
+}
+
+@Test
 public void testImportWithIndex() throws Exception {
 
 Statement stmt = conn.createStatement();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/99a52331/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
index cf9ddef..1d2594d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
@@ -74,7 +74,7 @@ public abstract class AbstractBulkLoadTool extends Configured 
implements Tool {
 protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractBulkLoadTool.class);
 
 static final Option ZK_QUORUM_OPT = new Option("z", "zookeeper", true, 
"Supply zookeeper connection details (optional)");
-static final Option INPUT_PATH_OPT = new Option("i", "input", true, "Input 
path (mandatory)");
+static final Option INPUT_PATH_OPT = new Option("i", "input", 

phoenix git commit: PHOENIX-2517 Bulk load tools should support multiple input files

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 42506f405 -> f4257c6a5


PHOENIX-2517 Bulk load tools should support multiple input files


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

Branch: refs/heads/4.x-HBase-1.0
Commit: f4257c6a5c7ec8d32927b2d9987d5402740bfc47
Parents: 42506f4
Author: Nick Dimiduk 
Authored: Fri Dec 11 12:41:49 2015 -0800
Committer: Nick Dimiduk 
Committed: Tue Dec 15 12:36:36 2015 -0800

--
 .../phoenix/mapreduce/CsvBulkLoadToolIT.java| 41 
 .../phoenix/mapreduce/AbstractBulkLoadTool.java | 16 
 .../mapreduce/MultiHfileOutputFormat.java   |  2 +-
 3 files changed, 50 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f4257c6a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index 4a440d6..7daacb4 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -36,6 +36,7 @@ import org.apache.phoenix.util.DateUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -166,6 +167,46 @@ public class CsvBulkLoadToolIT {
 }
 
 @Test
+public void testMultipleInputFiles() throws Exception {
+
+Statement stmt = conn.createStatement();
+stmt.execute("CREATE TABLE TABLE7 (ID INTEGER NOT NULL PRIMARY KEY, 
NAME VARCHAR, T DATE) SPLIT ON (1,2)");
+
+FileSystem fs = FileSystem.get(hbaseTestUtil.getConfiguration());
+FSDataOutputStream outputStream = fs.create(new 
Path("/tmp/input1.csv"));
+PrintWriter printWriter = new PrintWriter(outputStream);
+printWriter.println("1,Name 1,1970/01/01");
+printWriter.close();
+outputStream = fs.create(new Path("/tmp/input2.csv"));
+printWriter = new PrintWriter(outputStream);
+printWriter.println("2,Name 2,1970/01/02");
+printWriter.close();
+
+CsvBulkLoadTool csvBulkLoadTool = new CsvBulkLoadTool();
+csvBulkLoadTool.setConf(new 
Configuration(hbaseTestUtil.getConfiguration()));
+csvBulkLoadTool.getConf().set(DATE_FORMAT_ATTRIB,"/MM/dd");
+int exitCode = csvBulkLoadTool.run(new String[] {
+"--input", "/tmp/input1.csv,/tmp/input2.csv",
+"--table", "table7",
+"--zookeeper", zkQuorum});
+assertEquals(0, exitCode);
+
+ResultSet rs = stmt.executeQuery("SELECT id, name, t FROM table7 ORDER 
BY id");
+assertTrue(rs.next());
+assertEquals(1, rs.getInt(1));
+assertEquals("Name 1", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-01"), rs.getDate(3));
+assertTrue(rs.next());
+assertEquals(2, rs.getInt(1));
+assertEquals("Name 2", rs.getString(2));
+assertEquals(DateUtil.parseDate("1970-01-02"), rs.getDate(3));
+assertFalse(rs.next());
+
+rs.close();
+stmt.close();
+}
+
+@Test
 public void testImportWithIndex() throws Exception {
 
 Statement stmt = conn.createStatement();

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f4257c6a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
index cf9ddef..1d2594d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
@@ -74,7 +74,7 @@ public abstract class AbstractBulkLoadTool extends Configured 
implements Tool {
 protected static final Logger LOG = 
LoggerFactory.getLogger(AbstractBulkLoadTool.class);
 
 static final Option ZK_QUORUM_OPT = new Option("z", "zookeeper", true, 
"Supply zookeeper connection details (optional)");
-static final Option INPUT_PATH_OPT = new Option("i", "input", true, "Input 
path (mandatory)");
+static final Option INPUT_PATH_OPT = new Option("i", "input", 

phoenix git commit: PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 6b85406cb -> de37a9a6b


PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

The file with the same name was being included in the final artifact
from including the Avatica jar in this jar. If we specify the file
explicitly, we can be sure that it will be the file contained in
the jar.


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

Branch: refs/heads/master
Commit: de37a9a6b73b0d565b775f9e224a8843be417b02
Parents: 6b85406
Author: Josh Elser 
Authored: Tue Dec 15 17:01:57 2015 -0500
Committer: Nick Dimiduk 
Committed: Tue Dec 15 15:50:54 2015 -0800

--
 phoenix-server-client/src/build/thin-client.xml | 8 
 1 file changed, 8 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/de37a9a6/phoenix-server-client/src/build/thin-client.xml
--
diff --git a/phoenix-server-client/src/build/thin-client.xml 
b/phoenix-server-client/src/build/thin-client.xml
index 5865395..0e7ca52 100644
--- a/phoenix-server-client/src/build/thin-client.xml
+++ b/phoenix-server-client/src/build/thin-client.xml
@@ -38,4 +38,12 @@
   runtime
 
   
+  
+
+  
+  src/main/resources/META-INF/services/java.sql.Driver
+  /META-INF/services/
+
+  
 



phoenix git commit: PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 4ddbe9bdf -> 459cfe91d


PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

The file with the same name was being included in the final artifact
from including the Avatica jar in this jar. If we specify the file
explicitly, we can be sure that it will be the file contained in
the jar.


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 459cfe91d978d1a313ba33b5577ad08b55e8b28f
Parents: 4ddbe9b
Author: Josh Elser 
Authored: Tue Dec 15 17:01:57 2015 -0500
Committer: Nick Dimiduk 
Committed: Tue Dec 15 15:51:29 2015 -0800

--
 phoenix-server-client/src/build/thin-client.xml | 8 
 1 file changed, 8 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/459cfe91/phoenix-server-client/src/build/thin-client.xml
--
diff --git a/phoenix-server-client/src/build/thin-client.xml 
b/phoenix-server-client/src/build/thin-client.xml
index 5865395..0e7ca52 100644
--- a/phoenix-server-client/src/build/thin-client.xml
+++ b/phoenix-server-client/src/build/thin-client.xml
@@ -38,4 +38,12 @@
   runtime
 
   
+  
+
+  
+  src/main/resources/META-INF/services/java.sql.Driver
+  /META-INF/services/
+
+  
 



phoenix git commit: PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

2015-12-15 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 9a71114d8 -> 356b73f1a


PHOENIX-2531 Explicitly list java.sql.Driver file to fix thin-client jar

The file with the same name was being included in the final artifact
from including the Avatica jar in this jar. If we specify the file
explicitly, we can be sure that it will be the file contained in
the jar.


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 356b73f1a9e3224ee97cae7d13a3918b6c88dfb8
Parents: 9a71114
Author: Josh Elser 
Authored: Tue Dec 15 17:01:57 2015 -0500
Committer: Nick Dimiduk 
Committed: Tue Dec 15 15:51:14 2015 -0800

--
 phoenix-server-client/src/build/thin-client.xml | 8 
 1 file changed, 8 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/356b73f1/phoenix-server-client/src/build/thin-client.xml
--
diff --git a/phoenix-server-client/src/build/thin-client.xml 
b/phoenix-server-client/src/build/thin-client.xml
index 5865395..0e7ca52 100644
--- a/phoenix-server-client/src/build/thin-client.xml
+++ b/phoenix-server-client/src/build/thin-client.xml
@@ -38,4 +38,12 @@
   runtime
 
   
+  
+
+  
+  src/main/resources/META-INF/services/java.sql.Driver
+  /META-INF/services/
+
+  
 



phoenix git commit: PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT

2015-12-09 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 24a94a257 -> f244feb42


PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT


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

Branch: refs/heads/master
Commit: f244feb4261d0edd19992f0d7f04a3a58615e479
Parents: 24a94a2
Author: Nick Dimiduk 
Authored: Wed Dec 9 16:51:18 2015 -0800
Committer: Nick Dimiduk 
Committed: Wed Dec 9 17:37:54 2015 -0800

--
 .../java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java  | 2 +-
 .../org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java | 1 +
 .../org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java  | 7 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f244feb4/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index a5b7488..4a440d6 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -228,7 +228,7 @@ public class CsvBulkLoadToolIT {
 "--zookeeper", zkQuorum});
 fail("Csv bulk load currently has issues with local indexes.");
 } catch( UnsupportedOperationException ise) {
-assertEquals("Local indexes not supported by CSV Bulk 
Loader",ise.getMessage());
+assertEquals("Local indexes not supported by Bulk 
Loader",ise.getMessage());
 }
 
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f244feb4/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
index 5a5d378..2cb1ac7 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
@@ -64,6 +64,7 @@ public class CsvToKeyValueMapper extends 
FormatToKeyValueMapper {
 
 @Override
 protected void setup(Context context) throws IOException, 
InterruptedException {
+super.setup(context);
 Configuration conf = context.getConfiguration();
 lineParser = new CsvLineParser(
 CsvBulkImportUtil.getCharacter(conf, FIELD_DELIMITER_CONFKEY),

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f244feb4/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
index b2e99e5..7e115e5 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
@@ -128,6 +128,9 @@ public abstract class FormatToKeyValueMapper 
extends Mapper 
extends Mapper

phoenix git commit: PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT

2015-12-09 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 dbd697eb3 -> f995761e6


PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT


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

Branch: refs/heads/4.x-HBase-1.0
Commit: f995761e685eee2882362461339c4f7040894b11
Parents: dbd697e
Author: Nick Dimiduk 
Authored: Wed Dec 9 16:51:18 2015 -0800
Committer: Nick Dimiduk 
Committed: Wed Dec 9 17:46:22 2015 -0800

--
 .../java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java  | 2 +-
 .../org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java | 1 +
 .../org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java  | 7 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f995761e/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index a5b7488..4a440d6 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -228,7 +228,7 @@ public class CsvBulkLoadToolIT {
 "--zookeeper", zkQuorum});
 fail("Csv bulk load currently has issues with local indexes.");
 } catch( UnsupportedOperationException ise) {
-assertEquals("Local indexes not supported by CSV Bulk 
Loader",ise.getMessage());
+assertEquals("Local indexes not supported by Bulk 
Loader",ise.getMessage());
 }
 
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f995761e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
index 5a5d378..2cb1ac7 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
@@ -64,6 +64,7 @@ public class CsvToKeyValueMapper extends 
FormatToKeyValueMapper {
 
 @Override
 protected void setup(Context context) throws IOException, 
InterruptedException {
+super.setup(context);
 Configuration conf = context.getConfiguration();
 lineParser = new CsvLineParser(
 CsvBulkImportUtil.getCharacter(conf, FIELD_DELIMITER_CONFKEY),

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f995761e/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
index b2e99e5..7e115e5 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
@@ -128,6 +128,9 @@ public abstract class FormatToKeyValueMapper 
extends Mapper 
extends Mapper

phoenix git commit: PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT

2015-12-09 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 161793d90 -> 5d99167c1


PHOENIX-2495 Fix test failures in CsvBulkLoadToolIT


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 5d99167c1c5f3af1a63e1830460e1329e257ee97
Parents: 161793d
Author: Nick Dimiduk 
Authored: Wed Dec 9 16:51:18 2015 -0800
Committer: Nick Dimiduk 
Committed: Wed Dec 9 17:48:20 2015 -0800

--
 .../java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java  | 2 +-
 .../org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java | 1 +
 .../org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java  | 7 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/5d99167c/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index a5b7488..4a440d6 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -228,7 +228,7 @@ public class CsvBulkLoadToolIT {
 "--zookeeper", zkQuorum});
 fail("Csv bulk load currently has issues with local indexes.");
 } catch( UnsupportedOperationException ise) {
-assertEquals("Local indexes not supported by CSV Bulk 
Loader",ise.getMessage());
+assertEquals("Local indexes not supported by Bulk 
Loader",ise.getMessage());
 }
 
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/5d99167c/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
index 5a5d378..2cb1ac7 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/CsvToKeyValueMapper.java
@@ -64,6 +64,7 @@ public class CsvToKeyValueMapper extends 
FormatToKeyValueMapper {
 
 @Override
 protected void setup(Context context) throws IOException, 
InterruptedException {
+super.setup(context);
 Configuration conf = context.getConfiguration();
 lineParser = new CsvLineParser(
 CsvBulkImportUtil.getCharacter(conf, FIELD_DELIMITER_CONFKEY),

http://git-wip-us.apache.org/repos/asf/phoenix/blob/5d99167c/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
index b2e99e5..7e115e5 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapper.java
@@ -128,6 +128,9 @@ public abstract class FormatToKeyValueMapper 
extends Mapper 
extends Mapper

[3/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
PHOENIX-2481 JSON bulkload tool


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 8ae4217ceaf965d50c7d5679d69aa3a0e118c628
Parents: 1e10e8b
Author: Nick Dimiduk 
Authored: Mon Nov 16 17:18:34 2015 -0800
Committer: Nick Dimiduk 
Committed: Mon Dec 7 13:11:14 2015 -0800

--
 .../phoenix/mapreduce/CsvBulkLoadToolIT.java|  16 +-
 .../phoenix/mapreduce/AbstractBulkLoadTool.java | 402 +++
 .../phoenix/mapreduce/CsvBulkImportUtil.java|  20 +-
 .../phoenix/mapreduce/CsvBulkLoadTool.java  | 514 +--
 .../phoenix/mapreduce/CsvToKeyValueMapper.java  | 226 +---
 .../phoenix/mapreduce/CsvToKeyValueReducer.java |  55 --
 .../mapreduce/FormatToKeyValueMapper.java   | 259 ++
 .../mapreduce/FormatToKeyValueReducer.java  |  54 ++
 .../ImportPreUpsertKeyValueProcessor.java   |   3 +-
 .../phoenix/mapreduce/JsonBulkLoadTool.java |  53 ++
 .../phoenix/mapreduce/JsonToKeyValueMapper.java |  75 +++
 .../mapreduce/MultiHfileOutputFormat.java   |  38 +-
 .../mapreduce/bulkload/CsvTableRowkeyPair.java  | 139 -
 .../mapreduce/bulkload/TableRowkeyPair.java | 134 +
 .../mapreduce/bulkload/TargetTableRef.java  |  70 +++
 .../bulkload/TargetTableRefFunctions.java   |  95 
 .../util/PhoenixConfigurationUtil.java  |  15 +-
 .../apache/phoenix/util/CSVCommonsLoader.java   | 160 +-
 .../org/apache/phoenix/util/SchemaUtil.java | 145 +-
 .../org/apache/phoenix/util/UpsertExecutor.java | 156 ++
 .../phoenix/util/csv/CsvUpsertExecutor.java | 131 +
 .../phoenix/util/json/JsonUpsertExecutor.java   | 209 
 .../util/json/ObjectToArrayConverter.java   |  69 +++
 .../phoenix/mapreduce/BulkLoadToolTest.java |  78 +++
 .../mapreduce/CsvBulkImportUtilTest.java|  18 +-
 .../phoenix/mapreduce/CsvBulkLoadToolTest.java  |  69 ---
 .../mapreduce/CsvToKeyValueMapperTest.java  |  84 +--
 .../mapreduce/FormatToKeyValueMapperTest.java   | 102 
 .../util/AbstractUpsertExecutorTest.java| 136 +
 .../phoenix/util/csv/CsvUpsertExecutorTest.java | 144 ++
 .../util/json/JsonUpsertExecutorTest.java   |  53 ++
 31 files changed,  insertions(+), 1500 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/8ae4217c/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index 0e74d7b..a5b7488 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -17,14 +17,6 @@
  */
 package org.apache.phoenix.mapreduce;
 
-import static org.apache.phoenix.query.BaseTest.setUpConfigForMiniCluster;
-import static org.apache.phoenix.query.QueryServices.DATE_FORMAT_ATTRIB;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
 import java.io.PrintWriter;
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -47,6 +39,14 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import static org.apache.phoenix.query.BaseTest.setUpConfigForMiniCluster;
+import static org.apache.phoenix.query.QueryServices.DATE_FORMAT_ATTRIB;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 @Category(NeedsOwnMiniClusterTest.class)
 public class CsvBulkLoadToolIT {
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8ae4217c/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
new file mode 100644
index 000..cf9ddef
--- /dev/null
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
@@ -0,0 +1,402 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more 

[3/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
PHOENIX-2481 JSON bulkload tool


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

Branch: refs/heads/master
Commit: 578979a1437124d53e319ad554b72793bcef6fd3
Parents: 8ce3b58
Author: Nick Dimiduk 
Authored: Mon Nov 16 17:18:34 2015 -0800
Committer: Nick Dimiduk 
Committed: Mon Dec 7 13:09:09 2015 -0800

--
 .../phoenix/mapreduce/CsvBulkLoadToolIT.java|  16 +-
 .../phoenix/mapreduce/AbstractBulkLoadTool.java | 402 +++
 .../phoenix/mapreduce/CsvBulkImportUtil.java|  20 +-
 .../phoenix/mapreduce/CsvBulkLoadTool.java  | 514 +--
 .../phoenix/mapreduce/CsvToKeyValueMapper.java  | 226 +---
 .../phoenix/mapreduce/CsvToKeyValueReducer.java |  55 --
 .../mapreduce/FormatToKeyValueMapper.java   | 259 ++
 .../mapreduce/FormatToKeyValueReducer.java  |  54 ++
 .../ImportPreUpsertKeyValueProcessor.java   |   3 +-
 .../phoenix/mapreduce/JsonBulkLoadTool.java |  53 ++
 .../phoenix/mapreduce/JsonToKeyValueMapper.java |  75 +++
 .../mapreduce/MultiHfileOutputFormat.java   |  38 +-
 .../mapreduce/bulkload/CsvTableRowkeyPair.java  | 139 -
 .../mapreduce/bulkload/TableRowkeyPair.java | 134 +
 .../mapreduce/bulkload/TargetTableRef.java  |  70 +++
 .../bulkload/TargetTableRefFunctions.java   |  95 
 .../util/PhoenixConfigurationUtil.java  |  15 +-
 .../apache/phoenix/util/CSVCommonsLoader.java   | 160 +-
 .../org/apache/phoenix/util/SchemaUtil.java | 145 +-
 .../org/apache/phoenix/util/UpsertExecutor.java | 156 ++
 .../phoenix/util/csv/CsvUpsertExecutor.java | 131 +
 .../phoenix/util/json/JsonUpsertExecutor.java   | 209 
 .../util/json/ObjectToArrayConverter.java   |  69 +++
 .../phoenix/mapreduce/BulkLoadToolTest.java |  78 +++
 .../mapreduce/CsvBulkImportUtilTest.java|  18 +-
 .../phoenix/mapreduce/CsvBulkLoadToolTest.java  |  69 ---
 .../mapreduce/CsvToKeyValueMapperTest.java  |  84 +--
 .../mapreduce/FormatToKeyValueMapperTest.java   | 102 
 .../util/AbstractUpsertExecutorTest.java| 136 +
 .../phoenix/util/csv/CsvUpsertExecutorTest.java | 144 ++
 .../util/json/JsonUpsertExecutorTest.java   |  53 ++
 31 files changed,  insertions(+), 1500 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/578979a1/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
index 0e74d7b..a5b7488 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/mapreduce/CsvBulkLoadToolIT.java
@@ -17,14 +17,6 @@
  */
 package org.apache.phoenix.mapreduce;
 
-import static org.apache.phoenix.query.BaseTest.setUpConfigForMiniCluster;
-import static org.apache.phoenix.query.QueryServices.DATE_FORMAT_ATTRIB;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
 import java.io.PrintWriter;
 import java.sql.Connection;
 import java.sql.DriverManager;
@@ -47,6 +39,14 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import static org.apache.phoenix.query.BaseTest.setUpConfigForMiniCluster;
+import static org.apache.phoenix.query.QueryServices.DATE_FORMAT_ATTRIB;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
 @Category(NeedsOwnMiniClusterTest.class)
 public class CsvBulkLoadToolIT {
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/578979a1/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
new file mode 100644
index 000..cf9ddef
--- /dev/null
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/AbstractBulkLoadTool.java
@@ -0,0 +1,402 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor 

[2/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8ae4217c/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
index e0b3e9d..45a014d 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
@@ -66,9 +66,9 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRef;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRefFunctions;
-import org.apache.phoenix.mapreduce.bulkload.CsvTableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRef;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRefFunctions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +81,7 @@ import com.google.common.collect.Sets;
  * It has been adapted from {#link HFileOutputFormat2} but differs from the 
fact it creates
  * HFiles for multiple tables.
  */
-public class MultiHfileOutputFormat extends 
FileOutputFormat {
+public class MultiHfileOutputFormat extends FileOutputFormat {
 
 private static final Logger LOG = 
LoggerFactory.getLogger(MultiHfileOutputFormat.class);
 
@@ -101,7 +101,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
getRecordWriter(TaskAttemptContext context)
+public RecordWriter 
getRecordWriter(TaskAttemptContext context)
 throws IOException, InterruptedException {
 return createRecordWriter(context);
 }
@@ -112,7 +112,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
createRecordWriter(final TaskAttemptContext context) 
+static  RecordWriter 
createRecordWriter(final TaskAttemptContext context)
 throws IOException {
 // Get the path of the temporary output file
 final Path outputPath = FileOutputFormat.getOutputPath(context);
@@ -130,7 +130,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat() {
+return new RecordWriter() {
   // Map of families to writers and how much has been output on the 
writer.
 private final Map writers =
 new TreeMap(Bytes.BYTES_COMPARATOR);
@@ -139,7 +139,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat

[2/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/900f886f/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
index 5f8d2d2..38750f0 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
@@ -65,9 +65,9 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRef;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRefFunctions;
-import org.apache.phoenix.mapreduce.bulkload.CsvTableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRef;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRefFunctions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -80,7 +80,7 @@ import com.google.common.collect.Sets;
  * It has been adapted from {#link HFileOutputFormat2} but differs from the 
fact it creates
  * HFiles for multiple tables.
  */
-public class MultiHfileOutputFormat extends 
FileOutputFormat {
+public class MultiHfileOutputFormat extends FileOutputFormat {
 
 private static final Logger LOG = 
LoggerFactory.getLogger(MultiHfileOutputFormat.class);
 
@@ -100,7 +100,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
getRecordWriter(TaskAttemptContext context)
+public RecordWriter 
getRecordWriter(TaskAttemptContext context)
 throws IOException, InterruptedException {
 return createRecordWriter(context);
 }
@@ -111,7 +111,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
createRecordWriter(final TaskAttemptContext context) 
+static  RecordWriter 
createRecordWriter(final TaskAttemptContext context)
 throws IOException {
 // Get the path of the temporary output file
 final Path outputPath = FileOutputFormat.getOutputPath(context);
@@ -129,7 +129,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat() {
+return new RecordWriter() {
   // Map of families to writers and how much has been output on the 
writer.
 private final Map writers =
 new TreeMap(Bytes.BYTES_COMPARATOR);
@@ -138,7 +138,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat

[1/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 1e10e8be8 -> 8ae4217ce


http://git-wip-us.apache.org/repos/asf/phoenix/blob/8ae4217c/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
--
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
new file mode 100644
index 000..3455616
--- /dev/null
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.phoenix.mapreduce;
+
+import java.util.List;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.phoenix.mapreduce.util.PhoenixConfigurationUtil;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PIntegerArray;
+import org.apache.phoenix.schema.types.PUnsignedInt;
+import org.apache.phoenix.util.ColumnInfo;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+import static org.junit.Assert.assertEquals;
+
+public class FormatToKeyValueMapperTest {
+
+@Test
+public void testBuildColumnInfoList() {
+List columnInfoList = ImmutableList.of(
+new ColumnInfo("idCol", PInteger.INSTANCE.getSqlType()),
+new ColumnInfo("unsignedIntCol", 
PUnsignedInt.INSTANCE.getSqlType()),
+new ColumnInfo("stringArrayCol", 
PIntegerArray.INSTANCE.getSqlType()));
+
+Configuration conf = new Configuration();
+FormatToKeyValueMapper.configureColumnInfoList(conf, columnInfoList);
+List fromConfig = 
FormatToKeyValueMapper.buildColumnInfoList(conf);
+
+assertEquals(columnInfoList, fromConfig);
+}
+
+@Test
+public void testBuildColumnInfoList_ContainingNulls() {
+// A null value in the column info list means "skip that column in the 
input"
+List columnInfoListWithNull = Lists.newArrayList(
+new ColumnInfo("idCol", PInteger.INSTANCE.getSqlType()),
+null,
+new ColumnInfo("unsignedIntCol", 
PUnsignedInt.INSTANCE.getSqlType()),
+new ColumnInfo("stringArrayCol", 
PIntegerArray.INSTANCE.getSqlType()));
+
+Configuration conf = new Configuration();
+FormatToKeyValueMapper.configureColumnInfoList(conf, 
columnInfoListWithNull);
+List fromConfig = 
FormatToKeyValueMapper.buildColumnInfoList(conf);
+
+assertEquals(columnInfoListWithNull, fromConfig);
+}
+
+@Test
+public void testLoadPreUpdateProcessor() {
+Configuration conf = new Configuration();
+conf.setClass(PhoenixConfigurationUtil.UPSERT_HOOK_CLASS_CONFKEY, 
MockUpsertProcessor.class,
+ImportPreUpsertKeyValueProcessor.class);
+
+ImportPreUpsertKeyValueProcessor processor = 
PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+assertEquals(MockUpsertProcessor.class, processor.getClass());
+}
+
+@Test
+public void testLoadPreUpdateProcessor_NotConfigured() {
+
+Configuration conf = new Configuration();
+ImportPreUpsertKeyValueProcessor processor = 
PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+
+
assertEquals(FormatToKeyValueMapper.DefaultImportPreUpsertKeyValueProcessor.class,
+processor.getClass());
+}
+
+@Test(expected=IllegalStateException.class)
+public void testLoadPreUpdateProcessor_ClassNotFound() {
+Configuration conf = new Configuration();
+conf.set(PhoenixConfigurationUtil.UPSERT_HOOK_CLASS_CONFKEY, 
"MyUndefinedClass");
+
+PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+}
+
+static class MockUpsertProcessor implements 
ImportPreUpsertKeyValueProcessor {
+@Override
+public List preUpsert(byte[] rowKey, List 
keyValues) {
+throw new UnsupportedOperationException("Not yet implemented");
+}
+}
+}


[1/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 8ce3b580f -> 578979a14


http://git-wip-us.apache.org/repos/asf/phoenix/blob/578979a1/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
--
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
new file mode 100644
index 000..3455616
--- /dev/null
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/mapreduce/FormatToKeyValueMapperTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.phoenix.mapreduce;
+
+import java.util.List;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.phoenix.mapreduce.util.PhoenixConfigurationUtil;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PIntegerArray;
+import org.apache.phoenix.schema.types.PUnsignedInt;
+import org.apache.phoenix.util.ColumnInfo;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+import static org.junit.Assert.assertEquals;
+
+public class FormatToKeyValueMapperTest {
+
+@Test
+public void testBuildColumnInfoList() {
+List columnInfoList = ImmutableList.of(
+new ColumnInfo("idCol", PInteger.INSTANCE.getSqlType()),
+new ColumnInfo("unsignedIntCol", 
PUnsignedInt.INSTANCE.getSqlType()),
+new ColumnInfo("stringArrayCol", 
PIntegerArray.INSTANCE.getSqlType()));
+
+Configuration conf = new Configuration();
+FormatToKeyValueMapper.configureColumnInfoList(conf, columnInfoList);
+List fromConfig = 
FormatToKeyValueMapper.buildColumnInfoList(conf);
+
+assertEquals(columnInfoList, fromConfig);
+}
+
+@Test
+public void testBuildColumnInfoList_ContainingNulls() {
+// A null value in the column info list means "skip that column in the 
input"
+List columnInfoListWithNull = Lists.newArrayList(
+new ColumnInfo("idCol", PInteger.INSTANCE.getSqlType()),
+null,
+new ColumnInfo("unsignedIntCol", 
PUnsignedInt.INSTANCE.getSqlType()),
+new ColumnInfo("stringArrayCol", 
PIntegerArray.INSTANCE.getSqlType()));
+
+Configuration conf = new Configuration();
+FormatToKeyValueMapper.configureColumnInfoList(conf, 
columnInfoListWithNull);
+List fromConfig = 
FormatToKeyValueMapper.buildColumnInfoList(conf);
+
+assertEquals(columnInfoListWithNull, fromConfig);
+}
+
+@Test
+public void testLoadPreUpdateProcessor() {
+Configuration conf = new Configuration();
+conf.setClass(PhoenixConfigurationUtil.UPSERT_HOOK_CLASS_CONFKEY, 
MockUpsertProcessor.class,
+ImportPreUpsertKeyValueProcessor.class);
+
+ImportPreUpsertKeyValueProcessor processor = 
PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+assertEquals(MockUpsertProcessor.class, processor.getClass());
+}
+
+@Test
+public void testLoadPreUpdateProcessor_NotConfigured() {
+
+Configuration conf = new Configuration();
+ImportPreUpsertKeyValueProcessor processor = 
PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+
+
assertEquals(FormatToKeyValueMapper.DefaultImportPreUpsertKeyValueProcessor.class,
+processor.getClass());
+}
+
+@Test(expected=IllegalStateException.class)
+public void testLoadPreUpdateProcessor_ClassNotFound() {
+Configuration conf = new Configuration();
+conf.set(PhoenixConfigurationUtil.UPSERT_HOOK_CLASS_CONFKEY, 
"MyUndefinedClass");
+
+PhoenixConfigurationUtil.loadPreUpsertProcessor(conf);
+}
+
+static class MockUpsertProcessor implements 
ImportPreUpsertKeyValueProcessor {
+@Override
+public List preUpsert(byte[] rowKey, List 
keyValues) {
+throw new UnsupportedOperationException("Not yet implemented");
+}
+}
+}


[2/3] phoenix git commit: PHOENIX-2481 JSON bulkload tool

2015-12-07 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/578979a1/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
index eae58ad..05fbab2 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/mapreduce/MultiHfileOutputFormat.java
@@ -66,9 +66,9 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRef;
-import org.apache.phoenix.mapreduce.CsvBulkLoadTool.TargetTableRefFunctions;
-import org.apache.phoenix.mapreduce.bulkload.CsvTableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TableRowkeyPair;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRef;
+import org.apache.phoenix.mapreduce.bulkload.TargetTableRefFunctions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +81,7 @@ import com.google.common.collect.Sets;
  * It has been adapted from {#link HFileOutputFormat2} but differs from the 
fact it creates
  * HFiles for multiple tables.
  */
-public class MultiHfileOutputFormat extends 
FileOutputFormat {
+public class MultiHfileOutputFormat extends FileOutputFormat {
 
 private static final Logger LOG = 
LoggerFactory.getLogger(MultiHfileOutputFormat.class);
 
@@ -101,7 +101,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
getRecordWriter(TaskAttemptContext context)
+public RecordWriter 
getRecordWriter(TaskAttemptContext context)
 throws IOException, InterruptedException {
 return createRecordWriter(context);
 }
@@ -112,7 +112,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat 
createRecordWriter(final TaskAttemptContext context) 
+static  RecordWriter 
createRecordWriter(final TaskAttemptContext context)
 throws IOException {
 // Get the path of the temporary output file
 final Path outputPath = FileOutputFormat.getOutputPath(context);
@@ -130,7 +130,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat() {
+return new RecordWriter() {
   // Map of families to writers and how much has been output on the 
writer.
 private final Map writers =
 new TreeMap(Bytes.BYTES_COMPARATOR);
@@ -139,7 +139,7 @@ public class MultiHfileOutputFormat extends 
FileOutputFormat

phoenix git commit: PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

2015-12-04 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 4d01f28eb -> 41e79d5be


PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

Also fix the use of "hbase" instead of "hbase.cmd" on Windows.


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 41e79d5be22872cb79919d58d4668f89ac6947e7
Parents: 4d01f28
Author: Josh Elser 
Authored: Mon Nov 23 19:04:56 2015 -0500
Committer: Nick Dimiduk 
Committed: Fri Dec 4 16:49:06 2015 -0800

--
 bin/sqlline-thin.py | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/41e79d5b/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index 2e237ed..d17d756 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -57,7 +57,15 @@ def cleanup_url(url):
 def get_serialization():
 default_serialization='PROTOBUF'
 env=os.environ.copy()
-hbase_cmd = phoenix_utils.which('hbase')
+if os.name == 'posix':
+  hbase_exec_name = 'hbase'
+elif os.name == 'nt':
+  hbase_exec_name = 'hbase.cmd'
+else:
+  print 'Unknown platform "%s", defaulting to HBase executable of "hbase"' 
% os.name
+  hbase_exec_name = 'hbase'
+
+hbase_cmd = phoenix_utils.which(hbase_exec_name)
 if hbase_cmd is None:
 print 'Failed to find hbase executable on PATH, defaulting 
serialization to %s.' % default_serialization
 return default_serialization
@@ -141,7 +149,7 @@ java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + 
os.pathsep + phoenix
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " sqlline.SqlLine -d org.apache.phoenix.queryserver.client.Driver " + \
-" -u jdbc:phoenix:thin:url='" + url + ";serialization=" + serialization + 
"'" + \
+" -u \"jdbc:phoenix:thin:url=" + url + ";serialization=" + serialization + 
"\"" + \
 " -n none -p none --color=" + colorSetting + " --fastConnect=false 
--verbose=true " + \
 " --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
 



phoenix git commit: PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

2015-12-04 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 1563a54b1 -> ee62ebcde


PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

Also fix the use of "hbase" instead of "hbase.cmd" on Windows.


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

Branch: refs/heads/4.x-HBase-1.0
Commit: ee62ebcdee2b7ad699ecc98a4e2b5180832b5c3e
Parents: 1563a54
Author: Josh Elser 
Authored: Mon Nov 23 19:04:56 2015 -0500
Committer: Nick Dimiduk 
Committed: Fri Dec 4 16:48:52 2015 -0800

--
 bin/sqlline-thin.py | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ee62ebcd/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index 2e237ed..d17d756 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -57,7 +57,15 @@ def cleanup_url(url):
 def get_serialization():
 default_serialization='PROTOBUF'
 env=os.environ.copy()
-hbase_cmd = phoenix_utils.which('hbase')
+if os.name == 'posix':
+  hbase_exec_name = 'hbase'
+elif os.name == 'nt':
+  hbase_exec_name = 'hbase.cmd'
+else:
+  print 'Unknown platform "%s", defaulting to HBase executable of "hbase"' 
% os.name
+  hbase_exec_name = 'hbase'
+
+hbase_cmd = phoenix_utils.which(hbase_exec_name)
 if hbase_cmd is None:
 print 'Failed to find hbase executable on PATH, defaulting 
serialization to %s.' % default_serialization
 return default_serialization
@@ -141,7 +149,7 @@ java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + 
os.pathsep + phoenix
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " sqlline.SqlLine -d org.apache.phoenix.queryserver.client.Driver " + \
-" -u jdbc:phoenix:thin:url='" + url + ";serialization=" + serialization + 
"'" + \
+" -u \"jdbc:phoenix:thin:url=" + url + ";serialization=" + serialization + 
"\"" + \
 " -n none -p none --color=" + colorSetting + " --fastConnect=false 
--verbose=true " + \
 " --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
 



phoenix git commit: PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

2015-12-04 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 9478d1f2b -> a8238f9bc


PHOENIX-2448 Fix quoting for sqlline-thin.py on Windows.

Also fix the use of "hbase" instead of "hbase.cmd" on Windows.


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

Branch: refs/heads/master
Commit: a8238f9bcfd0c091d521f72fa224ba147b0acad3
Parents: 9478d1f
Author: Josh Elser 
Authored: Mon Nov 23 19:04:56 2015 -0500
Committer: Nick Dimiduk 
Committed: Fri Dec 4 16:47:20 2015 -0800

--
 bin/sqlline-thin.py | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a8238f9b/bin/sqlline-thin.py
--
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index 2e237ed..d17d756 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -57,7 +57,15 @@ def cleanup_url(url):
 def get_serialization():
 default_serialization='PROTOBUF'
 env=os.environ.copy()
-hbase_cmd = phoenix_utils.which('hbase')
+if os.name == 'posix':
+  hbase_exec_name = 'hbase'
+elif os.name == 'nt':
+  hbase_exec_name = 'hbase.cmd'
+else:
+  print 'Unknown platform "%s", defaulting to HBase executable of "hbase"' 
% os.name
+  hbase_exec_name = 'hbase'
+
+hbase_cmd = phoenix_utils.which(hbase_exec_name)
 if hbase_cmd is None:
 print 'Failed to find hbase executable on PATH, defaulting 
serialization to %s.' % default_serialization
 return default_serialization
@@ -141,7 +149,7 @@ java_cmd = java + ' -cp "' + phoenix_utils.hbase_conf_dir + 
os.pathsep + phoenix
 os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + 
phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
 os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
 " sqlline.SqlLine -d org.apache.phoenix.queryserver.client.Driver " + \
-" -u jdbc:phoenix:thin:url='" + url + ";serialization=" + serialization + 
"'" + \
+" -u \"jdbc:phoenix:thin:url=" + url + ";serialization=" + serialization + 
"\"" + \
 " -n none -p none --color=" + colorSetting + " --fastConnect=false 
--verbose=true " + \
 " --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
 



phoenix git commit: PHOENIX-2421 Disable checkstyle plugin by default

2015-11-16 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master cfde793e2 -> 2ab6ed949


PHOENIX-2421 Disable checkstyle plugin by default


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

Branch: refs/heads/master
Commit: 2ab6ed9495b2323acd7118806e96286975af3a39
Parents: cfde793
Author: Nick Dimiduk 
Authored: Mon Nov 16 11:06:24 2015 -0800
Committer: Nick Dimiduk 
Committed: Mon Nov 16 11:06:24 2015 -0800

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/2ab6ed94/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 0a4e9c1..21dc586 100644
--- a/pom.xml
+++ b/pom.xml
@@ -342,6 +342,7 @@
 validate
 validate
 
+  true
   
${top.dir}/src/main/config/checkstyle/checker.xml
   
${top.dir}/src/main/config/checkstyle/suppressions.xml
   true



phoenix git commit: PHOENIX-2421 Disable checkstyle plugin by default

2015-11-16 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 42f0dd4f8 -> 121cd3bca


PHOENIX-2421 Disable checkstyle plugin by default


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 121cd3bca039b252d86cdc2d95ad257ee8e05e8e
Parents: 42f0dd4
Author: Nick Dimiduk 
Authored: Mon Nov 16 11:06:24 2015 -0800
Committer: Nick Dimiduk 
Committed: Mon Nov 16 11:06:47 2015 -0800

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/121cd3bc/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 4c98254..fd872ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -342,6 +342,7 @@
 validate
 validate
 
+  true
   
${top.dir}/src/main/config/checkstyle/checker.xml
   
${top.dir}/src/main/config/checkstyle/suppressions.xml
   true



phoenix git commit: PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

2015-11-14 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 6a48b98cc -> 016b2b96e


PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

Added a trivial test that exhibited the problem for Dates. BigDecimal
also had a similar problem on calling setScale on a null BigDecimal.


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

Branch: refs/heads/master
Commit: 016b2b96ec4afdf296967d1f2b7a2bb67b94b58e
Parents: 6a48b98
Author: Josh Elser 
Authored: Wed Nov 4 15:32:21 2015 -0500
Committer: Nick Dimiduk 
Committed: Sat Nov 14 11:26:24 2015 -0800

--
 .../org/apache/phoenix/end2end/DateTimeIT.java  | 34 
 .../org/apache/phoenix/end2end/QueryMoreIT.java | 33 +++
 .../apache/phoenix/jdbc/PhoenixResultSet.java   |  7 
 3 files changed, 74 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/016b2b96/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
index 0db36df..b4876a5 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
@@ -34,6 +34,8 @@ import static org.apache.phoenix.util.TestUtil.ROW8;
 import static org.apache.phoenix.util.TestUtil.ROW9;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
@@ -47,6 +49,7 @@ import java.sql.Statement;
 import java.sql.Types;
 import java.text.Format;
 import java.util.Calendar;
+import java.util.GregorianCalendar;
 
 import org.apache.phoenix.util.DateUtil;
 import org.junit.After;
@@ -59,6 +62,7 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 protected Connection conn;
 protected Date date;
 protected static final String tenantId = getOrganizationId();
+protected final static String ROW10 = "00D123122312312";
 
 public DateTimeIT() throws Exception {
 super();
@@ -264,6 +268,25 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 stmt.setDouble(16, 0.0009);
 stmt.execute();
 
+stmt.setString(1, tenantId);
+stmt.setString(2, ROW10);
+stmt.setString(3, B_VALUE);
+stmt.setString(4, B_VALUE);
+stmt.setInt(5, 7);
+// Intentionally null
+stmt.setDate(6, null);
+stmt.setBigDecimal(7, BigDecimal.valueOf(0.1));
+stmt.setLong(8, 5L);
+stmt.setInt(9, 5);
+stmt.setNull(10, Types.INTEGER);
+stmt.setByte(11, (byte)7);
+stmt.setShort(12, (short) 134);
+stmt.setFloat(13, 0.07f);
+stmt.setDouble(14, 0.0007);
+stmt.setFloat(15, 0.07f);
+stmt.setDouble(16, 0.0007);
+stmt.execute();
+
 conn.commit();
 }
 
@@ -634,4 +657,15 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 assertEquals(26, rs.getInt(3));
 assertFalse(rs.next());
 }
+
+@Test
+public void testNullDate() throws Exception {
+ResultSet rs = conn.createStatement().executeQuery("SELECT a_date, 
entity_id from " + ATABLE_NAME + " WHERE entity_id = '" + ROW10 + "'");
+assertNotNull(rs);
+assertTrue(rs.next());
+assertEquals(ROW10, rs.getString(2));
+assertNull(rs.getDate(1));
+assertNull(rs.getDate(1, GregorianCalendar.getInstance()));
+assertFalse(rs.next());
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/016b2b96/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
index a29cb0e..8f2bc73 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
@@ -19,6 +19,8 @@ package org.apache.phoenix.end2end;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.sql.Connection;
@@ -26,6 +28,7 

phoenix git commit: PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

2015-11-14 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 94b89ba16 -> a2e709642


PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

Added a trivial test that exhibited the problem for Dates. BigDecimal
also had a similar problem on calling setScale on a null BigDecimal.


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

Branch: refs/heads/4.x-HBase-0.98
Commit: a2e709642904d8f50f368cd5b0ea15dc93f92e2b
Parents: 94b89ba
Author: Josh Elser 
Authored: Wed Nov 4 15:32:21 2015 -0500
Committer: Nick Dimiduk 
Committed: Sat Nov 14 11:27:32 2015 -0800

--
 .../org/apache/phoenix/end2end/DateTimeIT.java  | 34 
 .../org/apache/phoenix/end2end/QueryMoreIT.java | 33 +++
 .../apache/phoenix/jdbc/PhoenixResultSet.java   |  7 
 3 files changed, 74 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a2e70964/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
index 0db36df..b4876a5 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
@@ -34,6 +34,8 @@ import static org.apache.phoenix.util.TestUtil.ROW8;
 import static org.apache.phoenix.util.TestUtil.ROW9;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
@@ -47,6 +49,7 @@ import java.sql.Statement;
 import java.sql.Types;
 import java.text.Format;
 import java.util.Calendar;
+import java.util.GregorianCalendar;
 
 import org.apache.phoenix.util.DateUtil;
 import org.junit.After;
@@ -59,6 +62,7 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 protected Connection conn;
 protected Date date;
 protected static final String tenantId = getOrganizationId();
+protected final static String ROW10 = "00D123122312312";
 
 public DateTimeIT() throws Exception {
 super();
@@ -264,6 +268,25 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 stmt.setDouble(16, 0.0009);
 stmt.execute();
 
+stmt.setString(1, tenantId);
+stmt.setString(2, ROW10);
+stmt.setString(3, B_VALUE);
+stmt.setString(4, B_VALUE);
+stmt.setInt(5, 7);
+// Intentionally null
+stmt.setDate(6, null);
+stmt.setBigDecimal(7, BigDecimal.valueOf(0.1));
+stmt.setLong(8, 5L);
+stmt.setInt(9, 5);
+stmt.setNull(10, Types.INTEGER);
+stmt.setByte(11, (byte)7);
+stmt.setShort(12, (short) 134);
+stmt.setFloat(13, 0.07f);
+stmt.setDouble(14, 0.0007);
+stmt.setFloat(15, 0.07f);
+stmt.setDouble(16, 0.0007);
+stmt.execute();
+
 conn.commit();
 }
 
@@ -634,4 +657,15 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 assertEquals(26, rs.getInt(3));
 assertFalse(rs.next());
 }
+
+@Test
+public void testNullDate() throws Exception {
+ResultSet rs = conn.createStatement().executeQuery("SELECT a_date, 
entity_id from " + ATABLE_NAME + " WHERE entity_id = '" + ROW10 + "'");
+assertNotNull(rs);
+assertTrue(rs.next());
+assertEquals(ROW10, rs.getString(2));
+assertNull(rs.getDate(1));
+assertNull(rs.getDate(1, GregorianCalendar.getInstance()));
+assertFalse(rs.next());
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a2e70964/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
index a29cb0e..8f2bc73 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
@@ -19,6 +19,8 @@ package org.apache.phoenix.end2end;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.sql.Connection;

phoenix git commit: PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

2015-11-14 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 a185340a7 -> fa17fc42f


PHOENIX-2372 Ensure null values are returned immediatedly in PhoenixResultSet.

Added a trivial test that exhibited the problem for Dates. BigDecimal
also had a similar problem on calling setScale on a null BigDecimal.


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

Branch: refs/heads/4.x-HBase-1.0
Commit: fa17fc42fabb2d622de0f44391feb0608ba27ba0
Parents: a185340
Author: Josh Elser 
Authored: Wed Nov 4 15:32:21 2015 -0500
Committer: Nick Dimiduk 
Committed: Sat Nov 14 11:27:12 2015 -0800

--
 .../org/apache/phoenix/end2end/DateTimeIT.java  | 34 
 .../org/apache/phoenix/end2end/QueryMoreIT.java | 33 +++
 .../apache/phoenix/jdbc/PhoenixResultSet.java   |  7 
 3 files changed, 74 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/fa17fc42/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
index 0db36df..b4876a5 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/DateTimeIT.java
@@ -34,6 +34,8 @@ import static org.apache.phoenix.util.TestUtil.ROW8;
 import static org.apache.phoenix.util.TestUtil.ROW9;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
@@ -47,6 +49,7 @@ import java.sql.Statement;
 import java.sql.Types;
 import java.text.Format;
 import java.util.Calendar;
+import java.util.GregorianCalendar;
 
 import org.apache.phoenix.util.DateUtil;
 import org.junit.After;
@@ -59,6 +62,7 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 protected Connection conn;
 protected Date date;
 protected static final String tenantId = getOrganizationId();
+protected final static String ROW10 = "00D123122312312";
 
 public DateTimeIT() throws Exception {
 super();
@@ -264,6 +268,25 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 stmt.setDouble(16, 0.0009);
 stmt.execute();
 
+stmt.setString(1, tenantId);
+stmt.setString(2, ROW10);
+stmt.setString(3, B_VALUE);
+stmt.setString(4, B_VALUE);
+stmt.setInt(5, 7);
+// Intentionally null
+stmt.setDate(6, null);
+stmt.setBigDecimal(7, BigDecimal.valueOf(0.1));
+stmt.setLong(8, 5L);
+stmt.setInt(9, 5);
+stmt.setNull(10, Types.INTEGER);
+stmt.setByte(11, (byte)7);
+stmt.setShort(12, (short) 134);
+stmt.setFloat(13, 0.07f);
+stmt.setDouble(14, 0.0007);
+stmt.setFloat(15, 0.07f);
+stmt.setDouble(16, 0.0007);
+stmt.execute();
+
 conn.commit();
 }
 
@@ -634,4 +657,15 @@ public class DateTimeIT extends BaseHBaseManagedTimeIT {
 assertEquals(26, rs.getInt(3));
 assertFalse(rs.next());
 }
+
+@Test
+public void testNullDate() throws Exception {
+ResultSet rs = conn.createStatement().executeQuery("SELECT a_date, 
entity_id from " + ATABLE_NAME + " WHERE entity_id = '" + ROW10 + "'");
+assertNotNull(rs);
+assertTrue(rs.next());
+assertEquals(ROW10, rs.getString(2));
+assertNull(rs.getDate(1));
+assertNull(rs.getDate(1, GregorianCalendar.getInstance()));
+assertFalse(rs.next());
+}
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/fa17fc42/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
index a29cb0e..8f2bc73 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryMoreIT.java
@@ -19,6 +19,8 @@ package org.apache.phoenix.end2end;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.sql.Connection;
@@ 

svn commit: r1711665 - in /phoenix/site: publish/ publish/language/ source/src/site/markdown/

2015-10-31 Thread ndimiduk
Author: ndimiduk
Date: Sat Oct 31 18:49:42 2015
New Revision: 1711665

URL: http://svn.apache.org/viewvc?rev=1711665=rev
Log:
update ndimiduk affiliation

Modified:
phoenix/site/publish/Phoenix-in-15-minutes-or-less.html
phoenix/site/publish/array_type.html
phoenix/site/publish/building.html
phoenix/site/publish/building_website.html
phoenix/site/publish/bulk_dataload.html
phoenix/site/publish/contributing.html
phoenix/site/publish/develop.html
phoenix/site/publish/download.html
phoenix/site/publish/dynamic_columns.html
phoenix/site/publish/faq.html
phoenix/site/publish/flume.html
phoenix/site/publish/index.html
phoenix/site/publish/installation.html
phoenix/site/publish/issues.html
phoenix/site/publish/joins.html
phoenix/site/publish/language/datatypes.html
phoenix/site/publish/language/functions.html
phoenix/site/publish/language/index.html
phoenix/site/publish/mailing_list.html
phoenix/site/publish/multi-tenancy.html
phoenix/site/publish/news.html
phoenix/site/publish/paged.html
phoenix/site/publish/performance.html
phoenix/site/publish/pherf.html
phoenix/site/publish/phoenix_mr.html
phoenix/site/publish/phoenix_on_emr.html
phoenix/site/publish/phoenix_spark.html
phoenix/site/publish/pig_integration.html
phoenix/site/publish/recent.html
phoenix/site/publish/release.html
phoenix/site/publish/release_notes.html
phoenix/site/publish/resources.html
phoenix/site/publish/roadmap.html
phoenix/site/publish/rowtimestamp.html
phoenix/site/publish/salted.html
phoenix/site/publish/secondary_indexing.html
phoenix/site/publish/sequences.html
phoenix/site/publish/server.html
phoenix/site/publish/skip_scan.html
phoenix/site/publish/source.html
phoenix/site/publish/subqueries.html
phoenix/site/publish/team.html
phoenix/site/publish/tracing.html
phoenix/site/publish/tuning.html
phoenix/site/publish/udf.html
phoenix/site/publish/update_statistics.html
phoenix/site/publish/upgrading.html
phoenix/site/publish/views.html
phoenix/site/publish/who_is_using.html
phoenix/site/source/src/site/markdown/team.md

Modified: phoenix/site/publish/Phoenix-in-15-minutes-or-less.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/Phoenix-in-15-minutes-or-less.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/Phoenix-in-15-minutes-or-less.html (original)
+++ phoenix/site/publish/Phoenix-in-15-minutes-or-less.html Sat Oct 31 18:49:42 
2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/array_type.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/array_type.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/array_type.html (original)
+++ phoenix/site/publish/array_type.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/building.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/building.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/building.html (original)
+++ phoenix/site/publish/building.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/building_website.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/building_website.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/building_website.html (original)
+++ phoenix/site/publish/building_website.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/bulk_dataload.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/bulk_dataload.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/bulk_dataload.html (original)
+++ phoenix/site/publish/bulk_dataload.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/contributing.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/contributing.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/contributing.html (original)
+++ phoenix/site/publish/contributing.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/develop.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/develop.html?rev=1711665=1711664=1711665=diff
==
--- phoenix/site/publish/develop.html (original)
+++ phoenix/site/publish/develop.html Sat Oct 31 18:49:42 2015
@@ -1,7 +1,7 @@
 
 
 
 

Modified: phoenix/site/publish/download.html
URL: 
http

svn commit: r1706351 - in /phoenix/site: publish/resources.html source/src/site/markdown/resources.md

2015-10-02 Thread ndimiduk
Author: ndimiduk
Date: Fri Oct  2 07:14:28 2015
New Revision: 1706351

URL: http://svn.apache.org/viewvc?rev=1706351=rev
Log:
add Apache Big Data EU slides

Modified:
phoenix/site/publish/resources.html
phoenix/site/source/src/site/markdown/resources.md

Modified: phoenix/site/publish/resources.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/resources.html?rev=1706351=1706350=1706351=diff
==
--- phoenix/site/publish/resources.html (original)
+++ phoenix/site/publish/resources.html Fri Oct  2 07:14:28 2015
@@ -1,7 +1,7 @@
 
 
 
 
@@ -154,60 +154,66 @@
   
   

+   Apache Phoenix: The Evolution of a Relational Database Layer over HBase 
 
+   http://www.slideshare.net/xefyr/apache-big-data-eu-2015-phoenix;>Slides
  
+   Apache Big Data EU  
+   2015  
+   
+   
Lightning Talk for Apache Phoenix  
http://phoenix.apache.org/presentations/HPTS.pdf;>Slides  
HPTS  
2015  

-   
+   
Tuning Phoenix and HBase for OLTP  
http://phoenix.apache.org/presentations/TuningForOLTP.pdf;>Slides 
 
Tuning Presentation  
2015  

-   
+   
Apache Phoenix: The Evolution of a Relational Database Layer over HBase 
 
http://www.slideshare.net/Hadoop_Summit/the-evolution-of-a-relational-database-layer-over-hbase;>Slides,
 https://www.youtube.com/watch?v=XGa0SyJMH94;>Video  
Hadoop Summit  
2015  

-   
+   
Apache Phoenix: The Evolution of a Relational Database Layer over HBase 
 
http://phoenix.apache.org/presentations/HBaseCon2015-16x9.pdf;>Slides 
 
HBaseCon  
2015  

-   
+   
Apache Phoenix: Transforming HBase into a Relational Database  
http://phoenix.apache.org/presentations/OC-HUG-2014-10-4x3.pdf;>Slides
  
OC Hadoop User Group  
2014  

-   
+   
Apache Phoenix: Transforming HBase into a SQL database  
http://phoenix.apache.org/presentations/HadoopSummit2014-16x9.pdf;>Slides,
 https://www.youtube.com/watch?v=f4Nmh5KM6gIfeature=youtu.be;>Video
  
Hadoop Summit  
2014  

-   
+   
Taming HBase with Apache Phoenix and SQL  
http://phoenix.apache.org/presentations/HBaseCon2014-16x9.pdf;>Slides,
 http://vimeo.com/98485780;>Video  
HBaseCon  
2014  

-   
+   
How Apache Phoenix enables interactive, low latency applications over 
HBase  
http://phoenix.apache.org/presentations/ApacheCon2014-16x9.pdf;>Slides,
 https://www.youtube.com/watch?v=9qfBnFyKZwM;>Video  
ApacheCon  
2014  

-   
+   
How (and why) Phoenix puts the SQL back into NoSQL  
http://phoenix.apache.org/presentations/HadoopSummit2013-16x9.pdf;>Slides,
 http://www.youtube.com/watch?v=YHsHdQ08trg;>Video  
Hadoop Summit  
2013  

-   
+   
How (and why) Phoenix puts the SQL back into NoSQL  
http://phoenix.apache.org/presentations/HBaseCon2013-4x3.pdf;>Slides, 
http://www.cloudera.com/content/cloudera/en/resources/library/hbasecon/hbasecon-2013--how-and-why-phoenix-puts-the-sql-back-into-nosql-video.html;>Video
  
HBaseCon  

Modified: phoenix/site/source/src/site/markdown/resources.md
URL: 
http://svn.apache.org/viewvc/phoenix/site/source/src/site/markdown/resources.md?rev=1706351=1706350=1706351=diff
==
--- phoenix/site/source/src/site/markdown/resources.md (original)
+++ phoenix/site/source/src/site/markdown/resources.md Fri Oct  2 07:14:28 2015
@@ -3,6 +3,7 @@ Below are some prior presentations that
 
 | Title | Resources | Where | When |
 |---|---|---|--|
+| Apache Phoenix: The Evolution of a Relational Database Layer over HBase | 
[Slides](http://www.slideshare.net/xefyr/apache-big-data-eu-2015-phoenix) | 
Apache Big Data EU | 2015 |
 | Lightning Talk for Apache Phoenix | 
[Slides](http://phoenix.apache.org/presentations/HPTS.pdf) | HPTS | 2015 |
 | Tuning Phoenix and HBase for OLTP | 
[Slides](http://phoenix.apache.org/presentations/TuningForOLTP.pdf) | Tuning 
Presentation | 2015 |
 | Apache Phoenix: The Evolution of a Relational Database Layer over HBase | 
[Slides](http://www.slideshare.net/Hadoop_Summit/the-evolution-of-a-relational-database-layer-over-hbase),
 [Video](https://www.youtube.com/watch?v=XGa0SyJMH94) | Hadoop Summit | 2015 |




svn commit: r1702309 - in /phoenix/site: publish/ publish/images/ source/src/site/markdown/ source/src/site/resources/images/

2015-09-10 Thread ndimiduk
Author: ndimiduk
Date: Thu Sep 10 18:53:32 2015
New Revision: 1702309

URL: http://svn.apache.org/r1702309
Log:
PHOENIX-2190 Update docs for Trace Visualization (Nishani)

Added:
phoenix/site/publish/images/trace-count.png   (with props)
phoenix/site/publish/images/trace-dashboard.png   (with props)
phoenix/site/publish/images/trace-dependency-tree.png   (with props)
phoenix/site/publish/images/trace-list.png   (with props)
phoenix/site/publish/images/trace-time-line.png   (with props)
phoenix/site/source/src/site/resources/images/trace-count.png   (with props)
phoenix/site/source/src/site/resources/images/trace-dashboard.png   (with 
props)
phoenix/site/source/src/site/resources/images/trace-dependency-tree.png   
(with props)
phoenix/site/source/src/site/resources/images/trace-list.png   (with props)
phoenix/site/source/src/site/resources/images/trace-time-line.png   (with 
props)
Modified:
phoenix/site/publish/tracing.html
phoenix/site/source/src/site/markdown/tracing.md

Added: phoenix/site/publish/images/trace-count.png
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/images/trace-count.png?rev=1702309=auto
==
Binary file - no diff available.

Propchange: phoenix/site/publish/images/trace-count.png
--
svn:mime-type = application/octet-stream

Added: phoenix/site/publish/images/trace-dashboard.png
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/images/trace-dashboard.png?rev=1702309=auto
==
Binary file - no diff available.

Propchange: phoenix/site/publish/images/trace-dashboard.png
--
svn:mime-type = application/octet-stream

Added: phoenix/site/publish/images/trace-dependency-tree.png
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/images/trace-dependency-tree.png?rev=1702309=auto
==
Binary file - no diff available.

Propchange: phoenix/site/publish/images/trace-dependency-tree.png
--
svn:mime-type = application/octet-stream

Added: phoenix/site/publish/images/trace-list.png
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/images/trace-list.png?rev=1702309=auto
==
Binary file - no diff available.

Propchange: phoenix/site/publish/images/trace-list.png
--
svn:mime-type = application/octet-stream

Added: phoenix/site/publish/images/trace-time-line.png
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/images/trace-time-line.png?rev=1702309=auto
==
Binary file - no diff available.

Propchange: phoenix/site/publish/images/trace-time-line.png
--
svn:mime-type = application/octet-stream

Modified: phoenix/site/publish/tracing.html
URL: 
http://svn.apache.org/viewvc/phoenix/site/publish/tracing.html?rev=1702309=1702308=1702309=diff
==
--- phoenix/site/publish/tracing.html (original)
+++ phoenix/site/publish/tracing.html Thu Sep 10 18:53:32 2015
@@ -274,6 +274,7 @@ Connection conn = DriverManager.getConne
   tags.count SMALLINT,
   annotations.count SMALLINT,
   CONSTRAINT pk PRIMARY KEY (trace_id, parent_id, span_id)
+  )
  
   
  The tracing table also contains a number of dynamic columns for each 
trace, identified by a unique trace-id (id of the request), parent-id (id of 
the parent span) and individual span-id (id of the individual segment), may 
have multiple tags and annotations about what happened during the trace. Once 
you have the number of tags and annotations, you can retrieve them the table 
with a request like: 
@@ -288,6 +289,48 @@ Connection conn = DriverManager.getConne
  where columns is either annotations.aX or tags.tX where 
X is the index of the dynamic column to lookup. 
  For more usage, look at our generic https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/trace/TraceReader.java;>TraceReader
 which can programatically read a number of traces from the tracing results 
table. 
  Custom annotations can also be passed into Phoenix to be added to traces. 
Phoenix looks for connection properties whose names start with 
phoenix.annotation. and adds these as annotations to client-side 
traces. e.g. A connection property phoenix.annotation.myannotation=abc 
will result in annotations with key myannotat

[07/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
new file mode 100755
index 000..1c88b71
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
@@ -0,0 +1,2317 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+  throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+  'use strict';
+  var version = $.fn.jquery.split(' ')[0].split('.')
+  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 
9 && version[2] < 1)) {
+throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or 
higher')
+  }
+}(jQuery);
+
+/* 
+ * Bootstrap: transition.js v3.3.4
+ * http://getbootstrap.com/javascript/#transitions
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+  // 
+
+  function transitionEnd() {
+var el = document.createElement('bootstrap')
+
+var transEndEventNames = {
+  WebkitTransition : 'webkitTransitionEnd',
+  MozTransition: 'transitionend',
+  OTransition  : 'oTransitionEnd otransitionend',
+  transition   : 'transitionend'
+}
+
+for (var name in transEndEventNames) {
+  if (el.style[name] !== undefined) {
+return { end: transEndEventNames[name] }
+  }
+}
+
+return false // explicit for ie8 (  ._.)
+  }
+
+  // http://blog.alexmaccaw.com/css-transitions
+  $.fn.emulateTransitionEnd = function (duration) {
+var called = false
+var $el = this
+$(this).one('bsTransitionEnd', function () { called = true })
+var callback = function () { if (!called) 
$($el).trigger($.support.transition.end) }
+setTimeout(callback, duration)
+return this
+  }
+
+  $(function () {
+$.support.transition = transitionEnd()
+
+if (!$.support.transition) return
+
+$.event.special.bsTransitionEnd = {
+  bindType: $.support.transition.end,
+  delegateType: $.support.transition.end,
+  handle: function (e) {
+if ($(e.target).is(this)) return e.handleObj.handler.apply(this, 
arguments)
+  }
+}
+  })
+
+}(jQuery);
+
+/* 
+ * Bootstrap: alert.js v3.3.4
+ * http://getbootstrap.com/javascript/#alerts
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // ALERT CLASS DEFINITION
+  // ==
+
+  var dismiss = '[data-dismiss="alert"]'
+  var Alert   = function (el) {
+$(el).on('click', dismiss, this.close)
+  }
+
+  Alert.VERSION = '3.3.4'
+
+  Alert.TRANSITION_DURATION = 150
+
+  Alert.prototype.close = function (e) {
+var $this= $(this)
+var selector = $this.attr('data-target')
+
+if (!selector) {
+  selector = $this.attr('href')
+  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip 
for ie7
+}
+
+var $parent = $(selector)
+
+if (e) e.preventDefault()
+
+if (!$parent.length) {
+  $parent = $this.closest('.alert')
+}
+
+$parent.trigger(e = $.Event('close.bs.alert'))
+
+if (e.isDefaultPrevented()) return
+
+$parent.removeClass('in')
+
+function removeElement() {
+  // detach from parent, fire event then clean up data
+  $parent.detach().trigger('closed.bs.alert').remove()
+}
+
+$.support.transition && $parent.hasClass('fade') ?
+  $parent
+.one('bsTransitionEnd', removeElement)
+.emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+  removeElement()
+  }
+
+
+  // ALERT PLUGIN DEFINITION
+  // ===
+
+  function Plugin(option) {
+return this.each(function () {
+  var $this = $(this)
+  var data  = $this.data('bs.alert')
+
+  if (!data) $this.data('bs.alert', (data = new Alert(this)))
+  if (typeof option == 'string') data[option].call($this)
+})
+  }
+
+  var old = $.fn.alert
+
+  $.fn.alert = Plugin
+  

[14/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
new file mode 100755
index 000..1ee89d4
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
@@ -0,0 +1,565 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg; 
xmlns:xlink="http://www.w3.org/1999/xlink; version="1.1">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[16/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map 
b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
new file mode 100755
index 000..2fd84f3
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labe
 
ls.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":",6DAA4D;ACQ5D;EACE,yBAAA;EACA,4BAAA;EACA,gCAAA;EDND;ACaD;EACE,WAAA;EDXD;ACwBD;EAaE,gBAAA;EDtBD;AC8BDEAIE,uBAAA;EACA,0BAAA;ED5BD;ACoCD;EACE,eAAA;EACA,WAAA;EDlCD;AC0CD;;EAEE,eAAA;EDxCD;ACkDD;EACE,+BAAA;EDhDD;ACuDD;;EAEE,YAAA;EDrDD;AC+DD;EACE,2BAAA;ED7DD;ACoED;;EAEE,mBAAA;EDlED;ACyED;EACE,oBAAA;EDvE
 
D;AC+ED;EACE,gBAAA;EACA,kBAAA;ED7ED;ACoFD;EACE,kBAAA;EACA,aAAA;EDlFD;ACyFD;EACE,gBAAA;EDvFD;AC8FD;;EAEE,gBAAA;EACA,gBAAA;EACA,oBAAA;EACA,0BAAA;ED5FD;AC+FD;EACE,aAAA;ED7FD;ACgGD;EACE,iBAAA;ED9FD;ACwGD;EACE,WAAA;EDtGD;AC6GD;EACE,kBAAA;ED3GD;ACqHD;EACE,kBAAA;EDnHD;AC0HD;EACE,8BAAA;EACA,iCAAA;UAAA,yBAAA;EACA,WAAA;EDxHD;AC+HD;EACE,gBAAA;ED7HD;ACoIDEAIE,mCAAA;EACA,gBAAA;EDlID;ACoJD;EAKE,gBAAA;EACA,eAAA;EACA,WAAA;EDlJD;ACyJD;EACE,mBAAA;EDvJD;ACiKD;;EAEE,sBAAA;ED/JD;AC0KDEAIE,4BAAA;EACA,iBAAA;EDxKD;AC+KD;;EAEE,iBAAA;ED7KD;ACoLD;;EAEE,WAAA;EACA,YAAA;EDlLD;AC0LD;EACE,qBAAA;EDxLD;ACmMD;;EAEE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,YAAA;EDjMD;AC0MD;;EAEE,cAAA;EDxMD;ACiND;EACE,+BAAA;EACA,8BAAA;EACA,iCAAA;EACA,yBAAA;ED/MD;ACwND;;EAEE,0BAAA;EDtND;AC6ND;EACE,2BAAA;EACA,eAAA;EACA,gCAAA;ED3ND;ACmOD;EACE,WAAA;EACA,YAAA;EDjOD;ACwOD;EACE,gBAAA;EDtOD;AC8OD;EACE,mBAAA;ED5OD;ACsPD;EACE,2BAAA;EACA,mBAAA;EDpPD;ACuPD;;EAEE,YAAA;EDrPD;AACD,sFAAqF;AE1ErF;EAnGI;;;IAGI,oCAAA;IACA,wBAAA;IACA,qCAAA;YAAA,6BAAA;
 
IACA,8BAAA;IFgLL;EE7KC;;IAEI,4BAAA;IF+KL;EE5KC;IACI,8BAAA;IF8KL;EE3KC;IACI,+BAAA;IF6KL;EExKC;;IAEI,aAAA;IF0KL;EEvKC;;IAEI,wBAAA;IACA,0BAAA;IFyKL;EEtKC;IACI,6BAAA;IFwKL;EErKC;;IAEI,0BAAA;IFuKL;EEpKC;IACI,4BAAA;IFsKL;EEnKC;;;IAGI,YAAA;IACA,WAAA;IFqKL;EElKC;;IAEI,yBAAA;IFoKL;EE7JC;IACI,6BAAA;IF+JL;EE3JC;IACI,eAAA;IF6JL;EE3JC;;IAGQ,mCAAA;IF4JT;EEzJC;IACI,wBAAA;IF2JL;EExJC;IACI,sCAAA;IF0JL;EE3JC;;IAKQ,mCAAA;IF0JT;EEvJC;;IAGQ,mCAAA;IFwJT;EACF;AGpPD;EACE,qCAAA;EACA,uDAAA;EACA,iYAAA;EHsPD;AG9OD;EACE,oBAAA;EACA,UAAA;EACA,uBAAA;EACA,qCAAA;EACA,oBAAA;EACA,qBAAA;EACA,gBAAA;EACA,qCAAA;EACA,oCAAA;EHgPD;AG5OmC;EAAW,gBAAA;EH+O9C;AG9OmC;EAAW,gBAAA;EHiP9C;AG/OmC;;EAAW,kBAAA;EHmP9C;AGlPmC;EAAW,kBAAA;EHqP9C;AGpPmC;EAAW,kBAAA;EHuP9C;AGtPmC;EAAW,kBAAA;EHyP9C;AGxPmC;EAAW,kBAAA;EH2P9C;AG1PmC;EAAW,kBAAA;EH6P9C;AG5PmC;EAAW,kBAAA;EH+P9C;AG9PmC;EAAW,kBAAA;EHiQ9C;AGhQmC;EAAW,kBAAA;EHmQ9C;AGlQmC;EAAW,kBAAA;EHqQ9C;AGpQmC;EAAW,kBAAA;EHuQ9C;AGtQmC;EAAW,kBAAA;EHyQ9C;AGxQmC;EAAW,kBAAA;EH2Q9C;AG1QmC;EAAW,kBAAA;EH6Q9C;
 

[08/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
new file mode 100755
index 000..098f23f
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
@@ -0,0 +1,995 @@
+/**
+ * @license AngularJS v1.3.8
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {'use strict';
+
+/**
+ * @ngdoc module
+ * @name ngRoute
+ * @description
+ *
+ * # ngRoute
+ *
+ * The `ngRoute` module provides routing and deeplinking services and 
directives for angular apps.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ *
+ * 
+ */
+ /* global -ngRouteModule */
+var ngRouteModule = angular.module('ngRoute', ['ng']).
+provider('$route', $RouteProvider),
+$routeMinErr = angular.$$minErr('ngRoute');
+
+/**
+ * @ngdoc provider
+ * @name $routeProvider
+ *
+ * @description
+ *
+ * Used for configuring routes.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ * ## Dependencies
+ * Requires the {@link ngRoute `ngRoute`} module to be installed.
+ */
+function $RouteProvider() {
+  function inherit(parent, extra) {
+return angular.extend(Object.create(parent), extra);
+  }
+
+  var routes = {};
+
+  /**
+   * @ngdoc method
+   * @name $routeProvider#when
+   *
+   * @param {string} path Route path (matched against `$location.path`). If 
`$location.path`
+   *contains redundant trailing slash or is missing one, the route will 
still match and the
+   *`$location.path` will be updated to add or drop the trailing slash to 
exactly match the
+   *route definition.
+   *
+   ** `path` can contain named groups starting with a colon: e.g. `:name`. 
All characters up
+   *to the next slash are matched and stored in `$routeParams` under 
the given `name`
+   *when the route matches.
+   ** `path` can contain named groups starting with a colon and ending 
with a star:
+   *e.g.`:name*`. All characters are eagerly stored in `$routeParams` 
under the given `name`
+   *when the route matches.
+   ** `path` can contain optional named groups with a question mark: 
e.g.`:name?`.
+   *
+   *For example, routes like `/color/:color/largecode/:largecode*\/edit` 
will match
+   *`/color/brown/largecode/code/with/slashes/edit` and extract:
+   *
+   ** `color: brown`
+   ** `largecode: code/with/slashes`.
+   *
+   *
+   * @param {Object} route Mapping information to be assigned to 
`$route.current` on route
+   *match.
+   *
+   *Object properties:
+   *
+   *- `controller` – `{(string|function()=}` – Controller fn that 
should be associated with
+   *  newly created scope or the name of a {@link 
angular.Module#controller registered
+   *  controller} if passed as a string.
+   *- `controllerAs` – `{string=}` – A controller alias name. If 
present the controller will be
+   *  published to scope under the `controllerAs` name.
+   *- `template` – `{string=|function()=}` – html template as a string 
or a function that
+   *  returns an html template as a string which should be used by {@link
+   *  ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude 
ngInclude} directives.
+   *  This property takes precedence over `templateUrl`.
+   *
+   *  If `template` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `templateUrl` – `{string=|function()=}` – path or function that 
returns a path to an html
+   *  template that should be used by {@link ngRoute.directive:ngView 
ngView}.
+   *
+   *  If `templateUrl` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `resolve` - `{Object.=}` - An optional map of 
dependencies which should
+   *  be injected into the controller. If any of these dependencies are 
promises, the router
+   *  will wait for them all to be resolved or one to be rejected before 
the controller is
+   *  instantiated.
+   *  If all the promises are resolved successfully, the values of the 
resolved promises are
+   *  injected and {@link ngRoute.$route#$routeChangeSuccess 
$routeChangeSuccess} event is
+   *  fired. If any of the promises are rejected the
+   *  {@link 

[04/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
new file mode 100644
index 000..0f60b7b
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
@@ -0,0 +1,5 @@
+/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | 
jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof 
module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw
 new Error("jQuery requires a window with a document");return 
b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var 
c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return
 new 
m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return
 
b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return
 d.call(this)},get:function(a){return 
null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var 
b=m.merge(this.constructor(),a);return 
b.prevObject=this,b.context=this.context,b},each:function(a,b){return 
m.each(this,a,b)},map:function(a){return 
this.pushStack(m.map(this,function(b,c){return 
a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,argumen
 ts))},first:function(){return this.eq(0)},last:function(){return 
this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return 
this.pushStack(c>=0&>c?[this[c]]:[])},end:function(){return 
this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var
 
a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof
 g&&(j=g,g=arguments[h]||{},h++),"object"==typeof 
g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d
 in 
e)a=g[d],c=e[d],g!==c&&(j&&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&(a)?a:[]):f=a&(a)?a:{},g[d]=m.extend(j,f,c)):void
 0!==c&&(g[d]=c));return 
g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw
 new 
Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return
 null!=a&=
 
=a.window},isNumeric:function(a){return!m.isArray(a)&(a)+1>=0},isEmptyObject:function(a){var
 b;for(b in a)return!1;return!0},isPlainObject:function(a){var 
b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b
 in a)return j.call(a,b);for(b in a);return void 
0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof 
a||"function"==typeof a?h[i.call(a)]||"object":typeof 
a},globalEval:function(b){b&(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return
 a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return 
a.nodeName&()===b.toLowerCase()},each:function(a,b,c){var
 
d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else
 for(e in a)if(d=b.apply(a[e],c),d===!1)break}else 
if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e])
 ,d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return 
a},trim:function(a){return 
null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return 
null!=a&&(r(Object(a))?m.merge(c,"string"==typeof 
a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return 
g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in 
b&[c]===a)return c}return-1},merge:function(a,b){var 
c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 
0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var 
d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&(a[f]);return 
e},map:function(a,b,c){var 
d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&(d);else
 for(f in a)d=b(a[f],f,c),null!=d&(d);return 
e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof 
b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return 
a.apply(b||this,c.concat(d.call(
 arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 
0},now:function(){return+new Date},support:k}),m.each("Boolean Number String 
Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object 
"+b+"]"]=b.toLowerCase()});function r(a){var b="length"in 
a&,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&?!0:"array"===c||0===b||"number"==typeof
 b&>0& in a}var s=function(a){var 
b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new 

[06/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
new file mode 100755
index 000..eed1777
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
@@ -0,0 +1,9210 @@
+/*!
+ * jQuery JavaScript Library v2.1.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-28T16:01Z
+ */
+
+(function( global, factory ) {
+
+   if ( typeof module === "object" && typeof module.exports === "object" ) 
{
+   // For CommonJS and CommonJS-like environments where a proper 
`window`
+   // is present, execute the factory and get jQuery.
+   // For environments that do not have a `window` with a 
`document`
+   // (such as Node.js), expose a factory as module.exports.
+   // This accentuates the need for the creation of a real 
`window`.
+   // e.g. var jQuery = require("jquery")(window);
+   // See ticket #14549 for more info.
+   module.exports = global.document ?
+   factory( global, true ) :
+   function( w ) {
+   if ( !w.document ) {
+   throw new Error( "jQuery requires a 
window with a document" );
+   }
+   return factory( w );
+   };
+   } else {
+   factory( global );
+   }
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//
+
+var arr = [];
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+   // Use the correct document accordingly with window argument (sandbox)
+   document = window.document,
+
+   version = "2.1.4",
+
+   // Define a local copy of jQuery
+   jQuery = function( selector, context ) {
+   // The jQuery object is actually just the init constructor 
'enhanced'
+   // Need init if jQuery is called (just allow error to be thrown 
if not included)
+   return new jQuery.fn.init( selector, context );
+   },
+
+   // Support: Android<4.1
+   // Make sure we trim BOM and NBSP
+   rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+   // Matches dashed string for camelizing
+   rmsPrefix = /^-ms-/,
+   rdashAlpha = /-([\da-z])/gi,
+
+   // Used by jQuery.camelCase as callback to replace()
+   fcamelCase = function( all, letter ) {
+   return letter.toUpperCase();
+   };
+
+jQuery.fn = jQuery.prototype = {
+   // The current version of jQuery being used
+   jquery: version,
+
+   constructor: jQuery,
+
+   // Start with an empty selector
+   selector: "",
+
+   // The default length of a jQuery object is 0
+   length: 0,
+
+   toArray: function() {
+   return slice.call( this );
+   },
+
+   // Get the Nth element in the matched element set OR
+   // Get the whole matched element set as a clean array
+   get: function( num ) {
+   return num != null ?
+
+   // Return just the one element from the set
+   ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+   // Return all the elements in a clean array
+   slice.call( this );
+   },
+
+   // Take an array of elements and push it onto the stack
+   // (returning the new matched element set)
+   pushStack: function( elems ) {
+
+   // Build a new jQuery matched element set
+   var ret = jQuery.merge( this.constructor(), elems );
+
+   // Add the old object onto the stack (as a reference)
+   ret.prevObject = this;
+   ret.context = this.context;
+
+   // Return the newly-formed element set
+   return ret;
+   },
+
+   // Execute a callback for every element in the matched set.
+   // (You can seed the arguments with an array of args, but this is
+   // only used internally.)
+   each: function( callback, args ) {
+  

[17/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css 
b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
new file mode 100755
index 000..fb15e3d
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
@@ -0,0 +1,6584 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+html {
+  font-family: sans-serif;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+}
+body {
+  margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  vertical-align: baseline;
+}
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+[hidden],
+template {
+  display: none;
+}
+a {
+  background-color: transparent;
+}
+a:active,
+a:hover {
+  outline: 0;
+}
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+b,
+strong {
+  font-weight: bold;
+}
+dfn {
+  font-style: italic;
+}
+h1 {
+  margin: .67em 0;
+  font-size: 2em;
+}
+mark {
+  color: #000;
+  background: #ff0;
+}
+small {
+  font-size: 80%;
+}
+sub,
+sup {
+  position: relative;
+  font-size: 75%;
+  line-height: 0;
+  vertical-align: baseline;
+}
+sup {
+  top: -.5em;
+}
+sub {
+  bottom: -.25em;
+}
+img {
+  border: 0;
+}
+svg:not(:root) {
+  overflow: hidden;
+}
+figure {
+  margin: 1em 40px;
+}
+hr {
+  height: 0;
+  -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+pre {
+  overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+  margin: 0;
+  font: inherit;
+  color: inherit;
+}
+button {
+  overflow: visible;
+}
+button,
+select {
+  text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+input {
+  line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+  -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+input[type="search"] {
+  -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+fieldset {
+  padding: .35em .625em .75em;
+  margin: 0 2px;
+  border: 1px solid #c0c0c0;
+}
+legend {
+  padding: 0;
+  border: 0;
+}
+textarea {
+  overflow: auto;
+}
+optgroup {
+  font-weight: bold;
+}
+table {
+  border-spacing: 0;
+  border-collapse: collapse;
+}
+td,
+th {
+  padding: 0;
+}
+/*! Source: 
https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+  *,
+  *:before,
+  *:after {
+color: #000 !important;
+text-shadow: none !important;
+background: transparent !important;
+-webkit-box-shadow: none !important;
+box-shadow: none !important;
+  }
+  a,
+  a:visited {
+text-decoration: underline;
+  }
+  a[href]:after {
+content: " (" attr(href) ")";
+  }
+  abbr[title]:after {
+content: " (" attr(title) ")";
+  }
+  a[href^="#"]:after,
+  a[href^="javascript:"]:after {
+content: "";
+  }
+  pre,
+  blockquote {
+border: 1px solid #999;
+
+page-break-inside: avoid;
+  }
+  thead {
+display: table-header-group;
+  }
+  tr,
+  img {
+page-break-inside: avoid;
+  }
+  img {
+max-width: 100% !important;
+  }
+  p,
+  h2,
+  h3 {
+orphans: 3;
+widows: 3;
+  }
+  h2,
+  h3 {
+page-break-after: avoid;
+  }
+  select {
+background: #fff !important;
+  }
+  .navbar {
+display: none;
+  }
+  .btn > .caret,
+  .dropup > .btn > .caret {
+border-top-color: #000 !important;
+  }
+  .label {
+border: 1px solid #000;
+  }
+  .table {
+border-collapse: collapse !important;
+  }
+  .table td,
+  .table th {
+background-color: #fff !important;
+  }
+  .table-bordered th,
+  .table-bordered td {
+border: 1px solid #ddd !important;
+  }
+}
+@font-face {
+  font-family: 'Glyphicons Halflings';
+
+  src: url('../fonts/glyphicons-halflings-regular.eot');
+  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') 

[01/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 926bc72c4 -> f76062c90


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
 
b/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
new file mode 100755
index 000..a736656
--- /dev/null
+++ 
b/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
@@ -0,0 +1,46 @@
+'use strict';
+/**
+ * this services was writtern following different pattern.
+ * Generate Statement Service mainly converting SQL Statement to Tracing 
Decription Label
+ * To-Do Switching controllers to this pattern of coding
+ *
+ */
+angular.module('TracingAppCtrl').service('GenerateStatementService', function(
+  StatementFactory) {
+  /*using statement facotry - It is in progress*/
+  var SQLQuery = null;
+  var tracingStatement = null;
+  //following Grammar @ http://phoenix.apache.org/language/index.html
+  //To-Do this model will improve as developing is going on
+  var SQLQueryObject = {
+commands: {},
+keys: [],
+schema: null,
+tabel: null,
+filters: {},
+groupBy: {},
+orderBy: {},
+limits: {}
+  }
+  this.setSQLQuery = function(sqlQuery) {
+SQLQuery = sqlQuery;
+  };
+  this.getSQLQuery = function() {
+return SQLQuery;
+  };
+  this.getTracingStatement = function() {
+//will using partitioningSQLQuery to convert SQL to TracingStatement
+partitioningSQLQuery();
+var statementFactory = new StatementFactory(SQLQueryObject.commands,
+  SQLQueryObject.tabel);
+tracingStatement = statementFactory.start + statementFactory.command +
+  statementFactory.tableName + statementFactory.end;
+return tracingStatement;
+  };
+  //sql statements partitioning
+  function partitioningSQLQuery() {
+//Building SQLQueryObject
+SQLQueryObject.commands = SQLQuery.split(" ")[0];
+SQLQueryObject.tabel = SQLQuery.split("from ")[1].split(" ")[0];
+  };
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/partials/about.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/partials/about.html 
b/phoenix-tracing-webapp/src/main/webapp/partials/about.html
new file mode 100755
index 000..9dc76d7
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/partials/about.html
@@ -0,0 +1,10 @@
+
+  About
+
+
+
+
+The tracing web app for Apache Phoenix contains features list, dependency 
tree, trace count, trace distribution and timeline.
+In List the most recent traces are listed down. The limiting value is used 
to determine the trace count displayed. With each trace there is an option to 
view either the dependency tree or the timeline.The dependency tree views the 
traces belonging to a trace id in a tree view. The trace id is the input to the 
system. The parent child relationship of the traces can be viewed clearly. The 
tooltip gives the host name, parent id, span id,start time,end time, 
description and duration. Each node is collapsable and expandable. The SQL 
Query is viewed for each search. In the trace count the trace list is 
categorized by the description.
+The trace count chart can be viewed as pie charts, line charts, bar charts 
and area charts. The chart changing option is collapseble and could be hidden. 
The trace distribution chart shows the traces across phoenix hosts on which 
they are running. The charts used are pie charts, line charts, bar charts and 
area charts. The chart changing option is collapseble and could be hidden. In 
the traces can be viewed along the timeline for a given trace id. Traces can be 
added or cleared from the timeline. There should be a minimum of two traces 
starting at two different times for the system to draw its timeline. 
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/partials/chart.html 
b/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
new file mode 100755
index 000..f41a431
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
@@ -0,0 +1,24 @@
+
+  {{page.title}}
+
+
+
+ 
+
+ 
+ Controller Panel
+ 
+ 
+  
+Chart Type
+
+  Pie
+  Line
+  Bar
+  Area
+
+  
+
+
+
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/partials/contact.html

[01/18] phoenix git commit: PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 c1b829086 -> 67628f78c


PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

Conflicts:
pom.xml


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 7fa433dcdd8308ea459563dd4d46c09fbef841cc
Parents: c1b8290
Author: ayolajayamaha 
Authored: Mon Jul 27 22:27:27 2015 +0530
Committer: Nick Dimiduk 
Committed: Wed Sep 9 16:08:28 2015 -0700

--
 bin/phoenix_utils.py|   8 +
 bin/traceserver.py  | 188 +
 phoenix-tracing-webapp/README.md|  15 +
 phoenix-tracing-webapp/pom.xml  | 122 
 .../src/build/trace-server-runnable.xml |  60 
 .../src/main/config/checkstyle/checker.xml  | 281 +++
 .../src/main/config/checkstyle/header.txt   |  16 ++
 .../src/main/config/checkstyle/suppressions.xml |  46 +++
 .../tracingwebapp/http/ConnectionFactory.java   |  43 +++
 .../tracingwebapp/http/EntityFactory.java   | 101 +++
 .../apache/phoenix/tracingwebapp/http/Main.java |  81 ++
 .../tracingwebapp/http/TraceServlet.java| 152 ++
 .../src/main/webapp/WEB-INF/web.xml |  15 +
 .../src/main/webapp/index.html  |  16 ++
 pom.xml |   2 +
 15 files changed, 1146 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/7fa433dc/bin/phoenix_utils.py
--
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index bfb4737..13dd360 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -56,6 +56,7 @@ def setPath():
 PHOENIX_CLIENT_JAR_PATTERN = "phoenix-*-client.jar"
 PHOENIX_THIN_CLIENT_JAR_PATTERN = "phoenix-*-thin-client.jar"
 PHOENIX_QUERYSERVER_JAR_PATTERN = "phoenix-server-*-runnable.jar"
+PHOENIX_TRACESERVER_JAR_PATTERN = "phoenix-tracing-webapp-*-runnable.jar"
 PHOENIX_TESTS_JAR_PATTERN = "phoenix-core-*-tests*.jar"
 
 # Backward support old env variable PHOENIX_LIB_DIR replaced by 
PHOENIX_CLASS_PATH
@@ -119,6 +120,13 @@ def setPath():
 if phoenix_queryserver_jar == "":
 phoenix_queryserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_QUERYSERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
 
+global phoenix_traceserver_jar
+phoenix_traceserver_jar = find(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-tracing-webapp", "target", "*"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "lib"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
+
 
 global phoenix_thin_client_jar
 phoenix_thin_client_jar = find(PHOENIX_THIN_CLIENT_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-server-client", "target", "*"))

http://git-wip-us.apache.org/repos/asf/phoenix/blob/7fa433dc/bin/traceserver.py
--
diff --git a/bin/traceserver.py b/bin/traceserver.py
new file mode 100755
index 000..3d12193
--- /dev/null
+++ b/bin/traceserver.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+
+#
+# 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.
+#
+
+
+#
+# Script to handle launching the trace server process.
+#
+# usage: traceserver.py [start|stop]
+#
+
+import datetime
+import getpass
+import os
+import os.path
+import signal

[17/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App 
(Nishani)

Conflicts:
phoenix-tracing-webapp/pom.xml
phoenix-tracing-webapp/src/main/webapp/index.html


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

Branch: refs/heads/master
Commit: f76062c90070fded2cb997ccf9232cea5603e3e8
Parents: 2f18fc8
Author: ayolajayamaha 
Authored: Thu Aug 20 20:47:34 2015 +0530
Committer: Nick Dimiduk 
Committed: Wed Sep 9 16:54:19 2015 -0700

--
 phoenix-tracing-webapp/pom.xml  |34 +
 .../src/main/webapp/css/bootstrap-theme.css |   476 +
 .../src/main/webapp/css/bootstrap-theme.css.map | 1 +
 .../src/main/webapp/css/bootstrap.css   |  6584 +
 .../src/main/webapp/css/bootstrap.css.map   | 1 +
 .../src/main/webapp/css/font-awesome.css|  1801 ++
 .../src/main/webapp/fonts/FontAwesome.otf   |   Bin 0 -> 93888 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 0 -> 60767 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   565 +
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 0 -> 122092 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 0 -> 71508 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff2 |   Bin 0 -> 56780 bytes
 .../fonts/glyphicons-halflings-regular.eot  |   Bin 0 -> 20127 bytes
 .../fonts/glyphicons-halflings-regular.svg  |   288 +
 .../fonts/glyphicons-halflings-regular.ttf  |   Bin 0 -> 45404 bytes
 .../fonts/glyphicons-halflings-regular.woff |   Bin 0 -> 23424 bytes
 .../fonts/glyphicons-halflings-regular.woff2|   Bin 0 -> 18028 bytes
 .../src/main/webapp/index.html  |   106 +-
 .../src/main/webapp/js/api/chart-model.js   |   177 +
 .../src/main/webapp/js/app.js   |52 +
 .../src/main/webapp/js/config/chart-config.js   |45 +
 .../js/controllers/accordion-controllers.js |29 +
 .../controllers/dependency-tree-controllers.js  |   143 +
 .../webapp/js/controllers/list-controllers.js   |22 +
 .../webapp/js/controllers/search-controllers.js |71 +
 .../js/controllers/timeline-controllers.js  |   153 +
 .../js/controllers/trace-count-controllers.js   |40 +
 .../trace-distribution-controllers.js   |39 +
 .../js/factories/statement-factory-config.js|14 +
 .../webapp/js/factories/statement-factory.js|29 +
 .../src/main/webapp/js/lib/angular-mocks.js |  2468 ++
 .../src/main/webapp/js/lib/angular-route.js |   995 +
 .../src/main/webapp/js/lib/angular.js   | 26309 +
 .../src/main/webapp/js/lib/bootstrap.js |  2317 ++
 .../src/main/webapp/js/lib/jquery-2.1.4.js  |  9210 ++
 .../src/main/webapp/js/lib/jquery.min.js| 5 +
 .../src/main/webapp/js/lib/ng-google-chart.js   |   261 +
 .../src/main/webapp/js/lib/ui-bootstrap-tpls.js |  4840 +++
 .../js/services/generate-statement-service.js   |46 +
 .../src/main/webapp/partials/about.html |10 +
 .../src/main/webapp/partials/chart.html |24 +
 .../src/main/webapp/partials/contact.html   | 5 +
 .../main/webapp/partials/dependency-tree.html   |11 +
 .../src/main/webapp/partials/google-chart.html  |23 +
 .../src/main/webapp/partials/help.html  |36 +
 .../src/main/webapp/partials/home.html  |20 +
 .../src/main/webapp/partials/list.html  |39 +
 .../src/main/webapp/partials/phoenix-trace.html |60 +
 .../src/main/webapp/partials/search.html|58 +
 .../src/test/webapp/js/specs/app-route-spec.js  |55 +
 .../test/webapp/js/specs/timeline-ctrl-spec.js  |27 +
 .../webapp/js/specs/trace-list-ctrl-spec.js |89 +
 .../webapp/js/specs/tracing-app-ctrl-spec.js|23 +
 53 files changed, 57595 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/pom.xml
--
diff --git a/phoenix-tracing-webapp/pom.xml b/phoenix-tracing-webapp/pom.xml
index a13bbc3..fcc7c99 100755
--- a/phoenix-tracing-webapp/pom.xml
+++ b/phoenix-tracing-webapp/pom.xml
@@ -116,6 +116,40 @@
 
   
 
+
+  com.github.searls
+  jasmine-maven-plugin
+  1.3.1.6
+  
+
+  
+test
+  
+
+  
+  
+
+
+  
${project.basedir}/src/main/webapp/js/lib/jquery.min.js
+  

[06/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
new file mode 100755
index 000..1c88b71
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
@@ -0,0 +1,2317 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+  throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+  'use strict';
+  var version = $.fn.jquery.split(' ')[0].split('.')
+  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 
9 && version[2] < 1)) {
+throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or 
higher')
+  }
+}(jQuery);
+
+/* 
+ * Bootstrap: transition.js v3.3.4
+ * http://getbootstrap.com/javascript/#transitions
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+  // 
+
+  function transitionEnd() {
+var el = document.createElement('bootstrap')
+
+var transEndEventNames = {
+  WebkitTransition : 'webkitTransitionEnd',
+  MozTransition: 'transitionend',
+  OTransition  : 'oTransitionEnd otransitionend',
+  transition   : 'transitionend'
+}
+
+for (var name in transEndEventNames) {
+  if (el.style[name] !== undefined) {
+return { end: transEndEventNames[name] }
+  }
+}
+
+return false // explicit for ie8 (  ._.)
+  }
+
+  // http://blog.alexmaccaw.com/css-transitions
+  $.fn.emulateTransitionEnd = function (duration) {
+var called = false
+var $el = this
+$(this).one('bsTransitionEnd', function () { called = true })
+var callback = function () { if (!called) 
$($el).trigger($.support.transition.end) }
+setTimeout(callback, duration)
+return this
+  }
+
+  $(function () {
+$.support.transition = transitionEnd()
+
+if (!$.support.transition) return
+
+$.event.special.bsTransitionEnd = {
+  bindType: $.support.transition.end,
+  delegateType: $.support.transition.end,
+  handle: function (e) {
+if ($(e.target).is(this)) return e.handleObj.handler.apply(this, 
arguments)
+  }
+}
+  })
+
+}(jQuery);
+
+/* 
+ * Bootstrap: alert.js v3.3.4
+ * http://getbootstrap.com/javascript/#alerts
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // ALERT CLASS DEFINITION
+  // ==
+
+  var dismiss = '[data-dismiss="alert"]'
+  var Alert   = function (el) {
+$(el).on('click', dismiss, this.close)
+  }
+
+  Alert.VERSION = '3.3.4'
+
+  Alert.TRANSITION_DURATION = 150
+
+  Alert.prototype.close = function (e) {
+var $this= $(this)
+var selector = $this.attr('data-target')
+
+if (!selector) {
+  selector = $this.attr('href')
+  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip 
for ie7
+}
+
+var $parent = $(selector)
+
+if (e) e.preventDefault()
+
+if (!$parent.length) {
+  $parent = $this.closest('.alert')
+}
+
+$parent.trigger(e = $.Event('close.bs.alert'))
+
+if (e.isDefaultPrevented()) return
+
+$parent.removeClass('in')
+
+function removeElement() {
+  // detach from parent, fire event then clean up data
+  $parent.detach().trigger('closed.bs.alert').remove()
+}
+
+$.support.transition && $parent.hasClass('fade') ?
+  $parent
+.one('bsTransitionEnd', removeElement)
+.emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+  removeElement()
+  }
+
+
+  // ALERT PLUGIN DEFINITION
+  // ===
+
+  function Plugin(option) {
+return this.each(function () {
+  var $this = $(this)
+  var data  = $this.data('bs.alert')
+
+  if (!data) $this.data('bs.alert', (data = new Alert(this)))
+  if (typeof option == 'string') data[option].call($this)
+})
+  }
+
+  var old = $.fn.alert
+
+  $.fn.alert = Plugin
+  

[10/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
new file mode 100755
index 000..1413fc6
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
new file mode 100755
index 000..9e61285
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
new file mode 100755
index 000..64539b5
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/index.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/index.html 
b/phoenix-tracing-webapp/src/main/webapp/index.html
index 7f131fc..7ce6f2f 100755
--- a/phoenix-tracing-webapp/src/main/webapp/index.html
+++ b/phoenix-tracing-webapp/src/main/webapp/index.html
@@ -1,16 +1,110 @@
-
+
 
-  
+
 
 
 
 
 
+
+
 Phoenix Tracing WebApp
-  
 
-  
-Phoenix Tracing Web App
-  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Toggle navigation
+
+
+
+
+Phoenix Tracing
+
+
+
+Home
+List
+Dependency Tree
+
+Features
+
+
+Count Chart
+Trace 
Distribution
+Trace 
TimeLine
+
+Help
+
+
+About
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$(".navbar a").on("click", function() {
+$(".navbar").find(".active").removeClass("active");
+$(this).parent().addClass("active");
+});
+
+
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js 
b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
new file mode 100644
index 000..9189bdf
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
@@ -0,0 +1,177 @@
+var timeLine = {};
+var dependencyChart = {};
+var chartObject = {
+  "type": "PieChart",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "node",
+"label": "Node",
+"type": "string",
+"p": {}
+  },
+  {
+"id": "traceCount",
+"label": "trace Count",
+"type": "number",
+"p": {}
+  }
+],
+"rows": [
+  {
+"c": [
+  {
+"v": "Node1"
+  },
+  {
+"v": 0,
+  }
+]
+  }
+]
+  },
+  "options": {
+"height": 400,
+"width": 700,
+"fill": 20,
+"displayExactValues": true,
+"vAxis": {
+  "title": "Trace count",
+  "gridlines": {
+"count": 10
+  }
+},
+"hAxis": {
+  "title": "Node"
+}
+  },
+  "formatters": {}
+}
+//getting time line model
+timeLine = {
+  "type": "Timeline",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "TraceID",
+"label": "TraceID",
+"type": "string",
+

[13/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
new file mode 100755
index 000..1ee89d4
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
@@ -0,0 +1,565 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg; 
xmlns:xlink="http://www.w3.org/1999/xlink; version="1.1">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[10/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
new file mode 100644
index 000..cbf36ff
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
@@ -0,0 +1,2468 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {
+
+'use strict';
+
+/**
+ * @ngdoc object
+ * @name angular.mock
+ * @description
+ *
+ * Namespace from 'angular-mocks.js' which contains testing related code.
+ */
+angular.mock = {};
+
+/**
+ * ! This is a private undocumented service !
+ *
+ * @name $browser
+ *
+ * @description
+ * This service is a mock implementation of {@link ng.$browser}. It provides 
fake
+ * implementation for commonly used browser apis that are hard to test, e.g. 
setTimeout, xhr,
+ * cookies, etc...
+ *
+ * The api of this service is the same as that of the real {@link ng.$browser 
$browser}, except
+ * that there are several helper methods available which can be used in tests.
+ */
+angular.mock.$BrowserProvider = function() {
+  this.$get = function() {
+return new angular.mock.$Browser();
+  };
+};
+
+angular.mock.$Browser = function() {
+  var self = this;
+
+  this.isMock = true;
+  self.$$url = "http://server/;;
+  self.$$lastUrl = self.$$url; // used by url polling fn
+  self.pollFns = [];
+
+  // TODO(vojta): remove this temporary api
+  self.$$completeOutstandingRequest = angular.noop;
+  self.$$incOutstandingRequestCount = angular.noop;
+
+
+  // register url polling fn
+
+  self.onUrlChange = function(listener) {
+self.pollFns.push(
+  function() {
+if (self.$$lastUrl !== self.$$url || self.$$state !== 
self.$$lastState) {
+  self.$$lastUrl = self.$$url;
+  self.$$lastState = self.$$state;
+  listener(self.$$url, self.$$state);
+}
+  }
+);
+
+return listener;
+  };
+
+  self.$$checkUrlChange = angular.noop;
+
+  self.cookieHash = {};
+  self.lastCookieHash = {};
+  self.deferredFns = [];
+  self.deferredNextId = 0;
+
+  self.defer = function(fn, delay) {
+delay = delay || 0;
+self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: 
self.deferredNextId});
+self.deferredFns.sort(function(a, b) { return a.time - b.time;});
+return self.deferredNextId++;
+  };
+
+
+  /**
+   * @name $browser#defer.now
+   *
+   * @description
+   * Current milliseconds mock time.
+   */
+  self.defer.now = 0;
+
+
+  self.defer.cancel = function(deferId) {
+var fnIndex;
+
+angular.forEach(self.deferredFns, function(fn, index) {
+  if (fn.id === deferId) fnIndex = index;
+});
+
+if (fnIndex !== undefined) {
+  self.deferredFns.splice(fnIndex, 1);
+  return true;
+}
+
+return false;
+  };
+
+
+  /**
+   * @name $browser#defer.flush
+   *
+   * @description
+   * Flushes all pending requests and executes the defer callbacks.
+   *
+   * @param {number=} number of milliseconds to flush. See {@link #defer.now}
+   */
+  self.defer.flush = function(delay) {
+if (angular.isDefined(delay)) {
+  self.defer.now += delay;
+} else {
+  if (self.deferredFns.length) {
+self.defer.now = self.deferredFns[self.deferredFns.length - 1].time;
+  } else {
+throw new Error('No deferred tasks to be flushed');
+  }
+}
+
+while (self.deferredFns.length && self.deferredFns[0].time <= 
self.defer.now) {
+  self.deferredFns.shift().fn();
+}
+  };
+
+  self.$$baseHref = '/';
+  self.baseHref = function() {
+return this.$$baseHref;
+  };
+};
+angular.mock.$Browser.prototype = {
+
+/**
+  * @name $browser#poll
+  *
+  * @description
+  * run all fns in pollFns
+  */
+  poll: function poll() {
+angular.forEach(this.pollFns, function(pollFn) {
+  pollFn();
+});
+  },
+
+  addPollFn: function(pollFn) {
+this.pollFns.push(pollFn);
+return pollFn;
+  },
+
+  url: function(url, replace, state) {
+if (angular.isUndefined(state)) {
+  state = null;
+}
+if (url) {
+  this.$$url = url;
+  // Native pushState serializes & copies the object; simulate it.
+  this.$$state = angular.copy(state);
+  return this;
+}
+
+return this.$$url;
+  },
+
+  state: function() {
+return this.$$state;
+  },
+
+  cookies:  function(name, value) {
+if (name) {
+  if (angular.isUndefined(value)) {
+delete this.cookieHash[name];
+  } else {
+if (angular.isString(value) &&   //strings only
+value.length <= 4096) {  //strict cookie storage limits
+  this.cookieHash[name] = value;
+}
+  }
+} else {
+  if (!angular.equals(this.cookieHash, 

[16/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map 
b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
new file mode 100755
index 000..2fd84f3
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labe
 
ls.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":",6DAA4D;ACQ5D;EACE,yBAAA;EACA,4BAAA;EACA,gCAAA;EDND;ACaD;EACE,WAAA;EDXD;ACwBD;EAaE,gBAAA;EDtBD;AC8BDEAIE,uBAAA;EACA,0BAAA;ED5BD;ACoCD;EACE,eAAA;EACA,WAAA;EDlCD;AC0CD;;EAEE,eAAA;EDxCD;ACkDD;EACE,+BAAA;EDhDD;ACuDD;;EAEE,YAAA;EDrDD;AC+DD;EACE,2BAAA;ED7DD;ACoED;;EAEE,mBAAA;EDlED;ACyED;EACE,oBAAA;EDvE
 
D;AC+ED;EACE,gBAAA;EACA,kBAAA;ED7ED;ACoFD;EACE,kBAAA;EACA,aAAA;EDlFD;ACyFD;EACE,gBAAA;EDvFD;AC8FD;;EAEE,gBAAA;EACA,gBAAA;EACA,oBAAA;EACA,0BAAA;ED5FD;AC+FD;EACE,aAAA;ED7FD;ACgGD;EACE,iBAAA;ED9FD;ACwGD;EACE,WAAA;EDtGD;AC6GD;EACE,kBAAA;ED3GD;ACqHD;EACE,kBAAA;EDnHD;AC0HD;EACE,8BAAA;EACA,iCAAA;UAAA,yBAAA;EACA,WAAA;EDxHD;AC+HD;EACE,gBAAA;ED7HD;ACoIDEAIE,mCAAA;EACA,gBAAA;EDlID;ACoJD;EAKE,gBAAA;EACA,eAAA;EACA,WAAA;EDlJD;ACyJD;EACE,mBAAA;EDvJD;ACiKD;;EAEE,sBAAA;ED/JD;AC0KDEAIE,4BAAA;EACA,iBAAA;EDxKD;AC+KD;;EAEE,iBAAA;ED7KD;ACoLD;;EAEE,WAAA;EACA,YAAA;EDlLD;AC0LD;EACE,qBAAA;EDxLD;ACmMD;;EAEE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,YAAA;EDjMD;AC0MD;;EAEE,cAAA;EDxMD;ACiND;EACE,+BAAA;EACA,8BAAA;EACA,iCAAA;EACA,yBAAA;ED/MD;ACwND;;EAEE,0BAAA;EDtND;AC6ND;EACE,2BAAA;EACA,eAAA;EACA,gCAAA;ED3ND;ACmOD;EACE,WAAA;EACA,YAAA;EDjOD;ACwOD;EACE,gBAAA;EDtOD;AC8OD;EACE,mBAAA;ED5OD;ACsPD;EACE,2BAAA;EACA,mBAAA;EDpPD;ACuPD;;EAEE,YAAA;EDrPD;AACD,sFAAqF;AE1ErF;EAnGI;;;IAGI,oCAAA;IACA,wBAAA;IACA,qCAAA;YAAA,6BAAA;
 
IACA,8BAAA;IFgLL;EE7KC;;IAEI,4BAAA;IF+KL;EE5KC;IACI,8BAAA;IF8KL;EE3KC;IACI,+BAAA;IF6KL;EExKC;;IAEI,aAAA;IF0KL;EEvKC;;IAEI,wBAAA;IACA,0BAAA;IFyKL;EEtKC;IACI,6BAAA;IFwKL;EErKC;;IAEI,0BAAA;IFuKL;EEpKC;IACI,4BAAA;IFsKL;EEnKC;;;IAGI,YAAA;IACA,WAAA;IFqKL;EElKC;;IAEI,yBAAA;IFoKL;EE7JC;IACI,6BAAA;IF+JL;EE3JC;IACI,eAAA;IF6JL;EE3JC;;IAGQ,mCAAA;IF4JT;EEzJC;IACI,wBAAA;IF2JL;EExJC;IACI,sCAAA;IF0JL;EE3JC;;IAKQ,mCAAA;IF0JT;EEvJC;;IAGQ,mCAAA;IFwJT;EACF;AGpPD;EACE,qCAAA;EACA,uDAAA;EACA,iYAAA;EHsPD;AG9OD;EACE,oBAAA;EACA,UAAA;EACA,uBAAA;EACA,qCAAA;EACA,oBAAA;EACA,qBAAA;EACA,gBAAA;EACA,qCAAA;EACA,oCAAA;EHgPD;AG5OmC;EAAW,gBAAA;EH+O9C;AG9OmC;EAAW,gBAAA;EHiP9C;AG/OmC;;EAAW,kBAAA;EHmP9C;AGlPmC;EAAW,kBAAA;EHqP9C;AGpPmC;EAAW,kBAAA;EHuP9C;AGtPmC;EAAW,kBAAA;EHyP9C;AGxPmC;EAAW,kBAAA;EH2P9C;AG1PmC;EAAW,kBAAA;EH6P9C;AG5PmC;EAAW,kBAAA;EH+P9C;AG9PmC;EAAW,kBAAA;EHiQ9C;AGhQmC;EAAW,kBAAA;EHmQ9C;AGlQmC;EAAW,kBAAA;EHqQ9C;AGpQmC;EAAW,kBAAA;EHuQ9C;AGtQmC;EAAW,kBAAA;EHyQ9C;AGxQmC;EAAW,kBAAA;EH2Q9C;AG1QmC;EAAW,kBAAA;EH6Q9C;
 

[08/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
new file mode 100755
index 000..e488352
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
@@ -0,0 +1,26309 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, document, undefined) {'use strict';
+
+/**
+ * @description
+ *
+ * This object provides a utility for producing rich Error messages within
+ * Angular. It can be called as follows:
+ *
+ * var exampleMinErr = minErr('example');
+ * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);
+ *
+ * The above creates an instance of minErr in the example namespace. The
+ * resulting error will have a namespaced error code of example.one.  The
+ * resulting error will replace {0} with the value of foo, and {1} with the
+ * value of bar. The object is not restricted in the number of arguments it can
+ * take.
+ *
+ * If fewer arguments are specified than necessary for interpolation, the extra
+ * interpolation markers will be preserved in the final string.
+ *
+ * Since data will be parsed statically during a build step, some restrictions
+ * are applied with respect to how minErr instances are created and called.
+ * Instances should have names of the form namespaceMinErr for a minErr created
+ * using minErr('namespace') . Error codes, namespaces and template strings
+ * should all be static strings, not variables or general expressions.
+ *
+ * @param {string} module The namespace to use for the new minErr instance.
+ * @param {function} ErrorConstructor Custom error constructor to be 
instantiated when returning
+ *   error from returned function, for cases when a particular type of error 
is useful.
+ * @returns {function(code:string, template:string, ...templateArgs): Error} 
minErr instance
+ */
+
+function minErr(module, ErrorConstructor) {
+  ErrorConstructor = ErrorConstructor || Error;
+  return function() {
+var code = arguments[0],
+  prefix = '[' + (module ? module + ':' : '') + code + '] ',
+  template = arguments[1],
+  templateArgs = arguments,
+
+  message, i;
+
+message = prefix + template.replace(/\{\d+\}/g, function(match) {
+  var index = +match.slice(1, -1), arg;
+
+  if (index + 2 < templateArgs.length) {
+return toDebugString(templateArgs[index + 2]);
+  }
+  return match;
+});
+
+message = message + '\nhttp://errors.angularjs.org/1.3.15/' +
+  (module ? module + '/' : '') + code;
+for (i = 2; i < arguments.length; i++) {
+  message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
+encodeURIComponent(toDebugString(arguments[i]));
+}
+return new ErrorConstructor(message);
+  };
+}
+
+/* We need to tell jshint what variables are being exported */
+/* global angular: true,
+  msie: true,
+  jqLite: true,
+  jQuery: true,
+  slice: true,
+  splice: true,
+  push: true,
+  toString: true,
+  ngMinErr: true,
+  angularModule: true,
+  uid: true,
+  REGEX_STRING_REGEXP: true,
+  VALIDITY_STATE_PROPERTY: true,
+
+  lowercase: true,
+  uppercase: true,
+  manualLowercase: true,
+  manualUppercase: true,
+  nodeName_: true,
+  isArrayLike: true,
+  forEach: true,
+  sortedKeys: true,
+  forEachSorted: true,
+  reverseParams: true,
+  nextUid: true,
+  setHashKey: true,
+  extend: true,
+  int: true,
+  inherit: true,
+  noop: true,
+  identity: true,
+  valueFn: true,
+  isUndefined: true,
+  isDefined: true,
+  isObject: true,
+  isString: true,
+  isNumber: true,
+  isDate: true,
+  isArray: true,
+  isFunction: true,
+  isRegExp: true,
+  isWindow: true,
+  isScope: true,
+  isFile: true,
+  isFormData: true,
+  isBlob: true,
+  isBoolean: true,
+  isPromiseLike: true,
+  trim: true,
+  escapeForRegexp: true,
+  isElement: true,
+  makeMap: true,
+  includes: true,
+  arrayRemove: true,
+  copy: true,
+  shallowCopy: true,
+  equals: true,
+  csp: true,
+  concat: true,
+  sliceArgs: true,
+  bind: true,
+  toJsonReplacer: true,
+  toJson: true,
+  fromJson: true,
+  startingTag: true,
+  tryDecodeURIComponent: true,
+  parseKeyValue: true,
+  toKeyValue: true,
+  encodeUriSegment: true,
+  encodeUriQuery: true,
+  angularInit: true,
+  bootstrap: true,
+  getTestability: true,
+  snake_case: true,
+  bindJQuery: true,
+  assertArg: true,
+  assertArgFn: true,
+  assertNotHasOwnProperty: true,
+  getter: true,
+  getBlockNodes: true,
+  hasOwnProperty: true,
+  createMap: true,
+
+  NODE_TYPE_ELEMENT: true,
+  NODE_TYPE_TEXT: true,
+  NODE_TYPE_COMMENT: true,
+  NODE_TYPE_DOCUMENT: true,
+  NODE_TYPE_DOCUMENT_FRAGMENT: true,
+*/
+
+
+
+/**
+ * @ngdoc module
+ * @name ng
+ * @module ng
+ * 

[05/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
new file mode 100644
index 000..0f60b7b
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery.min.js
@@ -0,0 +1,5 @@
+/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | 
jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof 
module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw
 new Error("jQuery requires a window with a document");return 
b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var 
c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return
 new 
m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return
 
b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return
 d.call(this)},get:function(a){return 
null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var 
b=m.merge(this.constructor(),a);return 
b.prevObject=this,b.context=this.context,b},each:function(a,b){return 
m.each(this,a,b)},map:function(a){return 
this.pushStack(m.map(this,function(b,c){return 
a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,argumen
 ts))},first:function(){return this.eq(0)},last:function(){return 
this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return 
this.pushStack(c>=0&>c?[this[c]]:[])},end:function(){return 
this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var
 
a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof
 g&&(j=g,g=arguments[h]||{},h++),"object"==typeof 
g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d
 in 
e)a=g[d],c=e[d],g!==c&&(j&&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&(a)?a:[]):f=a&(a)?a:{},g[d]=m.extend(j,f,c)):void
 0!==c&&(g[d]=c));return 
g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw
 new 
Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return
 null!=a&=
 
=a.window},isNumeric:function(a){return!m.isArray(a)&(a)+1>=0},isEmptyObject:function(a){var
 b;for(b in a)return!1;return!0},isPlainObject:function(a){var 
b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b
 in a)return j.call(a,b);for(b in a);return void 
0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof 
a||"function"==typeof a?h[i.call(a)]||"object":typeof 
a},globalEval:function(b){b&(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return
 a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return 
a.nodeName&()===b.toLowerCase()},each:function(a,b,c){var
 
d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else
 for(e in a)if(d=b.apply(a[e],c),d===!1)break}else 
if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e])
 ,d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return 
a},trim:function(a){return 
null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return 
null!=a&&(r(Object(a))?m.merge(c,"string"==typeof 
a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return 
g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in 
b&[c]===a)return c}return-1},merge:function(a,b){var 
c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 
0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var 
d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&(a[f]);return 
e},map:function(a,b,c){var 
d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&(d);else
 for(f in a)d=b(a[f],f,c),null!=d&(d);return 
e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof 
b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return 
a.apply(b||this,c.concat(d.call(
 arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 
0},now:function(){return+new Date},support:k}),m.each("Boolean Number String 
Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object 
"+b+"]"]=b.toLowerCase()});function r(a){var b="length"in 
a&,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&?!0:"array"===c||0===b||"number"==typeof
 b&>0& in a}var s=function(a){var 
b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new 

[03/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
new file mode 100755
index 000..6119661
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
@@ -0,0 +1,4840 @@
+/*
+ * angular-ui-bootstrap
+ * http://angular-ui.github.io/bootstrap/
+
+ * Version: 0.13.0 - 2015-05-02
+ * License: MIT
+ */
+angular.module("ui.bootstrap", ["ui.bootstrap.tpls", 
"ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]);
+angular.module("ui.bootstrap.tpls", 
["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/
 typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
+angular.module('ui.bootstrap.collapse', [])
+
+  .directive('collapse', ['$animate', function ($animate) {
+
+return {
+  link: function (scope, element, attrs) {
+function expand() {
+  element.removeClass('collapse').addClass('collapsing');
+  $animate.addClass(element, 'in', {
+to: { height: element[0].scrollHeight + 'px' }
+  }).then(expandDone);
+}
+
+function expandDone() {
+  element.removeClass('collapsing');
+  element.css({height: 'auto'});
+}
+
+function collapse() {
+  element
+// IMPORTANT: The height must be set before adding "collapsing" 
class.
+// Otherwise, the browser attempts to animate from height 0 (in
+// collapsing class) to the given height here.
+.css({height: element[0].scrollHeight + 'px'})
+// initially all panel collapse have the collapse class, this 
removal
+// prevents the animation from jumping to collapsed state
+.removeClass('collapse')
+.addClass('collapsing');
+
+  $animate.removeClass(element, 'in', {
+to: {height: '0'}
+  }).then(collapseDone);
+}
+
+function collapseDone() {
+  element.css({height: '0'}); // Required so that collapse works when 
animation is disabled
+  element.removeClass('collapsing');
+  element.addClass('collapse');
+}
+
+scope.$watch(attrs.collapse, function (shouldCollapse) {
+  if (shouldCollapse) {
+collapse();
+  } else {
+expand();
+  }
+});
+  }
+};
+  }]);
+
+angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse'])
+
+.constant('accordionConfig', {
+  closeOthers: true
+})
+
+.controller('AccordionController', ['$scope', '$attrs', 'accordionConfig', 
function ($scope, $attrs, accordionConfig) {
+
+  // This array keeps track of the accordion groups
+  this.groups = [];
+
+  // Ensure that all the groups in this accordion are closed, unless 
close-others explicitly says not to
+  this.closeOthers = function(openGroup) {
+var closeOthers = angular.isDefined($attrs.closeOthers) ? 
$scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;
+if ( closeOthers ) {
+  angular.forEach(this.groups, function (group) {
+if ( group !== openGroup ) {
+  group.isOpen = false;
+}
+  });
+}
+  };
+
+  // This is called from the accordion-group directive to add itself to the 
accordion
+  this.addGroup = function(groupScope) {
+var that = this;
+this.groups.push(groupScope);
+
+groupScope.$on('$destroy', function (event) {
+  

[07/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
new file mode 100755
index 000..1c88b71
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/bootstrap.js
@@ -0,0 +1,2317 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') {
+  throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+  'use strict';
+  var version = $.fn.jquery.split(' ')[0].split('.')
+  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 
9 && version[2] < 1)) {
+throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or 
higher')
+  }
+}(jQuery);
+
+/* 
+ * Bootstrap: transition.js v3.3.4
+ * http://getbootstrap.com/javascript/#transitions
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+  // 
+
+  function transitionEnd() {
+var el = document.createElement('bootstrap')
+
+var transEndEventNames = {
+  WebkitTransition : 'webkitTransitionEnd',
+  MozTransition: 'transitionend',
+  OTransition  : 'oTransitionEnd otransitionend',
+  transition   : 'transitionend'
+}
+
+for (var name in transEndEventNames) {
+  if (el.style[name] !== undefined) {
+return { end: transEndEventNames[name] }
+  }
+}
+
+return false // explicit for ie8 (  ._.)
+  }
+
+  // http://blog.alexmaccaw.com/css-transitions
+  $.fn.emulateTransitionEnd = function (duration) {
+var called = false
+var $el = this
+$(this).one('bsTransitionEnd', function () { called = true })
+var callback = function () { if (!called) 
$($el).trigger($.support.transition.end) }
+setTimeout(callback, duration)
+return this
+  }
+
+  $(function () {
+$.support.transition = transitionEnd()
+
+if (!$.support.transition) return
+
+$.event.special.bsTransitionEnd = {
+  bindType: $.support.transition.end,
+  delegateType: $.support.transition.end,
+  handle: function (e) {
+if ($(e.target).is(this)) return e.handleObj.handler.apply(this, 
arguments)
+  }
+}
+  })
+
+}(jQuery);
+
+/* 
+ * Bootstrap: alert.js v3.3.4
+ * http://getbootstrap.com/javascript/#alerts
+ * 
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *  */
+
+
++function ($) {
+  'use strict';
+
+  // ALERT CLASS DEFINITION
+  // ==
+
+  var dismiss = '[data-dismiss="alert"]'
+  var Alert   = function (el) {
+$(el).on('click', dismiss, this.close)
+  }
+
+  Alert.VERSION = '3.3.4'
+
+  Alert.TRANSITION_DURATION = 150
+
+  Alert.prototype.close = function (e) {
+var $this= $(this)
+var selector = $this.attr('data-target')
+
+if (!selector) {
+  selector = $this.attr('href')
+  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip 
for ie7
+}
+
+var $parent = $(selector)
+
+if (e) e.preventDefault()
+
+if (!$parent.length) {
+  $parent = $this.closest('.alert')
+}
+
+$parent.trigger(e = $.Event('close.bs.alert'))
+
+if (e.isDefaultPrevented()) return
+
+$parent.removeClass('in')
+
+function removeElement() {
+  // detach from parent, fire event then clean up data
+  $parent.detach().trigger('closed.bs.alert').remove()
+}
+
+$.support.transition && $parent.hasClass('fade') ?
+  $parent
+.one('bsTransitionEnd', removeElement)
+.emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+  removeElement()
+  }
+
+
+  // ALERT PLUGIN DEFINITION
+  // ===
+
+  function Plugin(option) {
+return this.each(function () {
+  var $this = $(this)
+  var data  = $this.data('bs.alert')
+
+  if (!data) $this.data('bs.alert', (data = new Alert(this)))
+  if (typeof option == 'string') data[option].call($this)
+})
+  }
+
+  var old = $.fn.alert
+
+  $.fn.alert = Plugin
+  

[11/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
new file mode 100755
index 000..1413fc6
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
new file mode 100755
index 000..9e61285
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
new file mode 100755
index 000..64539b5
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/index.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/index.html 
b/phoenix-tracing-webapp/src/main/webapp/index.html
index 7f131fc..7ce6f2f 100755
--- a/phoenix-tracing-webapp/src/main/webapp/index.html
+++ b/phoenix-tracing-webapp/src/main/webapp/index.html
@@ -1,16 +1,110 @@
-
+
 
-  
+
 
 
 
 
 
+
+
 Phoenix Tracing WebApp
-  
 
-  
-Phoenix Tracing Web App
-  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Toggle navigation
+
+
+
+
+Phoenix Tracing
+
+
+
+Home
+List
+Dependency Tree
+
+Features
+
+
+Count Chart
+Trace 
Distribution
+Trace 
TimeLine
+
+Help
+
+
+About
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$(".navbar a").on("click", function() {
+$(".navbar").find(".active").removeClass("active");
+$(this).parent().addClass("active");
+});
+
+
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js 
b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
new file mode 100644
index 000..9189bdf
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
@@ -0,0 +1,177 @@
+var timeLine = {};
+var dependencyChart = {};
+var chartObject = {
+  "type": "PieChart",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "node",
+"label": "Node",
+"type": "string",
+"p": {}
+  },
+  {
+"id": "traceCount",
+"label": "trace Count",
+"type": "number",
+"p": {}
+  }
+],
+"rows": [
+  {
+"c": [
+  {
+"v": "Node1"
+  },
+  {
+"v": 0,
+  }
+]
+  }
+]
+  },
+  "options": {
+"height": 400,
+"width": 700,
+"fill": 20,
+"displayExactValues": true,
+"vAxis": {
+  "title": "Trace count",
+  "gridlines": {
+"count": 10
+  }
+},
+"hAxis": {
+  "title": "Node"
+}
+  },
+  "formatters": {}
+}
+//getting time line model
+timeLine = {
+  "type": "Timeline",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "TraceID",
+"label": "TraceID",
+"type": "string",
+

[01/18] phoenix git commit: PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 8f3cd25e3 -> 8e27399c0


PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

Conflicts:
pom.xml


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 59391683e4b26c1609fda97a775cd74bd99a2ddc
Parents: 8f3cd25
Author: ayolajayamaha 
Authored: Mon Jul 27 22:27:27 2015 +0530
Committer: Nick Dimiduk 
Committed: Wed Sep 9 16:09:24 2015 -0700

--
 bin/phoenix_utils.py|   8 +
 bin/traceserver.py  | 188 +
 phoenix-tracing-webapp/README.md|  15 +
 phoenix-tracing-webapp/pom.xml  | 122 
 .../src/build/trace-server-runnable.xml |  60 
 .../src/main/config/checkstyle/checker.xml  | 281 +++
 .../src/main/config/checkstyle/header.txt   |  16 ++
 .../src/main/config/checkstyle/suppressions.xml |  46 +++
 .../tracingwebapp/http/ConnectionFactory.java   |  43 +++
 .../tracingwebapp/http/EntityFactory.java   | 101 +++
 .../apache/phoenix/tracingwebapp/http/Main.java |  81 ++
 .../tracingwebapp/http/TraceServlet.java| 152 ++
 .../src/main/webapp/WEB-INF/web.xml |  15 +
 .../src/main/webapp/index.html  |  16 ++
 pom.xml |   2 +
 15 files changed, 1146 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/59391683/bin/phoenix_utils.py
--
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index bfb4737..13dd360 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -56,6 +56,7 @@ def setPath():
 PHOENIX_CLIENT_JAR_PATTERN = "phoenix-*-client.jar"
 PHOENIX_THIN_CLIENT_JAR_PATTERN = "phoenix-*-thin-client.jar"
 PHOENIX_QUERYSERVER_JAR_PATTERN = "phoenix-server-*-runnable.jar"
+PHOENIX_TRACESERVER_JAR_PATTERN = "phoenix-tracing-webapp-*-runnable.jar"
 PHOENIX_TESTS_JAR_PATTERN = "phoenix-core-*-tests*.jar"
 
 # Backward support old env variable PHOENIX_LIB_DIR replaced by 
PHOENIX_CLASS_PATH
@@ -119,6 +120,13 @@ def setPath():
 if phoenix_queryserver_jar == "":
 phoenix_queryserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_QUERYSERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
 
+global phoenix_traceserver_jar
+phoenix_traceserver_jar = find(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-tracing-webapp", "target", "*"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "lib"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
+
 
 global phoenix_thin_client_jar
 phoenix_thin_client_jar = find(PHOENIX_THIN_CLIENT_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-server-client", "target", "*"))

http://git-wip-us.apache.org/repos/asf/phoenix/blob/59391683/bin/traceserver.py
--
diff --git a/bin/traceserver.py b/bin/traceserver.py
new file mode 100755
index 000..3d12193
--- /dev/null
+++ b/bin/traceserver.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+
+#
+# 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.
+#
+
+
+#
+# Script to handle launching the trace server process.
+#
+# usage: traceserver.py [start|stop]
+#
+
+import datetime
+import getpass
+import os
+import os.path
+import signal

[14/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
new file mode 100755
index 000..1ee89d4
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.svg
@@ -0,0 +1,565 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg; 
xmlns:xlink="http://www.w3.org/1999/xlink; version="1.1">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[12/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
new file mode 100755
index 000..94fb549
--- /dev/null
+++ 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg;>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[02/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
 
b/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
new file mode 100755
index 000..a736656
--- /dev/null
+++ 
b/phoenix-tracing-webapp/src/main/webapp/js/services/generate-statement-service.js
@@ -0,0 +1,46 @@
+'use strict';
+/**
+ * this services was writtern following different pattern.
+ * Generate Statement Service mainly converting SQL Statement to Tracing 
Decription Label
+ * To-Do Switching controllers to this pattern of coding
+ *
+ */
+angular.module('TracingAppCtrl').service('GenerateStatementService', function(
+  StatementFactory) {
+  /*using statement facotry - It is in progress*/
+  var SQLQuery = null;
+  var tracingStatement = null;
+  //following Grammar @ http://phoenix.apache.org/language/index.html
+  //To-Do this model will improve as developing is going on
+  var SQLQueryObject = {
+commands: {},
+keys: [],
+schema: null,
+tabel: null,
+filters: {},
+groupBy: {},
+orderBy: {},
+limits: {}
+  }
+  this.setSQLQuery = function(sqlQuery) {
+SQLQuery = sqlQuery;
+  };
+  this.getSQLQuery = function() {
+return SQLQuery;
+  };
+  this.getTracingStatement = function() {
+//will using partitioningSQLQuery to convert SQL to TracingStatement
+partitioningSQLQuery();
+var statementFactory = new StatementFactory(SQLQueryObject.commands,
+  SQLQueryObject.tabel);
+tracingStatement = statementFactory.start + statementFactory.command +
+  statementFactory.tableName + statementFactory.end;
+return tracingStatement;
+  };
+  //sql statements partitioning
+  function partitioningSQLQuery() {
+//Building SQLQueryObject
+SQLQueryObject.commands = SQLQuery.split(" ")[0];
+SQLQueryObject.tabel = SQLQuery.split("from ")[1].split(" ")[0];
+  };
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/partials/about.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/partials/about.html 
b/phoenix-tracing-webapp/src/main/webapp/partials/about.html
new file mode 100755
index 000..9dc76d7
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/partials/about.html
@@ -0,0 +1,10 @@
+
+  About
+
+
+
+
+The tracing web app for Apache Phoenix contains features list, dependency 
tree, trace count, trace distribution and timeline.
+In List the most recent traces are listed down. The limiting value is used 
to determine the trace count displayed. With each trace there is an option to 
view either the dependency tree or the timeline.The dependency tree views the 
traces belonging to a trace id in a tree view. The trace id is the input to the 
system. The parent child relationship of the traces can be viewed clearly. The 
tooltip gives the host name, parent id, span id,start time,end time, 
description and duration. Each node is collapsable and expandable. The SQL 
Query is viewed for each search. In the trace count the trace list is 
categorized by the description.
+The trace count chart can be viewed as pie charts, line charts, bar charts 
and area charts. The chart changing option is collapseble and could be hidden. 
The trace distribution chart shows the traces across phoenix hosts on which 
they are running. The charts used are pie charts, line charts, bar charts and 
area charts. The chart changing option is collapseble and could be hidden. In 
the traces can be viewed along the timeline for a given trace id. Traces can be 
added or cleared from the timeline. There should be a minimum of two traces 
starting at two different times for the system to draw its timeline. 
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/partials/chart.html 
b/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
new file mode 100755
index 000..f41a431
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/partials/chart.html
@@ -0,0 +1,24 @@
+
+  {{page.title}}
+
+
+
+ 
+
+ 
+ Controller Panel
+ 
+ 
+  
+Chart Type
+
+  Pie
+  Line
+  Bar
+  Area
+
+  
+
+
+
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/partials/contact.html
--
diff --git 

[04/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
new file mode 100755
index 000..16c7e1c
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
@@ -0,0 +1,261 @@
+/**
+ * @description Google Chart Api Directive Module for AngularJS
+ * @version 0.0.11
+ * @author Nicolas Bouillon 
+ * @author GitHub contributors
+ * @license MIT
+ * @year 2013
+ */
+(function (document, window, angular) {
+'use strict';
+
+angular.module('googlechart', [])
+
+.value('googleChartApiConfig', {
+version: '1',
+optionalSettings: {
+packages: ['corechart']
+}
+})
+
+.provider('googleJsapiUrl', function () {
+var protocol = 'https:';
+var url = '//www.google.com/jsapi';
+
+this.setProtocol = function(newProtocol) {
+protocol = newProtocol;
+};
+
+this.setUrl = function(newUrl) {
+url = newUrl;
+};
+
+this.$get = function() {
+return (protocol ? protocol : '') + url;
+};
+})
+.factory('googleChartApiPromise', ['$rootScope', '$q', 
'googleChartApiConfig', 'googleJsapiUrl', function ($rootScope, $q, apiConfig, 
googleJsapiUrl) {
+var apiReady = $q.defer();
+var onLoad = function () {
+// override callback function
+var settings = {
+callback: function () {
+var oldCb = apiConfig.optionalSettings.callback;
+$rootScope.$apply(function () {
+apiReady.resolve();
+});
+
+if (angular.isFunction(oldCb)) {
+oldCb.call(this);
+}
+}
+};
+
+settings = angular.extend({}, apiConfig.optionalSettings, 
settings);
+
+window.google.load('visualization', apiConfig.version, 
settings);
+};
+var head = document.getElementsByTagName('head')[0];
+var script = document.createElement('script');
+
+script.setAttribute('type', 'text/javascript');
+script.src = googleJsapiUrl;
+
+if (script.addEventListener) { // Standard browsers (including 
IE9+)
+script.addEventListener('load', onLoad, false);
+} else { // IE8 and below
+script.onreadystatechange = function () {
+if (script.readyState === 'loaded' || script.readyState 
=== 'complete') {
+script.onreadystatechange = null;
+onLoad();
+}
+};
+}
+
+head.appendChild(script);
+
+return apiReady.promise;
+}])
+.directive('googleChart', ['$timeout', '$window', '$rootScope', 
'googleChartApiPromise', function ($timeout, $window, $rootScope, 
googleChartApiPromise) {
+return {
+restrict: 'A',
+scope: {
+beforeDraw: '&',
+chart: '=chart',
+onReady: '&',
+onSelect: '&',
+select: '&'
+},
+link: function ($scope, $elm, $attrs) {
+/* Watches, to refresh the chart when its data, 
formatters, options, view,
+or type change. All other values intentionally 
disregarded to avoid double
+calls to the draw function. Please avoid making 
changes to these objects
+directly from this directive.*/
+$scope.$watch(function () {
+if ($scope.chart) {
+return {
+customFormatters: 
$scope.chart.customFormatters,
+data: $scope.chart.data,
+formatters: $scope.chart.formatters,
+options: $scope.chart.options,
+type: $scope.chart.type,
+view: $scope.chart.view
+};
+}
+return $scope.chart;
+}, function () {
+drawAsync();
+}, true); // true is for deep object equality checking
+
+// Redraw the chart if the window is resized
+var resizeHandler = $rootScope.$on('resizeMsg', function 

[07/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
new file mode 100755
index 000..e488352
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
@@ -0,0 +1,26309 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, document, undefined) {'use strict';
+
+/**
+ * @description
+ *
+ * This object provides a utility for producing rich Error messages within
+ * Angular. It can be called as follows:
+ *
+ * var exampleMinErr = minErr('example');
+ * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);
+ *
+ * The above creates an instance of minErr in the example namespace. The
+ * resulting error will have a namespaced error code of example.one.  The
+ * resulting error will replace {0} with the value of foo, and {1} with the
+ * value of bar. The object is not restricted in the number of arguments it can
+ * take.
+ *
+ * If fewer arguments are specified than necessary for interpolation, the extra
+ * interpolation markers will be preserved in the final string.
+ *
+ * Since data will be parsed statically during a build step, some restrictions
+ * are applied with respect to how minErr instances are created and called.
+ * Instances should have names of the form namespaceMinErr for a minErr created
+ * using minErr('namespace') . Error codes, namespaces and template strings
+ * should all be static strings, not variables or general expressions.
+ *
+ * @param {string} module The namespace to use for the new minErr instance.
+ * @param {function} ErrorConstructor Custom error constructor to be 
instantiated when returning
+ *   error from returned function, for cases when a particular type of error 
is useful.
+ * @returns {function(code:string, template:string, ...templateArgs): Error} 
minErr instance
+ */
+
+function minErr(module, ErrorConstructor) {
+  ErrorConstructor = ErrorConstructor || Error;
+  return function() {
+var code = arguments[0],
+  prefix = '[' + (module ? module + ':' : '') + code + '] ',
+  template = arguments[1],
+  templateArgs = arguments,
+
+  message, i;
+
+message = prefix + template.replace(/\{\d+\}/g, function(match) {
+  var index = +match.slice(1, -1), arg;
+
+  if (index + 2 < templateArgs.length) {
+return toDebugString(templateArgs[index + 2]);
+  }
+  return match;
+});
+
+message = message + '\nhttp://errors.angularjs.org/1.3.15/' +
+  (module ? module + '/' : '') + code;
+for (i = 2; i < arguments.length; i++) {
+  message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
+encodeURIComponent(toDebugString(arguments[i]));
+}
+return new ErrorConstructor(message);
+  };
+}
+
+/* We need to tell jshint what variables are being exported */
+/* global angular: true,
+  msie: true,
+  jqLite: true,
+  jQuery: true,
+  slice: true,
+  splice: true,
+  push: true,
+  toString: true,
+  ngMinErr: true,
+  angularModule: true,
+  uid: true,
+  REGEX_STRING_REGEXP: true,
+  VALIDITY_STATE_PROPERTY: true,
+
+  lowercase: true,
+  uppercase: true,
+  manualLowercase: true,
+  manualUppercase: true,
+  nodeName_: true,
+  isArrayLike: true,
+  forEach: true,
+  sortedKeys: true,
+  forEachSorted: true,
+  reverseParams: true,
+  nextUid: true,
+  setHashKey: true,
+  extend: true,
+  int: true,
+  inherit: true,
+  noop: true,
+  identity: true,
+  valueFn: true,
+  isUndefined: true,
+  isDefined: true,
+  isObject: true,
+  isString: true,
+  isNumber: true,
+  isDate: true,
+  isArray: true,
+  isFunction: true,
+  isRegExp: true,
+  isWindow: true,
+  isScope: true,
+  isFile: true,
+  isFormData: true,
+  isBlob: true,
+  isBoolean: true,
+  isPromiseLike: true,
+  trim: true,
+  escapeForRegexp: true,
+  isElement: true,
+  makeMap: true,
+  includes: true,
+  arrayRemove: true,
+  copy: true,
+  shallowCopy: true,
+  equals: true,
+  csp: true,
+  concat: true,
+  sliceArgs: true,
+  bind: true,
+  toJsonReplacer: true,
+  toJson: true,
+  fromJson: true,
+  startingTag: true,
+  tryDecodeURIComponent: true,
+  parseKeyValue: true,
+  toKeyValue: true,
+  encodeUriSegment: true,
+  encodeUriQuery: true,
+  angularInit: true,
+  bootstrap: true,
+  getTestability: true,
+  snake_case: true,
+  bindJQuery: true,
+  assertArg: true,
+  assertArgFn: true,
+  assertNotHasOwnProperty: true,
+  getter: true,
+  getBlockNodes: true,
+  hasOwnProperty: true,
+  createMap: true,
+
+  NODE_TYPE_ELEMENT: true,
+  NODE_TYPE_TEXT: true,
+  NODE_TYPE_COMMENT: true,
+  NODE_TYPE_DOCUMENT: true,
+  NODE_TYPE_DOCUMENT_FRAGMENT: true,
+*/
+
+
+
+/**
+ * @ngdoc module
+ * @name ng
+ * @module ng
+ * 

[09/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
new file mode 100755
index 000..098f23f
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
@@ -0,0 +1,995 @@
+/**
+ * @license AngularJS v1.3.8
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {'use strict';
+
+/**
+ * @ngdoc module
+ * @name ngRoute
+ * @description
+ *
+ * # ngRoute
+ *
+ * The `ngRoute` module provides routing and deeplinking services and 
directives for angular apps.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ *
+ * 
+ */
+ /* global -ngRouteModule */
+var ngRouteModule = angular.module('ngRoute', ['ng']).
+provider('$route', $RouteProvider),
+$routeMinErr = angular.$$minErr('ngRoute');
+
+/**
+ * @ngdoc provider
+ * @name $routeProvider
+ *
+ * @description
+ *
+ * Used for configuring routes.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ * ## Dependencies
+ * Requires the {@link ngRoute `ngRoute`} module to be installed.
+ */
+function $RouteProvider() {
+  function inherit(parent, extra) {
+return angular.extend(Object.create(parent), extra);
+  }
+
+  var routes = {};
+
+  /**
+   * @ngdoc method
+   * @name $routeProvider#when
+   *
+   * @param {string} path Route path (matched against `$location.path`). If 
`$location.path`
+   *contains redundant trailing slash or is missing one, the route will 
still match and the
+   *`$location.path` will be updated to add or drop the trailing slash to 
exactly match the
+   *route definition.
+   *
+   ** `path` can contain named groups starting with a colon: e.g. `:name`. 
All characters up
+   *to the next slash are matched and stored in `$routeParams` under 
the given `name`
+   *when the route matches.
+   ** `path` can contain named groups starting with a colon and ending 
with a star:
+   *e.g.`:name*`. All characters are eagerly stored in `$routeParams` 
under the given `name`
+   *when the route matches.
+   ** `path` can contain optional named groups with a question mark: 
e.g.`:name?`.
+   *
+   *For example, routes like `/color/:color/largecode/:largecode*\/edit` 
will match
+   *`/color/brown/largecode/code/with/slashes/edit` and extract:
+   *
+   ** `color: brown`
+   ** `largecode: code/with/slashes`.
+   *
+   *
+   * @param {Object} route Mapping information to be assigned to 
`$route.current` on route
+   *match.
+   *
+   *Object properties:
+   *
+   *- `controller` – `{(string|function()=}` – Controller fn that 
should be associated with
+   *  newly created scope or the name of a {@link 
angular.Module#controller registered
+   *  controller} if passed as a string.
+   *- `controllerAs` – `{string=}` – A controller alias name. If 
present the controller will be
+   *  published to scope under the `controllerAs` name.
+   *- `template` – `{string=|function()=}` – html template as a string 
or a function that
+   *  returns an html template as a string which should be used by {@link
+   *  ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude 
ngInclude} directives.
+   *  This property takes precedence over `templateUrl`.
+   *
+   *  If `template` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `templateUrl` – `{string=|function()=}` – path or function that 
returns a path to an html
+   *  template that should be used by {@link ngRoute.directive:ngView 
ngView}.
+   *
+   *  If `templateUrl` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `resolve` - `{Object.=}` - An optional map of 
dependencies which should
+   *  be injected into the controller. If any of these dependencies are 
promises, the router
+   *  will wait for them all to be resolved or one to be rejected before 
the controller is
+   *  instantiated.
+   *  If all the promises are resolved successfully, the values of the 
resolved promises are
+   *  injected and {@link ngRoute.$route#$routeChangeSuccess 
$routeChangeSuccess} event is
+   *  fired. If any of the promises are rejected the
+   *  {@link 

[04/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
new file mode 100755
index 000..16c7e1c
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/ng-google-chart.js
@@ -0,0 +1,261 @@
+/**
+ * @description Google Chart Api Directive Module for AngularJS
+ * @version 0.0.11
+ * @author Nicolas Bouillon 
+ * @author GitHub contributors
+ * @license MIT
+ * @year 2013
+ */
+(function (document, window, angular) {
+'use strict';
+
+angular.module('googlechart', [])
+
+.value('googleChartApiConfig', {
+version: '1',
+optionalSettings: {
+packages: ['corechart']
+}
+})
+
+.provider('googleJsapiUrl', function () {
+var protocol = 'https:';
+var url = '//www.google.com/jsapi';
+
+this.setProtocol = function(newProtocol) {
+protocol = newProtocol;
+};
+
+this.setUrl = function(newUrl) {
+url = newUrl;
+};
+
+this.$get = function() {
+return (protocol ? protocol : '') + url;
+};
+})
+.factory('googleChartApiPromise', ['$rootScope', '$q', 
'googleChartApiConfig', 'googleJsapiUrl', function ($rootScope, $q, apiConfig, 
googleJsapiUrl) {
+var apiReady = $q.defer();
+var onLoad = function () {
+// override callback function
+var settings = {
+callback: function () {
+var oldCb = apiConfig.optionalSettings.callback;
+$rootScope.$apply(function () {
+apiReady.resolve();
+});
+
+if (angular.isFunction(oldCb)) {
+oldCb.call(this);
+}
+}
+};
+
+settings = angular.extend({}, apiConfig.optionalSettings, 
settings);
+
+window.google.load('visualization', apiConfig.version, 
settings);
+};
+var head = document.getElementsByTagName('head')[0];
+var script = document.createElement('script');
+
+script.setAttribute('type', 'text/javascript');
+script.src = googleJsapiUrl;
+
+if (script.addEventListener) { // Standard browsers (including 
IE9+)
+script.addEventListener('load', onLoad, false);
+} else { // IE8 and below
+script.onreadystatechange = function () {
+if (script.readyState === 'loaded' || script.readyState 
=== 'complete') {
+script.onreadystatechange = null;
+onLoad();
+}
+};
+}
+
+head.appendChild(script);
+
+return apiReady.promise;
+}])
+.directive('googleChart', ['$timeout', '$window', '$rootScope', 
'googleChartApiPromise', function ($timeout, $window, $rootScope, 
googleChartApiPromise) {
+return {
+restrict: 'A',
+scope: {
+beforeDraw: '&',
+chart: '=chart',
+onReady: '&',
+onSelect: '&',
+select: '&'
+},
+link: function ($scope, $elm, $attrs) {
+/* Watches, to refresh the chart when its data, 
formatters, options, view,
+or type change. All other values intentionally 
disregarded to avoid double
+calls to the draw function. Please avoid making 
changes to these objects
+directly from this directive.*/
+$scope.$watch(function () {
+if ($scope.chart) {
+return {
+customFormatters: 
$scope.chart.customFormatters,
+data: $scope.chart.data,
+formatters: $scope.chart.formatters,
+options: $scope.chart.options,
+type: $scope.chart.type,
+view: $scope.chart.view
+};
+}
+return $scope.chart;
+}, function () {
+drawAsync();
+}, true); // true is for deep object equality checking
+
+// Redraw the chart if the window is resized
+var resizeHandler = $rootScope.$on('resizeMsg', function 

[02/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
new file mode 100755
index 000..6119661
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/ui-bootstrap-tpls.js
@@ -0,0 +1,4840 @@
+/*
+ * angular-ui-bootstrap
+ * http://angular-ui.github.io/bootstrap/
+
+ * Version: 0.13.0 - 2015-05-02
+ * License: MIT
+ */
+angular.module("ui.bootstrap", ["ui.bootstrap.tpls", 
"ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]);
+angular.module("ui.bootstrap.tpls", 
["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/
 typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);
+angular.module('ui.bootstrap.collapse', [])
+
+  .directive('collapse', ['$animate', function ($animate) {
+
+return {
+  link: function (scope, element, attrs) {
+function expand() {
+  element.removeClass('collapse').addClass('collapsing');
+  $animate.addClass(element, 'in', {
+to: { height: element[0].scrollHeight + 'px' }
+  }).then(expandDone);
+}
+
+function expandDone() {
+  element.removeClass('collapsing');
+  element.css({height: 'auto'});
+}
+
+function collapse() {
+  element
+// IMPORTANT: The height must be set before adding "collapsing" 
class.
+// Otherwise, the browser attempts to animate from height 0 (in
+// collapsing class) to the given height here.
+.css({height: element[0].scrollHeight + 'px'})
+// initially all panel collapse have the collapse class, this 
removal
+// prevents the animation from jumping to collapsed state
+.removeClass('collapse')
+.addClass('collapsing');
+
+  $animate.removeClass(element, 'in', {
+to: {height: '0'}
+  }).then(collapseDone);
+}
+
+function collapseDone() {
+  element.css({height: '0'}); // Required so that collapse works when 
animation is disabled
+  element.removeClass('collapsing');
+  element.addClass('collapse');
+}
+
+scope.$watch(attrs.collapse, function (shouldCollapse) {
+  if (shouldCollapse) {
+collapse();
+  } else {
+expand();
+  }
+});
+  }
+};
+  }]);
+
+angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse'])
+
+.constant('accordionConfig', {
+  closeOthers: true
+})
+
+.controller('AccordionController', ['$scope', '$attrs', 'accordionConfig', 
function ($scope, $attrs, accordionConfig) {
+
+  // This array keeps track of the accordion groups
+  this.groups = [];
+
+  // Ensure that all the groups in this accordion are closed, unless 
close-others explicitly says not to
+  this.closeOthers = function(openGroup) {
+var closeOthers = angular.isDefined($attrs.closeOthers) ? 
$scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;
+if ( closeOthers ) {
+  angular.forEach(this.groups, function (group) {
+if ( group !== openGroup ) {
+  group.isOpen = false;
+}
+  });
+}
+  };
+
+  // This is called from the accordion-group directive to add itself to the 
accordion
+  this.addGroup = function(groupScope) {
+var that = this;
+this.groups.push(groupScope);
+
+groupScope.$on('$destroy', function (event) {
+  

[10/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
new file mode 100644
index 000..cbf36ff
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
@@ -0,0 +1,2468 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {
+
+'use strict';
+
+/**
+ * @ngdoc object
+ * @name angular.mock
+ * @description
+ *
+ * Namespace from 'angular-mocks.js' which contains testing related code.
+ */
+angular.mock = {};
+
+/**
+ * ! This is a private undocumented service !
+ *
+ * @name $browser
+ *
+ * @description
+ * This service is a mock implementation of {@link ng.$browser}. It provides 
fake
+ * implementation for commonly used browser apis that are hard to test, e.g. 
setTimeout, xhr,
+ * cookies, etc...
+ *
+ * The api of this service is the same as that of the real {@link ng.$browser 
$browser}, except
+ * that there are several helper methods available which can be used in tests.
+ */
+angular.mock.$BrowserProvider = function() {
+  this.$get = function() {
+return new angular.mock.$Browser();
+  };
+};
+
+angular.mock.$Browser = function() {
+  var self = this;
+
+  this.isMock = true;
+  self.$$url = "http://server/;;
+  self.$$lastUrl = self.$$url; // used by url polling fn
+  self.pollFns = [];
+
+  // TODO(vojta): remove this temporary api
+  self.$$completeOutstandingRequest = angular.noop;
+  self.$$incOutstandingRequestCount = angular.noop;
+
+
+  // register url polling fn
+
+  self.onUrlChange = function(listener) {
+self.pollFns.push(
+  function() {
+if (self.$$lastUrl !== self.$$url || self.$$state !== 
self.$$lastState) {
+  self.$$lastUrl = self.$$url;
+  self.$$lastState = self.$$state;
+  listener(self.$$url, self.$$state);
+}
+  }
+);
+
+return listener;
+  };
+
+  self.$$checkUrlChange = angular.noop;
+
+  self.cookieHash = {};
+  self.lastCookieHash = {};
+  self.deferredFns = [];
+  self.deferredNextId = 0;
+
+  self.defer = function(fn, delay) {
+delay = delay || 0;
+self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: 
self.deferredNextId});
+self.deferredFns.sort(function(a, b) { return a.time - b.time;});
+return self.deferredNextId++;
+  };
+
+
+  /**
+   * @name $browser#defer.now
+   *
+   * @description
+   * Current milliseconds mock time.
+   */
+  self.defer.now = 0;
+
+
+  self.defer.cancel = function(deferId) {
+var fnIndex;
+
+angular.forEach(self.deferredFns, function(fn, index) {
+  if (fn.id === deferId) fnIndex = index;
+});
+
+if (fnIndex !== undefined) {
+  self.deferredFns.splice(fnIndex, 1);
+  return true;
+}
+
+return false;
+  };
+
+
+  /**
+   * @name $browser#defer.flush
+   *
+   * @description
+   * Flushes all pending requests and executes the defer callbacks.
+   *
+   * @param {number=} number of milliseconds to flush. See {@link #defer.now}
+   */
+  self.defer.flush = function(delay) {
+if (angular.isDefined(delay)) {
+  self.defer.now += delay;
+} else {
+  if (self.deferredFns.length) {
+self.defer.now = self.deferredFns[self.deferredFns.length - 1].time;
+  } else {
+throw new Error('No deferred tasks to be flushed');
+  }
+}
+
+while (self.deferredFns.length && self.deferredFns[0].time <= 
self.defer.now) {
+  self.deferredFns.shift().fn();
+}
+  };
+
+  self.$$baseHref = '/';
+  self.baseHref = function() {
+return this.$$baseHref;
+  };
+};
+angular.mock.$Browser.prototype = {
+
+/**
+  * @name $browser#poll
+  *
+  * @description
+  * run all fns in pollFns
+  */
+  poll: function poll() {
+angular.forEach(this.pollFns, function(pollFn) {
+  pollFn();
+});
+  },
+
+  addPollFn: function(pollFn) {
+this.pollFns.push(pollFn);
+return pollFn;
+  },
+
+  url: function(url, replace, state) {
+if (angular.isUndefined(state)) {
+  state = null;
+}
+if (url) {
+  this.$$url = url;
+  // Native pushState serializes & copies the object; simulate it.
+  this.$$state = angular.copy(state);
+  return this;
+}
+
+return this.$$url;
+  },
+
+  state: function() {
+return this.$$state;
+  },
+
+  cookies:  function(name, value) {
+if (name) {
+  if (angular.isUndefined(value)) {
+delete this.cookieHash[name];
+  } else {
+if (angular.isString(value) &&   //strings only
+value.length <= 4096) {  //strict cookie storage limits
+  this.cookieHash[name] = value;
+}
+  }
+} else {
+  if (!angular.equals(this.cookieHash, 

[12/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
new file mode 100755
index 000..94fb549
--- /dev/null
+++ 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg;>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[17/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css 
b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
new file mode 100755
index 000..fb15e3d
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/bootstrap.css
@@ -0,0 +1,6584 @@
+/*!
+ * Bootstrap v3.3.4 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+html {
+  font-family: sans-serif;
+  -webkit-text-size-adjust: 100%;
+  -ms-text-size-adjust: 100%;
+}
+body {
+  margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  vertical-align: baseline;
+}
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+[hidden],
+template {
+  display: none;
+}
+a {
+  background-color: transparent;
+}
+a:active,
+a:hover {
+  outline: 0;
+}
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+b,
+strong {
+  font-weight: bold;
+}
+dfn {
+  font-style: italic;
+}
+h1 {
+  margin: .67em 0;
+  font-size: 2em;
+}
+mark {
+  color: #000;
+  background: #ff0;
+}
+small {
+  font-size: 80%;
+}
+sub,
+sup {
+  position: relative;
+  font-size: 75%;
+  line-height: 0;
+  vertical-align: baseline;
+}
+sup {
+  top: -.5em;
+}
+sub {
+  bottom: -.25em;
+}
+img {
+  border: 0;
+}
+svg:not(:root) {
+  overflow: hidden;
+}
+figure {
+  margin: 1em 40px;
+}
+hr {
+  height: 0;
+  -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+pre {
+  overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+  margin: 0;
+  font: inherit;
+  color: inherit;
+}
+button {
+  overflow: visible;
+}
+button,
+select {
+  text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+input {
+  line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+  -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+input[type="search"] {
+  -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+fieldset {
+  padding: .35em .625em .75em;
+  margin: 0 2px;
+  border: 1px solid #c0c0c0;
+}
+legend {
+  padding: 0;
+  border: 0;
+}
+textarea {
+  overflow: auto;
+}
+optgroup {
+  font-weight: bold;
+}
+table {
+  border-spacing: 0;
+  border-collapse: collapse;
+}
+td,
+th {
+  padding: 0;
+}
+/*! Source: 
https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+  *,
+  *:before,
+  *:after {
+color: #000 !important;
+text-shadow: none !important;
+background: transparent !important;
+-webkit-box-shadow: none !important;
+box-shadow: none !important;
+  }
+  a,
+  a:visited {
+text-decoration: underline;
+  }
+  a[href]:after {
+content: " (" attr(href) ")";
+  }
+  abbr[title]:after {
+content: " (" attr(title) ")";
+  }
+  a[href^="#"]:after,
+  a[href^="javascript:"]:after {
+content: "";
+  }
+  pre,
+  blockquote {
+border: 1px solid #999;
+
+page-break-inside: avoid;
+  }
+  thead {
+display: table-header-group;
+  }
+  tr,
+  img {
+page-break-inside: avoid;
+  }
+  img {
+max-width: 100% !important;
+  }
+  p,
+  h2,
+  h3 {
+orphans: 3;
+widows: 3;
+  }
+  h2,
+  h3 {
+page-break-after: avoid;
+  }
+  select {
+background: #fff !important;
+  }
+  .navbar {
+display: none;
+  }
+  .btn > .caret,
+  .dropup > .btn > .caret {
+border-top-color: #000 !important;
+  }
+  .label {
+border: 1px solid #000;
+  }
+  .table {
+border-collapse: collapse !important;
+  }
+  .table td,
+  .table th {
+background-color: #fff !important;
+  }
+  .table-bordered th,
+  .table-bordered td {
+border: 1px solid #ddd !important;
+  }
+}
+@font-face {
+  font-family: 'Glyphicons Halflings';
+
+  src: url('../fonts/glyphicons-halflings-regular.eot');
+  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') 

[06/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
new file mode 100755
index 000..eed1777
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/jquery-2.1.4.js
@@ -0,0 +1,9210 @@
+/*!
+ * jQuery JavaScript Library v2.1.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-28T16:01Z
+ */
+
+(function( global, factory ) {
+
+   if ( typeof module === "object" && typeof module.exports === "object" ) 
{
+   // For CommonJS and CommonJS-like environments where a proper 
`window`
+   // is present, execute the factory and get jQuery.
+   // For environments that do not have a `window` with a 
`document`
+   // (such as Node.js), expose a factory as module.exports.
+   // This accentuates the need for the creation of a real 
`window`.
+   // e.g. var jQuery = require("jquery")(window);
+   // See ticket #14549 for more info.
+   module.exports = global.document ?
+   factory( global, true ) :
+   function( w ) {
+   if ( !w.document ) {
+   throw new Error( "jQuery requires a 
window with a document" );
+   }
+   return factory( w );
+   };
+   } else {
+   factory( global );
+   }
+
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Support: Firefox 18+
+// Can't be in strict mode, several libs including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+//
+
+var arr = [];
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var support = {};
+
+
+
+var
+   // Use the correct document accordingly with window argument (sandbox)
+   document = window.document,
+
+   version = "2.1.4",
+
+   // Define a local copy of jQuery
+   jQuery = function( selector, context ) {
+   // The jQuery object is actually just the init constructor 
'enhanced'
+   // Need init if jQuery is called (just allow error to be thrown 
if not included)
+   return new jQuery.fn.init( selector, context );
+   },
+
+   // Support: Android<4.1
+   // Make sure we trim BOM and NBSP
+   rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+   // Matches dashed string for camelizing
+   rmsPrefix = /^-ms-/,
+   rdashAlpha = /-([\da-z])/gi,
+
+   // Used by jQuery.camelCase as callback to replace()
+   fcamelCase = function( all, letter ) {
+   return letter.toUpperCase();
+   };
+
+jQuery.fn = jQuery.prototype = {
+   // The current version of jQuery being used
+   jquery: version,
+
+   constructor: jQuery,
+
+   // Start with an empty selector
+   selector: "",
+
+   // The default length of a jQuery object is 0
+   length: 0,
+
+   toArray: function() {
+   return slice.call( this );
+   },
+
+   // Get the Nth element in the matched element set OR
+   // Get the whole matched element set as a clean array
+   get: function( num ) {
+   return num != null ?
+
+   // Return just the one element from the set
+   ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
+
+   // Return all the elements in a clean array
+   slice.call( this );
+   },
+
+   // Take an array of elements and push it onto the stack
+   // (returning the new matched element set)
+   pushStack: function( elems ) {
+
+   // Build a new jQuery matched element set
+   var ret = jQuery.merge( this.constructor(), elems );
+
+   // Add the old object onto the stack (as a reference)
+   ret.prevObject = this;
+   ret.context = this.context;
+
+   // Return the newly-formed element set
+   return ret;
+   },
+
+   // Execute a callback for every element in the matched set.
+   // (You can seed the arguments with an array of args, but this is
+   // only used internally.)
+   each: function( callback, args ) {
+  

[18/18] phoenix git commit: PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
PHOENIX-2186 Creating backend services for the Phoenix Tracing Web App (Nishani)

Conflicts:
pom.xml


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

Branch: refs/heads/master
Commit: 2f18fc821c6284a13de2878db27142e84b7bf9f0
Parents: 926bc72
Author: ayolajayamaha 
Authored: Mon Jul 27 22:27:27 2015 +0530
Committer: Nick Dimiduk 
Committed: Wed Sep 9 16:54:19 2015 -0700

--
 bin/phoenix_utils.py|   8 +
 bin/traceserver.py  | 188 +
 phoenix-tracing-webapp/README.md|  15 +
 phoenix-tracing-webapp/pom.xml  | 122 
 .../src/build/trace-server-runnable.xml |  60 
 .../src/main/config/checkstyle/checker.xml  | 281 +++
 .../src/main/config/checkstyle/header.txt   |  16 ++
 .../src/main/config/checkstyle/suppressions.xml |  46 +++
 .../tracingwebapp/http/ConnectionFactory.java   |  43 +++
 .../tracingwebapp/http/EntityFactory.java   | 101 +++
 .../apache/phoenix/tracingwebapp/http/Main.java |  81 ++
 .../tracingwebapp/http/TraceServlet.java| 152 ++
 .../src/main/webapp/WEB-INF/web.xml |  15 +
 .../src/main/webapp/index.html  |  16 ++
 pom.xml |   2 +
 15 files changed, 1146 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/2f18fc82/bin/phoenix_utils.py
--
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index bfb4737..13dd360 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -56,6 +56,7 @@ def setPath():
 PHOENIX_CLIENT_JAR_PATTERN = "phoenix-*-client.jar"
 PHOENIX_THIN_CLIENT_JAR_PATTERN = "phoenix-*-thin-client.jar"
 PHOENIX_QUERYSERVER_JAR_PATTERN = "phoenix-server-*-runnable.jar"
+PHOENIX_TRACESERVER_JAR_PATTERN = "phoenix-tracing-webapp-*-runnable.jar"
 PHOENIX_TESTS_JAR_PATTERN = "phoenix-core-*-tests*.jar"
 
 # Backward support old env variable PHOENIX_LIB_DIR replaced by 
PHOENIX_CLASS_PATH
@@ -119,6 +120,13 @@ def setPath():
 if phoenix_queryserver_jar == "":
 phoenix_queryserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_QUERYSERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
 
+global phoenix_traceserver_jar
+phoenix_traceserver_jar = find(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-tracing-webapp", "target", "*"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, "..", "lib"))
+if phoenix_traceserver_jar == "":
+phoenix_traceserver_jar = 
findFileInPathWithoutRecursion(PHOENIX_TRACESERVER_JAR_PATTERN, 
os.path.join(current_dir, ".."))
+
 
 global phoenix_thin_client_jar
 phoenix_thin_client_jar = find(PHOENIX_THIN_CLIENT_JAR_PATTERN, 
os.path.join(current_dir, "..", "phoenix-server-client", "target", "*"))

http://git-wip-us.apache.org/repos/asf/phoenix/blob/2f18fc82/bin/traceserver.py
--
diff --git a/bin/traceserver.py b/bin/traceserver.py
new file mode 100755
index 000..3d12193
--- /dev/null
+++ b/bin/traceserver.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+
+#
+# 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.
+#
+
+
+#
+# Script to handle launching the trace server process.
+#
+# usage: traceserver.py [start|stop]
+#
+
+import datetime
+import getpass
+import os
+import os.path
+import signal
+import subprocess
+import sys
+import tempfile
+
+try:
+import daemon
+daemon_supported = 

[13/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf
new file mode 100755
index 000..ed9372f
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff
new file mode 100755
index 000..8b280b9
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2
new file mode 100755
index 000..3311d58
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot
new file mode 100755
index 000..b93a495
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot 
differ



[13/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf
new file mode 100755
index 000..ed9372f
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.ttf differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff
new file mode 100755
index 000..8b280b9
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2
new file mode 100755
index 000..3311d58
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/fontawesome-webfont.woff2 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot
new file mode 100755
index 000..b93a495
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.eot 
differ



[18/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App 
(Nishani)

Conflicts:
phoenix-tracing-webapp/pom.xml
phoenix-tracing-webapp/src/main/webapp/index.html


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

Branch: refs/heads/4.x-HBase-1.0
Commit: 67628f78c49402d5f323db9d04ccb6f5c7fbfe71
Parents: 7fa433d
Author: ayolajayamaha 
Authored: Thu Aug 20 20:47:34 2015 +0530
Committer: Nick Dimiduk 
Committed: Wed Sep 9 16:53:22 2015 -0700

--
 phoenix-tracing-webapp/pom.xml  |34 +
 .../src/main/webapp/css/bootstrap-theme.css |   476 +
 .../src/main/webapp/css/bootstrap-theme.css.map | 1 +
 .../src/main/webapp/css/bootstrap.css   |  6584 +
 .../src/main/webapp/css/bootstrap.css.map   | 1 +
 .../src/main/webapp/css/font-awesome.css|  1801 ++
 .../src/main/webapp/fonts/FontAwesome.otf   |   Bin 0 -> 93888 bytes
 .../main/webapp/fonts/fontawesome-webfont.eot   |   Bin 0 -> 60767 bytes
 .../main/webapp/fonts/fontawesome-webfont.svg   |   565 +
 .../main/webapp/fonts/fontawesome-webfont.ttf   |   Bin 0 -> 122092 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff  |   Bin 0 -> 71508 bytes
 .../main/webapp/fonts/fontawesome-webfont.woff2 |   Bin 0 -> 56780 bytes
 .../fonts/glyphicons-halflings-regular.eot  |   Bin 0 -> 20127 bytes
 .../fonts/glyphicons-halflings-regular.svg  |   288 +
 .../fonts/glyphicons-halflings-regular.ttf  |   Bin 0 -> 45404 bytes
 .../fonts/glyphicons-halflings-regular.woff |   Bin 0 -> 23424 bytes
 .../fonts/glyphicons-halflings-regular.woff2|   Bin 0 -> 18028 bytes
 .../src/main/webapp/index.html  |   106 +-
 .../src/main/webapp/js/api/chart-model.js   |   177 +
 .../src/main/webapp/js/app.js   |52 +
 .../src/main/webapp/js/config/chart-config.js   |45 +
 .../js/controllers/accordion-controllers.js |29 +
 .../controllers/dependency-tree-controllers.js  |   143 +
 .../webapp/js/controllers/list-controllers.js   |22 +
 .../webapp/js/controllers/search-controllers.js |71 +
 .../js/controllers/timeline-controllers.js  |   153 +
 .../js/controllers/trace-count-controllers.js   |40 +
 .../trace-distribution-controllers.js   |39 +
 .../js/factories/statement-factory-config.js|14 +
 .../webapp/js/factories/statement-factory.js|29 +
 .../src/main/webapp/js/lib/angular-mocks.js |  2468 ++
 .../src/main/webapp/js/lib/angular-route.js |   995 +
 .../src/main/webapp/js/lib/angular.js   | 26309 +
 .../src/main/webapp/js/lib/bootstrap.js |  2317 ++
 .../src/main/webapp/js/lib/jquery-2.1.4.js  |  9210 ++
 .../src/main/webapp/js/lib/jquery.min.js| 5 +
 .../src/main/webapp/js/lib/ng-google-chart.js   |   261 +
 .../src/main/webapp/js/lib/ui-bootstrap-tpls.js |  4840 +++
 .../js/services/generate-statement-service.js   |46 +
 .../src/main/webapp/partials/about.html |10 +
 .../src/main/webapp/partials/chart.html |24 +
 .../src/main/webapp/partials/contact.html   | 5 +
 .../main/webapp/partials/dependency-tree.html   |11 +
 .../src/main/webapp/partials/google-chart.html  |23 +
 .../src/main/webapp/partials/help.html  |36 +
 .../src/main/webapp/partials/home.html  |20 +
 .../src/main/webapp/partials/list.html  |39 +
 .../src/main/webapp/partials/phoenix-trace.html |60 +
 .../src/main/webapp/partials/search.html|58 +
 .../src/test/webapp/js/specs/app-route-spec.js  |55 +
 .../test/webapp/js/specs/timeline-ctrl-spec.js  |27 +
 .../webapp/js/specs/trace-list-ctrl-spec.js |89 +
 .../webapp/js/specs/tracing-app-ctrl-spec.js|23 +
 53 files changed, 57595 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/pom.xml
--
diff --git a/phoenix-tracing-webapp/pom.xml b/phoenix-tracing-webapp/pom.xml
index eddcfda..102f17b 100755
--- a/phoenix-tracing-webapp/pom.xml
+++ b/phoenix-tracing-webapp/pom.xml
@@ -116,6 +116,40 @@
 
   
 
+
+  com.github.searls
+  jasmine-maven-plugin
+  1.3.1.6
+  
+
+  
+test
+  
+
+  
+  
+
+
+  
${project.basedir}/src/main/webapp/js/lib/jquery.min.js
+  

[11/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf
new file mode 100755
index 000..1413fc6
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.ttf 
differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
new file mode 100755
index 000..9e61285
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
new file mode 100755
index 000..64539b5
Binary files /dev/null and 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.woff2
 differ

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/index.html
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/index.html 
b/phoenix-tracing-webapp/src/main/webapp/index.html
index 7f131fc..7ce6f2f 100755
--- a/phoenix-tracing-webapp/src/main/webapp/index.html
+++ b/phoenix-tracing-webapp/src/main/webapp/index.html
@@ -1,16 +1,110 @@
-
+
 
-  
+
 
 
 
 
 
+
+
 Phoenix Tracing WebApp
-  
 
-  
-Phoenix Tracing Web App
-  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Toggle navigation
+
+
+
+
+Phoenix Tracing
+
+
+
+Home
+List
+Dependency Tree
+
+Features
+
+
+Count Chart
+Trace 
Distribution
+Trace 
TimeLine
+
+Help
+
+
+About
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$(".navbar a").on("click", function() {
+$(".navbar").find(".active").removeClass("active");
+$(this).parent().addClass("active");
+});
+
+
 
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js 
b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
new file mode 100644
index 000..9189bdf
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/api/chart-model.js
@@ -0,0 +1,177 @@
+var timeLine = {};
+var dependencyChart = {};
+var chartObject = {
+  "type": "PieChart",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "node",
+"label": "Node",
+"type": "string",
+"p": {}
+  },
+  {
+"id": "traceCount",
+"label": "trace Count",
+"type": "number",
+"p": {}
+  }
+],
+"rows": [
+  {
+"c": [
+  {
+"v": "Node1"
+  },
+  {
+"v": 0,
+  }
+]
+  }
+]
+  },
+  "options": {
+"height": 400,
+"width": 700,
+"fill": 20,
+"displayExactValues": true,
+"vAxis": {
+  "title": "Trace count",
+  "gridlines": {
+"count": 10
+  }
+},
+"hAxis": {
+  "title": "Node"
+}
+  },
+  "formatters": {}
+}
+//getting time line model
+timeLine = {
+  "type": "Timeline",
+  "displayed": true,
+  "data": {
+"cols": [
+  {
+"id": "TraceID",
+"label": "TraceID",
+"type": "string",
+

[14/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css 
b/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
new file mode 100755
index 000..2dcdc22
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
@@ -0,0 +1,1801 @@
+/*!
+ *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT 
License)
+ */
+/* FONT PATH
+ * -- */
+@font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix=4.3.0') 
format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') 
format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') 
format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') 
format('truetype'), 
url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') 
format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  transform: translate(0, 0);
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #ee;
+  border-radius: .1em;
+}
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: .3em;
+}
+.fa.pull-right {
+  margin-left: .3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+  0% {
+-webkit-transform: rotate(0deg);
+transform: rotate(0deg);
+  }
+  100% {
+-webkit-transform: rotate(359deg);
+transform: rotate(359deg);
+  }
+}
+@keyframes fa-spin {
+  0% {
+-webkit-transform: rotate(0deg);
+transform: rotate(0deg);
+  }
+  100% {
+-webkit-transform: rotate(359deg);
+transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
+}
+.fa-music:before {
+  content: "\f001";
+}
+.fa-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before {
+  content: "\f004";
+}
+.fa-star:before {
+  content: "\f005";
+}
+.fa-star-o:before {
+  content: "\f006";
+}
+.fa-user:before {
+  content: "\f007";
+}
+.fa-film:before {
+  content: 

[09/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
new file mode 100755
index 000..098f23f
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-route.js
@@ -0,0 +1,995 @@
+/**
+ * @license AngularJS v1.3.8
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {'use strict';
+
+/**
+ * @ngdoc module
+ * @name ngRoute
+ * @description
+ *
+ * # ngRoute
+ *
+ * The `ngRoute` module provides routing and deeplinking services and 
directives for angular apps.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ *
+ * 
+ */
+ /* global -ngRouteModule */
+var ngRouteModule = angular.module('ngRoute', ['ng']).
+provider('$route', $RouteProvider),
+$routeMinErr = angular.$$minErr('ngRoute');
+
+/**
+ * @ngdoc provider
+ * @name $routeProvider
+ *
+ * @description
+ *
+ * Used for configuring routes.
+ *
+ * ## Example
+ * See {@link ngRoute.$route#example $route} for an example of configuring and 
using `ngRoute`.
+ *
+ * ## Dependencies
+ * Requires the {@link ngRoute `ngRoute`} module to be installed.
+ */
+function $RouteProvider() {
+  function inherit(parent, extra) {
+return angular.extend(Object.create(parent), extra);
+  }
+
+  var routes = {};
+
+  /**
+   * @ngdoc method
+   * @name $routeProvider#when
+   *
+   * @param {string} path Route path (matched against `$location.path`). If 
`$location.path`
+   *contains redundant trailing slash or is missing one, the route will 
still match and the
+   *`$location.path` will be updated to add or drop the trailing slash to 
exactly match the
+   *route definition.
+   *
+   ** `path` can contain named groups starting with a colon: e.g. `:name`. 
All characters up
+   *to the next slash are matched and stored in `$routeParams` under 
the given `name`
+   *when the route matches.
+   ** `path` can contain named groups starting with a colon and ending 
with a star:
+   *e.g.`:name*`. All characters are eagerly stored in `$routeParams` 
under the given `name`
+   *when the route matches.
+   ** `path` can contain optional named groups with a question mark: 
e.g.`:name?`.
+   *
+   *For example, routes like `/color/:color/largecode/:largecode*\/edit` 
will match
+   *`/color/brown/largecode/code/with/slashes/edit` and extract:
+   *
+   ** `color: brown`
+   ** `largecode: code/with/slashes`.
+   *
+   *
+   * @param {Object} route Mapping information to be assigned to 
`$route.current` on route
+   *match.
+   *
+   *Object properties:
+   *
+   *- `controller` – `{(string|function()=}` – Controller fn that 
should be associated with
+   *  newly created scope or the name of a {@link 
angular.Module#controller registered
+   *  controller} if passed as a string.
+   *- `controllerAs` – `{string=}` – A controller alias name. If 
present the controller will be
+   *  published to scope under the `controllerAs` name.
+   *- `template` – `{string=|function()=}` – html template as a string 
or a function that
+   *  returns an html template as a string which should be used by {@link
+   *  ngRoute.directive:ngView ngView} or {@link ng.directive:ngInclude 
ngInclude} directives.
+   *  This property takes precedence over `templateUrl`.
+   *
+   *  If `template` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `templateUrl` – `{string=|function()=}` – path or function that 
returns a path to an html
+   *  template that should be used by {@link ngRoute.directive:ngView 
ngView}.
+   *
+   *  If `templateUrl` is a function, it will be called with the following 
parameters:
+   *
+   *  - `{Array.}` - route parameters extracted from the current
+   *`$location.path()` by applying the current route
+   *
+   *- `resolve` - `{Object.=}` - An optional map of 
dependencies which should
+   *  be injected into the controller. If any of these dependencies are 
promises, the router
+   *  will wait for them all to be resolved or one to be rejected before 
the controller is
+   *  instantiated.
+   *  If all the promises are resolved successfully, the values of the 
resolved promises are
+   *  injected and {@link ngRoute.$route#$routeChangeSuccess 
$routeChangeSuccess} event is
+   *  fired. If any of the promises are rejected the
+   *  {@link 

[15/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/67628f78/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css 
b/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
new file mode 100755
index 000..2dcdc22
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/css/font-awesome.css
@@ -0,0 +1,1801 @@
+/*!
+ *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT 
License)
+ */
+/* FONT PATH
+ * -- */
+@font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix=4.3.0') 
format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') 
format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') 
format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') 
format('truetype'), 
url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') 
format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  transform: translate(0, 0);
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #ee;
+  border-radius: .1em;
+}
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: .3em;
+}
+.fa.pull-right {
+  margin-left: .3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+  0% {
+-webkit-transform: rotate(0deg);
+transform: rotate(0deg);
+  }
+  100% {
+-webkit-transform: rotate(359deg);
+transform: rotate(359deg);
+  }
+}
+@keyframes fa-spin {
+  0% {
+-webkit-transform: rotate(0deg);
+transform: rotate(0deg);
+  }
+  100% {
+-webkit-transform: rotate(359deg);
+transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
+}
+.fa-music:before {
+  content: "\f001";
+}
+.fa-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before {
+  content: "\f004";
+}
+.fa-star:before {
+  content: "\f005";
+}
+.fa-star-o:before {
+  content: "\f006";
+}
+.fa-user:before {
+  content: "\f007";
+}
+.fa-film:before {
+  content: 

[08/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/8e27399c/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
new file mode 100755
index 000..e488352
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular.js
@@ -0,0 +1,26309 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, document, undefined) {'use strict';
+
+/**
+ * @description
+ *
+ * This object provides a utility for producing rich Error messages within
+ * Angular. It can be called as follows:
+ *
+ * var exampleMinErr = minErr('example');
+ * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);
+ *
+ * The above creates an instance of minErr in the example namespace. The
+ * resulting error will have a namespaced error code of example.one.  The
+ * resulting error will replace {0} with the value of foo, and {1} with the
+ * value of bar. The object is not restricted in the number of arguments it can
+ * take.
+ *
+ * If fewer arguments are specified than necessary for interpolation, the extra
+ * interpolation markers will be preserved in the final string.
+ *
+ * Since data will be parsed statically during a build step, some restrictions
+ * are applied with respect to how minErr instances are created and called.
+ * Instances should have names of the form namespaceMinErr for a minErr created
+ * using minErr('namespace') . Error codes, namespaces and template strings
+ * should all be static strings, not variables or general expressions.
+ *
+ * @param {string} module The namespace to use for the new minErr instance.
+ * @param {function} ErrorConstructor Custom error constructor to be 
instantiated when returning
+ *   error from returned function, for cases when a particular type of error 
is useful.
+ * @returns {function(code:string, template:string, ...templateArgs): Error} 
minErr instance
+ */
+
+function minErr(module, ErrorConstructor) {
+  ErrorConstructor = ErrorConstructor || Error;
+  return function() {
+var code = arguments[0],
+  prefix = '[' + (module ? module + ':' : '') + code + '] ',
+  template = arguments[1],
+  templateArgs = arguments,
+
+  message, i;
+
+message = prefix + template.replace(/\{\d+\}/g, function(match) {
+  var index = +match.slice(1, -1), arg;
+
+  if (index + 2 < templateArgs.length) {
+return toDebugString(templateArgs[index + 2]);
+  }
+  return match;
+});
+
+message = message + '\nhttp://errors.angularjs.org/1.3.15/' +
+  (module ? module + '/' : '') + code;
+for (i = 2; i < arguments.length; i++) {
+  message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
+encodeURIComponent(toDebugString(arguments[i]));
+}
+return new ErrorConstructor(message);
+  };
+}
+
+/* We need to tell jshint what variables are being exported */
+/* global angular: true,
+  msie: true,
+  jqLite: true,
+  jQuery: true,
+  slice: true,
+  splice: true,
+  push: true,
+  toString: true,
+  ngMinErr: true,
+  angularModule: true,
+  uid: true,
+  REGEX_STRING_REGEXP: true,
+  VALIDITY_STATE_PROPERTY: true,
+
+  lowercase: true,
+  uppercase: true,
+  manualLowercase: true,
+  manualUppercase: true,
+  nodeName_: true,
+  isArrayLike: true,
+  forEach: true,
+  sortedKeys: true,
+  forEachSorted: true,
+  reverseParams: true,
+  nextUid: true,
+  setHashKey: true,
+  extend: true,
+  int: true,
+  inherit: true,
+  noop: true,
+  identity: true,
+  valueFn: true,
+  isUndefined: true,
+  isDefined: true,
+  isObject: true,
+  isString: true,
+  isNumber: true,
+  isDate: true,
+  isArray: true,
+  isFunction: true,
+  isRegExp: true,
+  isWindow: true,
+  isScope: true,
+  isFile: true,
+  isFormData: true,
+  isBlob: true,
+  isBoolean: true,
+  isPromiseLike: true,
+  trim: true,
+  escapeForRegexp: true,
+  isElement: true,
+  makeMap: true,
+  includes: true,
+  arrayRemove: true,
+  copy: true,
+  shallowCopy: true,
+  equals: true,
+  csp: true,
+  concat: true,
+  sliceArgs: true,
+  bind: true,
+  toJsonReplacer: true,
+  toJson: true,
+  fromJson: true,
+  startingTag: true,
+  tryDecodeURIComponent: true,
+  parseKeyValue: true,
+  toKeyValue: true,
+  encodeUriSegment: true,
+  encodeUriQuery: true,
+  angularInit: true,
+  bootstrap: true,
+  getTestability: true,
+  snake_case: true,
+  bindJQuery: true,
+  assertArg: true,
+  assertArgFn: true,
+  assertNotHasOwnProperty: true,
+  getter: true,
+  getBlockNodes: true,
+  hasOwnProperty: true,
+  createMap: true,
+
+  NODE_TYPE_ELEMENT: true,
+  NODE_TYPE_TEXT: true,
+  NODE_TYPE_COMMENT: true,
+  NODE_TYPE_DOCUMENT: true,
+  NODE_TYPE_DOCUMENT_FRAGMENT: true,
+*/
+
+
+
+/**
+ * @ngdoc module
+ * @name ng
+ * @module ng
+ * 

[09/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
--
diff --git a/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js 
b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
new file mode 100644
index 000..cbf36ff
--- /dev/null
+++ b/phoenix-tracing-webapp/src/main/webapp/js/lib/angular-mocks.js
@@ -0,0 +1,2468 @@
+/**
+ * @license AngularJS v1.3.15
+ * (c) 2010-2014 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+(function(window, angular, undefined) {
+
+'use strict';
+
+/**
+ * @ngdoc object
+ * @name angular.mock
+ * @description
+ *
+ * Namespace from 'angular-mocks.js' which contains testing related code.
+ */
+angular.mock = {};
+
+/**
+ * ! This is a private undocumented service !
+ *
+ * @name $browser
+ *
+ * @description
+ * This service is a mock implementation of {@link ng.$browser}. It provides 
fake
+ * implementation for commonly used browser apis that are hard to test, e.g. 
setTimeout, xhr,
+ * cookies, etc...
+ *
+ * The api of this service is the same as that of the real {@link ng.$browser 
$browser}, except
+ * that there are several helper methods available which can be used in tests.
+ */
+angular.mock.$BrowserProvider = function() {
+  this.$get = function() {
+return new angular.mock.$Browser();
+  };
+};
+
+angular.mock.$Browser = function() {
+  var self = this;
+
+  this.isMock = true;
+  self.$$url = "http://server/;;
+  self.$$lastUrl = self.$$url; // used by url polling fn
+  self.pollFns = [];
+
+  // TODO(vojta): remove this temporary api
+  self.$$completeOutstandingRequest = angular.noop;
+  self.$$incOutstandingRequestCount = angular.noop;
+
+
+  // register url polling fn
+
+  self.onUrlChange = function(listener) {
+self.pollFns.push(
+  function() {
+if (self.$$lastUrl !== self.$$url || self.$$state !== 
self.$$lastState) {
+  self.$$lastUrl = self.$$url;
+  self.$$lastState = self.$$state;
+  listener(self.$$url, self.$$state);
+}
+  }
+);
+
+return listener;
+  };
+
+  self.$$checkUrlChange = angular.noop;
+
+  self.cookieHash = {};
+  self.lastCookieHash = {};
+  self.deferredFns = [];
+  self.deferredNextId = 0;
+
+  self.defer = function(fn, delay) {
+delay = delay || 0;
+self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: 
self.deferredNextId});
+self.deferredFns.sort(function(a, b) { return a.time - b.time;});
+return self.deferredNextId++;
+  };
+
+
+  /**
+   * @name $browser#defer.now
+   *
+   * @description
+   * Current milliseconds mock time.
+   */
+  self.defer.now = 0;
+
+
+  self.defer.cancel = function(deferId) {
+var fnIndex;
+
+angular.forEach(self.deferredFns, function(fn, index) {
+  if (fn.id === deferId) fnIndex = index;
+});
+
+if (fnIndex !== undefined) {
+  self.deferredFns.splice(fnIndex, 1);
+  return true;
+}
+
+return false;
+  };
+
+
+  /**
+   * @name $browser#defer.flush
+   *
+   * @description
+   * Flushes all pending requests and executes the defer callbacks.
+   *
+   * @param {number=} number of milliseconds to flush. See {@link #defer.now}
+   */
+  self.defer.flush = function(delay) {
+if (angular.isDefined(delay)) {
+  self.defer.now += delay;
+} else {
+  if (self.deferredFns.length) {
+self.defer.now = self.deferredFns[self.deferredFns.length - 1].time;
+  } else {
+throw new Error('No deferred tasks to be flushed');
+  }
+}
+
+while (self.deferredFns.length && self.deferredFns[0].time <= 
self.defer.now) {
+  self.deferredFns.shift().fn();
+}
+  };
+
+  self.$$baseHref = '/';
+  self.baseHref = function() {
+return this.$$baseHref;
+  };
+};
+angular.mock.$Browser.prototype = {
+
+/**
+  * @name $browser#poll
+  *
+  * @description
+  * run all fns in pollFns
+  */
+  poll: function poll() {
+angular.forEach(this.pollFns, function(pollFn) {
+  pollFn();
+});
+  },
+
+  addPollFn: function(pollFn) {
+this.pollFns.push(pollFn);
+return pollFn;
+  },
+
+  url: function(url, replace, state) {
+if (angular.isUndefined(state)) {
+  state = null;
+}
+if (url) {
+  this.$$url = url;
+  // Native pushState serializes & copies the object; simulate it.
+  this.$$state = angular.copy(state);
+  return this;
+}
+
+return this.$$url;
+  },
+
+  state: function() {
+return this.$$state;
+  },
+
+  cookies:  function(name, value) {
+if (name) {
+  if (angular.isUndefined(value)) {
+delete this.cookieHash[name];
+  } else {
+if (angular.isString(value) &&   //strings only
+value.length <= 4096) {  //strict cookie storage limits
+  this.cookieHash[name] = value;
+}
+  }
+} else {
+  if (!angular.equals(this.cookieHash, 

[11/18] phoenix git commit: PHOENIX-2187 Creating the front-end application for Phoenix Tracing Web App (Nishani)

2015-09-10 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/f76062c9/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
--
diff --git 
a/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
new file mode 100755
index 000..94fb549
--- /dev/null
+++ 
b/phoenix-tracing-webapp/src/main/webapp/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd; >
+http://www.w3.org/2000/svg;>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.5-HBase-0.98 71da8a021 - c59f47dc5


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/4.5-HBase-0.98
Commit: c59f47dc5a24588b013689fcc6cdf8933b88447e
Parents: 71da8a0
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:50:36 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c59f47dc/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 0339860..75bb4aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.0 55f2d61ea - cdb47f9e4


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/4.x-HBase-1.0
Commit: cdb47f9e485d6c1f26f96d8dcc792543ae3308ac
Parents: 55f2d61
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:40:26 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/cdb47f9e/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 46241c9..56fafd0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/master 274eb42d4 - 209b45e91


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/master
Commit: 209b45e912e8e7202583788f541dc8cd299f7e27
Parents: 274eb42
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:39:24 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/209b45e9/pom.xml
--
diff --git a/pom.xml b/pom.xml
index bda6628..703831a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.5-HBase-1.1 6c8d08e9e - 9b2dc1f36


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/4.5-HBase-1.1
Commit: 9b2dc1f3692e35d996bc9a7a91c982b3c1835e7c
Parents: 6c8d08e
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:50:13 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/9b2dc1f3/pom.xml
--
diff --git a/pom.xml b/pom.xml
index cce0311..83d7010 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 71eb9e656 - 18d34381e


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 18d34381eab924a8edd45c8278afa560128792cf
Parents: 71eb9e6
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:49:23 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/18d34381/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 13e7cb1..e22b526 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



phoenix git commit: PHOENIX-2175 Bump calcite version to 1.3.0-incubating

2015-08-12 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.5-HBase-1.0 381e448d5 - d6d5c758f


PHOENIX-2175 Bump calcite version to 1.3.0-incubating


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

Branch: refs/heads/4.5-HBase-1.0
Commit: d6d5c758f0ae6821aa9eb448df2929059bc0681d
Parents: 381e448
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Aug 12 15:33:18 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Aug 12 15:50:25 2015 -0700

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


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d6d5c758/pom.xml
--
diff --git a/pom.xml b/pom.xml
index 10826f3..4b79bec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,7 +109,7 @@
 collections.version3.2.1/collections.version
 jodatime.version2.7/jodatime.version
 joni.version2.1.2/joni.version
-calcite.version1.2.0-incubating/calcite.version
+calcite.version1.3.0-incubating/calcite.version
 
 !-- Test Dependencies --
 mockito-all.version1.8.5/mockito-all.version



Git Push Summary

2015-07-01 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-1.1 [deleted] 1e2568bd7


[11/31] phoenix git commit: PHOENIX-1964 - porting from master

2015-06-24 Thread ndimiduk
PHOENIX-1964 - porting from master


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c95e28df94241f47d5cfe9a1515b21960c93adf2
Parents: 0e0b4dd
Author: cmarcel cmar...@salesforce.com
Authored: Wed May 27 13:58:45 2015 -0700
Committer: cmarcel cmar...@salesforce.com
Committed: Wed May 27 13:58:45 2015 -0700

--
 phoenix-pherf/config/pherf.properties   |  3 ++
 .../org/apache/phoenix/pherf/DataIngestIT.java  |  3 +-
 .../apache/phoenix/pherf/ResultBaseTestIT.java  | 45 ++
 .../java/org/apache/phoenix/pherf/Pherf.java|  7 +--
 .../apache/phoenix/pherf/PherfConstants.java| 50 +++-
 .../phoenix/pherf/loaddata/DataLoader.java  |  2 +-
 .../apache/phoenix/pherf/result/ResultUtil.java |  4 +-
 .../pherf/result/impl/CSVResultHandler.java |  5 +-
 .../pherf/result/impl/ImageResultHandler.java   |  5 +-
 .../pherf/result/impl/XMLResultHandler.java |  6 ++-
 .../apache/phoenix/pherf/util/ResourceList.java | 26 --
 .../pherf/workload/WorkloadExecutor.java|  2 +-
 .../phoenix/pherf/ConfigurationParserTest.java  |  2 +-
 .../org/apache/phoenix/pherf/ResourceTest.java  |  8 ++--
 .../apache/phoenix/pherf/ResultBaseTest.java| 44 +
 .../org/apache/phoenix/pherf/ResultTest.java|  5 +-
 16 files changed, 168 insertions(+), 49 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/config/pherf.properties
--
diff --git a/phoenix-pherf/config/pherf.properties 
b/phoenix-pherf/config/pherf.properties
index 354707a..1142f9b5 100644
--- a/phoenix-pherf/config/pherf.properties
+++ b/phoenix-pherf/config/pherf.properties
@@ -29,3 +29,6 @@ pherf.default.dataloader.threadpool=0
 # When upserting, this is the max # of rows that will be inserted in a single 
commit
 pherf.default.dataloader.batchsize=1000
 
+# Directory where results from a scenario run will be written
+pherf.default.results.dir=RESULTS
+

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
--
diff --git 
a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java 
b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
index b29656d..2b56f43 100644
--- a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
+++ b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/DataIngestIT.java
@@ -18,7 +18,6 @@
 
 package org.apache.phoenix.pherf;
 
-import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
 import org.apache.phoenix.pherf.configuration.Column;
 import org.apache.phoenix.pherf.configuration.DataTypeMapping;
 import org.apache.phoenix.pherf.configuration.Scenario;
@@ -39,7 +38,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-public class DataIngestIT extends BaseHBaseManagedTimeIT {
+public class DataIngestIT extends ResultBaseTestIT {
 protected static PhoenixUtil util = new PhoenixUtil(true);
 static final String matcherScenario = .*scenario/.*test.*xml;
 static final String matcherSchema = .*datamodel/.*test.*sql;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/c95e28df/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
--
diff --git 
a/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java 
b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
new file mode 100644
index 000..6e103b8
--- /dev/null
+++ b/phoenix-pherf/src/it/java/org/apache/phoenix/pherf/ResultBaseTestIT.java
@@ -0,0 +1,45 @@
+/*
+ * 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 

[26/31] phoenix git commit: PHOENIX-2032 psql.py is broken after PHOENIX-2013

2015-06-24 Thread ndimiduk
PHOENIX-2032 psql.py is broken after PHOENIX-2013


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

Branch: refs/heads/4.x-HBase-1.1
Commit: d0bcb7b2304133031b945d50e01f0f1d5fd023d4
Parents: e64f61b
Author: Nick Dimiduk ndimi...@apache.org
Authored: Fri Jun 12 10:23:05 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Fri Jun 12 17:01:27 2015 -0700

--
 phoenix-assembly/pom.xml  |  4 
 phoenix-assembly/src/build/client.xml | 27 +++
 2 files changed, 23 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/d0bcb7b2/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index d275d03..ebc5d71 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -152,10 +152,6 @@
 /dependency
 dependency
   groupIdorg.apache.phoenix/groupId
-  artifactIdphoenix-spark/artifactId
-/dependency
-dependency
-  groupIdorg.apache.phoenix/groupId
   artifactIdphoenix-server/artifactId
 /dependency
 dependency

http://git-wip-us.apache.org/repos/asf/phoenix/blob/d0bcb7b2/phoenix-assembly/src/build/client.xml
--
diff --git a/phoenix-assembly/src/build/client.xml 
b/phoenix-assembly/src/build/client.xml
index 101ccd6..e99bb19 100644
--- a/phoenix-assembly/src/build/client.xml
+++ b/phoenix-assembly/src/build/client.xml
@@ -53,13 +53,32 @@
 /dependencySet
 
 !-- Make sure we get all the components, not just the minimal client ones 
(e.g.
-  phoenix-flume, phoenix-pig, etc) --
+  phoenix-flume, phoenix-pig, etc). We should exclude phoenix-server and
+  phoenix-server-client in the future, see PHOENIX-2032, PHOENIX-2038 --
 dependencySet
   outputDirectory//outputDirectory
   unpacktrue/unpack
-  includes
-includeorg.apache.phoenix:phoenix-*/include
-  /includes
+  !-- multiple deps provide some variant of LICENSE files/directories. 
These
+   overwrite each other at best, at worst conflict on case-insensitive
+   filesystems like HDFS+ and FAT32. Just exclude them --
+  unpackOptions
+excludes
+  exclude*license*/exclude
+  exclude*LICENSE*/exclude
+  exclude**/license/**/exclude
+  exclude**/LICENSE/**/exclude
+/excludes
+  /unpackOptions
+  !-- this is default, but make intentions clear --
+  useTransitiveDependenciestrue/useTransitiveDependencies
+  !-- When include subelements are present, they define a set of
+   artifact coordinates to include. If none is present, then includes
+   represents all valid values
+   
https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_dependencySet
+   This means bring in all dependencies transitively of the
+   phoenix-assembly module.
+  --
+  includes /
 /dependencySet
   /dependencySets
 /assembly



[12/31] phoenix git commit: PHOENIX-1939 Test are failing with DoNotRetryIOException: ATABLE: null (Alicia Ying Shu)

2015-06-24 Thread ndimiduk
PHOENIX-1939 Test are failing with DoNotRetryIOException: ATABLE: null (Alicia 
Ying Shu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: a600cc4d7acc2c828ae7782e59d094f99e5631f0
Parents: c95e28d
Author: Nick Dimiduk ndimi...@apache.org
Authored: Fri May 29 17:12:25 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Fri May 29 17:13:08 2015 -0700

--
 .../src/main/java/org/apache/phoenix/schema/PTableImpl.java  | 4 ++--
 .../src/test/java/org/apache/phoenix/query/BaseTest.java | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a600cc4d/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java 
b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
index bf4420c..bdc95b8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java
@@ -88,8 +88,8 @@ public class PTableImpl implements PTable {
 
 private PTableKey key;
 private PName name;
-private PName schemaName;
-private PName tableName;
+private PName schemaName = PName.EMPTY_NAME;
+private PName tableName = PName.EMPTY_NAME;
 private PName tenantId;
 private PTableType type;
 private PIndexState state;

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a600cc4d/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
--
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 54ae670..b0574c3 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -121,7 +121,6 @@ import 
org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory;
 import org.apache.hadoop.hbase.ipc.RpcControllerFactory;
 import org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory;
-import org.apache.hadoop.hbase.regionserver.HRegionServer;
 import org.apache.hadoop.hbase.regionserver.LocalIndexMerger;
 import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -829,6 +828,7 @@ public abstract class BaseTest {
 logger.info(Table  + fullTableName +  is already 
deleted.);
 }
 }
+rs.close();
 if (lastTenantId != null) {
 conn.close();
 }
@@ -860,6 +860,7 @@ public abstract class BaseTest {
 logger.info(DROP SEQUENCE STATEMENT: DROP SEQUENCE  + 
SchemaUtil.getEscapedTableName(rs.getString(2), rs.getString(3)));
 conn.createStatement().execute(DROP SEQUENCE  + 
SchemaUtil.getEscapedTableName(rs.getString(2), rs.getString(3)));
 }
+rs.close();
 }
 
 protected static void initSumDoubleValues(byte[][] splits, String url) 
throws Exception {



[18/31] phoenix git commit: PHOENIX-1962 Apply check style to the build

2015-06-24 Thread ndimiduk
PHOENIX-1962 Apply check style to the build


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 29ea503546265a619ce501c477a109b69f940a00
Parents: f2be913
Author: Nick Dimiduk ndimi...@apache.org
Authored: Sat May 9 11:10:54 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Mon Jun 1 12:21:48 2015 -0700

--
 phoenix-assembly/pom.xml|   4 +
 phoenix-core/pom.xml|   4 +
 phoenix-flume/pom.xml   |   4 +
 phoenix-pherf/pom.xml   |   1 +
 phoenix-pig/pom.xml |   4 +
 phoenix-server-client/pom.xml   |   4 +
 phoenix-server/pom.xml  |   4 +
 phoenix-spark/pom.xml   |   1 +
 pom.xml |  23 ++
 src/main/config/checkstyle/checker.xml  | 281 +++
 src/main/config/checkstyle/header.txt   |  16 ++
 src/main/config/checkstyle/suppressions.xml |  46 
 12 files changed, 392 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index 04d9335..d275d03 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -33,6 +33,10 @@
   descriptionAssemble Phoenix artifacts/description
   packagingpom/packaging
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   build
 plugins
   plugin

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 951e969..6302441 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -24,6 +24,10 @@
   urlhttp://www.apache.org/url
   /organization
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   build
 resources
   resource

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-flume/pom.xml
--
diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml
index ea87ab0..c7f0650 100644
--- a/phoenix-flume/pom.xml
+++ b/phoenix-flume/pom.xml
@@ -31,6 +31,10 @@
   artifactIdphoenix-flume/artifactId
   namePhoenix - Flume/name
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   dependencies
dependency
   groupIdorg.apache.phoenix/groupId

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pherf/pom.xml
--
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index e751d73..dd45075 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -30,6 +30,7 @@
 namePhoenix - Pherf/name
 
 properties
+  top.dir${project.basedir}/../top.dir
 /properties
 
 profiles

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 957c06f..55b34d3 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -31,6 +31,10 @@
   artifactIdphoenix-pig/artifactId
   namePhoenix - Pig/name
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   dependencies
 dependency
   groupIdorg.apache.phoenix/groupId

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server-client/pom.xml
--
diff --git a/phoenix-server-client/pom.xml b/phoenix-server-client/pom.xml
index 748e57c..3e54a07 100644
--- a/phoenix-server-client/pom.xml
+++ b/phoenix-server-client/pom.xml
@@ -24,6 +24,10 @@
 urlhttp://www.apache.org/url
   /organization
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   build
 plugins
   plugin

http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server/pom.xml
--
diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml
index ab9a472..86b2525 100644
--- a/phoenix-server/pom.xml
+++ b/phoenix-server/pom.xml
@@ -24,6 +24,10 @@
 urlhttp://www.apache.org/url
   /organization
 
+  properties
+top.dir${project.basedir}/../top.dir
+  /properties
+
   build
 plugins
   plugin


[06/31] phoenix git commit: Changing version to 4.5.0-HBase-1.1-SNAPSHOT

2015-06-24 Thread ndimiduk
Changing version to 4.5.0-HBase-1.1-SNAPSHOT


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 3cdc3230c570ee8c22bb6c1bab975699fd02e94c
Parents: 56e1c0a
Author: Rajeshbabu Chintaguntla rajeshb...@apache.org
Authored: Mon May 25 17:46:18 2015 +0530
Committer: Rajeshbabu Chintaguntla rajeshb...@apache.org
Committed: Mon May 25 17:46:18 2015 +0530

--
 phoenix-assembly/pom.xml  | 2 +-
 phoenix-core/pom.xml  | 2 +-
 phoenix-flume/pom.xml | 2 +-
 phoenix-pherf/pom.xml | 2 +-
 phoenix-pig/pom.xml   | 2 +-
 phoenix-server-client/pom.xml | 2 +-
 phoenix-server/pom.xml| 2 +-
 phoenix-spark/pom.xml | 2 +-
 pom.xml   | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index 8d9a965..04d9335 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -26,7 +26,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
   /parent
   artifactIdphoenix-assembly/artifactId
   namePhoenix Assembly/name

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 22e6b60..951e969 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -4,7 +4,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
   /parent
   artifactIdphoenix-core/artifactId
   namePhoenix Core/name

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-flume/pom.xml
--
diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml
index b2b9a47..ea87ab0 100644
--- a/phoenix-flume/pom.xml
+++ b/phoenix-flume/pom.xml
@@ -26,7 +26,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
   /parent
   artifactIdphoenix-flume/artifactId
   namePhoenix - Flume/name

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-pherf/pom.xml
--
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 0901f71..e751d73 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -22,7 +22,7 @@
 parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
 /parent
 
 artifactIdphoenix-pherf/artifactId

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 015a660..957c06f 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -26,7 +26,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
   /parent
   artifactIdphoenix-pig/artifactId
   namePhoenix - Pig/name

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-server-client/pom.xml
--
diff --git a/phoenix-server-client/pom.xml b/phoenix-server-client/pom.xml
index 4d6fd45..748e57c 100644
--- a/phoenix-server-client/pom.xml
+++ b/phoenix-server-client/pom.xml
@@ -4,7 +4,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+version4.5.0-HBase-1.1-SNAPSHOT/version
   /parent
   artifactIdphoenix-server-client/artifactId
   namePhoenix Query Server Client/name

http://git-wip-us.apache.org/repos/asf/phoenix/blob/3cdc3230/phoenix-server/pom.xml
--
diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml
index 9f6289f..ab9a472 100644
--- a/phoenix-server/pom.xml
+++ b/phoenix-server/pom.xml
@@ -4,7 +4,7 @@
   parent
 groupIdorg.apache.phoenix/groupId
 artifactIdphoenix/artifactId
-version4.4.0-SNAPSHOT/version
+

[02/31] phoenix git commit: PHOENIX-1681 Use the new Region Interface (Andrew Purtell)

2015-06-24 Thread ndimiduk
PHOENIX-1681 Use the new Region Interface (Andrew Purtell)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: ea622d5f7ab5c37d2ecf8be6054e5ed42f36a035
Parents: 98271b8
Author: Enis Soztutar e...@apache.org
Authored: Thu May 21 23:22:54 2015 -0700
Committer: Enis Soztutar e...@apache.org
Committed: Fri May 22 00:30:56 2015 -0700

--
 ...ReplayWithIndexWritesAndCompressedWALIT.java |  4 +-
 .../EndToEndCoveredColumnsIndexBuilderIT.java   |  4 +-
 .../IndexHalfStoreFileReaderGenerator.java  |  9 +-
 .../regionserver/IndexSplitTransaction.java | 65 +-
 .../hbase/regionserver/LocalIndexMerger.java| 16 ++--
 .../hbase/regionserver/LocalIndexSplitter.java  | 11 +--
 .../coprocessor/BaseScannerRegionObserver.java  | 26 +++---
 .../GroupedAggregateRegionObserver.java | 13 +--
 .../coprocessor/MetaDataEndpointImpl.java   | 94 ++--
 .../phoenix/coprocessor/ScanRegionObserver.java | 17 ++--
 .../coprocessor/SequenceRegionObserver.java | 16 ++--
 .../UngroupedAggregateRegionObserver.java   | 29 +++---
 .../hbase/index/covered/data/LocalTable.java|  5 +-
 .../write/ParallelWriterIndexCommitter.java |  8 +-
 .../recovery/PerRegionIndexWriteCache.java  | 10 +--
 .../recovery/StoreFailuresInCachePolicy.java|  4 +-
 .../TrackingParallelWriterIndexCommitter.java   |  8 +-
 .../phoenix/index/PhoenixIndexBuilder.java  |  4 +-
 .../apache/phoenix/index/PhoenixIndexCodec.java | 14 ++-
 .../schema/stats/StatisticsCollector.java   | 14 +--
 .../phoenix/schema/stats/StatisticsScanner.java | 16 ++--
 .../phoenix/schema/stats/StatisticsWriter.java  | 16 ++--
 .../java/org/apache/phoenix/util/IndexUtil.java | 38 
 .../index/covered/TestLocalTableState.java  |  8 +-
 .../index/write/TestWALRecoveryCaching.java | 17 ++--
 .../recovery/TestPerRegionIndexWriteCache.java  |  6 +-
 26 files changed, 230 insertions(+), 242 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
 
b/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
index 3b8ff29..611ba68 100644
--- 
a/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/hadoop/hbase/regionserver/wal/WALReplayWithIndexWritesAndCompressedWALIT.java
@@ -159,7 +159,7 @@ public class WALReplayWithIndexWritesAndCompressedWALIT {
   }
 
   /**
-   * Test writing edits into an HRegion, closing it, splitting logs, opening 
Region again. Verify
+   * Test writing edits into an region, closing it, splitting logs, opening 
Region again. Verify
* seqids.
* @throws Exception on failure
*/
@@ -183,7 +183,7 @@ public class WALReplayWithIndexWritesAndCompressedWALIT {
 builder.build(htd);
 
 // create the region + its WAL
-HRegion region0 = HRegion.createHRegion(hri, hbaseRootDir, this.conf, htd);
+HRegion region0 = HRegion.createHRegion(hri, hbaseRootDir, this.conf, 
htd); // FIXME: Uses private type
 region0.close();
 region0.getWAL().close();
 

http://git-wip-us.apache.org/repos/asf/phoenix/blob/ea622d5f/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
index d90733f..6b2309e 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/hbase/index/covered/EndToEndCoveredColumnsIndexBuilderIT.java
@@ -41,7 +41,7 @@ import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HTable;
 import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.regionserver.HRegion;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.phoenix.util.EnvironmentEdge;
 import 

[04/31] phoenix git commit: PHOENIX-1763 Support building with HBase-1.1.0

2015-06-24 Thread ndimiduk
PHOENIX-1763 Support building with HBase-1.1.0


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 98271b888c113f10e174205434e05d3b36b7eb67
Parents: bf01eb2
Author: Enis Soztutar e...@apache.org
Authored: Thu May 21 23:08:26 2015 -0700
Committer: Enis Soztutar e...@apache.org
Committed: Fri May 22 00:30:56 2015 -0700

--
 phoenix-core/pom.xml| 17 +++--
 .../regionserver/IndexHalfStoreFileReader.java  | 31 ++--
 .../regionserver/IndexSplitTransaction.java | 39 --
 .../hbase/regionserver/LocalIndexMerger.java|  3 +-
 .../cache/aggcache/SpillableGroupByCache.java   | 13 +++-
 .../phoenix/coprocessor/BaseRegionScanner.java  | 12 +--
 .../coprocessor/BaseScannerRegionObserver.java  | 77 +++-
 .../coprocessor/DelegateRegionScanner.java  | 23 --
 .../GroupedAggregateRegionObserver.java | 53 --
 .../coprocessor/HashJoinRegionScanner.java  | 60 ---
 .../coprocessor/MetaDataRegionObserver.java | 23 +++---
 .../phoenix/coprocessor/ScanRegionObserver.java | 11 ++-
 .../UngroupedAggregateRegionObserver.java   | 55 +++---
 .../hbase/index/covered/data/LocalTable.java|  2 +-
 .../index/covered/filter/FamilyOnlyFilter.java  |  6 +-
 .../index/scanner/FilteredKeyValueScanner.java  |  2 +-
 .../phoenix/index/PhoenixIndexBuilder.java  |  6 +-
 .../iterate/RegionScannerResultIterator.java|  9 ++-
 .../phoenix/schema/stats/StatisticsScanner.java | 10 ++-
 .../hbase/ipc/PhoenixIndexRpcSchedulerTest.java |  6 +-
 .../index/covered/TestLocalTableState.java  |  1 -
 .../covered/filter/TestFamilyOnlyFilter.java| 12 +--
 .../index/write/TestWALRecoveryCaching.java |  4 +-
 phoenix-flume/pom.xml   |  9 ---
 phoenix-pig/pom.xml | 31 +---
 phoenix-spark/pom.xml   |  7 ++
 pom.xml | 41 ++-
 27 files changed, 361 insertions(+), 202 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-core/pom.xml
--
diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 45b8d73..22e6b60 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -350,16 +350,25 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-it/artifactId
-  version${hbase.version}/version
   typetest-jar/type
   scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
+  artifactIdhbase-annotations/artifactId
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
   artifactIdhbase-common/artifactId
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
+  artifactIdhbase-common/artifactId
+  scopetest/scope
+  typetest-jar/type
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
   artifactIdhbase-protocol/artifactId
 /dependency
 dependency
@@ -369,18 +378,16 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-server/artifactId
-  version${hbase.version}/version
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-server/artifactId
-  version${hbase.version}/version
   typetest-jar/type
+  scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop-compat/artifactId
-  scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
@@ -391,13 +398,11 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop2-compat/artifactId
-  version${hbase.version}/version
   scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop2-compat/artifactId
-  version${hbase.version}/version
   typetest-jar/type
   scopetest/scope
 /dependency

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
 
b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/IndexHalfStoreFileReader.java
index 49e2022..9befc8c 100644
--- 

phoenix git commit: PHOENIX-1975 Detect and use HBASE_HOME when set

2015-06-24 Thread ndimiduk
Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 8e309c2b4 - 65361f357


PHOENIX-1975 Detect and use HBASE_HOME when set


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

Branch: refs/heads/4.x-HBase-0.98
Commit: 65361f357ff46bcad581b981b012053f7e39a5cd
Parents: 8e309c2
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Jun 24 13:59:00 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Jun 24 13:59:47 2015 -0700

--
 bin/phoenix_utils.py | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/65361f35/bin/phoenix_utils.py
--
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index 383e0e1..bfb4737 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -65,7 +65,15 @@ def setPath():
 phoenix_class_path = os.getenv('PHOENIX_CLASS_PATH','')
 
 global hbase_conf_dir
-hbase_conf_dir = os.getenv('HBASE_CONF_DIR', os.getenv('HBASE_CONF_PATH', 
'.'))
+# if HBASE_CONF_DIR set explicitly, use that
+hbase_conf_dir = os.getenv('HBASE_CONF_DIR', os.getenv('HBASE_CONF_PATH'))
+if not hbase_conf_dir:
+# else fall back to HBASE_HOME
+if os.getenv('HBASE_HOME'):
+hbase_conf_dir = os.path.join(os.getenv('HBASE_HOME'), conf)
+else:
+# default to pwd
+hbase_conf_dir = '.'
 global hbase_conf_path # keep conf_path around for backward compatibility
 hbase_conf_path = hbase_conf_dir
 



[13/31] phoenix git commit: PHOENIX-2010 Properly validate number of arguments passed to the functions in FunctionParseNode#validate(Rajeshbabu)

2015-06-24 Thread ndimiduk
PHOENIX-2010 Properly validate number of arguments passed to the functions in 
FunctionParseNode#validate(Rajeshbabu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: b2c0cb9002ee881f21d968817c386a98d39074ca
Parents: a600cc4
Author: Rajeshbabu Chintaguntla rajeshb...@apache.org
Authored: Sun May 31 07:40:39 2015 +0530
Committer: Rajeshbabu Chintaguntla rajeshb...@apache.org
Committed: Sun May 31 07:40:39 2015 +0530

--
 .../phoenix/end2end/UserDefinedFunctionsIT.java   | 14 ++
 .../org/apache/phoenix/parse/FunctionParseNode.java   |  4 
 .../main/java/org/apache/phoenix/parse/PFunction.java |  4 +---
 3 files changed, 19 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/b2c0cb90/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
index 7dbde3c..868e19d 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UserDefinedFunctionsIT.java
@@ -442,6 +442,20 @@ public class UserDefinedFunctionsIT extends 
BaseOwnClusterIT{
 rs = stmt.executeQuery(select k from t9 where mysum9(k)=11);
 assertTrue(rs.next());
 assertEquals(1, rs.getInt(1));
+try {
+rs = stmt.executeQuery(select k from t9 where 
mysum9(k,10,'x')=11);
+fail(FunctionNotFoundException should be thrown);
+} catch(FunctionNotFoundException e) {
+} catch(Exception e) {
+fail(FunctionNotFoundException should be thrown);
+}
+try {
+rs = stmt.executeQuery(select mysum9() from t9);
+fail(FunctionNotFoundException should be thrown);
+} catch(FunctionNotFoundException e) {
+} catch(Exception e) {
+fail(FunctionNotFoundException should be thrown);
+}
 stmt.execute(drop function mysum9);
 try {
 rs = stmt.executeQuery(select k from t9 where mysum9(k)=11);

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b2c0cb90/phoenix-core/src/main/java/org/apache/phoenix/parse/FunctionParseNode.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/parse/FunctionParseNode.java 
b/phoenix-core/src/main/java/org/apache/phoenix/parse/FunctionParseNode.java
index d1001ee..be52d89 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/FunctionParseNode.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/FunctionParseNode.java
@@ -41,6 +41,7 @@ import 
org.apache.phoenix.expression.function.FunctionExpression;
 import org.apache.phoenix.expression.function.UDFExpression;
 import org.apache.phoenix.parse.PFunction.FunctionArgument;
 import org.apache.phoenix.schema.ArgumentTypeMismatchException;
+import org.apache.phoenix.schema.FunctionNotFoundException;
 import org.apache.phoenix.schema.ValueRangeExcpetion;
 import org.apache.phoenix.schema.types.PDataType;
 import org.apache.phoenix.schema.types.PDataTypeFactory;
@@ -133,6 +134,9 @@ public class FunctionParseNode extends CompoundParseNode {
 public ListExpression validate(ListExpression children, 
StatementContext context) throws SQLException {
 BuiltInFunctionInfo info = this.getInfo();
 BuiltInFunctionArgInfo[] args = info.getArgs();
+if (args.length  children.size() || info.getRequiredArgCount()  
children.size()) {
+throw new FunctionNotFoundException(this.name);
+}
 if (args.length  children.size()) {
 ListExpression moreChildren = new 
ArrayListExpression(children);
 for (int i = children.size(); i  info.getArgs().length; i++) {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/b2c0cb90/phoenix-core/src/main/java/org/apache/phoenix/parse/PFunction.java
--
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/parse/PFunction.java 
b/phoenix-core/src/main/java/org/apache/phoenix/parse/PFunction.java
index 351bec7..aeed3ac 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/parse/PFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/parse/PFunction.java
@@ -96,9 +96,7 @@ public class PFunction implements PMetaDataEntity {
 }
 
 public 

[27/31] phoenix git commit: PHOENIX-2040 Mark spark/scala dependencies as 'provided' (Josh Mahonin)

2015-06-24 Thread ndimiduk
PHOENIX-2040 Mark spark/scala dependencies as 'provided' (Josh Mahonin)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 43c722ca6d2d55347d1f2caf7641ce03339e1e1e
Parents: d0bcb7b
Author: Nick Dimiduk ndimi...@apache.org
Authored: Mon Jun 15 16:16:03 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Mon Jun 15 16:16:30 2015 -0700

--
 phoenix-assembly/pom.xml |  4 
 phoenix-spark/pom.xml| 51 ---
 2 files changed, 32 insertions(+), 23 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/43c722ca/phoenix-assembly/pom.xml
--
diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml
index ebc5d71..d275d03 100644
--- a/phoenix-assembly/pom.xml
+++ b/phoenix-assembly/pom.xml
@@ -152,6 +152,10 @@
 /dependency
 dependency
   groupIdorg.apache.phoenix/groupId
+  artifactIdphoenix-spark/artifactId
+/dependency
+dependency
+  groupIdorg.apache.phoenix/groupId
   artifactIdphoenix-server/artifactId
 /dependency
 dependency

http://git-wip-us.apache.org/repos/asf/phoenix/blob/43c722ca/phoenix-spark/pom.xml
--
diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml
index 1747573..aea5c7e 100644
--- a/phoenix-spark/pom.xml
+++ b/phoenix-spark/pom.xml
@@ -45,12 +45,7 @@
   groupIdorg.apache.phoenix/groupId
   artifactIdphoenix-core/artifactId
 /dependency
-dependency
-  groupIdorg.apache.phoenix/groupId
-  artifactIdphoenix-core/artifactId
-  classifiertests/classifier
-  scopetest/scope
-/dependency
+
 !-- Force import of Spark's servlet API for unit tests --
 dependency
   groupIdjavax.servlet/groupId
@@ -59,16 +54,38 @@
   scopetest/scope
 /dependency
 
+!-- Mark Spark / Scala as provided --
 dependency
-  groupIdjunit/groupId
-  artifactIdjunit/artifactId
+  groupIdorg.scala-lang/groupId
+  artifactIdscala-library/artifactId
+  version${scala.version}/version
+  scopeprovided/scope
+/dependency
+dependency
+  groupIdorg.apache.spark/groupId
+  artifactIdspark-core_${scala.binary.version}/artifactId
+  version${spark.version}/version
+  scopeprovided/scope
+/dependency
+dependency
+  groupIdorg.apache.spark/groupId
+  artifactIdspark-sql_${scala.binary.version}/artifactId
+  version${spark.version}/version
+  scopeprovided/scope
+/dependency
+
+!-- Test dependencies --
+dependency
+  groupIdorg.apache.phoenix/groupId
+  artifactIdphoenix-core/artifactId
+  classifiertests/classifier
   scopetest/scope
 /dependency
 
 dependency
-  groupIdorg.scala-lang/groupId
-  artifactIdscala-library/artifactId
-  version${scala.version}/version
+  groupIdjunit/groupId
+  artifactIdjunit/artifactId
+  scopetest/scope
 /dependency
 
 dependency
@@ -86,18 +103,6 @@
 /dependency
 
 dependency
-  groupIdorg.apache.spark/groupId
-  artifactIdspark-core_${scala.binary.version}/artifactId
-  version${spark.version}/version
-/dependency
-
-dependency
-  groupIdorg.apache.spark/groupId
-  artifactIdspark-sql_${scala.binary.version}/artifactId
-  version${spark.version}/version
-/dependency
-
-dependency
   groupIdorg.apache.hadoop/groupId
   artifactIdhadoop-client/artifactId
   version${hadoop-two.version}/version



[31/31] phoenix git commit: PHOENIX-1975 Detect and use HBASE_HOME when set

2015-06-24 Thread ndimiduk
PHOENIX-1975 Detect and use HBASE_HOME when set


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 980d29c5acf785dc90ece1a7f047711e8d522a2e
Parents: 05b1b8b
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Jun 24 13:59:00 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Jun 24 13:59:28 2015 -0700

--
 bin/phoenix_utils.py | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/980d29c5/bin/phoenix_utils.py
--
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index 383e0e1..bfb4737 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -65,7 +65,15 @@ def setPath():
 phoenix_class_path = os.getenv('PHOENIX_CLASS_PATH','')
 
 global hbase_conf_dir
-hbase_conf_dir = os.getenv('HBASE_CONF_DIR', os.getenv('HBASE_CONF_PATH', 
'.'))
+# if HBASE_CONF_DIR set explicitly, use that
+hbase_conf_dir = os.getenv('HBASE_CONF_DIR', os.getenv('HBASE_CONF_PATH'))
+if not hbase_conf_dir:
+# else fall back to HBASE_HOME
+if os.getenv('HBASE_HOME'):
+hbase_conf_dir = os.path.join(os.getenv('HBASE_HOME'), conf)
+else:
+# default to pwd
+hbase_conf_dir = '.'
 global hbase_conf_path # keep conf_path around for backward compatibility
 hbase_conf_path = hbase_conf_dir
 



[29/31] phoenix git commit: PHOENIX-1941 Phoenix tests are failing in linux env with missing class: StaticMapping (Alicia Ying Shu)

2015-06-24 Thread ndimiduk
PHOENIX-1941 Phoenix tests are failing in linux env with missing class: 
StaticMapping (Alicia Ying Shu)


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 329d74948521ed974593e455369a27d9cd705249
Parents: 52f5b04
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed Jun 17 12:17:33 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed Jun 17 12:23:47 2015 -0700

--
 .../phoenix/end2end/End2EndTestDriver.java   | 19 +++
 1 file changed, 15 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/329d7494/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
--
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
index 26d18cf..743f729 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/End2EndTestDriver.java
@@ -21,6 +21,7 @@ package org.apache.phoenix.end2end;
 
 import java.io.IOException;
 import java.io.PrintStream;
+import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -79,10 +80,20 @@ public class End2EndTestDriver extends AbstractHBaseTool {
 
   @Override
   public boolean isCandidateClass(Class? c) {
-return testFilterRe.matcher(c.getName()).find() 
-  // Our pattern will match the below NON-IntegrationTest. Rather than
-  // do exotic regex, just filter it out here
-  super.isCandidateClass(c);
+  Annotation[] annotations = c.getAnnotations();
+  for (Annotation curAnnotation : annotations) {
+  if 
(curAnnotation.toString().contains(NeedsOwnMiniClusterTest)) {
+  /* Skip tests that aren't designed to run against a live 
cluster.
+   * For a live cluster, we cannot bring it up and down as 
required
+   * for these tests to run.
+   */
+  return false;
+  }
+  }
+  return testFilterRe.matcher(c.getName()).find() 
+  // Our pattern will match the below NON-IntegrationTest. 
Rather than
+  // do exotic regex, just filter it out here
+  super.isCandidateClass(c);
   }
 }
 



[07/31] phoenix git commit: PHOENIX-2005 Connection utilities omit zk client port, parent znode

2015-06-24 Thread ndimiduk
PHOENIX-2005 Connection utilities omit zk client port, parent znode


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

Branch: refs/heads/4.x-HBase-1.1
Commit: c6b37b979da1b514bcb9257c7e095e39b0c2c215
Parents: 3cdc323
Author: Nick Dimiduk ndimi...@apache.org
Authored: Tue May 26 11:11:48 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Tue May 26 13:27:03 2015 -0700

--
 .../phoenix/jdbc/PhoenixEmbeddedDriver.java | 28 --
 .../phoenix/mapreduce/CsvBulkLoadTool.java  | 93 ++--
 .../phoenix/mapreduce/CsvToKeyValueMapper.java  | 26 +-
 .../query/ConnectionQueryServicesImpl.java  |  4 +-
 .../java/org/apache/phoenix/util/QueryUtil.java | 45 --
 .../phoenix/jdbc/PhoenixEmbeddedDriverTest.java | 14 ++-
 .../phoenix/mapreduce/CsvBulkLoadToolTest.java  | 11 ---
 .../mapreduce/CsvToKeyValueMapperTest.java  | 15 
 .../org/apache/phoenix/util/QueryUtilTest.java  | 33 ---
 9 files changed, 139 insertions(+), 130 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/c6b37b97/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
--
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
index 9e95667..2451603 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
@@ -31,6 +31,7 @@ import java.util.logging.Logger;
 
 import javax.annotation.concurrent.Immutable;
 
+import org.apache.hadoop.hbase.HConstants;
 import org.apache.phoenix.coprocessor.MetaDataProtocol;
 import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.exception.SQLExceptionInfo;
@@ -174,10 +175,10 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 }
 
 /**
- * 
+ *
  * Class to encapsulate connection info for HBase
  *
- * 
+ *
  * @since 0.1.1
  */
 public static class ConnectionInfo {
@@ -204,12 +205,18 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 return false;
 }
 
-protected static ConnectionInfo create(String url) throws SQLException 
{
-StringTokenizer tokenizer = new StringTokenizer(url == null ?  : 
url.substring(PhoenixRuntime.JDBC_PROTOCOL.length()),DELIMITERS, true);
+public static ConnectionInfo create(String url) throws SQLException {
+url = url == null ?  : url;
+url = url.startsWith(PhoenixRuntime.JDBC_PROTOCOL)
+? url.substring(PhoenixRuntime.JDBC_PROTOCOL.length())
+: url;
+StringTokenizer tokenizer = new StringTokenizer(url, DELIMITERS, 
true);
 int nTokens = 0;
 String[] tokens = new String[5];
 String token = null;
-while (tokenizer.hasMoreTokens()  
!(token=tokenizer.nextToken()).equals(TERMINATOR)  tokenizer.hasMoreTokens() 
 nTokens  tokens.length) {
+while (tokenizer.hasMoreTokens() 
+!(token=tokenizer.nextToken()).equals(TERMINATOR) 
+tokenizer.hasMoreTokens()  nTokens  tokens.length) {
 token = tokenizer.nextToken();
 // This would mean we have an empty string for a token which 
is illegal
 if (DELIMITERS.contains(token)) {
@@ -316,8 +323,7 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 private final String principal;
 private final String keytab;
 
-// used for testing
-ConnectionInfo(String zookeeperQuorum, Integer port, String rootNode, 
String principal, String keytab) {
+public ConnectionInfo(String zookeeperQuorum, Integer port, String 
rootNode, String principal, String keytab) {
 this.zookeeperQuorum = zookeeperQuorum;
 this.port = port;
 this.rootNode = rootNode;
@@ -326,8 +332,7 @@ public abstract class PhoenixEmbeddedDriver implements 
Driver, org.apache.phoeni
 this.keytab = keytab;
 }
 
-// used for testing
-ConnectionInfo(String zookeeperQuorum, Integer port, String rootNode) {
+public ConnectionInfo(String zookeeperQuorum, Integer port, String 
rootNode) {
this(zookeeperQuorum, port, rootNode, null, null);
 }
 
@@ -417,6 +422,11 @@ 

[03/31] phoenix git commit: PHOENIX-1763 Support building with HBase-1.1.0

2015-06-24 Thread ndimiduk
http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-pig/pom.xml
--
diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml
index 2db1af6..015a660 100644
--- a/phoenix-pig/pom.xml
+++ b/phoenix-pig/pom.xml
@@ -54,7 +54,6 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-testing-util/artifactId
-  version${hbase.version}/version
   scopetest/scope
   optionaltrue/optional
   exclusions
@@ -67,7 +66,6 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-it/artifactId
-  version${hbase.version}/version
   typetest-jar/type
   scopetest/scope
   exclusions
@@ -80,41 +78,56 @@
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-common/artifactId
-  version${hbase.version}/version
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
+  artifactIdhbase-common/artifactId
+  scopetest/scope
+  typetest-jar/type
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-protocol/artifactId
-  version${hbase.version}/version
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-client/artifactId
-  version${hbase.version}/version
+/dependency
+   dependency
+  groupIdorg.apache.hbase/groupId
+  artifactIdhbase-server/artifactId
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
+  artifactIdhbase-server/artifactId
+  typetest-jar/type
+  scopetest/scope
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
+  artifactIdhbase-client/artifactId
+  typetest-jar/type
+  scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop-compat/artifactId
-  version${hbase.version}/version
   scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop-compat/artifactId
-  version${hbase.version}/version
   typetest-jar/type
   scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop2-compat/artifactId
-  version${hbase.version}/version
   scopetest/scope
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
   artifactIdhbase-hadoop2-compat/artifactId
-  version${hbase.version}/version
   typetest-jar/type
   scopetest/scope
 /dependency

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/phoenix-spark/pom.xml
--
diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml
index adeed88..a232cf4 100644
--- a/phoenix-spark/pom.xml
+++ b/phoenix-spark/pom.xml
@@ -460,6 +460,13 @@
 /dependency
 dependency
   groupIdorg.apache.hbase/groupId
+  artifactIdhbase-server/artifactId
+  version${hbase.version}/version
+  scopetest/scope
+  typetest-jar/type
+/dependency
+dependency
+  groupIdorg.apache.hbase/groupId
   artifactIdhbase-it/artifactId
   version${hbase.version}/version
   typetest-jar/type

http://git-wip-us.apache.org/repos/asf/phoenix/blob/98271b88/pom.xml
--
diff --git a/pom.xml b/pom.xml
index d310c37..4361e54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
 test.output.tofiletrue/test.output.tofile
 
 !-- Hadoop Versions --
-hbase.version1.0.1/hbase.version
+hbase.version1.1.0/hbase.version
 hadoop-two.version2.5.1/hadoop-two.version
 
 !-- Dependency versions --
@@ -452,6 +452,11 @@
   !-- HBase dependencies --
   dependency
 groupIdorg.apache.hbase/groupId
+artifactIdhbase-annotations/artifactId
+version${hbase.version}/version
+  /dependency
+  dependency
+groupIdorg.apache.hbase/groupId
 artifactIdhbase-testing-util/artifactId
 version${hbase.version}/version
 scopetest/scope
@@ -488,13 +493,34 @@
   /dependency
   dependency
 groupIdorg.apache.hbase/groupId
+artifactIdhbase-common/artifactId
+version${hbase.version}/version
+typetest-jar/type
+scopetest/scope
+  /dependency
+  dependency
+groupIdorg.apache.hbase/groupId
 artifactIdhbase-client/artifactId
 version${hbase.version}/version
   /dependency
   dependency
 groupIdorg.apache.hbase/groupId
+artifactIdhbase-client/artifactId
+version${hbase.version}/version
+typetest-jar/type
+scopetest/scope
+  /dependency
+  dependency
+groupIdorg.apache.hbase/groupId
+artifactIdhbase-server/artifactId
+version${hbase.version}/version
+  /dependency
+  dependency
+

[10/31] phoenix git commit: PHOENIX-2013 Apply PHOENIX-1995 to runnable uberjar as well

2015-06-24 Thread ndimiduk
PHOENIX-2013 Apply PHOENIX-1995 to runnable uberjar as well


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

Branch: refs/heads/4.x-HBase-1.1
Commit: 0e0b4ddb4d130b38c7aa28d2e31b0a9552087256
Parents: 1a2f2dc
Author: Nick Dimiduk ndimi...@apache.org
Authored: Wed May 27 11:27:04 2015 -0700
Committer: Nick Dimiduk ndimi...@apache.org
Committed: Wed May 27 13:20:32 2015 -0700

--
 phoenix-server/src/build/query-server-runnable.xml | 9 +
 1 file changed, 9 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0e0b4ddb/phoenix-server/src/build/query-server-runnable.xml
--
diff --git a/phoenix-server/src/build/query-server-runnable.xml 
b/phoenix-server/src/build/query-server-runnable.xml
index e2a3dc4..ef22b14 100644
--- a/phoenix-server/src/build/query-server-runnable.xml
+++ b/phoenix-server/src/build/query-server-runnable.xml
@@ -28,6 +28,15 @@
 formatjar/format
   /formats
   includeBaseDirectoryfalse/includeBaseDirectory
+  containerDescriptorHandlers
+containerDescriptorHandler
+  !--
+  aggregate SPI's so that things like HDFS FileSystem works in uberjar
+  http://docs.oracle.com/javase/tutorial/sound/SPI-intro.html
+  --
+  handlerNamemetaInf-services/handlerName
+/containerDescriptorHandler
+  /containerDescriptorHandlers
   dependencySets
 dependencySet
   outputDirectory//outputDirectory



  1   2   3   >