http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/checkstyle-suppressions.xml ---------------------------------------------------------------------- diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml new file mode 100644 index 0000000..d247c65 --- /dev/null +++ b/checkstyle-suppressions.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<!DOCTYPE suppressions PUBLIC + "-//Puppy Crawl//DTD Suppressions 1.0//EN" + "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd"> + <!-- +/** + * 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. + */ + + + ON MVN COMPILE NOT WORKING + + If you wondering why 'mvn compile' does not work building HBase + (in particular, if you are doing it for the first time), instead do + 'mvn package'. If you are interested in the full story, see + https://issues.apache.org/jira/browse/HBASE-6795. + +--> +<suppressions> + <suppress checks="." files=".*/generated/.*\.java"/> + <suppress checks="." files="/org/apache/calcite/.*\.java"/> + <suppress checks="MagicNumberCheck" files=".*Test\.java"/> +</suppressions>
http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/checkstyle.xml ---------------------------------------------------------------------- diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000..10ba67b --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,60 @@ +<?xml version="1.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. + --> + +<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" + "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> +<module name="Checker"> + <module name="FileTabCharacter"/> + <module name="SuppressWarningsFilter" /> + <module name="TreeWalker"> + <module name="AvoidStarImport"/> + <module name="RedundantImport"/> + <module name="UnusedImports"> + <property name="processJavadoc" value="true"/> + </module> + <module name="LineLength"> + <property name="max" value="1000"/> + <property name="ignorePattern" + value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> + </module> + <module name="MethodLength"/> + <module name="MethodParamPad"/> + <module name="ParenPad"/> + <module name="EmptyStatement"/> + <module name="EmptyBlock"> + <property name="option" value="text"/> + </module> + <module name="EqualsHashCode"/> + <module name="IllegalInstantiation"/> + <!--<module name="InnerAssignment"/>--> + <module name="MissingSwitchDefault"/> + <!--<module name="FinalClass"/>--> + <!--<module name="HideUtilityClassConstructor"/>--> + <!--<module name="InterfaceIsType"/>--> + <!--<module name="VisibilityModifier"/>--> + <module name="ArrayTypeStyle"/> + <module name="UpperEll"/> + <!--<module name="NoFinalizer"/>--> + <!--<module name="MissingDeprecated"/>--> + <module name="WhitespaceAfter"> + <property name="tokens" value="COMMA"/> + </module> + <module name="SuppressWarningsHolder" /> + </module> +</module> http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java index 8719541..283f505 100644 --- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java +++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java @@ -371,22 +371,22 @@ public class KylinConfig extends KylinConfigBase { } private static void dumpStackTrace() { - + //uncomment below to start debugging - -// Thread t = Thread.currentThread(); -// int maxStackTraceDepth = 20; -// int current = 0; -// -// StackTraceElement[] stackTrace = t.getStackTrace(); -// StringBuilder buf = new StringBuilder("This is not a exception, just for diagnose purpose:"); -// buf.append("\n"); -// for (StackTraceElement e : stackTrace) { -// if (++current > maxStackTraceDepth) { -// break; -// } -// buf.append("\t").append("at ").append(e.toString()).append("\n"); -// } -// logger.info(buf.toString()); + + // Thread t = Thread.currentThread(); + // int maxStackTraceDepth = 20; + // int current = 0; + // + // StackTraceElement[] stackTrace = t.getStackTrace(); + // StringBuilder buf = new StringBuilder("This is not a exception, just for diagnose purpose:"); + // buf.append("\n"); + // for (StackTraceElement e : stackTrace) { + // if (++current > maxStackTraceDepth) { + // break; + // } + // buf.append("\t").append("at ").append(e.toString()).append("\n"); + // } + // logger.info(buf.toString()); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java b/core-common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java index c1c62fb..dcd3f38 100644 --- a/core-common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java +++ b/core-common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java @@ -74,7 +74,7 @@ public class FileResourceStore extends ResourceStore { NavigableSet<String> resources = listResources(folderPath); if (resources == null) return Collections.emptyList(); - + List<RawResource> result = Lists.newArrayListWithCapacity(resources.size()); try { for (String res : resources) { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java b/core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java index d2a684e..2e7768a 100644 --- a/core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java +++ b/core-common/src/main/java/org/apache/kylin/common/persistence/JsonSerializer.java @@ -25,7 +25,7 @@ import java.io.IOException; import org.apache.kylin.common.util.JsonUtil; /** - * @author yangli9 + * @author yangli9 */ public class JsonSerializer<T extends RootPersistentEntity> implements Serializer<T> { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java b/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java index 716f5b2..06e481d 100644 --- a/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java +++ b/core-common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java @@ -20,9 +20,7 @@ package org.apache.kylin.common.persistence; import java.io.Serializable; import java.text.DateFormat; -import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Date; import java.util.UUID; import org.apache.commons.lang.time.FastDateFormat; @@ -53,17 +51,6 @@ abstract public class RootPersistentEntity implements AclEntity, Serializable { return format.format(millis); } - public static long parseTime(String timeString) { - if (timeString == null) - return 0; - try { - Date dt = df.parse(timeString); - return dt.getTime(); - } catch (ParseException e) { - } - return 0l; - } - // ============================================================================ @JsonProperty("uuid") http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/restclient/AbstractRestCache.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/restclient/AbstractRestCache.java b/core-common/src/main/java/org/apache/kylin/common/restclient/AbstractRestCache.java index fc030b4..584131d 100644 --- a/core-common/src/main/java/org/apache/kylin/common/restclient/AbstractRestCache.java +++ b/core-common/src/main/java/org/apache/kylin/common/restclient/AbstractRestCache.java @@ -33,7 +33,7 @@ public abstract class AbstractRestCache<K, V> { this.config = config; this.syncType = syncType; } - + public Broadcaster getBroadcaster() { return Broadcaster.getInstance(config); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java b/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java index b87cc25..0176ad7 100644 --- a/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java +++ b/core-common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java @@ -143,7 +143,7 @@ public class Broadcaster { } public enum EVENT { - + CREATE("create"), UPDATE("update"), DROP("drop"); private String text; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/restclient/SingleValueCache.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/restclient/SingleValueCache.java b/core-common/src/main/java/org/apache/kylin/common/restclient/SingleValueCache.java index 3631662..5d1ca9a 100644 --- a/core-common/src/main/java/org/apache/kylin/common/restclient/SingleValueCache.java +++ b/core-common/src/main/java/org/apache/kylin/common/restclient/SingleValueCache.java @@ -45,7 +45,7 @@ public abstract class SingleValueCache<K, V> extends AbstractRestCache<K, V> { public void put(K key, V value) { boolean exists = innerCache.containsKey(key); - + innerCache.put(key, value); if (!exists) { @@ -61,9 +61,9 @@ public abstract class SingleValueCache<K, V> extends AbstractRestCache<K, V> { public void remove(K key) { boolean exists = innerCache.containsKey(key); - + innerCache.remove(key); - + if (exists) { getBroadcaster().queue(syncType.getType(), Broadcaster.EVENT.DROP.getType(), key.toString()); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java b/core-common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java index fc547c6..33d1d05 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java @@ -18,7 +18,6 @@ package org.apache.kylin.common.util; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -62,11 +61,11 @@ public class BytesSplitter { for (int i = 0; i < byteLen; i++) { if (bytes[i] == delimiter) { SplittedBytes split = this.splitBuffers[this.bufferSize++]; - if(length > split.value.length) { - length = split.value.length; - } + if (length > split.value.length) { + length = split.value.length; + } System.arraycopy(bytes, offset, split.value, 0, length); - split.length = length; + split.length = length; offset = i + 1; length = 0; } else { @@ -74,9 +73,9 @@ public class BytesSplitter { } } SplittedBytes split = this.splitBuffers[this.bufferSize++]; - if(length > split.value.length) { - length = split.value.length; - } + if (length > split.value.length) { + length = split.value.length; + } System.arraycopy(bytes, offset, split.value, 0, length); split.length = length; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java index 39cd6f2..bda5c73 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/BytesUtil.java @@ -132,7 +132,6 @@ public class BytesUtil { // from WritableUtils // ============================================================================ - public static void writeVInt(int i, ByteBuffer out) { writeVLong(i, out); @@ -261,7 +260,6 @@ public class BytesUtil { int len = str.length(); BytesUtil.writeVInt(len, out); - for (int i = 0; i < len; i++) { out.put((byte) str.charAt(i)); } @@ -353,7 +351,7 @@ public class BytesUtil { in.get(array); return array; } - + public static int peekByteArrayLength(ByteBuffer in) { int start = in.position(); int arrayLen = readVInt(in); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java b/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java index f561cf8..62386af 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/Dictionary.java @@ -18,8 +18,6 @@ package org.apache.kylin.common.util; -import org.apache.kylin.common.KylinConfig; - import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -27,6 +25,8 @@ import java.io.PrintStream; import java.io.Serializable; import java.io.UnsupportedEncodingException; +import org.apache.kylin.common.KylinConfig; + /** * A bi-way dictionary that maps from dimension/column values to IDs and vice * versa. By storing IDs instead of real values, the size of cube is @@ -46,7 +46,7 @@ import java.io.UnsupportedEncodingException; abstract public class Dictionary<T> implements Serializable { // ID with all bit-1 (0xff e.g.) reserved for NULL value - public static final int NULL_ID[] = new int[] { 0, 0xff, 0xffff, 0xffffff, 0xffffffff }; + public static final int[] NULL_ID = new int[] { 0, 0xff, 0xffff, 0xffffff, 0xffffffff }; abstract public int getMinId(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/ImmutableBitSet.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ImmutableBitSet.java b/core-common/src/main/java/org/apache/kylin/common/util/ImmutableBitSet.java index 58fb58f..b417877 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/ImmutableBitSet.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/ImmutableBitSet.java @@ -23,7 +23,7 @@ import java.util.BitSet; public class ImmutableBitSet { public static final ImmutableBitSet EMPTY = new ImmutableBitSet(new BitSet()); - + public static ImmutableBitSet valueOf(int... values) { BitSet set = new BitSet(); for (int i : values) http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/ImplementationSwitch.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ImplementationSwitch.java b/core-common/src/main/java/org/apache/kylin/common/util/ImplementationSwitch.java index 873393c..f14ac98 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/ImplementationSwitch.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/ImplementationSwitch.java @@ -19,10 +19,11 @@ package org.apache.kylin.common.util; import java.util.Map; -import com.google.common.collect.Maps; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.Maps; + /** * Provide switch between different implementations of a same interface. * Each implementation is identified by an integer ID. @@ -65,7 +66,7 @@ public class ImplementationSwitch<I> { if (result == null) { try { - result = (I)ClassUtil.newInstance(clzName); + result = (I) ClassUtil.newInstance(clzName); instances[id] = result; } catch (Exception ex) { logger.warn("Implementation missing " + clzName + " - " + ex); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/LoggableCachedThreadPool.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/LoggableCachedThreadPool.java b/core-common/src/main/java/org/apache/kylin/common/util/LoggableCachedThreadPool.java index 455951b..e37c6f2 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/LoggableCachedThreadPool.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/LoggableCachedThreadPool.java @@ -18,14 +18,14 @@ package org.apache.kylin.common.util; -import org.slf4j.*; - import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +import org.slf4j.LoggerFactory; + public class LoggableCachedThreadPool extends ThreadPoolExecutor { public static final org.slf4j.Logger logger = LoggerFactory.getLogger(LoggableCachedThreadPool.class); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/MemoryBudgetController.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/MemoryBudgetController.java b/core-common/src/main/java/org/apache/kylin/common/util/MemoryBudgetController.java index 20c1c25..5e81941 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/MemoryBudgetController.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/MemoryBudgetController.java @@ -99,7 +99,7 @@ public class MemoryBudgetController { public void reserveInsist(MemoryConsumer consumer, int requestMB) { if (requestMB > totalBudgetMB) throw new NotEnoughBudgetException(); - + long waitStart = 0; while (true) { try { @@ -274,7 +274,6 @@ public class MemoryBudgetController { return (int) (getSystemAvailBytes() / ONE_MB); } - // protective estimate of memory usage, prefer overestimate rather than underestimate public static class MemoryWaterLevel { int lowAvail = Integer.MAX_VALUE; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/MyLogFormatter.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/MyLogFormatter.java b/core-common/src/main/java/org/apache/kylin/common/util/MyLogFormatter.java index 21cb41d..80f0c9f 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/MyLogFormatter.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/MyLogFormatter.java @@ -71,6 +71,7 @@ public class MyLogFormatter extends Formatter { pw.close(); sb.append(sw.toString()); } catch (Exception ex) { + //do nothing? } } return sb.toString(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/Primes.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/Primes.java b/core-common/src/main/java/org/apache/kylin/common/util/Primes.java index 9509802..b83950e 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/Primes.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/Primes.java @@ -31,33 +31,9 @@ public class Primes { * As a result, <code>int</code> numbers which are not reduced by those primes are guaranteed * to be either prime or semi prime. */ - public static final int[] PRIMES = {2, - 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, - 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, - 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, - 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, - 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, - 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, - 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, - 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, - 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, - 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, - 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, - 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, - 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, - 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, - 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, - 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, - 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, - 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, - 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, - 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, - 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, - 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, - 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, - 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, - 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, - 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671}; + public static final int[] PRIMES = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, + 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, + 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671 }; /** * Hide utility class. @@ -181,4 +157,3 @@ public class Primes { return true; // definitely prime } } - http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java index ae6cf51..1cd6282 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/RangeUtil.java @@ -19,12 +19,10 @@ package org.apache.kylin.common.util; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.NavigableMap; -import java.util.Set; import java.util.SortedSet; import com.google.common.collect.BoundType; @@ -52,7 +50,7 @@ public class RangeUtil { } else if (filterRange.hasLowerBound() && !filterRange.hasUpperBound()) { return values.tailMap(filterRange.lowerEndpoint(), lowerBoundInclusive(filterRange)); } else { - return values.subMap(filterRange.lowerEndpoint(), lowerBoundInclusive(filterRange),// + return values.subMap(filterRange.lowerEndpoint(), lowerBoundInclusive(filterRange), // filterRange.upperEndpoint(), upperBoundInclusive(filterRange)); } } @@ -96,7 +94,7 @@ public class RangeUtil { if (other == null || !self.isConnected(other)) { return Collections.singletonList(self); } - + Range<C> share = self.intersection(other); if (share.isEmpty()) { return Collections.singletonList(self); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java b/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java index 55a1f96..9c83fbd 100644 --- a/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java +++ b/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java @@ -30,6 +30,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import org.apache.commons.io.IOUtils; import org.slf4j.LoggerFactory; import com.jcraft.jsch.Channel; @@ -141,11 +142,7 @@ public class SSHClient { } catch (Exception e) { throw e; } finally { - try { - if (fis != null) - fis.close(); - } catch (Exception ee) { - } + IOUtils.closeQuietly(fis); } } @@ -252,11 +249,7 @@ public class SSHClient { } catch (Exception e) { throw e; } finally { - try { - if (fos != null) - fos.close(); - } catch (Exception ee) { - } + IOUtils.closeQuietly(fos); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/main/java/org/apache/kylin/common/util/StringUtil.java ---------------------------------------------------------------------- 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 43a469f..15872aa 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 @@ -27,7 +27,7 @@ import org.apache.commons.lang.StringUtils; */ public class StringUtil { - public static String[] filterSystemArgs(String args[]) { + public static String[] filterSystemArgs(String[] args) { ArrayList<String> whatsLeft = new ArrayList<String>(); for (String a : args) { if (a.startsWith("-D")) { @@ -72,7 +72,7 @@ public class StringUtil { public static String noBlank(String str, String dft) { return StringUtils.isBlank(str) ? dft : str; } - + public static String dropSuffix(String str, String suffix) { if (str.endsWith(suffix)) return str.substring(0, str.length() - suffix.length()); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java index 9ce1425..097fe11 100644 --- a/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/KylinConfigTest.java @@ -18,11 +18,10 @@ package org.apache.kylin.common; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.util.Map; -import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.util.LocalFileMetadataTestCase; import org.junit.After; import org.junit.Before; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/persistence/ResourceStoreTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/persistence/ResourceStoreTest.java b/core-common/src/test/java/org/apache/kylin/common/persistence/ResourceStoreTest.java index 69fc6d8..4c31a15 100644 --- a/core-common/src/test/java/org/apache/kylin/common/persistence/ResourceStoreTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/persistence/ResourceStoreTest.java @@ -18,7 +18,10 @@ package org.apache.kylin.common.persistence; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -32,7 +35,7 @@ import org.apache.commons.lang.StringUtils; * Be called by LocalFileResourceStoreTest and ITHBaseResourceStoreTest. */ public class ResourceStoreTest { - + public static void testAStore(ResourceStore store) throws IOException { testBasics(store); testGetAllResources(store); @@ -41,25 +44,25 @@ public class ResourceStoreTest { private static void testGetAllResources(ResourceStore store) throws IOException { final String folder = "/testFolder"; List<StringEntity> result; - + // reset any leftover garbage ResourceTool.resetR(store, folder); - + store.putResource(folder + "/res1", new StringEntity("data1"), 1000, StringEntity.serializer); store.putResource(folder + "/res2", new StringEntity("data2"), 2000, StringEntity.serializer); store.putResource(folder + "/sub/res3", new StringEntity("data3"), 3000, StringEntity.serializer); store.putResource(folder + "/res4", new StringEntity("data4"), 4000, StringEntity.serializer); - + result = store.getAllResources(folder, StringEntity.class, StringEntity.serializer); assertEntity(result.get(0), "data1", 1000); assertEntity(result.get(1), "data2", 2000); assertEntity(result.get(2), "data4", 4000); assertEquals(3, result.size()); - + result = store.getAllResources(folder, 2000, 4000, StringEntity.class, StringEntity.serializer); assertEntity(result.get(0), "data2", 2000); assertEquals(1, result.size()); - + ResourceTool.resetR(store, folder); } @@ -185,5 +188,4 @@ public class ResourceStoreTest { } } - } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java b/core-common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java index 8081444..684d828 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/AbstractKylinTestCase.java @@ -28,7 +28,6 @@ import org.apache.kylin.common.KylinConfig; */ public abstract class AbstractKylinTestCase { - public static final String[] SERVICES_WITH_CACHE = { // "org.apache.kylin.cube.CubeManager", // "org.apache.kylin.cube.CubeDescManager", // http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/util/DateFormatTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/DateFormatTest.java b/core-common/src/test/java/org/apache/kylin/common/util/DateFormatTest.java index 52888a3..d70ffcc 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/DateFormatTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/DateFormatTest.java @@ -18,12 +18,11 @@ package org.apache.kylin.common.util; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import org.junit.Test; + /** * Created by dongli on 1/4/16. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java b/core-common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java index 1f4e9d1..7255226 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java @@ -19,6 +19,7 @@ package org.apache.kylin.common.util; import java.io.File; + import org.apache.kylin.common.KylinConfig; /** @@ -27,7 +28,7 @@ import org.apache.kylin.common.KylinConfig; public class HBaseMetadataTestCase extends AbstractKylinTestCase { public static String SANDBOX_TEST_DATA = "../examples/test_case_data/sandbox"; - + static { try { ClassUtil.addClasspath(new File(SANDBOX_TEST_DATA).getAbsolutePath()); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java b/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java index 11bf4ad..0a5df77 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/RangeUtilTest.java @@ -21,7 +21,6 @@ package org.apache.kylin.common.util; import java.util.List; import java.util.Map; import java.util.NavigableMap; -import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java index 24e398f..22633c1 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java @@ -46,6 +46,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Objects; import com.google.common.collect.Lists; @@ -116,7 +117,7 @@ public class CubeInstance extends RootPersistentEntity implements IRealization, for (CubeSegment seg : this.segments) { if (seg.getStatus() != SegmentStatusEnum.READY && seg.getStatus() != SegmentStatusEnum.READY_PENDING) continue; - + if (seg == mergedSegment) continue; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java index b9195fd..8e4e68c 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java @@ -19,10 +19,15 @@ package org.apache.kylin.cube; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TimeZone; import java.util.concurrent.ConcurrentHashMap; -import com.fasterxml.jackson.annotation.JsonInclude; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.persistence.ResourceStore; import org.apache.kylin.common.util.Dictionary; @@ -40,7 +45,9 @@ import org.apache.kylin.metadata.realization.IRealizationSegment; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonBackReference; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -119,7 +126,7 @@ public class CubeSegment implements Comparable<CubeSegment>, IRealizationSegment startOffset = startDate; endOffset = endDate; } - + if (startOffset == 0 && (endOffset == 0 || endOffset == Long.MAX_VALUE)) { return "FULL_BUILD"; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java index 758b690..f94752f 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeValidator.java @@ -85,7 +85,7 @@ public class CubeValidator { throw new IllegalStateException("Segments overlap: " + pre + " and " + seg); } pre = seg; - + for (CubeSegment aReady : ready) { if (seg.sourceOffsetOverlaps(aReady) && !seg.sourceOffsetContains(aReady)) throw new IllegalStateException("Segments overlap: " + aReady + " and " + seg); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/cli/CubeSignatureRefresher.java ---------------------------------------------------------------------- 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 59c172b..979ac4e 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 @@ -88,7 +88,7 @@ public class CubeSignatureRefresher { private void updateCubeDesc(CubeDesc cubeDesc) { try { String calculatedSign = cubeDesc.calculateSignature(); - if (cubeDesc.getSignature() == null || (!cubeDesc.getSignature().equals(calculatedSign)) ){ + if (cubeDesc.getSignature() == null || (!cubeDesc.getSignature().equals(calculatedSign))) { cubeDesc.setSignature(calculatedSign); store.putResource(cubeDesc.getResourcePath(), cubeDesc, CubeDescManager.CUBE_DESC_SERIALIZER); updatedResources.add(cubeDesc.getResourcePath()); @@ -99,7 +99,7 @@ public class CubeSignatureRefresher { } } - public static void main(String args[]) { + public static void main(String[] args) { if (args != null && args.length > 1) { System.out.println("Usage: java CubeSignatureRefresher [Cubes]; e.g, cube1,cube2 "); return; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java b/core-cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java index c9426ea..3b65d1f 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java @@ -18,6 +18,8 @@ package org.apache.kylin.cube.cli; +import java.io.IOException; + import org.apache.kylin.common.KylinConfig; import org.apache.kylin.cube.CubeInstance; import org.apache.kylin.cube.CubeManager; @@ -29,8 +31,6 @@ import org.apache.kylin.metadata.model.TblColRef; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; - public class DictionaryGeneratorCLI { private static final Logger logger = LoggerFactory.getLogger(DictionaryGeneratorCLI.class); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java b/core-cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java index dbed30d..67f1751 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java @@ -61,7 +61,6 @@ public class RowKeySplitter { return bufferSize; } - public RowKeySplitter(CubeSegment cubeSeg, int splitLen, int bytesLen) { this.enableSharding = cubeSeg.isEnableSharding(); this.cubeDesc = cubeSeg.getCubeDesc(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java index a00fc68..e4e718d 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java @@ -239,8 +239,7 @@ public class Cuboid implements Comparable<Cuboid> { private static boolean checkJoint(AggregationGroup agg, long cuboidID) { for (long joint : agg.getJoints()) { long common = cuboidID & joint; - if (common == 0 || common == joint) { - } else { + if (!(common == 0 || common == joint)) { return false; } } @@ -414,8 +413,6 @@ public class Cuboid implements Comparable<Cuboid> { return cuboidToGridTableMapping; } - - public static String getDisplayName(long cuboidID, int dimensionCount) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < dimensionCount; ++i) { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CubeGridTable.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CubeGridTable.java b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CubeGridTable.java index b368806..f2f3a25 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CubeGridTable.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CubeGridTable.java @@ -61,7 +61,7 @@ public class CubeGridTable { Cuboid cuboid = Cuboid.findById(cubeDesc, cuboidId); return newGTInfo(cuboid, new CubeDimEncMap(cubeDesc, dictionaryMap)); } - + public static GTInfo newGTInfo(Cuboid cuboid, IDimensionEncodingMap dimEncMap) { CuboidToGridTableMapping mapping = new CuboidToGridTableMapping(cuboid); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CuboidToGridTableMapping.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CuboidToGridTableMapping.java b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CuboidToGridTableMapping.java index 75ab140..0904686 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CuboidToGridTableMapping.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/CuboidToGridTableMapping.java @@ -84,16 +84,16 @@ public class CuboidToGridTableMapping { metricsColBlocks.add(new BitSet()); } } - + // metrics metrics2gt = Maps.newHashMap(); - for (MeasureDesc measure :cuboid.getCubeDesc().getMeasures()) { + for (MeasureDesc measure : cuboid.getCubeDesc().getMeasures()) { // Count distinct & holistic count distinct are equals() but different. // Ensure the holistic version if exists is always the first. FunctionDesc func = measure.getFunction(); metrics2gt.put(func, gtColIdx); gtDataTypes.add(func.getReturnDataType()); - + // map to column block int cbIdx = 0; for (HBaseColumnFamilyDesc familyDesc : cuboid.getCubeDesc().getHbaseMapping().getColumnFamily()) { @@ -104,14 +104,14 @@ public class CuboidToGridTableMapping { cbIdx++; } } - + gtColIdx++; } - + for (BitSet set : metricsColBlocks) { gtColBlocks.add(new ImmutableBitSet(set)); } - + nMetrics = gtColIdx - nDimensions; assert nMetrics == cuboid.getCubeDesc().getMeasures().size(); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimEnc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimEnc.java b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimEnc.java index 84581ab..c4bee8a 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimEnc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimEnc.java @@ -18,13 +18,13 @@ package org.apache.kylin.cube.gridtable; -import org.apache.kylin.dimension.DimensionEncoding; -import org.apache.kylin.metadata.datatype.DataTypeSerializer; - import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import org.apache.kylin.dimension.DimensionEncoding; +import org.apache.kylin.metadata.datatype.DataTypeSerializer; + public class TrimmedDimEnc extends DimensionEncoding { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimensionSerializer.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimensionSerializer.java b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimensionSerializer.java index 05ef3e8..b23a461 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimensionSerializer.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/gridtable/TrimmedDimensionSerializer.java @@ -18,10 +18,10 @@ package org.apache.kylin.cube.gridtable; -import org.apache.kylin.metadata.datatype.DataTypeSerializer; - import java.nio.ByteBuffer; +import org.apache.kylin.metadata.datatype.DataTypeSerializer; + public class TrimmedDimensionSerializer extends DataTypeSerializer<Object> { final int fixedLen; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/AbstractInMemCubeBuilder.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/AbstractInMemCubeBuilder.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/AbstractInMemCubeBuilder.java index 335a769..e385ab9 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/AbstractInMemCubeBuilder.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/AbstractInMemCubeBuilder.java @@ -61,7 +61,7 @@ abstract public class AbstractInMemCubeBuilder { public void setReserveMemoryMB(int mb) { this.reserveMemoryMB = mb; } - + public int getReserveMemoryMB() { return this.reserveMemoryMB; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/CompoundCuboidWriter.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/CompoundCuboidWriter.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/CompoundCuboidWriter.java index 46eef50..2eb748b 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/CompoundCuboidWriter.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/CompoundCuboidWriter.java @@ -17,10 +17,10 @@ package org.apache.kylin.cube.inmemcubing; -import org.apache.kylin.gridtable.GTRecord; - import java.io.IOException; +import org.apache.kylin.gridtable.GTRecord; + /** */ public class CompoundCuboidWriter implements ICuboidWriter { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ConcurrentDiskStore.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ConcurrentDiskStore.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ConcurrentDiskStore.java index 8b95b4f..d5d502c 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ConcurrentDiskStore.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ConcurrentDiskStore.java @@ -217,7 +217,7 @@ public class ConcurrentDiskStore implements IGTStore, Closeable { GTRecord record = new GTRecord(info); GTRecord next; ByteBuffer buf = ByteBuffer.allocate(info.getMaxRecordLength()); - + @Override public boolean hasNext() { if (next != null) @@ -309,7 +309,7 @@ public class ConcurrentDiskStore implements IGTStore, Closeable { public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); - + int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ICuboidWriter.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ICuboidWriter.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ICuboidWriter.java index e6cfa02..9e24ec7 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ICuboidWriter.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/ICuboidWriter.java @@ -17,10 +17,10 @@ package org.apache.kylin.cube.inmemcubing; -import org.apache.kylin.gridtable.GTRecord; - import java.io.IOException; +import org.apache.kylin.gridtable.GTRecord; + /** */ public interface ICuboidWriter { @@ -28,6 +28,6 @@ public interface ICuboidWriter { void write(long cuboidId, GTRecord record) throws IOException; void flush() throws IOException; - + void close() throws IOException; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilder.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilder.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilder.java index fe83ccf..fd9d03e 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilder.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilder.java @@ -28,8 +28,6 @@ import java.util.concurrent.ConcurrentNavigableMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.kylin.measure.topn.Counter; -import org.apache.kylin.measure.topn.TopNCounter; import org.apache.kylin.common.util.Dictionary; import org.apache.kylin.common.util.ImmutableBitSet; import org.apache.kylin.common.util.MemoryBudgetController; @@ -46,6 +44,8 @@ import org.apache.kylin.gridtable.GTRecord; import org.apache.kylin.gridtable.GTScanRequest; import org.apache.kylin.gridtable.GridTable; import org.apache.kylin.gridtable.IGTScanner; +import org.apache.kylin.measure.topn.Counter; +import org.apache.kylin.measure.topn.TopNCounter; import org.apache.kylin.metadata.datatype.DoubleMutable; import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.TblColRef; @@ -355,7 +355,7 @@ public class InMemCubeBuilder extends AbstractInMemCubeBuilder { private CuboidResult updateCuboidResult(long cuboidId, GridTable table, int nRows, long timeSpent, int aggrCacheMB) { if (aggrCacheMB <= 0 && baseResult != null) { - aggrCacheMB = (int) Math.round( // + aggrCacheMB = (int) Math.round(// (DERIVE_AGGR_CACHE_CONSTANT_FACTOR + DERIVE_AGGR_CACHE_VARIABLE_FACTOR * nRows / baseResult.nRows) // * baseResult.aggrCacheMB); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderInputConverter.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderInputConverter.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderInputConverter.java index 127045c..3ce635b 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderInputConverter.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderInputConverter.java @@ -17,14 +17,11 @@ */ package org.apache.kylin.cube.inmemcubing; -import org.apache.kylin.common.util.Bytes; -import org.apache.kylin.common.util.Dictionary; - import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; - +import org.apache.kylin.common.util.Bytes; +import org.apache.kylin.common.util.Dictionary; import org.apache.kylin.cube.model.CubeDesc; import org.apache.kylin.cube.model.CubeJoinedFlatTableDesc; import org.apache.kylin.gridtable.GTInfo; @@ -35,12 +32,14 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.ParameterDesc; import org.apache.kylin.metadata.model.TblColRef; +import com.google.common.collect.Lists; + /** */ public class InMemCubeBuilderInputConverter { public static final byte[] HIVE_NULL = Bytes.toBytes("\\N"); - + private final CubeJoinedFlatTableDesc intermediateTableDesc; private final MeasureDesc[] measureDescs; private final MeasureIngester<?>[] measureIngesters; @@ -48,7 +47,6 @@ public class InMemCubeBuilderInputConverter { private final Map<TblColRef, Dictionary<String>> dictionaryMap; private final GTInfo gtInfo; protected List<byte[]> nullBytes; - public InMemCubeBuilderInputConverter(CubeDesc cubeDesc, Map<TblColRef, Dictionary<String>> dictionaryMap, GTInfo gtInfo) { this.gtInfo = gtInfo; @@ -59,7 +57,7 @@ public class InMemCubeBuilderInputConverter { this.dictionaryMap = dictionaryMap; initNullBytes(cubeDesc); } - + public final GTRecord convert(List<String> row) { final GTRecord record = new GTRecord(gtInfo); convert(row, record); @@ -81,7 +79,7 @@ public class InMemCubeBuilderInputConverter { for (int i = 0; i < keySize; i++) { key[i] = row.get(intermediateTableDesc.getRowKeyColumnIndexes()[i]); - if (key[i] != null && isNull(Bytes.toBytes((String)key[i]))) { + if (key[i] != null && isNull(Bytes.toBytes((String) key[i]))) { key[i] = null; } } @@ -96,12 +94,12 @@ public class InMemCubeBuilderInputConverter { } return values; } - + private Object buildValueOf(int idxOfMeasure, List<String> row) { MeasureDesc measure = measureDescs[idxOfMeasure]; FunctionDesc function = measure.getFunction(); int[] colIdxOnFlatTable = intermediateTableDesc.getMeasureColumnIndexes()[idxOfMeasure]; - + int paramCount = function.getParameterCount(); String[] inputToMeasure = new String[paramCount]; @@ -119,7 +117,7 @@ public class InMemCubeBuilderInputConverter { } inputToMeasure[i] = value; } - + return measureIngesters[idxOfMeasure].valueOf(inputToMeasure, measure, dictionaryMap); } @@ -142,5 +140,4 @@ public class InMemCubeBuilderInputConverter { return false; } - } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderUtils.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderUtils.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderUtils.java index 8fa99cd..a0b4d46 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderUtils.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/InMemCubeBuilderUtils.java @@ -25,7 +25,7 @@ import org.apache.kylin.common.util.Pair; /** */ public final class InMemCubeBuilderUtils { - + public static final Pair<ImmutableBitSet, ImmutableBitSet> getDimensionAndMetricColumnBitSet(final long cuboidId, final int measureCount) { int cardinality = Long.bitCount(cuboidId); BitSet dimension = new BitSet(); @@ -34,7 +34,7 @@ public final class InMemCubeBuilderUtils { metrics.set(cardinality, cardinality + measureCount); return Pair.newPair(new ImmutableBitSet(dimension), new ImmutableBitSet(metrics)); } - + public static final Pair<ImmutableBitSet, ImmutableBitSet> getDimensionAndMetricColumnBitSet(final long baseCuboidId, final long childCuboidId, final int measureCount) { final Pair<ImmutableBitSet, ImmutableBitSet> parentDimensionAndMetricColumnBitSet = getDimensionAndMetricColumnBitSet(baseCuboidId, measureCount); ImmutableBitSet parentDimensions = parentDimensionAndMetricColumnBitSet.getFirst(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java index 166ae76..40a15ee 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java @@ -17,7 +17,7 @@ package org.apache.kylin.cube.inmemcubing; -import static org.apache.kylin.common.util.MemoryBudgetController.*; +import static org.apache.kylin.common.util.MemoryBudgetController.ONE_MB; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -344,7 +344,7 @@ public class MemDiskStore implements IGTStore, Closeable { public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); - + int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java index 54adb6c..6dc1b2f 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/AggregationGroup.java @@ -28,6 +28,7 @@ import org.apache.kylin.metadata.model.TblColRef; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Preconditions; import com.google.common.collect.Lists; @@ -277,7 +278,7 @@ public class AggregationGroup { public SelectRule getSelectRule() { return selectRule; } - + public boolean isMandatoryOnlyValid() { return isMandatoryOnlyValid; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index d379bf3..da92e0f 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -64,10 +64,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; + import com.google.common.base.Function; import com.google.common.collect.Collections2; import com.google.common.collect.Lists; @@ -145,7 +146,7 @@ public class CubeDesc extends RootPersistentEntity { @JsonProperty("partition_date_start") private long partitionDateStart = 0L; @JsonProperty("partition_date_end") - private long partitionDateEnd = 3153600000000l; + private long partitionDateEnd = 3153600000000L; @JsonProperty("auto_merge_time_ranges") private long[] autoMergeTimeRanges; @JsonProperty("retention_range") @@ -565,7 +566,7 @@ public class CubeDesc extends RootPersistentEntity { if (rowkey.getRowKeyColumns().length != dimCols.size()) { addError("RowKey columns count (" + rowkey.getRowKeyColumns().length + ") does not match dimension columns count (" + dimCols.size() + "). "); } - + initDictionaryDesc(); } @@ -913,7 +914,7 @@ public class CubeDesc extends RootPersistentEntity { } } } - + private void initDictionaryDesc() { if (dictionaries != null) { for (DictionaryDesc dictDesc : dictionaries) { @@ -1042,7 +1043,7 @@ public class CubeDesc extends RootPersistentEntity { MeasureType<?> aggrType = measure.getFunction().getMeasureType(); result.addAll(aggrType.getColumnsNeedDictionary(measure.getFunction())); } - + // any additional dictionaries if (dictionaries != null) { for (DictionaryDesc dictDesc : dictionaries) { @@ -1050,14 +1051,14 @@ public class CubeDesc extends RootPersistentEntity { result.add(col); } } - + return result; } /** Get columns that need dictionary built on it. Note a column could reuse dictionary of another column. */ public Set<TblColRef> getAllColumnsNeedDictionaryBuilt() { Set<TblColRef> result = getAllColumnsHaveDictionary(); - + // remove columns that reuse other's dictionary if (dictionaries != null) { for (DictionaryDesc dictDesc : dictionaries) { @@ -1067,7 +1068,7 @@ public class CubeDesc extends RootPersistentEntity { } } } - + return result; } @@ -1083,7 +1084,7 @@ public class CubeDesc extends RootPersistentEntity { } return col; } - + /** Get a column which can be used in distributing the source table */ public TblColRef getDistributedByColumn() { Set<TblColRef> shardBy = getShardByColumns(); @@ -1093,11 +1094,11 @@ public class CubeDesc extends RootPersistentEntity { return null; } - + public String getDictionaryBuilderClass(TblColRef col) { if (dictionaries == null) return null; - + for (DictionaryDesc desc : dictionaries) { if (desc.getBuilderClass() != null) { if (col.equals(desc.getResuseColumnRef())) { http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/DictionaryDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/DictionaryDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/DictionaryDesc.java index bdfc364..f8e3432 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/DictionaryDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/DictionaryDesc.java @@ -22,9 +22,9 @@ import org.apache.kylin.metadata.model.DataModelDesc; import org.apache.kylin.metadata.model.TblColRef; import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) public class DictionaryDesc { @@ -41,19 +41,19 @@ public class DictionaryDesc { // computed content private TblColRef colRef; private TblColRef reuseColRef; - + void init(CubeDesc cubeDesc) { DataModelDesc model = cubeDesc.getModel(); - + column = column.toUpperCase(); colRef = model.findColumn(column).getRef(); - + if (reuseColumn != null) { reuseColumn = reuseColumn.toUpperCase(); reuseColRef = model.findColumn(reuseColumn).getRef(); } } - + public TblColRef getColumnRef() { return colRef; } @@ -61,7 +61,7 @@ public class DictionaryDesc { public TblColRef getResuseColumnRef() { return reuseColRef; } - + public String getBuilderClass() { return builderClass; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java index 3a348a3..c33beb7 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java @@ -31,6 +31,7 @@ import org.apache.kylin.metadata.model.TblColRef; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Objects; /** @@ -148,7 +149,6 @@ public class DimensionDesc { public String[] getDerived() { return derived; } - public void setDerived(String[] derived) { this.derived = derived; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java index e82ad53..fb491f8 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java @@ -57,11 +57,11 @@ public class HBaseColumnDesc { public void setMeasureRefs(String[] measureRefs) { this.measureRefs = measureRefs; } - + public int[] getMeasureIndex() { return measureIndex; } - + public void setMeasureIndex(int[] index) { this.measureIndex = index; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java index d4cfcb7..c4518c3 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java @@ -33,6 +33,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -74,7 +75,7 @@ public class RowKeyColDesc { if (!DimensionEncodingFactory.isVaildEncoding(this.encodingName)) throw new IllegalArgumentException("Not supported row key col encoding: '" + this.encoding + "'"); - + // convert date/time dictionary to DimensionEncoding implicitly, date/time dictionary is deprecated if (DictionaryDimEnc.ENCODING_NAME.equals(encodingName)) { DataType type = colRef.getType(); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java index 2dac2bf..5a4e6aa 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java @@ -31,6 +31,7 @@ import org.apache.kylin.metadata.model.TblColRef; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; + import com.google.common.base.Objects; /** @@ -85,8 +86,7 @@ public class RowKeyDesc { int[] tmp = new int[100]; int x = 0; for (int i = 0, n = rowkeyColumns.length; i < n; i++) { - if ("true".equalsIgnoreCase(rowkeyColumns[i].getIndex()) - && DictionaryDimEnc.ENCODING_NAME.equalsIgnoreCase(rowkeyColumns[i].getEncoding())) { + if ("true".equalsIgnoreCase(rowkeyColumns[i].getIndex()) && DictionaryDimEnc.ENCODING_NAME.equalsIgnoreCase(rowkeyColumns[i].getEncoding())) { tmp[x] = i; x++; } @@ -125,7 +125,6 @@ public class RowKeyDesc { } } - public long getFullMask() { return this.fullMask; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java index 0a88a4f..77019b0 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/CubeDesc.java @@ -58,6 +58,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; + import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -120,7 +121,7 @@ public class CubeDesc extends RootPersistentEntity { @JsonProperty("partition_date_start") private long partitionDateStart = 0L; @JsonProperty("partition_date_end") - private long partitionDateEnd = 3153600000000l; + private long partitionDateEnd = 3153600000000L; @JsonProperty("auto_merge_time_ranges") private long[] autoMergeTimeRanges; @JsonProperty("retention_range") @@ -661,14 +662,13 @@ public class CubeDesc extends RootPersistentEntity { func.init(factTable, lookups); allColumns.addAll(func.getParameter().getColRefs()); -// // verify holistic count distinct as a dependent measure -// if (isHolisticCountDistinct() && StringUtils.isBlank(m.getDependentMeasureRef())) { -// throw new IllegalStateException(m + " is a holistic count distinct but it has no DependentMeasureRef defined!"); -// } + // // verify holistic count distinct as a dependent measure + // if (isHolisticCountDistinct() && StringUtils.isBlank(m.getDependentMeasureRef())) { + // throw new IllegalStateException(m + " is a holistic count distinct but it has no DependentMeasureRef defined!"); + // } } } - private void initMeasureReferenceToColumnFamily() { if (measures == null || measures.size() == 0) return; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnDesc.java index 2db4ec7..086c8a0 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnDesc.java @@ -57,11 +57,11 @@ public class HBaseColumnDesc { public void setMeasureRefs(String[] measureRefs) { this.measureRefs = measureRefs; } - + public int[] getMeasureIndex() { return measureIndex; } - + public void setMeasureIndex(int[] index) { this.measureIndex = index; } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnFamilyDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnFamilyDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnFamilyDesc.java index bcde3d5..5df0b76 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnFamilyDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/HBaseColumnFamilyDesc.java @@ -20,7 +20,6 @@ package org.apache.kylin.cube.model.v1_4_0; import java.util.Arrays; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonProperty; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/RowKeyDesc.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/RowKeyDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/RowKeyDesc.java index 112a249..7d37a76 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/RowKeyDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/v1_4_0/RowKeyDesc.java @@ -50,7 +50,7 @@ public class RowKeyDesc { } public long groupMask; - public long groupOneBitMasks[]; + public long[] groupOneBitMasks; public long uniqueMask; public long leftoverMask; } @@ -283,7 +283,7 @@ public class RowKeyDesc { if ((tailMask & bit) > 0) continue; // ignore levels in tail, they don't participate - // aggregation group combination anyway + // aggregation group combination anyway mask.fullMask |= bit; this.hierarchyFullMask |= bit; http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/validation/CubeMetadataValidator.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/CubeMetadataValidator.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/CubeMetadataValidator.java index d2f84f3..c631f8d 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/CubeMetadataValidator.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/CubeMetadataValidator.java @@ -32,7 +32,7 @@ import org.apache.kylin.cube.model.validation.rule.RowKeyAttrRule; */ public class CubeMetadataValidator { @SuppressWarnings("unchecked") - private IValidatorRule<CubeDesc>[] rules = new IValidatorRule[] { new FunctionRule(), new AggregationGroupRule(), new RowKeyAttrRule(), new DictionaryRule()}; + private IValidatorRule<CubeDesc>[] rules = new IValidatorRule[] { new FunctionRule(), new AggregationGroupRule(), new RowKeyAttrRule(), new DictionaryRule() }; public ValidateContext validate(CubeDesc cube) { return validate(cube, false); http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/validation/IValidatorRule.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/IValidatorRule.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/IValidatorRule.java index ba47c41..4787e61 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/IValidatorRule.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/IValidatorRule.java @@ -18,13 +18,10 @@ package org.apache.kylin.cube.model.validation; -import org.apache.kylin.cube.model.validation.rule.IKylinValidationConstants; - /** * @author jianliu * */ -public interface IValidatorRule<T> extends IKylinValidationConstants { - +public interface IValidatorRule<T> { public void validate(T element, ValidateContext context); } http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/DictionaryRule.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/DictionaryRule.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/DictionaryRule.java index effe30c..2368105 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/DictionaryRule.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/DictionaryRule.java @@ -18,17 +18,18 @@ package org.apache.kylin.cube.model.validation.rule; -import org.apache.kylin.cube.model.*; +import java.util.HashMap; +import java.util.List; + +import org.apache.kylin.cube.model.CubeDesc; +import org.apache.kylin.cube.model.DictionaryDesc; +import org.apache.kylin.cube.model.RowKeyColDesc; import org.apache.kylin.cube.model.validation.IValidatorRule; import org.apache.kylin.cube.model.validation.ResultLevel; import org.apache.kylin.cube.model.validation.ValidateContext; -import org.apache.kylin.dict.AppendTrieDictionary; import org.apache.kylin.dict.GlobalDictionaryBuilder; import org.apache.kylin.metadata.model.TblColRef; -import java.util.HashMap; -import java.util.List; - /** * Created by sunyerui on 16/6/1. */ http://git-wip-us.apache.org/repos/asf/kylin/blob/5d4982e2/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java index e27a642..44b0be0 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java @@ -24,7 +24,6 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import com.google.common.collect.Lists; import org.apache.commons.lang.StringUtils; import org.apache.kylin.cube.model.CubeDesc; import org.apache.kylin.cube.model.DimensionDesc; @@ -39,6 +38,8 @@ import org.apache.kylin.metadata.model.MeasureDesc; import org.apache.kylin.metadata.model.ParameterDesc; import org.apache.kylin.metadata.model.TableDesc; +import com.google.common.collect.Lists; + /** * Validate function parameter. * <p/>