[2/2] phoenix git commit: PHOENIX-2610 Allow passing PHOENIX_OPTS to command line utils
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 DimidukAuthored: 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
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 DimidukAuthored: 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)
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 ElserAuthored: 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
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 ElserAuthored: 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
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 ElserAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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
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
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
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
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
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.
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 ElserAuthored: 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.
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 ElserAuthored: 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.
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 ElserAuthored: 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
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 DimidukAuthored: 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
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 DimidukAuthored: 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.
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 ElserAuthored: 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.
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 ElserAuthored: 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.
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 ElserAuthored: 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/
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
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/
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)
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)
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)
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)
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)
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)
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)
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)
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)
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: ayolajayamahaAuthored: 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)
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: ayolajayamahaAuthored: 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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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: ayolajayamahaAuthored: 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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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: ayolajayamahaAuthored: 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)
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)
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)
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: ayolajayamahaAuthored: 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)
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)
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)
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)
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)
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)
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)
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
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
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
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
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
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
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
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.1 [deleted] 1e2568bd7
[11/31] phoenix git commit: PHOENIX-1964 - porting from master
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
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)
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
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
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)
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
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
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)
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)
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
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)
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
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
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
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