You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2018/11/27 05:43:35 UTC
[kylin] 02/02: Revert "KYLIN-3559 Use Splitter for splitting String"
This is an automated email from the ASF dual-hosted git repository.
shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 2d8e0fcd2c31a14a49fde061f4c8c97fddd64f7c
Author: shaofengshi <sh...@apache.org>
AuthorDate: Tue Nov 27 13:40:20 2018 +0800
Revert "KYLIN-3559 Use Splitter for splitting String"
This reverts commit 920ac2f069cddf4d07bcc93b123811ce8fc41bc2.
---
.../org/apache/kylin/common/util/StringUtil.java | 22 ++++-----
.../apache/kylin/common/util/StringUtilTest.java | 53 ----------------------
.../kylin/cube/cli/CubeSignatureRefresher.java | 3 +-
.../job/impl/threadpool/DistributedScheduler.java | 3 +-
.../kylin/engine/mr/LookupMaterializeContext.java | 5 +-
.../kylin/engine/mr/common/AbstractHadoopJob.java | 2 +-
.../engine/mr/steps/MergeDictionaryMapper.java | 16 ++-----
.../engine/mr/steps/MergeDictionaryReducer.java | 3 +-
.../kylin/engine/spark/SparkMergingDictionary.java | 3 +-
.../org/apache/kylin/jdbc/KylinConnection.java | 4 +-
.../cube/cuboid/algorithm/ITAlgorithmTestBase.java | 3 +-
.../cube/inmemcubing/ITInMemCubeBuilderTest.java | 5 +-
.../kylin/query/relnode/OLAPAuthentication.java | 8 ++--
.../apache/kylin/query/relnode/OLAPTableScan.java | 3 +-
.../org/apache/kylin/query/schema/OLAPTable.java | 3 +-
.../kylin/rest/controller/TableController.java | 4 +-
.../apache/kylin/rest/init/InitialTaskManager.java | 3 +-
.../apache/kylin/rest/service/AdminService.java | 3 +-
.../apache/kylin/rest/service/QueryService.java | 3 +-
.../rest/signature/RealizationSetCalculator.java | 3 +-
.../HiveColumnCardinalityUpdateJob.java | 3 +-
.../apache/kylin/source/hive/HiveMRInputTest.java | 9 ++--
.../org/apache/kylin/tool/CubeMetaExtractor.java | 7 ++-
.../apache/kylin/tool/CubeMigrationCheckCLI.java | 9 ++--
.../org/apache/kylin/tool/HBaseUsageExtractor.java | 5 +-
.../org/apache/kylin/tool/JobDiagnosisInfoCLI.java | 11 +++--
26 files changed, 56 insertions(+), 140 deletions(-)
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
index 4fc37c9..84c1da5 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java
@@ -22,9 +22,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
-
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
import org.apache.commons.lang.StringUtils;
/**
@@ -162,17 +159,14 @@ public class StringUtil {
}
public static String[] splitAndTrim(String str, String splitBy) {
- Splitter splitterWithTrim = Splitter.on(splitBy).trimResults().omitEmptyStrings();
-
- return Iterables.toArray(splitterWithTrim.split(str), String.class);
- }
-
- public static String[] split(String str, String splitBy) {
- return Iterables.toArray(Splitter.on(splitBy).split(str), String.class);
- }
-
- public static String[] splitByComma(String str) {
- return split(str, ",");
+ String[] split = str.split(splitBy);
+ ArrayList<String> r = new ArrayList<>(split.length);
+ for (String s : split) {
+ s = s.trim();
+ if (!s.isEmpty())
+ r.add(s);
+ }
+ return r.toArray(new String[r.size()]);
}
// calculating length in UTF-8 of Java String without actually encoding it
diff --git a/core-common/src/test/java/org/apache/kylin/common/util/StringUtilTest.java b/core-common/src/test/java/org/apache/kylin/common/util/StringUtilTest.java
deleted file mode 100644
index 88ed9d8..0000000
--- a/core-common/src/test/java/org/apache/kylin/common/util/StringUtilTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.kylin.common.util;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-public class StringUtilTest {
- @Test
- public void splitTest() {
- String normalText = "Try to make the code better";
- String[] expected = new String[] { "Try", "to", "make", "the", "code", "better" };
- Assert.assertArrayEquals(expected, StringUtil.split(normalText, " "));
-
- // case in http://errorprone.info/bugpattern/StringSplitter
- expected = new String[] { "" };
- Assert.assertArrayEquals(expected, StringUtil.split("", ":"));
-
- expected = new String[] { "", "" };
- Assert.assertArrayEquals(expected, StringUtil.split(":", ":"));
-
- expected = new String[] { "1", "2" };
- Assert.assertArrayEquals(expected, StringUtil.split("1<|>2", "<|>"));
- }
-
- @Test
- public void splitAndTrimTest() {
- String[] expected = new String[] { "foo", "bar" };
- Assert.assertArrayEquals(expected, StringUtil.splitAndTrim(" foo... bar. ", "."));
- }
-
- @Test
- public void splitByCommaTest() {
- String[] expected = new String[] { "Hello", "Kylin" };
- Assert.assertArrayEquals(expected, StringUtil.splitByComma("Hello,Kylin"));
- }
-}
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cli/CubeSignatureRefresher.java b/core-cube/src/main/java/org/apache/kylin/cube/cli/CubeSignatureRefresher.java
index b149f11..2eaebb1 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/cli/CubeSignatureRefresher.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/cli/CubeSignatureRefresher.java
@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.model.CubeDesc;
@@ -62,7 +61,7 @@ public class CubeSignatureRefresher {
if (ArrayUtils.isEmpty(cubeNames)) {
cubeDescs = cubeDescManager.listAllDesc();
} else {
- String[] names = StringUtil.splitByComma(cubeNames[0]);
+ String[] names = cubeNames[0].split(",");
if (ArrayUtils.isEmpty(names))
return;
cubeDescs = Lists.newArrayListWithCapacity(names.length);
diff --git a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java
index a998873..d6f9fe2 100644
--- a/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java
+++ b/core-job/src/main/java/org/apache/kylin/job/impl/threadpool/DistributedScheduler.java
@@ -36,7 +36,6 @@ import org.apache.curator.framework.state.ConnectionStateListener;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.lock.DistributedLock;
import org.apache.kylin.common.util.SetThreadName;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.job.Scheduler;
import org.apache.kylin.job.engine.JobEngineConfig;
import org.apache.kylin.job.exception.ExecuteException;
@@ -151,7 +150,7 @@ public class DistributedScheduler implements Scheduler<AbstractExecutable>, Conn
@Override
public void onUnlock(String path, String nodeData) {
- String[] paths = StringUtil.split(path, "/");
+ String[] paths = path.split("/");
String jobId = paths[paths.length - 1];
final Output output = executableManager.getOutput(jobId);
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/LookupMaterializeContext.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/LookupMaterializeContext.java
index 4fa9126..f235283 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/LookupMaterializeContext.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/LookupMaterializeContext.java
@@ -21,7 +21,6 @@ package org.apache.kylin.engine.mr;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.job.execution.DefaultChainedExecutable;
import com.google.common.collect.Maps;
@@ -75,9 +74,9 @@ public class LookupMaterializeContext {
*/
public static Map<String, String> parseLookupSnapshots(String snapshotsString) {
Map<String, String> lookupSnapshotMap = Maps.newHashMap();
- String[] lookupSnapshotEntries = StringUtil.splitByComma(snapshotsString);
+ String[] lookupSnapshotEntries = snapshotsString.split(",");
for (String lookupSnapshotEntryStr : lookupSnapshotEntries) {
- String[] split = StringUtil.split(lookupSnapshotEntryStr, "=");
+ String[] split = lookupSnapshotEntryStr.split("=");
lookupSnapshotMap.put(split[0], split[1]);
}
return lookupSnapshotMap;
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java
index 728da7d..0624f94 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/AbstractHadoopJob.java
@@ -324,7 +324,7 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
StringBuilder jarList = new StringBuilder();
StringBuilder fileList = new StringBuilder();
- for (String fileName : StringUtil.splitByComma(kylinDependency)) {
+ for (String fileName : kylinDependency.split(",")) {
Path p = new Path(fileName);
if (p.isAbsolute() == false) {
logger.warn("The directory of kylin dependency '" + fileName + "' is not absolute, skip");
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryMapper.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryMapper.java
index c55f4d2..522c06a 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryMapper.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryMapper.java
@@ -42,7 +42,6 @@ import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.util.ByteArray;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.HadoopUtil;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -83,7 +82,7 @@ public class MergeDictionaryMapper extends KylinMapper<IntWritable, NullWritable
final CubeInstance cubeInstance = CubeManager.getInstance(kylinConfig).getCube(cubeName);
final CubeDesc cubeDesc = CubeDescManager.getInstance(kylinConfig).getCubeDesc(cubeInstance.getDescName());
- mergingSegments = getMergingSegments(cubeInstance, StringUtil.splitByComma(segmentIds));
+ mergingSegments = getMergingSegments(cubeInstance, segmentIds.split(","));
tblColRefs = cubeDesc.getAllColumnsNeedDictionaryBuilt().toArray(new TblColRef[0]);
dictMgr = DictionaryManager.getInstance(kylinConfig);
}
@@ -115,14 +114,11 @@ public class MergeDictionaryMapper extends KylinMapper<IntWritable, NullWritable
} else {
// merge statistics
- KylinConfig kylinConfig = AbstractHadoopJob.loadKylinConfigFromHdfs(
- new SerializableConfiguration(context.getConfiguration()),
- context.getConfiguration().get(BatchConstants.ARG_META_URL));
+ KylinConfig kylinConfig = AbstractHadoopJob.loadKylinConfigFromHdfs(new SerializableConfiguration(context.getConfiguration()), context.getConfiguration().get(BatchConstants.ARG_META_URL));
final String cubeName = context.getConfiguration().get(BatchConstants.ARG_CUBE_NAME);
final String segmentId = context.getConfiguration().get(BatchConstants.ARG_SEGMENT_ID);
- final String statOutputPath = context.getConfiguration()
- .get(MergeDictionaryJob.OPTION_OUTPUT_PATH_STAT.getOpt());
+ final String statOutputPath = context.getConfiguration().get(MergeDictionaryJob.OPTION_OUTPUT_PATH_STAT.getOpt());
CubeInstance cubeInstance = CubeManager.getInstance(kylinConfig).getCube(cubeName);
logger.info("Statistics output path: {}", statOutputPath);
@@ -183,10 +179,8 @@ public class MergeDictionaryMapper extends KylinMapper<IntWritable, NullWritable
}
averageSamplingPercentage = averageSamplingPercentage / mergingSegments.size();
- CubeStatsWriter.writeCuboidStatistics(conf, new Path(statOutputPath), cuboidHLLMap,
- averageSamplingPercentage);
- Path statisticsFilePath = new Path(statOutputPath,
- BatchConstants.CFG_STATISTICS_CUBOID_ESTIMATION_FILENAME);
+ CubeStatsWriter.writeCuboidStatistics(conf, new Path(statOutputPath), cuboidHLLMap, averageSamplingPercentage);
+ Path statisticsFilePath = new Path(statOutputPath, BatchConstants.CFG_STATISTICS_CUBOID_ESTIMATION_FILENAME);
FileSystem fs = HadoopUtil.getFileSystem(statisticsFilePath, conf);
FSDataInputStream fis = fs.open(statisticsFilePath);
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryReducer.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryReducer.java
index 15a346f..1eb3c07 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryReducer.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/steps/MergeDictionaryReducer.java
@@ -22,7 +22,6 @@ import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.engine.mr.KylinReducer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,7 +35,7 @@ public class MergeDictionaryReducer extends KylinReducer<IntWritable, Text, Text
throws IOException, InterruptedException {
for (Text text : values) {
String value = text.toString();
- String[] splited = StringUtil.split(value, "=");
+ String[] splited = value.split("=");
if (splited != null && splited.length == 2) {
logger.info("Dictionary for col {}, save at {}", splited[0], splited[1]);
context.write(new Text(splited[0]), new Text(splited[1]));
diff --git a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkMergingDictionary.java b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkMergingDictionary.java
index d473a0a..bbdeb85 100644
--- a/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkMergingDictionary.java
+++ b/engine-spark/src/main/java/org/apache/kylin/engine/spark/SparkMergingDictionary.java
@@ -41,7 +41,6 @@ import org.apache.kylin.common.util.ByteArray;
import org.apache.kylin.common.util.Bytes;
import org.apache.kylin.common.util.HadoopUtil;
import org.apache.kylin.common.util.OptionsHelper;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -152,7 +151,7 @@ public class SparkMergingDictionary extends AbstractApplication implements Seria
JavaRDD<Integer> indexRDD = sc.parallelize(indexs, columnLength + 1);
JavaPairRDD<Text, Text> colToDictPathRDD = indexRDD.mapToPair(new MergeDictAndStatsFunction(cubeName,
- metaUrl, segmentId, StringUtil.splitByComma(segmentIds), statOutputPath, tblColRefs, sConf));
+ metaUrl, segmentId, segmentIds.split(","), statOutputPath, tblColRefs, sConf));
colToDictPathRDD.coalesce(1, false).saveAsNewAPIHadoopFile(dictOutputPath, Text.class, Text.class,
SequenceFileOutputFormat.class);
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
index b138ff3..b2b3315 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
@@ -27,8 +27,6 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
import org.apache.calcite.avatica.AvaticaConnection;
import org.apache.calcite.avatica.AvaticaFactory;
import org.apache.calcite.avatica.AvaticaParameter;
@@ -56,7 +54,7 @@ public class KylinConnection extends AvaticaConnection implements KylinConnectio
String odbcUrl = url;
odbcUrl = odbcUrl.replaceAll((Driver.CONNECT_STRING_PREFIX + "[[A-Za-z0-9]*=[A-Za-z0-9]*;]*//").toString(), "");
- String[] temps = Iterables.toArray(Splitter.on("/").split(odbcUrl), String.class);
+ String[] temps = odbcUrl.split("/");
assert temps.length >= 2;
this.project = temps[temps.length - 1];
diff --git a/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITAlgorithmTestBase.java b/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITAlgorithmTestBase.java
index 4902323..1d6d0bc 100755
--- a/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITAlgorithmTestBase.java
+++ b/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITAlgorithmTestBase.java
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.cuboid.TreeCuboidScheduler.CuboidCostComparator;
import org.apache.kylin.cube.cuboid.TreeCuboidScheduler.CuboidTree;
import org.junit.After;
@@ -95,7 +94,7 @@ public class ITAlgorithmTestBase {
StandardCharsets.UTF_8));
while ((sCurrentLine = br.readLine()) != null) {
- String[] statPair = StringUtil.split(sCurrentLine, " ");
+ String[] statPair = sCurrentLine.split(" ");
countMap.put(Long.valueOf(statPair[0]), Long.valueOf(statPair[1]));
}
diff --git a/kylin-it/src/test/java/org/apache/kylin/cube/inmemcubing/ITInMemCubeBuilderTest.java b/kylin-it/src/test/java/org/apache/kylin/cube/inmemcubing/ITInMemCubeBuilderTest.java
index 2a96b39..9bfc18e 100644
--- a/kylin-it/src/test/java/org/apache/kylin/cube/inmemcubing/ITInMemCubeBuilderTest.java
+++ b/kylin-it/src/test/java/org/apache/kylin/cube/inmemcubing/ITInMemCubeBuilderTest.java
@@ -35,7 +35,6 @@ import org.apache.commons.io.FileUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.Dictionary;
import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.cuboid.Cuboid;
@@ -173,7 +172,7 @@ public class ITInMemCubeBuilderTest extends LocalFileMetadataTestCase {
// get distinct values on each column
List<String> lines = FileUtils.readLines(new File(flatTable), "UTF-8");
for (String line : lines) {
- String[] row = StringUtil.splitByComma(line.trim());
+ String[] row = line.trim().split(",");
assert row.length == nColumns;
for (int i = 0; i < nColumns; i++)
distinctSets[i].add(row[i]);
@@ -254,7 +253,7 @@ public class ITInMemCubeBuilderTest extends LocalFileMetadataTestCase {
List<String> result = Lists.newArrayList();
List<String> lines = FileUtils.readLines(new File(flatTable), "UTF-8");
for (String line : lines) {
- String[] row = StringUtil.splitByComma(line.trim());
+ String[] row = line.trim().split(",");
if (row.length != nColumns) {
throw new IllegalStateException();
}
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAuthentication.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAuthentication.java
index 716caa4..48aa1fa 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAuthentication.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAuthentication.java
@@ -17,19 +17,17 @@
*/
package org.apache.kylin.query.relnode;
-import org.apache.kylin.common.util.StringUtil;
-
import java.util.ArrayList;
/**
* Created by wangcheng on 7/8/16.
*/
public class OLAPAuthentication {
- String username;
- ArrayList<String> roles = new ArrayList<>();
+ String username;
+ ArrayList<String> roles = new ArrayList<>();
public void parseUserInfo(String userInfo) {
- String[] info = StringUtil.splitByComma(userInfo);
+ String[] info = userInfo.split(",");
if (info.length > 0) //first element is username
this.username = info[0];
for (int i = 1; i < info.length; i++) //the remains should be roles which starts from index 1
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
index f0d5b5c..8b7c3a3 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPTableScan.java
@@ -68,7 +68,6 @@ import org.apache.calcite.rel.type.RelDataTypeField;
import org.apache.calcite.rel.type.RelDataTypeFieldImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.TableRef;
@@ -240,7 +239,7 @@ public class OLAPTableScan extends TableScan implements OLAPRel, EnumerableRel {
if (StringUtils.isEmpty(rule)) {
continue;
}
- String[] split = StringUtil.split(rule, "#");
+ String[] split = rule.split("#");
if (split.length != 2) {
throw new RuntimeException("Customized Rule should be in format <RuleClassName>#<FieldName>");
}
diff --git a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
index 82349c0..60a856d 100644
--- a/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
+++ b/query/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
@@ -46,7 +46,6 @@ import org.apache.calcite.schema.impl.AbstractTableQueryable;
import org.apache.calcite.sql.type.SqlTypeName;
import org.apache.calcite.sql.type.SqlTypeUtil;
import org.apache.calcite.util.ImmutableBitSet;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.metadata.datatype.DataType;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.FunctionDesc;
@@ -187,7 +186,7 @@ public class OLAPTable extends AbstractQueryableTable implements TranslatableTab
RelDataType result;
if (sqlTypeName == SqlTypeName.ARRAY) {
- String innerTypeName = StringUtil.split(dataType.getName(), "<|>")[1];
+ String innerTypeName = dataType.getName().split("<|>")[1];
result = typeFactory.createArrayType(createSqlType(typeFactory, DataType.getType(innerTypeName), false),
-1);
} else if (precision >= 0 && scale >= 0)
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java
index 4cdc9b6..488b7e0 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/TableController.java
@@ -139,7 +139,7 @@ public class TableController extends BasicController {
Set<String> unLoadFail = Sets.newHashSet();
Map<String, String[]> result = new HashMap<String, String[]>();
try {
- for (String tableName : StringUtil.splitByComma(tables)) {
+ for (String tableName : tables.split(",")) {
tableACLService.deleteFromTableACLByTbl(project, tableName);
if (tableService.unloadHiveTable(tableName, project)) {
unLoadSuccess.add(tableName);
@@ -169,7 +169,7 @@ public class TableController extends BasicController {
public CardinalityRequest generateCardinality(@PathVariable String tableNames,
@RequestBody CardinalityRequest request, @PathVariable String project) throws Exception {
String submitter = SecurityContextHolder.getContext().getAuthentication().getName();
- String[] tables = StringUtil.splitByComma(tableNames);
+ String[] tables = tableNames.split(",");
try {
for (String table : tables) {
tableService.calculateCardinality(table.trim().toUpperCase(Locale.ROOT), submitter, project);
diff --git a/server-base/src/main/java/org/apache/kylin/rest/init/InitialTaskManager.java b/server-base/src/main/java/org/apache/kylin/rest/init/InitialTaskManager.java
index 876ae08..467ef82 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/init/InitialTaskManager.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/init/InitialTaskManager.java
@@ -20,7 +20,6 @@ package org.apache.kylin.rest.init;
import org.apache.commons.lang.StringUtils;
import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.rest.metrics.QueryMetrics2Facade;
import org.apache.kylin.rest.metrics.QueryMetricsFacade;
import org.slf4j.Logger;
@@ -50,7 +49,7 @@ public class InitialTaskManager implements InitializingBean {
KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
String initTasks = kylinConfig.getInitTasks();
if (!StringUtils.isEmpty(initTasks)) {
- String[] taskClasses = StringUtil.splitByComma(initTasks);
+ String[] taskClasses = initTasks.split(",");
for (String taskClass : taskClasses) {
try {
InitialTask task = (InitialTask) Class.forName(taskClass).newInstance();
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/AdminService.java b/server-base/src/main/java/org/apache/kylin/rest/service/AdminService.java
index 6abbe98..23d523e 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/AdminService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/AdminService.java
@@ -32,7 +32,6 @@ import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.OrderedProperties;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.rest.constant.Constant;
import org.apache.kylin.rest.job.StorageCleanupJob;
import org.slf4j.Logger;
@@ -107,7 +106,7 @@ public class AdminService extends BasicService {
Collection<String> propertyKeys = Lists.newArrayList();
if (StringUtils.isNotEmpty(whiteListProperties)) {
- propertyKeys.addAll(Arrays.asList(StringUtil.splitByComma(whiteListProperties)));
+ propertyKeys.addAll(Arrays.asList(whiteListProperties.split(",")));
}
return KylinConfig.getInstanceFromEnv().exportToString(propertyKeys);
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
index 661b0fd..bd4049d 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -75,7 +75,6 @@ import org.apache.kylin.common.util.DBUtils;
import org.apache.kylin.common.util.JsonUtil;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.common.util.SetThreadName;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.cuboid.Cuboid;
@@ -316,7 +315,7 @@ public class QueryService extends BasicService {
if (realizationNames.isEmpty()) {
if (!Strings.isNullOrEmpty(response.getCube())) {
- realizationNames.addAll(Lists.newArrayList(StringUtil.splitByComma(response.getCube())));
+ realizationNames.addAll(Lists.newArrayList(response.getCube().split(",")));
}
}
diff --git a/server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSetCalculator.java b/server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSetCalculator.java
index b7d3f73..63139f3 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSetCalculator.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSetCalculator.java
@@ -24,7 +24,6 @@ import java.util.Set;
import org.apache.commons.codec.binary.Base64;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.metadata.project.ProjectInstance;
import org.apache.kylin.rest.response.SQLResponse;
import org.slf4j.Logger;
@@ -70,7 +69,7 @@ public class RealizationSetCalculator implements SignatureCalculator {
if (Strings.isNullOrEmpty(cubes)) {
return null;
}
- String[] realizations = parseNamesFromCanonicalNames(StringUtil.splitByComma(cubes));
+ String[] realizations = parseNamesFromCanonicalNames(cubes.split(","));
return Sets.newHashSet(realizations);
}
diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java
index 6593ec6..eb32756 100644
--- a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java
+++ b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java
@@ -39,7 +39,6 @@ import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.HadoopUtil;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.engine.mr.common.AbstractHadoopJob;
import org.apache.kylin.metadata.TableMetadataManager;
import org.apache.kylin.metadata.model.TableExtDesc;
@@ -161,7 +160,7 @@ public class HiveColumnCardinalityUpdateJob extends AbstractHadoopJob {
StringWriter writer = new StringWriter();
IOUtils.copy(stream, writer, "UTF-8");
String raw = writer.toString();
- for (String str : StringUtil.split(raw, "\n")) {
+ for (String str : raw.split("\n")) {
results.add(str);
}
}
diff --git a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java b/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
index 917db3e..384c2b8 100644
--- a/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
+++ b/source-hive/src/test/java/org/apache/kylin/source/hive/HiveMRInputTest.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.fs.Path;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.KylinConfig.SetAndUnsetThreadLocalConfig;
import org.apache.kylin.common.util.RandomUtil;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.job.execution.DefaultChainedExecutable;
import org.junit.Assert;
import org.junit.Test;
@@ -47,8 +46,7 @@ public class HiveMRInputTest {
DefaultChainedExecutable defaultChainedExecutable = mock(DefaultChainedExecutable.class);
defaultChainedExecutable.setId(RandomUtil.randomUUID().toString());
- String jobWorkingDir = HiveInputBase.getJobWorkingDir(defaultChainedExecutable,
- KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory());
+ String jobWorkingDir = HiveInputBase.getJobWorkingDir(defaultChainedExecutable, KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory());
jobWorkDirPath = new Path(jobWorkingDir);
Assert.assertTrue(fileSystem.exists(jobWorkDirPath));
} finally {
@@ -66,11 +64,12 @@ public class HiveMRInputTest {
StringBuilder hqls = new StringBuilder();
for (int i = 0; i < viewSize; i++) {
- String hql = HiveInputBase.materializeViewHql(mockedViewNames[i], mockedTalbeNames[i], mockedWorkingDir);
+ String hql = HiveInputBase.materializeViewHql(mockedViewNames[i], mockedTalbeNames[i],
+ mockedWorkingDir);
hqls.append(hql);
}
- for (String sub : StringUtil.splitAndTrim(hqls.toString(), "\n")) {
+ for (String sub : hqls.toString().split("\n")) {
Assert.assertTrue(sub.endsWith(";"));
}
}
diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java
index 78aa889..5cf0350 100644
--- a/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java
+++ b/tool/src/main/java/org/apache/kylin/tool/CubeMetaExtractor.java
@@ -31,7 +31,6 @@ import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.ResourceTool;
import org.apache.kylin.common.util.OptionsHelper;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeDescManager;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
@@ -202,14 +201,14 @@ public class CubeMetaExtractor extends AbstractInfoExtractor {
}
} else if (optionsHelper.hasOption(OPTION_PROJECT)) {
String projectNames = optionsHelper.getOptionValue(OPTION_PROJECT);
- for (String projectName : StringUtil.splitByComma(projectNames)) {
+ for (String projectName : projectNames.split(",")) {
ProjectInstance projectInstance = projectManager.getProject(projectName);
Preconditions.checkNotNull(projectInstance, "Project " + projectName + " does not exist.");
requireProject(projectInstance);
}
} else if (optionsHelper.hasOption(OPTION_CUBE)) {
String cubeNames = optionsHelper.getOptionValue(OPTION_CUBE);
- for (String cubeName : StringUtil.splitByComma(cubeNames)) {
+ for (String cubeName : cubeNames.split(",")) {
IRealization realization = cubeManager.getRealization(cubeName);
if (realization == null) {
throw new IllegalArgumentException("No cube found with name of " + cubeName);
@@ -219,7 +218,7 @@ public class CubeMetaExtractor extends AbstractInfoExtractor {
}
} else if (optionsHelper.hasOption(OPTION_HYBRID)) {
String hybridNames = optionsHelper.getOptionValue(OPTION_HYBRID);
- for (String hybridName : StringUtil.splitByComma(hybridNames)) {
+ for (String hybridName : hybridNames.split(",")) {
IRealization realization = hybridManager.getRealization(hybridName);
if (realization != null) {
diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCheckCLI.java b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCheckCLI.java
index cbbe029..54fbbc0 100644
--- a/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCheckCLI.java
+++ b/tool/src/main/java/org/apache/kylin/tool/CubeMigrationCheckCLI.java
@@ -32,7 +32,6 @@ import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.OptionsHelper;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
@@ -170,7 +169,7 @@ public class CubeMigrationCheckCLI {
inconsistentHTables = Lists.newArrayList();
for (String segFullName : segFullNameList) {
- String[] sepNameList = StringUtil.splitByComma(segFullName);
+ String[] sepNameList = segFullName.split(",");
try {
HTableDescriptor hTableDescriptor = hbaseAdmin.getTableDescriptor(TableName.valueOf(sepNameList[0]));
String host = hTableDescriptor.getValue(IRealizationConstants.HTableTag);
@@ -187,7 +186,7 @@ public class CubeMigrationCheckCLI {
public void fixInconsistent() throws IOException {
if (ifFix == true) {
for (String segFullName : inconsistentHTables) {
- String[] sepNameList = StringUtil.splitByComma(segFullName);
+ String[] sepNameList = segFullName.split(",");
HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(sepNameList[0]));
logger.info("Change the host of htable " + sepNameList[0] + "belonging to cube " + sepNameList[1] + " from " + desc.getValue(IRealizationConstants.HTableTag) + " to " + dstCfg.getMetadataUrlPrefix());
hbaseAdmin.disableTable(sepNameList[0]);
@@ -198,7 +197,7 @@ public class CubeMigrationCheckCLI {
} else {
logger.info("------ Inconsistent HTables Needed To Be Fixed ------");
for (String hTable : inconsistentHTables) {
- String[] sepNameList = StringUtil.splitByComma(hTable);
+ String[] sepNameList = hTable.split(",");
logger.info(sepNameList[0] + " belonging to cube " + sepNameList[1]);
}
logger.info("----------------------------------------------------");
@@ -208,7 +207,7 @@ public class CubeMigrationCheckCLI {
public void printIssueExistingHTables() {
logger.info("------ HTables exist issues in hbase : not existing, metadata broken ------");
for (String segFullName : issueExistHTables) {
- String[] sepNameList = StringUtil.splitByComma(segFullName);
+ String[] sepNameList = segFullName.split(",");
logger.error(sepNameList[0] + " belonging to cube " + sepNameList[1] + " has some issues and cannot be read successfully!!!");
}
logger.info("----------------------------------------------------");
diff --git a/tool/src/main/java/org/apache/kylin/tool/HBaseUsageExtractor.java b/tool/src/main/java/org/apache/kylin/tool/HBaseUsageExtractor.java
index 8ffa473..0d8c08f 100644
--- a/tool/src/main/java/org/apache/kylin/tool/HBaseUsageExtractor.java
+++ b/tool/src/main/java/org/apache/kylin/tool/HBaseUsageExtractor.java
@@ -35,7 +35,6 @@ import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.CliCommandExecutor;
import org.apache.kylin.common.util.OptionsHelper;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.cube.CubeInstance;
import org.apache.kylin.cube.CubeManager;
import org.apache.kylin.cube.CubeSegment;
@@ -102,7 +101,7 @@ public class HBaseUsageExtractor extends AbstractInfoExtractor {
if (optionsHelper.hasOption(OPTION_PROJECT)) {
String projectNames = optionsHelper.getOptionValue(OPTION_PROJECT);
- for (String projectName : StringUtil.splitByComma(projectNames)) {
+ for (String projectName: projectNames.split(",")) {
ProjectInstance projectInstance = projectManager.getProject(projectName);
if (projectInstance == null) {
throw new IllegalArgumentException("Project " + projectName + " does not exist");
@@ -114,7 +113,7 @@ public class HBaseUsageExtractor extends AbstractInfoExtractor {
}
} else if (optionsHelper.hasOption(OPTION_CUBE)) {
String cubeNames = optionsHelper.getOptionValue(OPTION_CUBE);
- for (String cubeName : StringUtil.splitByComma(cubeNames)) {
+ for (String cubeName : cubeNames.split(",")) {
IRealization realization = cubeManager.getRealization(cubeName);
if (realization != null) {
retrieveResourcePath(realization);
diff --git a/tool/src/main/java/org/apache/kylin/tool/JobDiagnosisInfoCLI.java b/tool/src/main/java/org/apache/kylin/tool/JobDiagnosisInfoCLI.java
index 65094d4..a0c8465 100644
--- a/tool/src/main/java/org/apache/kylin/tool/JobDiagnosisInfoCLI.java
+++ b/tool/src/main/java/org/apache/kylin/tool/JobDiagnosisInfoCLI.java
@@ -32,7 +32,6 @@ import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.persistence.ResourceStore;
import org.apache.kylin.common.persistence.ResourceTool;
import org.apache.kylin.common.util.OptionsHelper;
-import org.apache.kylin.common.util.StringUtil;
import org.apache.kylin.job.constant.ExecutableConstants;
import org.apache.kylin.job.dao.ExecutableDao;
import org.apache.kylin.job.dao.ExecutablePO;
@@ -228,9 +227,9 @@ public class JobDiagnosisInfoCLI extends AbstractInfoExtractor {
final String yarnCmd = "yarn application -status " + applicationId;
final String cmdOutput = kylinConfig.getCliCommandExecutor().execute(yarnCmd).getSecond();
final Map<String, String> params = Maps.newHashMap();
- final String[] cmdOutputLines = StringUtil.split(cmdOutput, "\n");
+ final String[] cmdOutputLines = cmdOutput.split("\n");
for (String cmdOutputLine : cmdOutputLines) {
- String[] pair = StringUtil.split(cmdOutputLine, ":");
+ String[] pair = cmdOutputLine.split(":");
if (pair.length >= 2) {
params.put(pair[0].trim(), pair[1].trim());
}
@@ -243,7 +242,11 @@ public class JobDiagnosisInfoCLI extends AbstractInfoExtractor {
return true;
}
- return params.containsKey("Final-State") && params.get("Final-State").equals("SUCCEEDED");
+ if (params.containsKey("Final-State") && params.get("Final-State").equals("SUCCEEDED")) {
+ return true;
+ }
+
+ return false;
}
private void addRequired(String record) {