You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by jh...@apache.org on 2014/10/15 11:17:20 UTC
[50/50] [abbrv] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tajo into block_iteration
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into block_iteration
Conflicts:
tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPreLogicalPlanVerifier.java
tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
tajo-storage/src/main/java/org/apache/tajo/storage/TupleComparator.java
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/5eb7ee1f
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/5eb7ee1f
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/5eb7ee1f
Branch: refs/heads/block_iteration
Commit: 5eb7ee1fdb2957f0cbd154c6f7f62abde1342633
Parents: 1aca240 8bc4582
Author: jhkim <jh...@apache.org>
Authored: Wed Oct 15 18:09:47 2014 +0900
Committer: jhkim <jh...@apache.org>
Committed: Wed Oct 15 18:09:47 2014 +0900
----------------------------------------------------------------------
CHANGES | 69 ++-
pom.xml | 24 +-
tajo-algebra/pom.xml | 7 +-
tajo-catalog/pom.xml | 8 +-
tajo-catalog/tajo-catalog-client/pom.xml | 6 +-
tajo-catalog/tajo-catalog-common/pom.xml | 6 +-
.../org/apache/tajo/catalog/AlterTableDesc.java | 14 +-
.../apache/tajo/catalog/CatalogConstants.java | 2 +
.../java/org/apache/tajo/catalog/IndexDesc.java | 7 +-
.../java/org/apache/tajo/catalog/TableDesc.java | 7 +-
.../catalog/partition/PartitionMethodDesc.java | 8 -
.../tajo/catalog/statistics/ColumnStats.java | 8 +-
tajo-catalog/tajo-catalog-drivers/pom.xml | 6 +-
.../tajo-catalog-drivers/tajo-hcatalog/pom.xml | 2 +-
tajo-catalog/tajo-catalog-server/pom.xml | 8 +-
tajo-client/pom.xml | 7 +-
.../tajo/cli/DefaultTajoCliOutputFormatter.java | 34 +-
.../org/apache/tajo/cli/DescTableCommand.java | 6 +-
.../main/java/org/apache/tajo/cli/TajoCli.java | 107 +++--
.../java/org/apache/tajo/client/TajoAdmin.java | 40 +-
.../java/org/apache/tajo/client/TajoClient.java | 5 +-
.../apache/tajo/jdbc/TajoResultSetMetaData.java | 8 +-
tajo-common/pom.xml | 8 +-
.../main/java/org/apache/tajo/SessionVars.java | 2 +
.../apache/tajo/common/type/TajoTypeUtil.java | 183 +++++++
.../java/org/apache/tajo/conf/TajoConf.java | 4 +-
.../tajo/util/datetime/DateTimeFormat.java | 182 ++++---
tajo-core/pom.xml | 5 +-
.../eval/AggregationFunctionCallEval.java | 38 +-
.../tajo/engine/eval/SimpleEvalNodeVisitor.java | 3 +
.../optimizer/eval/EvalTreeOptimizer.java | 2 +
.../engine/planner/LogicalPlanPreprocessor.java | 69 +--
.../engine/planner/LogicalPlanVerifier.java | 14 +
.../engine/planner/PhysicalPlannerImpl.java | 57 ++-
.../apache/tajo/engine/planner/PlannerUtil.java | 9 +-
.../tajo/engine/planner/TypeDeterminant.java | 17 +
.../tajo/engine/planner/enforce/Enforcer.java | 13 +
.../engine/planner/global/GlobalPlanner.java | 58 +--
.../global/builder/DistinctGroupbyBuilder.java | 329 ++++++++++++-
.../planner/logical/DistinctGroupbyNode.java | 52 +-
.../engine/planner/logical/EvalExprNode.java | 2 +
.../logical/PartitionedTableScanNode.java | 4 +
.../tajo/engine/planner/logical/ScanNode.java | 30 +-
.../DistinctGroupbyFirstAggregationExec.java | 476 +++++++++++++++++++
.../DistinctGroupbySecondAggregationExec.java | 295 ++++++++++++
.../DistinctGroupbyThirdAggregationExec.java | 304 ++++++++++++
.../org/apache/tajo/master/GlobalEngine.java | 15 +-
.../java/org/apache/tajo/master/TajoMaster.java | 16 +-
.../apache/tajo/master/querymaster/Query.java | 137 +++++-
.../tajo/master/querymaster/QueryUnit.java | 12 +-
.../tajo/master/querymaster/Repartitioner.java | 79 ++-
.../tajo/master/querymaster/SubQuery.java | 48 +-
.../org/apache/tajo/util/JvmPauseMonitor.java | 221 +++++++++
.../java/org/apache/tajo/worker/FetchImpl.java | 16 +-
.../java/org/apache/tajo/worker/TajoWorker.java | 16 +-
.../src/main/proto/TajoWorkerProtocol.proto | 8 +
.../java/org/apache/tajo/QueryTestCaseBase.java | 91 +++-
.../planner/TestPreLogicalPlanVerifier.java | 74 ---
.../engine/planner/TestQueryValidation.java | 52 ++
.../tajo/engine/query/TestGroupByQuery.java | 60 ++-
.../tajo/engine/query/TestJoinBroadcast.java | 195 ++++++++
.../tajo/engine/query/TestTablePartitions.java | 53 ++-
.../tajo/jdbc/TestTajoDatabaseMetaData.java | 111 ++++-
.../apache/tajo/master/TestRepartitioner.java | 85 ++++
.../org/apache/tajo/worker/TestHistory.java | 9 +-
.../testDistinctAggregation8.sql | 9 +
.../testDistinctAggregation_case10.sql | 5 +
.../testDistinctAggregation_case9.sql | 11 +
...tMultipleBroadcastDataFileWithZeroLength.sql | 3 +
...MultipleBroadcastDataFileWithZeroLength2.sql | 5 +
...rtitionedBroadcastDataFileWithZeroLength.sql | 3 +
...titionedBroadcastDataFileWithZeroLength2.sql | 5 +
.../TestQueryValidation/error_groupby_1.sql | 1 +
.../TestQueryValidation/error_groupby_2.sql | 1 +
.../TestQueryValidation/invalid_casewhen_1.sql | 15 +
.../TestQueryValidation/invalid_limit_1.sql | 1 +
.../TestQueryValidation/valid_groupby_1.sql | 1 +
.../TestQueryValidation/valid_limit_1.sql | 1 +
.../testDistinctAggregation8.result | 7 +
.../testDistinctAggregation_case10.result | 3 +
.../testDistinctAggregation_case9.result | 6 +
...castMultiColumnPartitionTableInFilter.result | 0
...ltipleBroadcastDataFileWithZeroLength.result | 2 +
...tipleBroadcastDataFileWithZeroLength2.result | 399 ++++++++++++++++
...tionedBroadcastDataFileWithZeroLength.result | 102 ++++
...ionedBroadcastDataFileWithZeroLength2.result | 399 ++++++++++++++++
.../TestTajoCli/testHelpSessionVars.result | 1 +
tajo-dist/pom.xml | 12 +-
tajo-dist/src/main/bin/tajo | 2 +-
tajo-docs/src/main/sphinx/cli.rst | 159 -------
.../configuration/catalog_configuration.rst | 33 ++
.../sphinx/configuration/ha_configuration.rst | 19 +-
.../functions/datetime_func_and_operators.rst | 409 +++++++++++++++-
.../getting_started/downloading_source.rst | 17 +-
.../main/sphinx/getting_started/local_setup.rst | 6 +
tajo-docs/src/main/sphinx/index.rst | 2 +-
.../src/main/sphinx/sql_language/data_model.rst | 8 +-
.../src/main/sphinx/sql_language/queries.rst | 232 ++++++++-
tajo-docs/src/main/sphinx/tsql.rst | 19 +
.../src/main/sphinx/tsql/admin_command.rst | 60 +++
.../src/main/sphinx/tsql/background_command.rst | 29 ++
tajo-docs/src/main/sphinx/tsql/dfs_command.rst | 26 +
tajo-docs/src/main/sphinx/tsql/execute_file.rst | 63 +++
tajo-docs/src/main/sphinx/tsql/intro.rst | 41 ++
tajo-docs/src/main/sphinx/tsql/meta_command.rst | 150 ++++++
.../src/main/sphinx/tsql/single_command.rst | 24 +
tajo-docs/src/main/sphinx/tsql/variables.rst | 66 +++
tajo-jdbc/pom.xml | 5 +-
.../apache/tajo/jdbc/TajoDatabaseMetaData.java | 101 +++-
tajo-maven-plugins/pom.xml | 6 +-
tajo-project/pom.xml | 34 +-
tajo-rpc/pom.xml | 7 +-
tajo-storage/pom.xml | 8 +-
.../tajo/storage/AbstractStorageManager.java | 2 +-
.../org/apache/tajo/storage/MergeScanner.java | 18 +-
.../java/org/apache/tajo/storage/RawFile.java | 12 +-
.../org/apache/tajo/storage/TestStorages.java | 96 +++-
tajo-thirdparty/asm/pom.xml | 8 +-
tajo-yarn-pullserver/pom.xml | 6 +-
119 files changed, 5725 insertions(+), 778 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/CHANGES
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
----------------------------------------------------------------------
diff --cc tajo-common/src/main/java/org/apache/tajo/SessionVars.java
index b34bad3,1229849..4562fdc
--- a/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
+++ b/tajo-common/src/main/java/org/apache/tajo/SessionVars.java
@@@ -98,9 -98,9 +98,11 @@@ public enum SessionVars implements Conf
TABLE_PARTITION_PER_SHUFFLE_SIZE(ConfVars.$DIST_QUERY_TABLE_PARTITION_VOLUME,
"shuffle output size for partition table write (mb)", DEFAULT),
+ GROUPBY_MULTI_LEVEL_ENABLED(ConfVars.$GROUPBY_MULTI_LEVEL_ENABLED, "Multiple level groupby enabled", DEFAULT),
+
// for physical Executors
+ EXECUTION_ENGINE(ConfVars.$EXECUTION_ENGINE,
+ "executor engine types that queries will use. Types: volcano and block (default is volcano)", DEFAULT),
EXTSORT_BUFFER_SIZE(ConfVars.$EXECUTOR_EXTERNAL_SORT_BUFFER_SIZE, "sort buffer size for external sort (mb)", DEFAULT),
HASH_JOIN_SIZE_LIMIT(ConfVars.$EXECUTOR_HASH_JOIN_SIZE_THRESHOLD, "limited size for hash join (mb)", DEFAULT),
INNER_HASH_JOIN_SIZE_LIMIT(ConfVars.$EXECUTOR_INNER_HASH_JOIN_SIZE_THRESHOLD,
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
----------------------------------------------------------------------
diff --cc tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
index f821a33,66d3030..521406e
--- a/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
+++ b/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
@@@ -316,9 -316,8 +316,11 @@@ public class TajoConf extends Configura
$DIST_QUERY_GROUPBY_PARTITION_VOLUME("tajo.dist-query.groupby.partition-volume-mb", 256),
$DIST_QUERY_TABLE_PARTITION_VOLUME("tajo.dist-query.table-partition.task-volume-mb", 256),
+ $GROUPBY_MULTI_LEVEL_ENABLED("tajo.dist-query.groupby.multi-level-aggr", true),
+
+ // execution engine
+ $EXECUTION_ENGINE("tajo.executor.engine", "volcano"), // volcano, and block
+
// for physical Executors
$EXECUTOR_EXTERNAL_SORT_BUFFER_SIZE("tajo.executor.external-sort.buffer-mb", 200L),
$EXECUTOR_HASH_JOIN_SIZE_THRESHOLD("tajo.executor.join.common.in-memory-hash-threshold-bytes",
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/engine/planner/LogicalPlanPreprocessor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
----------------------------------------------------------------------
diff --cc tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
index 9be29de,6b1c65c..07400f4
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
@@@ -43,10 -43,11 +43,11 @@@ import org.apache.tajo.exception.Intern
import org.apache.tajo.ipc.TajoWorkerProtocol;
import org.apache.tajo.ipc.TajoWorkerProtocol.DistinctGroupbyEnforcer;
import org.apache.tajo.ipc.TajoWorkerProtocol.DistinctGroupbyEnforcer.DistinctAggregationAlgorithm;
+ import org.apache.tajo.ipc.TajoWorkerProtocol.DistinctGroupbyEnforcer.MultipleAggregationStage;
import org.apache.tajo.ipc.TajoWorkerProtocol.DistinctGroupbyEnforcer.SortSpecArray;
import org.apache.tajo.storage.AbstractStorageManager;
+import org.apache.tajo.storage.BaseTupleComparator;
import org.apache.tajo.storage.StorageConstants;
-import org.apache.tajo.storage.TupleComparator;
import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.fragment.FragmentConvertor;
import org.apache.tajo.util.FileUtil;
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
----------------------------------------------------------------------
diff --cc tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
index 29d6602,827be83..02fd9d1
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/PlannerUtil.java
@@@ -26,10 -26,10 +26,7 @@@ import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path;
import org.apache.tajo.algebra.*;
import org.apache.tajo.annotation.Nullable;
--import org.apache.tajo.catalog.Column;
--import org.apache.tajo.catalog.Schema;
--import org.apache.tajo.catalog.SortSpec;
--import org.apache.tajo.catalog.TableDesc;
++import org.apache.tajo.catalog.*;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto;
import org.apache.tajo.common.TajoDataTypes.DataType;
@@@ -37,8 -37,9 +34,8 @@@ import org.apache.tajo.conf.TajoConf
import org.apache.tajo.engine.eval.*;
import org.apache.tajo.engine.exception.InvalidQueryException;
import org.apache.tajo.engine.planner.logical.*;
- import org.apache.tajo.catalog.SchemaUtil;
-import org.apache.tajo.engine.utils.SchemaUtil;
+import org.apache.tajo.storage.BaseTupleComparator;
+ import org.apache.tajo.storage.StorageManager;
-import org.apache.tajo.storage.TupleComparator;
import org.apache.tajo.storage.fragment.FileFragment;
import org.apache.tajo.storage.fragment.FragmentConvertor;
import org.apache.tajo.util.TUtil;
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
----------------------------------------------------------------------
diff --cc tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
index 6dcbfd2,342f8d7..993e5dd
--- a/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
@@@ -28,7 -28,7 +28,10 @@@ import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.service.AbstractService;
import org.apache.hadoop.util.StringUtils;
--import org.apache.tajo.*;
++import org.apache.tajo.QueryId;
++import org.apache.tajo.QueryIdFactory;
++import org.apache.tajo.SessionVars;
++import org.apache.tajo.TajoConstants;
import org.apache.tajo.algebra.AlterTablespaceSetType;
import org.apache.tajo.algebra.Expr;
import org.apache.tajo.algebra.JsonHelper;
@@@ -37,8 -37,9 +40,8 @@@ import org.apache.tajo.catalog.*
import org.apache.tajo.catalog.exception.*;
import org.apache.tajo.catalog.partition.PartitionMethodDesc;
import org.apache.tajo.catalog.proto.CatalogProtos;
--import org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto;
import org.apache.tajo.catalog.statistics.TableStats;
+ import org.apache.tajo.client.TajoClient;
import org.apache.tajo.common.TajoDataTypes;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.datum.DatumFactory;
@@@ -49,7 -50,7 +52,6 @@@ import org.apache.tajo.engine.parser.SQ
import org.apache.tajo.engine.planner.*;
import org.apache.tajo.engine.planner.logical.*;
import org.apache.tajo.engine.planner.physical.EvalExprExec;
--import org.apache.tajo.engine.planner.physical.SeqScanExec;
import org.apache.tajo.engine.planner.physical.StoreTableExec;
import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.ipc.ClientProtos;
@@@ -70,8 -71,8 +72,8 @@@ import java.util.List
import static org.apache.tajo.TajoConstants.DEFAULT_TABLESPACE_NAME;
import static org.apache.tajo.catalog.proto.CatalogProtos.AlterTablespaceProto;
--import static org.apache.tajo.ipc.ClientProtos.SubmitQueryResponse;
import static org.apache.tajo.ipc.ClientProtos.SerializedResultSet;
++import static org.apache.tajo.ipc.ClientProtos.SubmitQueryResponse;
public class GlobalEngine extends AbstractService {
/** Class Logger */
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
----------------------------------------------------------------------
diff --cc tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
index 8cd1bff,7b89587..79c2a9b
--- a/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
+++ b/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
@@@ -145,6 -152,13 +152,13 @@@ public class QueryTestCaseBase
queryBasePath = new Path(queryBaseURL.toString());
URL resultBaseURL = ClassLoader.getSystemResource("results");
resultBasePath = new Path(resultBaseURL.toString());
+
+ GlobalEngine engine = testingCluster.getMaster().getContext().getGlobalEngine();
- sqlParser = engine.getAnalyzer();
++ sqlParser = engine.getSQLAnalyzer();
+ verifier = engine.getPreLogicalPlanVerifier();
+ planner = engine.getLogicalPlanner();
+ optimizer = engine.getLogicalOptimizer();
+ postVerifier = engine.getLogicalPlanVerifier();
}
/** It transiently contains created tables for the running test class. */
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
----------------------------------------------------------------------
diff --cc tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
index 84c215c,25f1ae7..c70c8b7
--- a/tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
+++ b/tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
@@@ -25,7 -25,7 +25,8 @@@ Available Session Variables
\set JOIN_PER_SHUFFLE_SIZE [int value] - shuffle output size for join (mb)
\set GROUPBY_PER_SHUFFLE_SIZE [int value] - shuffle output size for sort (mb)
\set TABLE_PARTITION_PER_SHUFFLE_SIZE [int value] - shuffle output size for partition table write (mb)
+ \set GROUPBY_MULTI_LEVEL_ENABLED [true or false] - Multiple level groupby enabled
+\set EXECUTION_ENGINE [text value] - executor engine types that queries will use. Types: volcano and block (default is volcano)
\set EXTSORT_BUFFER_SIZE [long value] - sort buffer size for external sort (mb)
\set HASH_JOIN_SIZE_LIMIT [long value] - limited size for hash join (mb)
\set INNER_HASH_JOIN_SIZE_LIMIT [long value] - limited size for hash inner join (mb)
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-dist/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-project/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-storage/src/main/java/org/apache/tajo/storage/MergeScanner.java
----------------------------------------------------------------------
diff --cc tajo-storage/src/main/java/org/apache/tajo/storage/MergeScanner.java
index 9fdc483,637df2c..c0a0aa4
--- a/tajo-storage/src/main/java/org/apache/tajo/storage/MergeScanner.java
+++ b/tajo-storage/src/main/java/org/apache/tajo/storage/MergeScanner.java
@@@ -26,11 -26,10 +26,12 @@@ import org.apache.tajo.catalog.TableMet
import org.apache.tajo.catalog.statistics.ColumnStats;
import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.conf.TajoConf;
+import org.apache.tajo.exception.UnimplementedException;
import org.apache.tajo.storage.fragment.FileFragment;
+import org.apache.tajo.tuple.offheap.OffHeapRowBlock;
import java.io.IOException;
+ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-storage/src/main/java/org/apache/tajo/storage/RawFile.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/5eb7ee1f/tajo-thirdparty/asm/pom.xml
----------------------------------------------------------------------