You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/08/04 05:46:42 UTC

[01/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Repository: incubator-kylin
Updated Branches:
  refs/heads/0.7-staging 388488be8 -> 3deec0d82


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
index 158b08f..c82e510 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregationScanner.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
@@ -27,10 +31,6 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author yangli9
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
index 28feda7..543ae8c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregationCache.java
@@ -18,6 +18,12 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionInfo;
@@ -28,12 +34,6 @@ import org.apache.kylin.metadata.measure.MeasureAggregator;
 import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
 import org.apache.kylin.storage.hbase.coprocessor.AggregationCache;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
index 0610ea5..beee93f 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverAggregators.java
@@ -24,19 +24,17 @@ import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.cube.kv.RowConstants;
 import org.apache.kylin.cube.kv.RowValueDecoder;
+import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.metadata.measure.MeasureAggregator;
 import org.apache.kylin.metadata.measure.MeasureCodec;
-import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
index 84688a1..6ee68bb 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverEnabler.java
@@ -18,8 +18,10 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -42,10 +44,8 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 /**
  * @author yangli9
@@ -68,7 +68,7 @@ public class ObserverEnabler {
         CoprocessorFilter filter = CoprocessorFilter.fromFilter(segment, tupleFiler);
         CoprocessorProjector projector = CoprocessorProjector.makeForObserver(segment, cuboid, groupBy);
         ObserverAggregators aggrs = ObserverAggregators.fromValueDecoders(rowValueDecoders);
-        
+
         boolean localCoprocessor = KylinConfig.getInstanceFromEnv().getQueryRunLocalCoprocessor() || BackdoorToggles.getRunLocalCoprocessor();
 
         if (localCoprocessor) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
index 72ae5de..63ae9e3 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/ObserverTuple.java
@@ -20,12 +20,11 @@ package org.apache.kylin.storage.hbase.coprocessor.observer;
 
 import java.util.List;
 
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 
 /**
  * A special kind of tuple that exposes column value (dictionary ID) directly on

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
index 2769b58..9cd7f08 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridInstance.java
@@ -17,10 +17,11 @@
 */
 package org.apache.kylin.storage.hybrid;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.collect.Lists;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedHashSet;
+import java.util.List;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -34,10 +35,10 @@ import org.apache.kylin.metadata.realization.SQLDigest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashSet;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.Lists;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
index 6b4f7b9..d8b4b16 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridManager.java
@@ -17,6 +17,10 @@
 */
 package org.apache.kylin.storage.hybrid;
 
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
@@ -30,10 +34,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  */
 public class HybridManager implements IRealizationProvider {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
index 8b503fb..2001f3d 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
@@ -17,7 +17,8 @@
 */
 package org.apache.kylin.storage.hybrid;
 
-import com.google.common.collect.Lists;
+import java.util.List;
+
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.tuple.CompoundTupleIterator;
@@ -26,7 +27,7 @@ import org.apache.kylin.storage.IStorageEngine;
 import org.apache.kylin.storage.StorageContext;
 import org.apache.kylin.storage.StorageEngineFactory;
 
-import java.util.List;
+import com.google.common.collect.Lists;
 
 /**
  */
@@ -56,5 +57,4 @@ public class HybridStorageEngine implements IStorageEngine {
         return new CompoundTupleIterator(tupleIterators);
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java b/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
index 0bfbabb..44ea572 100644
--- a/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
+++ b/storage/src/main/java/org/apache/kylin/storage/tuple/Tuple.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.storage.tuple;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
 import org.apache.kylin.common.util.Array;
 import org.apache.kylin.common.util.DateFormat;
 import org.apache.kylin.cube.CubeManager;
@@ -27,10 +31,6 @@ import org.apache.kylin.dict.lookup.LookupStringTable;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
 
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
 /**
  * @author xjiang
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java b/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
index f433254..9ee6e94 100644
--- a/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/MiniClusterTest.java
@@ -24,7 +24,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.MiniHBaseCluster;
-
 import org.apache.kylin.common.util.AbstractKylinTestCase;
 
 public class MiniClusterTest {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
index 47b519f..ce30bad 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/BitMapFilterEvaluatorTest.java
@@ -18,21 +18,25 @@
 
 package org.apache.kylin.storage.filter;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.ArrayList;
 
 import org.apache.kylin.dict.Dictionary;
-import org.apache.kylin.metadata.filter.*;
-import org.junit.Test;
-import static org.junit.Assert.*;
-
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
-
-import com.google.common.collect.Lists;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.storage.filter.BitMapFilterEvaluator.BitMapProvider;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
 
 public class BitMapFilterEvaluatorTest {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
index 412bab6..1b45e9b 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterBaseTest.java
@@ -23,11 +23,16 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Random;
 
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.CaseTupleFilter;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
 import org.apache.kylin.storage.tuple.Tuple;
 import org.apache.kylin.storage.tuple.TupleInfo;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
index feaf98a..fc43c65 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterEvaluateTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.kylin.storage.filter;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.Collection;
 import java.util.List;
 
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilterSerializer;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.storage.tuple.Tuple;
 import org.junit.Test;
 
-import org.apache.kylin.metadata.model.TblColRef;
-
 /**
  * @author xjiang
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
index 7457b49..c697dcf 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterPerfTest.java
@@ -17,13 +17,20 @@
 */
 package org.apache.kylin.storage.filter;
 
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
@@ -33,11 +40,9 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.Iterator;
-import java.util.List;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java b/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
index 07dfc8e..240aea2 100644
--- a/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/filter/FilterSerializeTest.java
@@ -23,13 +23,12 @@ import java.util.List;
 
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
 import org.apache.kylin.metadata.filter.TupleFilterSerializer;
-import org.junit.Test;
-
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.junit.Test;
 
 /**
  * @author xjiang

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
index 47b81d3..50e7eb4 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/ColumnValueRangeTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.storage.hbase;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -66,12 +66,12 @@ public class ColumnValueRangeTest {
             r2.preEvaluateWithDict(dict);
             assertEquals("CN", r2.getBeginValue());
             assertEquals(null, r2.getEndValue());
-            
+
             ColumnValueRange r3 = new ColumnValueRange(col, set("Other"), FilterOperatorEnum.GTE);
             r3.preEvaluateWithDict(dict);
             assertEquals("CN", r3.getBeginValue());
             assertEquals(null, r3.getEndValue());
-            
+
             ColumnValueRange r4 = new ColumnValueRange(col, set("CI"), FilterOperatorEnum.GTE);
             r4.preEvaluateWithDict(dict);
             assertEquals(null, r4.getBeginValue());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
index 77ef8b6..7aba97c 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/FuzzyValueCombinationTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.storage.hbase;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -26,12 +26,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.junit.Test;
-
-import com.google.common.collect.Maps;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.junit.Test;
+
+import com.google.common.collect.Maps;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
index 91bb7f1..5088f91 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/InvertedIndexHBaseTest.java
@@ -20,17 +20,11 @@ package org.apache.kylin.storage.hbase;
 
 import java.util.List;
 
-import org.apache.kylin.common.util.BytesUtil;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.*;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.invertedindex.IIInstance;
@@ -42,6 +36,11 @@ import org.apache.kylin.invertedindex.index.TableRecord;
 import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.invertedindex.model.IIDesc;
 import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
index f597c7e..d92dab6 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/RowProjectorTest.java
@@ -18,17 +18,18 @@
 
 package org.apache.kylin.storage.hbase.coprocessor;
 
-import com.google.common.collect.Lists;
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.KeyValue;
-import org.apache.kylin.common.util.Bytes;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import static org.junit.Assert.assertTrue;
+import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.kylin.common.util.Bytes;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
index b98b09b..09b1a84 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationTest.java
@@ -18,6 +18,15 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.hadoop.io.LongWritable;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.invertedindex.IIInstance;
@@ -30,20 +39,18 @@ import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.measure.MeasureAggregator;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.util.*;
-
-import static org.junit.Assert.assertEquals;
-
 /**
  * Created by Hongbin Ma(Binmahone) on 11/27/14.
  *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
index 6ec9385..2a4b597 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/TableRecordInfoTest.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
@@ -25,13 +29,8 @@ import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.invertedindex.index.TableRecordInfoDigest;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-
 /**
  * Created by Hongbin Ma(Binmahone) on 12/3/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
index 9bed0ca..4d065c7 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserverTest.java
@@ -18,7 +18,17 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionInfo;
@@ -38,16 +48,7 @@ import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverAggregators.H
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import com.google.common.collect.Lists;
 
 /**
  * @author yangli9
@@ -171,7 +172,7 @@ public class AggregateRegionObserverTest {
 
         MockupRegionScanner innerScanner = new MockupRegionScanner(cellsInput);
 
-        RegionScanner aggrScanner = new AggregationScanner(rowType, filter, projector, aggregators, innerScanner,ObserverBehavior.SCAN_FILTER_AGGR);
+        RegionScanner aggrScanner = new AggregationScanner(rowType, filter, projector, aggregators, innerScanner, ObserverBehavior.SCAN_FILTER_AGGR);
         ArrayList<Cell> result = Lists.newArrayList();
         boolean hasMore = true;
         while (hasMore) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
index 9458014..94e05a3 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowAggregatorsTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
index c991006..0e66436 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hbase/coprocessor/observer/RowTypeTest.java
@@ -18,20 +18,19 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 
-import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java b/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
index 110c49f..afb54dd 100644
--- a/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/hybrid/HybridManagerTest.java
@@ -54,7 +54,6 @@ public class HybridManagerTest extends LocalFileMetadataTestCase {
 
     }
 
-
     public HybridManager getHybridManager() {
         return HybridManager.getInstance(getTestConfig());
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java b/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
index aedec21..ec0898a 100644
--- a/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/test/StorageTest.java
@@ -18,43 +18,41 @@
 
 package org.apache.kylin.storage.test;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.kylin.metadata.realization.SQLDigest;
-
-import org.apache.kylin.storage.IStorageEngine;
-import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.storage.StorageEngineFactory;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.model.ColumnDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
-import org.apache.kylin.metadata.model.ParameterDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.filter.ColumnTupleFilter;
 import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
-import org.apache.kylin.storage.hbase.ScanOutOfLimitException;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.tuple.ITuple;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.StorageEngineFactory;
+import org.apache.kylin.storage.hbase.ScanOutOfLimitException;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
 
 public class StorageTest extends HBaseMetadataTestCase {
 



[13/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
KYLIN-922 Enforce same code style for both intellij and eclipse user


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/40a744be
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/40a744be
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/40a744be

Branch: refs/heads/0.7-staging
Commit: 40a744be9570b8b492a9126ab9bc115324098cfa
Parents: 07db225
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 16:12:27 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:54 2015 +0800

----------------------------------------------------------------------
 .../adapter/enumerable/EnumerableJoin.java      |  228 +-
 .../apache/calcite/runtime/SqlFunctions.java    | 2559 +++---
 .../calcite/sql2rel/SqlToRelConverter.java      | 8476 ++++++++----------
 .../org/apache/kylin/common/KylinConfig.java    |   23 +-
 .../kylin/common/debug/BackdoorToggles.java     |   10 +-
 .../kylin/common/lock/ZookeeperJobLock.java     |    4 +-
 .../org/apache/kylin/common/mr/KylinMapper.java |    3 +-
 .../apache/kylin/common/mr/KylinReducer.java    |    2 +-
 .../common/persistence/FileResourceStore.java   |   11 +-
 .../common/persistence/HBaseConnection.java     |    3 +-
 .../common/persistence/HBaseResourceStore.java  |   22 +-
 .../kylin/common/persistence/ResourceStore.java |    1 -
 .../kylin/common/persistence/ResourceTool.java  |   40 +-
 .../persistence/RootPersistentEntity.java       |    6 +-
 .../kylin/common/restclient/Broadcaster.java    |   15 +-
 .../restclient/CaseInsensitiveStringCache.java  |    2 +-
 .../org/apache/kylin/common/util/ByteArray.java |    2 -
 .../org/apache/kylin/common/util/Bytes.java     |  313 +-
 .../apache/kylin/common/util/BytesSplitter.java |    3 +-
 .../org/apache/kylin/common/util/BytesUtil.java |    8 +-
 .../kylin/common/util/CliCommandExecutor.java   |    1 -
 .../common/util/HBaseRegionSizeCalculator.java  |    1 -
 .../apache/kylin/common/util/HadoopUtil.java    |    4 +-
 .../apache/kylin/common/util/HiveClient.java    |    5 +-
 .../apache/kylin/common/util/MailService.java   |    3 +-
 .../java/org/apache/kylin/common/util/Pair.java |   42 +-
 .../apache/kylin/common/util/PartialSorter.java |    4 +-
 .../org/apache/kylin/common/util/SSHClient.java |    1 +
 .../apache/kylin/common/util/ThreadUtil.java    |    1 -
 .../persistence/HBaseResourceStoreTest.java     |    5 +-
 .../persistence/LocalFileResourceStoreTest.java |   10 +-
 .../common/persistence/ResourceToolTest.java    |    3 +-
 .../kylin/common/restclient/RestClientTest.java |    4 +-
 .../kylin/common/util/BasicHadoopTest.java      |    6 +-
 .../org/apache/kylin/common/util/BasicTest.java |    9 +-
 .../apache/kylin/common/util/BytesUtilTest.java |   10 +-
 .../common/util/HBaseMetadataTestCase.java      |    2 +-
 .../common/util/HyperLogLogCounterTest.java     |    3 +-
 .../common/util/LocalFileMetadataTestCase.java  |    3 +-
 .../kylin/common/util/PartialSorterTest.java    |    9 +-
 .../kylin/common/util/RandomSamplerTest.java    |    2 +-
 .../apache/kylin/common/util/SSHClientTest.java |    2 +-
 .../kylin/cube/CubeCapabilityChecker.java       |    5 +-
 .../org/apache/kylin/cube/CubeDescManager.java  |   18 +-
 .../org/apache/kylin/cube/CubeDescUpgrader.java |   35 +-
 .../apache/kylin/cube/CubeDimensionDeriver.java |    4 +-
 .../org/apache/kylin/cube/CubeInstance.java     |    4 +-
 .../java/org/apache/kylin/cube/CubeManager.java |   31 +-
 .../java/org/apache/kylin/cube/CubeSegment.java |   15 +-
 .../kylin/cube/cli/DictionaryGeneratorCLI.java  |    7 +-
 .../kylin/cube/common/RowKeySplitter.java       |    3 +-
 .../org/apache/kylin/cube/cuboid/Cuboid.java    |    1 -
 .../kylin/cube/cuboid/CuboidScheduler.java      |    1 +
 .../cube/estimation/CubeSizeEstimationCLI.java  |    2 +-
 .../kylin/cube/kv/AbstractRowKeyEncoder.java    |    5 +-
 .../apache/kylin/cube/kv/RowKeyColumnIO.java    |    7 +-
 .../org/apache/kylin/cube/kv/RowKeyDecoder.java |    2 +-
 .../org/apache/kylin/cube/kv/RowKeyEncoder.java |    1 -
 .../apache/kylin/cube/kv/RowValueDecoder.java   |    3 +-
 .../org/apache/kylin/cube/model/CubeDesc.java   |    8 +-
 .../apache/kylin/cube/model/DimensionDesc.java  |   11 +-
 .../kylin/cube/model/HBaseColumnDesc.java       |    5 +-
 .../kylin/cube/model/HBaseMappingDesc.java      |    7 +-
 .../apache/kylin/cube/model/HierarchyDesc.java  |    3 +-
 .../apache/kylin/cube/model/RowKeyColDesc.java  |    3 +-
 .../org/apache/kylin/cube/model/RowKeyDesc.java |    4 +-
 .../kylin/cube/model/v1/CubeInstance.java       |  116 +-
 .../kylin/cube/model/v1/CubePartitionDesc.java  |    5 +-
 .../apache/kylin/cube/model/v1/CubeSegment.java |   18 +-
 .../kylin/cube/model/v1/DimensionDesc.java      |    7 +-
 .../kylin/cube/model/v1/ProjectInstance.java    |   10 +-
 .../model/validation/rule/FunctionRule.java     |    7 +-
 .../validation/rule/MandatoryColumnRule.java    |    1 -
 .../model/validation/rule/RowKeyAttrRule.java   |    9 +-
 .../cube/AggregationGroupSizeRuleTest.java      |    8 +-
 .../org/apache/kylin/cube/CubeDescTest.java     |   18 +-
 .../apache/kylin/cube/CubeManagerCacheTest.java |    9 +-
 .../org/apache/kylin/cube/CubeManagerTest.java  |    3 +-
 .../org/apache/kylin/cube/CubeSegmentsTest.java |   21 +-
 .../kylin/cube/CubeSizeEstimationCLITest.java   |    7 +-
 .../kylin/cube/DictionaryManagerTest.java       |   12 +-
 .../kylin/cube/MandatoryColumnRuleTest.java     |    9 +-
 .../apache/kylin/cube/RowKeyAttrRuleTest.java   |    9 +-
 .../kylin/cube/common/BytesSplitterTest.java    |    2 +-
 .../kylin/cube/common/RowKeySplitterTest.java   |    9 +-
 .../kylin/cube/cuboid/CombinationTest.java      |    2 +-
 .../kylin/cube/cuboid/CuboidSchedulerTest.java  |   11 +-
 .../apache/kylin/cube/cuboid/CuboidTest.java    |    8 +-
 .../apache/kylin/cube/kv/RowKeyDecoderTest.java |    9 +-
 .../apache/kylin/cube/kv/RowKeyEncoderTest.java |   11 +-
 .../kylin/cube/kv/RowValueDecoderTest.java      |   13 +-
 .../kylin/cube/project/ProjectManagerTest.java  |   18 +-
 .../kylin/metadata/MetadataUpgradeTest.java     |   33 +-
 .../metadata/measure/MeasureCodecTest.java      |    7 +-
 .../java/org/apache/kylin/dict/Dictionary.java  |    1 -
 .../apache/kylin/dict/DictionaryManager.java    |    2 +-
 .../java/org/apache/kylin/dict/ISegment.java    |    4 +-
 .../kylin/dict/lookup/FileTableReader.java      |    6 +-
 .../org/apache/kylin/dict/lookup/HiveTable.java |    4 +-
 .../kylin/dict/lookup/LookupBytesTable.java     |    3 +-
 .../apache/kylin/dict/lookup/LookupTable.java   |    7 +-
 .../apache/kylin/dict/lookup/ReadableTable.java |    9 +-
 .../kylin/dict/lookup/SnapshotManager.java      |    4 +-
 .../apache/kylin/dict/lookup/SnapshotTable.java |   19 +-
 .../kylin/dict/DateStrDictionaryTest.java       |    8 +-
 .../apache/kylin/dict/HiveTableReaderTest.java  |    3 +-
 .../org/apache/kylin/dict/LookupTableTest.java  |   11 +-
 .../apache/kylin/dict/NumberDictionaryTest.java |    5 +-
 .../apache/kylin/dict/SnapshotManagerTest.java  |    3 +-
 .../org/apache/kylin/dict/TableReaderTest.java  |    2 +-
 .../apache/kylin/dict/TrieDictionaryTest.java   |    5 +-
 .../kylin/dict/lookup/LookupTableTest.java      |   20 +-
 .../kylin/invertedindex/IIDescManager.java      |   10 +-
 .../apache/kylin/invertedindex/IIInstance.java  |   22 +-
 .../apache/kylin/invertedindex/IIManager.java   |   12 +-
 .../apache/kylin/invertedindex/IISegment.java   |   24 +-
 .../invertedindex/index/BitMapContainer.java    |    5 +-
 .../index/ColumnValueContainer.java             |   17 +-
 .../index/CompressedValueContainer.java         |    4 +-
 .../invertedindex/index/RawTableRecord.java     |   10 +-
 .../kylin/invertedindex/index/ShardingHash.java |    8 +-
 .../index/ShardingSliceBuilder.java             |   50 +-
 .../apache/kylin/invertedindex/index/Slice.java |    3 +-
 .../kylin/invertedindex/index/SliceBuilder.java |  184 +-
 .../index/TableRecordInfoDigest.java            |  271 +-
 .../kylin/invertedindex/model/IIDesc.java       |    1 -
 .../kylin/invertedindex/model/IIDimension.java  |    5 +-
 .../invertedindex/model/IIKeyValueCodec.java    |  450 +-
 .../apache/kylin/invertedindex/tools/IICLI.java |  111 +-
 .../invertedindex/IIDescManagerTest.java        |   12 +-
 .../invertedindex/invertedindex/IIDescTest.java |    7 +-
 .../invertedindex/IIInstanceTest.java           |   11 +-
 .../invertedindex/InvertedIndexLocalTest.java   |  397 +-
 .../main/java/org/apache/kylin/jdbc/Driver.java |   62 +-
 .../java/org/apache/kylin/jdbc/KylinClient.java |    4 +-
 .../org/apache/kylin/jdbc/KylinConnection.java  |   18 +-
 .../java/org/apache/kylin/jdbc/KylinMeta.java   |    2 +-
 .../org/apache/kylin/jdbc/KylinResultSet.java   |   12 +-
 .../java/org/apache/kylin/jdbc/DriverTest.java  |    7 +-
 .../java/org/apache/kylin/jdbc/DummyClient.java |   10 +-
 .../java/org/apache/kylin/jdbc/DummyDriver.java |    2 -
 .../org/apache/kylin/jdbc/DummyJdbcFactory.java |    7 +-
 .../apache/kylin/job/AbstractJobBuilder.java    |    4 +-
 .../apache/kylin/job/CubeMetadataUpgrade.java   |  242 +-
 .../java/org/apache/kylin/job/JobInstance.java  |  107 +-
 .../org/apache/kylin/job/JoinedFlatTable.java   |    2 +-
 .../java/org/apache/kylin/job/cmd/ShellCmd.java |   10 +-
 .../apache/kylin/job/cmd/ShellCmdOutput.java    |    3 +-
 .../kylin/job/common/HadoopCmdOutput.java       |    8 +-
 .../kylin/job/common/HadoopShellExecutable.java |    9 +-
 .../apache/kylin/job/common/HqlExecutable.java  |   19 +-
 .../kylin/job/common/ShellExecutable.java       |    8 +-
 .../kylin/job/constant/ExecutableConstants.java |    8 +-
 .../org/apache/kylin/job/cube/CubingJob.java    |   31 +-
 .../apache/kylin/job/cube/CubingJobBuilder.java |   39 +-
 .../kylin/job/cube/GarbageCollectionStep.java   |   17 +-
 .../kylin/job/cube/MergeDictionaryStep.java     |   16 +-
 .../job/cube/UpdateCubeInfoAfterBuildStep.java  |    4 +-
 .../job/cube/UpdateCubeInfoAfterMergeStep.java  |   14 +-
 .../org/apache/kylin/job/dao/ExecutableDao.java |   19 +-
 .../kylin/job/dao/ExecutableOutputPO.java       |    3 +-
 .../org/apache/kylin/job/dao/ExecutablePO.java  |    3 +-
 .../job/deployment/HbaseConfigPrinterCLI.java   |    1 -
 .../kylin/job/engine/JobEngineConfig.java       |    9 +-
 .../kylin/job/execution/AbstractExecutable.java |   21 +-
 .../kylin/job/execution/ChainedExecutable.java  |    2 +-
 .../job/execution/DefaultChainedExecutable.java |    9 +-
 .../kylin/job/execution/DefaultOutput.java      |    4 +-
 .../apache/kylin/job/execution/Executable.java  |    4 +-
 .../kylin/job/execution/ExecutableState.java    |   10 +-
 .../kylin/job/execution/ExecuteResult.java      |    5 +-
 .../kylin/job/hadoop/AbstractHadoopJob.java     |   21 +-
 .../cardinality/ColumnCardinalityMapper.java    |    9 +-
 .../cardinality/ColumnCardinalityReducer.java   |    8 +-
 .../cardinality/HiveColumnCardinalityJob.java   |    5 +-
 .../HiveColumnCardinalityUpdateJob.java         |    1 -
 .../kylin/job/hadoop/cube/BaseCuboidJob.java    |    2 +-
 .../kylin/job/hadoop/cube/BaseCuboidMapper.java |   18 +-
 .../kylin/job/hadoop/cube/CubeHFileJob.java     |    9 +-
 .../kylin/job/hadoop/cube/CubeHFileMapper.java  |   12 +-
 .../apache/kylin/job/hadoop/cube/CuboidJob.java |    6 +-
 .../kylin/job/hadoop/cube/CuboidReducer.java    |   13 +-
 .../cube/FactDistinctColumnsCombiner.java       |    5 +-
 .../job/hadoop/cube/FactDistinctColumnsJob.java |   88 +-
 .../hadoop/cube/FactDistinctColumnsMapper.java  |    3 +-
 .../hadoop/cube/FactDistinctColumnsReducer.java |   10 +-
 .../kylin/job/hadoop/cube/MergeCuboidJob.java   |    3 -
 .../job/hadoop/cube/MergeCuboidMapper.java      |    3 +-
 .../job/hadoop/cube/MetadataCleanupJob.java     |   16 +-
 .../kylin/job/hadoop/cube/NDCuboidMapper.java   |   13 +-
 .../job/hadoop/cube/NewBaseCuboidMapper.java    |   13 +-
 .../hadoop/cube/RangeKeyDistributionJob.java    |    7 +-
 .../hadoop/cube/RangeKeyDistributionMapper.java |    2 +-
 .../cube/RangeKeyDistributionReducer.java       |   19 +-
 .../cube/RowKeyDistributionCheckerJob.java      |    1 -
 .../cube/RowKeyDistributionCheckerMapper.java   |    7 +-
 .../cube/RowKeyDistributionCheckerReducer.java  |    1 -
 .../job/hadoop/cube/StorageCleanupJob.java      |   34 +-
 .../job/hadoop/dict/CreateDictionaryJob.java    |    1 -
 .../kylin/job/hadoop/hbase/BulkLoadJob.java     |    4 +-
 .../kylin/job/hadoop/hbase/CreateHTableJob.java |   22 +-
 .../hadoop/hive/CubeJoinedFlatTableDesc.java    |    2 +-
 .../job/hadoop/hive/IIJoinedFlatTableDesc.java  |    7 +-
 .../job/hadoop/invertedindex/IIBulkLoadJob.java |   12 +-
 .../hadoop/invertedindex/IICreateHTableJob.java |   10 +-
 .../IIDistinctColumnsCombiner.java              |    3 +-
 .../invertedindex/IIDistinctColumnsJob.java     |    5 +-
 .../invertedindex/IIDistinctColumnsMapper.java  |    3 +-
 .../invertedindex/IIDistinctColumnsReducer.java |    3 +-
 .../hadoop/invertedindex/IIFlattenHiveJob.java  |   10 +-
 .../hadoop/invertedindex/InvertedIndexJob.java  |    7 +-
 .../invertedindex/InvertedIndexMapper.java      |    6 +-
 .../invertedindex/InvertedIndexPartitioner.java |    2 +-
 .../invertedindex/InvertedIndexReducer.java     |    2 +-
 .../invertedindex/RandomKeyDistributionJob.java |    5 +-
 .../RandomKeyDistributionMapper.java            |    1 -
 .../RandomKeyDistributionReducer.java           |    2 -
 .../job/impl/threadpool/DefaultContext.java     |    9 +-
 .../job/impl/threadpool/DefaultScheduler.java   |   12 +-
 .../apache/kylin/job/invertedindex/IIJob.java   |    1 -
 .../kylin/job/invertedindex/IIJobBuilder.java   |    4 +-
 .../kylin/job/manager/ExecutableManager.java    |   24 +-
 .../apache/kylin/job/tools/CleanHtableCLI.java  |    3 +-
 .../kylin/job/tools/CubeMigrationCLI.java       |   28 +-
 .../kylin/job/tools/DeployCoprocessorCLI.java   |   14 +-
 .../job/tools/GridTableHBaseBenchmark.java      |    6 +-
 .../kylin/job/tools/HadoopStatusChecker.java    |    8 +-
 .../kylin/job/tools/HadoopStatusGetter.java     |    6 +-
 .../kylin/job/tools/HtableAlterMetadataCLI.java |    6 +-
 .../kylin/job/tools/LZOSupportnessChecker.java  |    4 +-
 .../apache/kylin/job/tools/RowCounterCLI.java   |   12 +-
 .../apache/kylin/job/BaseTestExecutable.java    |    1 -
 .../kylin/job/BuildCubeWithEngineTest.java      |   51 +-
 .../apache/kylin/job/BuildIIWithEngineTest.java |   25 +-
 .../java/org/apache/kylin/job/DataGenTest.java  |    9 +-
 .../java/org/apache/kylin/job/DeployUtil.java   |   17 +-
 .../org/apache/kylin/job/ExportHBaseData.java   |    5 +-
 .../org/apache/kylin/job/ImportHBaseData.java   |    5 +-
 .../apache/kylin/job/SampleCubeSetupTest.java   |    7 +-
 .../kylin/job/dataGen/FactTableGenerator.java   |   15 +-
 .../org/apache/kylin/job/dataGen/GenConfig.java |    3 +-
 .../job/hadoop/cube/BaseCuboidJobTest.java      |    5 +-
 .../job/hadoop/cube/BaseCuboidMapperTest.java   |   14 +-
 .../job/hadoop/cube/CubeHFileMapper2Test.java   |   13 +-
 .../job/hadoop/cube/CubeHFileMapperTest.java    |    5 +-
 .../kylin/job/hadoop/cube/CubeReducerTest.java  |   14 +-
 .../job/hadoop/cube/MergeCuboidJobTest.java     |    5 +-
 .../job/hadoop/cube/MergeCuboidMapperTest.java  |   40 +-
 .../kylin/job/hadoop/cube/MockupMapContext.java |    1 -
 .../kylin/job/hadoop/cube/NDCuboidJobTest.java  |    5 +-
 .../job/hadoop/cube/NDCuboidMapperTest.java     |   11 +-
 .../cube/RandomKeyDistributionMapperTest.java   |    7 +-
 .../cube/RandomKeyDistributionReducerTest.java  |    2 +-
 .../cube/RangeKeyDistributionJobTest.java       |    5 +-
 .../cube/RangeKeyDistributionMapperTest.java    |    3 +-
 .../job/hadoop/hbase/CreateHTableTest.java      |    6 +-
 .../job/hadoop/hive/JoinedFlatTableTest.java    |   13 +-
 .../job/impl/threadpool/BaseSchedulerTest.java  |    6 +-
 .../impl/threadpool/DefaultSchedulerTest.java   |    9 +-
 .../job/manager/ExecutableManagerTest.java      |   20 +-
 .../job/tools/ColumnCardinalityJobTest.java     |    5 +-
 .../job/tools/ColumnCardinalityMapperTest.java  |    6 +-
 .../job/tools/ColumnCardinalityReducerTest.java |   10 +-
 .../kylin/job/tools/CubeMigrationTests.java     |    7 +-
 .../apache/kylin/metadata/MetadataManager.java  |   14 +-
 .../kylin/metadata/filter/CaseTupleFilter.java  |    3 +-
 .../metadata/filter/ExtractTupleFilter.java     |    3 +-
 .../metadata/filter/LogicalTupleFilter.java     |    3 +-
 .../kylin/metadata/filter/TupleFilter.java      |    3 +-
 .../metadata/measure/BigDecimalSerializer.java  |    1 -
 .../metadata/measure/DoubleSerializer.java      |    2 +-
 .../kylin/metadata/measure/LongSerializer.java  |    3 +-
 .../metadata/measure/MeasureAggregators.java    |    2 +-
 .../kylin/metadata/measure/MeasureCodec.java    |    1 -
 .../measure/fixedlen/FixedPointLongCodec.java   |    7 +-
 .../apache/kylin/metadata/model/ColumnDesc.java |    3 +-
 .../kylin/metadata/model/DataModelDesc.java     |   16 +-
 .../apache/kylin/metadata/model/DataType.java   |    3 +-
 .../kylin/metadata/model/FunctionDesc.java      |    6 +-
 .../apache/kylin/metadata/model/LookupDesc.java |    2 +-
 .../kylin/metadata/model/PartitionDesc.java     |    5 +-
 .../apache/kylin/metadata/model/TableDesc.java  |   18 +-
 .../kylin/metadata/project/ProjectInstance.java |   22 +-
 .../kylin/metadata/project/ProjectL2Cache.java  |    7 +-
 .../kylin/metadata/project/ProjectManager.java  |   16 +-
 .../kylin/metadata/project/ProjectTable.java    |    3 +-
 .../metadata/project/RealizationEntry.java      |   15 +-
 .../metadata/realization/IRealization.java      |    4 +-
 .../realization/IRealizationProvider.java       |    1 -
 .../realization/RealizationRegistry.java        |   17 +-
 .../metadata/realization/SQLDigestUtil.java     |   13 +-
 .../metadata/tool/HiveSourceTableLoader.java    |   17 +-
 .../metadata/tuple/CompoundTupleIterator.java   |    9 +-
 .../kylin/metadata/tuple/ITupleIterator.java    |    2 +-
 .../kylin/metadata/MetadataManagerTest.java     |    3 +-
 .../kylin/metadata/model/TableDescTest.java     |    1 -
 .../tool/HiveSourceTableLoaderTest.java         |    7 +-
 .../metadata/tool/SandboxMetastoreCLI.java      |    5 +-
 .../metadata/tuple/EmptyTupleIteratorTest.java  |    3 +-
 .../.settings/org.eclipse.core.resources.prefs  |    6 +
 monitor/.settings/org.eclipse.jdt.core.prefs    |  379 +
 monitor/.settings/org.eclipse.jdt.ui.prefs      |    7 +
 .../apache/kylin/monitor/ApiRequestParser.java  |   53 +-
 .../java/org/apache/kylin/monitor/Client.java   |   21 +-
 .../org/apache/kylin/monitor/ConfigUtils.java   |   58 +-
 .../org/apache/kylin/monitor/DebugClient.java   |    9 +-
 .../org/apache/kylin/monitor/FileUtils.java     |   13 +-
 .../apache/kylin/monitor/HiveJdbcClient.java    |   39 +-
 .../kylin/monitor/MonitorMetaManager.java       |   55 +-
 .../org/apache/kylin/monitor/QueryParser.java   |   45 +-
 .../org/apache/kylin/monitor/ParseLogTest.java  |   16 +-
 .../kylin/query/enumerator/CubeEnumerator.java  |   12 +-
 .../query/enumerator/LookupTableEnumerator.java |    4 +-
 .../kylin/query/optrule/OLAPAggregateRule.java  |    2 +-
 .../kylin/query/optrule/OLAPFilterRule.java     |    2 +-
 .../kylin/query/optrule/OLAPLimitRule.java      |    2 +-
 .../kylin/query/relnode/OLAPAggregateRel.java   |    7 +-
 .../apache/kylin/query/relnode/OLAPContext.java |    6 +-
 .../relnode/OLAPToEnumerableConverter.java      |    2 +-
 .../apache/kylin/query/routing/QueryRouter.java |    6 +-
 .../apache/kylin/query/routing/RoutingRule.java |   10 +-
 .../AdjustForWeeklyMatchedRealization.java      |    8 +-
 .../RoutingRules/RealizationPriorityRule.java   |    8 +-
 .../RoutingRules/RealizationSortRule.java       |    9 +-
 .../query/sqlfunc/HLLDistinctCountAggFunc.java  |    3 +-
 .../kylin/query/test/CombinationTest.java       |    3 +-
 .../org/apache/kylin/query/test/H2Database.java |    5 +-
 .../apache/kylin/query/test/IIQueryTest.java    |    1 -
 .../apache/kylin/query/test/KylinQueryTest.java |   18 +-
 .../apache/kylin/query/test/KylinTestBase.java  |    2 +-
 .../java/org/apache/kylin/rest/DebugTomcat.java |   20 +-
 .../kylin/rest/controller/AccessController.java |    3 +-
 .../kylin/rest/controller/AdminController.java  |    5 +-
 .../kylin/rest/controller/BasicController.java  |    7 +-
 .../kylin/rest/controller/CacheController.java  |    4 +-
 .../kylin/rest/controller/CubeController.java   |   32 +-
 .../rest/controller/CubeDescController.java     |    7 +-
 .../kylin/rest/controller/JobController.java    |   17 +-
 .../kylin/rest/controller/ModelController.java  |   11 +-
 .../rest/controller/PerformanceController.java  |   28 +-
 .../rest/controller/ProjectController.java      |    2 +-
 .../kylin/rest/controller/QueryController.java  |   30 +-
 .../kylin/rest/controller/TableController.java  |   32 +-
 .../kylin/rest/controller/UserController.java   |    3 +-
 .../kylin/rest/filter/KylinApiFilter.java       |   68 +-
 .../apache/kylin/rest/request/CubeRequest.java  |    6 +-
 .../apache/kylin/rest/request/SQLRequest.java   |    3 +-
 .../kylin/rest/response/HBaseResponse.java      |   12 +-
 .../kylin/rest/response/TableDescResponse.java  |    3 +-
 .../rest/security/AuthoritiesPopulator.java     |    3 +-
 .../security/PasswordPlaceholderConfigurer.java |    3 +-
 .../kylin/rest/service/AccessService.java       |   11 +-
 .../apache/kylin/rest/service/AclService.java   |    6 +-
 .../apache/kylin/rest/service/AdminService.java |    7 +-
 .../apache/kylin/rest/service/BasicService.java |   45 +-
 .../apache/kylin/rest/service/CacheService.java |    9 +-
 .../apache/kylin/rest/service/CubeService.java  |   27 +-
 .../apache/kylin/rest/service/JobService.java   |   99 +-
 .../kylin/rest/service/PerformService.java      |   52 +-
 .../kylin/rest/service/ProjectService.java      |   11 +-
 .../apache/kylin/rest/service/UserService.java  |    8 +-
 .../org/apache/kylin/rest/util/QueryUtil.java   |    6 +-
 .../org/apache/kylin/rest/util/Serializer.java  |    3 +-
 .../org/apache/kylin/jdbc/JDBCDriverTest.java   |   32 +-
 .../org/apache/kylin/rest/bean/BeanTest.java    |    5 +-
 .../broadcaster/BroadcasterReceiveServlet.java  |    1 +
 .../rest/controller/AccessControllerTest.java   |    5 +-
 .../rest/controller/AdminControllerTest.java    |    5 +-
 .../rest/controller/BaseControllerTest.java     |    5 +-
 .../rest/controller/CacheControllerTest.java    |    9 +-
 .../rest/controller/CubeControllerTest.java     |   12 +-
 .../rest/controller/JobControllerTest.java      |   13 +-
 .../rest/controller/ProjectControllerTest.java  |    5 +-
 .../rest/controller/QueryControllerTest.java    |    5 +-
 .../rest/controller/TableControllerTest.java    |   11 +-
 .../kylin/rest/service/AccessServiceTest.java   |    8 +-
 .../kylin/rest/service/CacheServiceTest.java    |   53 +-
 .../kylin/rest/service/CubeServiceTest.java     |    6 +-
 .../kylin/rest/service/JobServiceTest.java      |    5 +-
 .../kylin/rest/service/QueryServiceTest.java    |    5 +-
 .../kylin/rest/service/ServiceTestBase.java     |    8 +-
 .../kylin/storage/StorageEngineFactory.java     |    2 +-
 .../kylin/storage/hbase/ColumnValueRange.java   |   12 +-
 .../storage/hbase/CubeSegmentTupleIterator.java |   25 +-
 .../kylin/storage/hbase/CubeStorageEngine.java  |   49 +-
 .../storage/hbase/DerivedFilterTranslator.java  |   10 +-
 .../storage/hbase/FuzzyValueCombination.java    |    3 +-
 .../kylin/storage/hbase/HBaseKeyRange.java      |   11 +-
 .../kylin/storage/hbase/PingHBaseCLI.java       |    3 +-
 .../hbase/SerializedHBaseTupleIterator.java     |   10 +-
 .../storage/hbase/coprocessor/AggrKey.java      |   12 +-
 .../hbase/coprocessor/AggregationCache.java     |    5 +-
 .../hbase/coprocessor/CoprocessorFilter.java    |   10 +-
 .../hbase/coprocessor/CoprocessorProjector.java |   10 +-
 .../hbase/coprocessor/CoprocessorRowType.java   |    4 +-
 .../endpoint/EndpointAggregationCache.java      |    6 +-
 .../endpoint/EndpointTupleIterator.java         |    1 -
 .../endpoint/HbaseServerKVIterator.java         |   12 +-
 .../hbase/coprocessor/endpoint/IIEndpoint.java  |   23 +-
 .../endpoint/SliceBitMapProvider.java           |    3 +-
 .../observer/AggregateRegionObserver.java       |    4 +-
 .../observer/AggregationScanner.java            |    8 +-
 .../observer/ObserverAggregationCache.java      |   12 +-
 .../observer/ObserverAggregators.java           |    6 +-
 .../coprocessor/observer/ObserverEnabler.java   |   14 +-
 .../coprocessor/observer/ObserverTuple.java     |    3 +-
 .../kylin/storage/hybrid/HybridInstance.java    |   17 +-
 .../kylin/storage/hybrid/HybridManager.java     |    8 +-
 .../storage/hybrid/HybridStorageEngine.java     |    6 +-
 .../org/apache/kylin/storage/tuple/Tuple.java   |    8 +-
 .../apache/kylin/storage/MiniClusterTest.java   |    1 -
 .../filter/BitMapFilterEvaluatorTest.java       |   20 +-
 .../kylin/storage/filter/FilterBaseTest.java    |    9 +-
 .../storage/filter/FilterEvaluateTest.java      |    5 +-
 .../kylin/storage/filter/FilterPerfTest.java    |   23 +-
 .../storage/filter/FilterSerializeTest.java     |    5 +-
 .../storage/hbase/ColumnValueRangeTest.java     |    6 +-
 .../hbase/FuzzyValueCombinationTest.java        |    8 +-
 .../storage/hbase/InvertedIndexHBaseTest.java   |   17 +-
 .../hbase/coprocessor/RowProjectorTest.java     |   13 +-
 .../endpoint/EndpointAggregationTest.java       |   21 +-
 .../endpoint/TableRecordInfoTest.java           |    9 +-
 .../observer/AggregateRegionObserverTest.java   |   25 +-
 .../observer/RowAggregatorsTest.java            |    2 +-
 .../hbase/coprocessor/observer/RowTypeTest.java |   11 +-
 .../kylin/storage/hybrid/HybridManagerTest.java |    1 -
 .../apache/kylin/storage/test/StorageTest.java  |   38 +-
 427 files changed, 8785 insertions(+), 9399 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java b/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
index 5de9f1c..a506231 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableJoin.java
@@ -17,6 +17,8 @@
 */
 package org.apache.calcite.adapter.enumerable;
 
+import java.util.Set;
+
 import org.apache.calcite.linq4j.tree.BlockBuilder;
 import org.apache.calcite.linq4j.tree.Expression;
 import org.apache.calcite.linq4j.tree.Expressions;
@@ -38,8 +40,6 @@ import org.apache.calcite.util.Util;
 
 import com.google.common.collect.ImmutableList;
 
-import java.util.Set;
-
 /*
  * OVERRIDE POINT:
  * - constructor was private instead of protected
@@ -48,160 +48,98 @@ import java.util.Set;
 /** Implementation of {@link org.apache.calcite.rel.core.Join} in
  * {@link org.apache.calcite.adapter.enumerable.EnumerableConvention enumerable calling convention}. */
 public class EnumerableJoin extends EquiJoin implements EnumerableRel {
-  /** Creates an EnumerableJoin.
-   *
-   * <p>Use {@link #create} unless you know what you're doing. */
-  public EnumerableJoin(
-      RelOptCluster cluster,
-      RelTraitSet traits,
-      RelNode left,
-      RelNode right,
-      RexNode condition,
-      ImmutableIntList leftKeys,
-      ImmutableIntList rightKeys,
-      JoinRelType joinType,
-      Set<String> variablesStopped)
-      throws InvalidRelException {
-    super(
-        cluster,
-        traits,
-        left,
-        right,
-        condition,
-        leftKeys,
-        rightKeys,
-        joinType,
-        variablesStopped);
-  }
+    /** Creates an EnumerableJoin.
+     *
+     * <p>Use {@link #create} unless you know what you're doing. */
+    public EnumerableJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, JoinRelType joinType, Set<String> variablesStopped) throws InvalidRelException {
+        super(cluster, traits, left, right, condition, leftKeys, rightKeys, joinType, variablesStopped);
+    }
 
-  /** Creates an EnumerableJoin. */
-  public static EnumerableJoin create(
-      RelNode left,
-      RelNode right,
-      RexNode condition,
-      ImmutableIntList leftKeys,
-      ImmutableIntList rightKeys,
-      JoinRelType joinType,
-      Set<String> variablesStopped)
-      throws InvalidRelException {
-    final RelOptCluster cluster = left.getCluster();
-    final RelTraitSet traitSet =
-        cluster.traitSetOf(EnumerableConvention.INSTANCE);
-    return new EnumerableJoin(cluster, traitSet, left, right, condition,
-        leftKeys, rightKeys, joinType, variablesStopped);
-  }
+    /** Creates an EnumerableJoin. */
+    public static EnumerableJoin create(RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, JoinRelType joinType, Set<String> variablesStopped) throws InvalidRelException {
+        final RelOptCluster cluster = left.getCluster();
+        final RelTraitSet traitSet = cluster.traitSetOf(EnumerableConvention.INSTANCE);
+        return new EnumerableJoin(cluster, traitSet, left, right, condition, leftKeys, rightKeys, joinType, variablesStopped);
+    }
 
-  @Override public EnumerableJoin copy(RelTraitSet traitSet, RexNode condition,
-      RelNode left, RelNode right, JoinRelType joinType,
-      boolean semiJoinDone) {
-    final JoinInfo joinInfo = JoinInfo.of(left, right, condition);
-    assert joinInfo.isEqui();
-    try {
-      return new EnumerableJoin(getCluster(), traitSet, left, right,
-          condition, joinInfo.leftKeys, joinInfo.rightKeys, joinType,
-          variablesStopped);
-    } catch (InvalidRelException e) {
-      // Semantic error not possible. Must be a bug. Convert to
-      // internal error.
-      throw new AssertionError(e);
+    @Override
+    public EnumerableJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) {
+        final JoinInfo joinInfo = JoinInfo.of(left, right, condition);
+        assert joinInfo.isEqui();
+        try {
+            return new EnumerableJoin(getCluster(), traitSet, left, right, condition, joinInfo.leftKeys, joinInfo.rightKeys, joinType, variablesStopped);
+        } catch (InvalidRelException e) {
+            // Semantic error not possible. Must be a bug. Convert to
+            // internal error.
+            throw new AssertionError(e);
+        }
     }
-  }
 
-  @Override public RelOptCost computeSelfCost(RelOptPlanner planner) {
-    double rowCount = RelMetadataQuery.getRowCount(this);
+    @Override
+    public RelOptCost computeSelfCost(RelOptPlanner planner) {
+        double rowCount = RelMetadataQuery.getRowCount(this);
 
-    // Joins can be flipped, and for many algorithms, both versions are viable
-    // and have the same cost. To make the results stable between versions of
-    // the planner, make one of the versions slightly more expensive.
-    switch (joinType) {
-    case RIGHT:
-      rowCount = addEpsilon(rowCount);
-      break;
-    default:
-      if (RelNodes.COMPARATOR.compare(left, right) > 0) {
-        rowCount = addEpsilon(rowCount);
-      }
-    }
+        // Joins can be flipped, and for many algorithms, both versions are viable
+        // and have the same cost. To make the results stable between versions of
+        // the planner, make one of the versions slightly more expensive.
+        switch (joinType) {
+        case RIGHT:
+            rowCount = addEpsilon(rowCount);
+            break;
+        default:
+            if (RelNodes.COMPARATOR.compare(left, right) > 0) {
+                rowCount = addEpsilon(rowCount);
+            }
+        }
 
-    // Cheaper if the smaller number of rows is coming from the LHS.
-    // Model this by adding L log L to the cost.
-    final double rightRowCount = right.getRows();
-    final double leftRowCount = left.getRows();
-    if (Double.isInfinite(leftRowCount)) {
-      rowCount = leftRowCount;
-    } else {
-      rowCount += Util.nLogN(leftRowCount);
-    }
-    if (Double.isInfinite(rightRowCount)) {
-      rowCount = rightRowCount;
-    } else {
-      rowCount += rightRowCount;
+        // Cheaper if the smaller number of rows is coming from the LHS.
+        // Model this by adding L log L to the cost.
+        final double rightRowCount = right.getRows();
+        final double leftRowCount = left.getRows();
+        if (Double.isInfinite(leftRowCount)) {
+            rowCount = leftRowCount;
+        } else {
+            rowCount += Util.nLogN(leftRowCount);
+        }
+        if (Double.isInfinite(rightRowCount)) {
+            rowCount = rightRowCount;
+        } else {
+            rowCount += rightRowCount;
+        }
+        return planner.getCostFactory().makeCost(rowCount, 0, 0);
     }
-    return planner.getCostFactory().makeCost(rowCount, 0, 0);
-  }
 
-  private double addEpsilon(double d) {
-    assert d >= 0d;
-    final double d0 = d;
-    if (d < 10) {
-      // For small d, adding 1 would change the value significantly.
-      d *= 1.001d;
-      if (d != d0) {
+    private double addEpsilon(double d) {
+        assert d >= 0d;
+        final double d0 = d;
+        if (d < 10) {
+            // For small d, adding 1 would change the value significantly.
+            d *= 1.001d;
+            if (d != d0) {
+                return d;
+            }
+        }
+        // For medium d, add 1. Keeps integral values integral.
+        ++d;
+        if (d != d0) {
+            return d;
+        }
+        // For large d, adding 1 might not change the value. Add .1%.
+        // If d is NaN, this still will probably not change the value. That's OK.
+        d *= 1.001d;
         return d;
-      }
     }
-    // For medium d, add 1. Keeps integral values integral.
-    ++d;
-    if (d != d0) {
-      return d;
-    }
-    // For large d, adding 1 might not change the value. Add .1%.
-    // If d is NaN, this still will probably not change the value. That's OK.
-    d *= 1.001d;
-    return d;
-  }
 
-  public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
-    BlockBuilder builder = new BlockBuilder();
-    final Result leftResult =
-        implementor.visitChild(this, 0, (EnumerableRel) left, pref);
-    Expression leftExpression =
-        builder.append(
-            "left", leftResult.block);
-    final Result rightResult =
-        implementor.visitChild(this, 1, (EnumerableRel) right, pref);
-    Expression rightExpression =
-        builder.append(
-            "right", rightResult.block);
-    final PhysType physType =
-        PhysTypeImpl.of(
-            implementor.getTypeFactory(), getRowType(), pref.preferArray());
-    final PhysType keyPhysType =
-        leftResult.physType.project(
-            leftKeys, JavaRowFormat.LIST);
-    return implementor.result(
-        physType,
-        builder.append(
-            Expressions.call(
-                leftExpression,
-                BuiltInMethod.JOIN.method,
-                Expressions.list(
-                    rightExpression,
-                    leftResult.physType.generateAccessor(leftKeys),
-                    rightResult.physType.generateAccessor(rightKeys),
-                    EnumUtils.joinSelector(joinType,
-                        physType,
-                        ImmutableList.of(
-                            leftResult.physType, rightResult.physType)))
-                    .append(
-                        Util.first(keyPhysType.comparer(),
-                            Expressions.constant(null)))
-                    .append(
-                        Expressions.constant(joinType.generatesNullsOnLeft()))
-                    .append(
-                        Expressions.constant(
-                            joinType.generatesNullsOnRight())))).toBlock());
-  }
+    public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
+        BlockBuilder builder = new BlockBuilder();
+        final Result leftResult = implementor.visitChild(this, 0, (EnumerableRel) left, pref);
+        Expression leftExpression = builder.append("left", leftResult.block);
+        final Result rightResult = implementor.visitChild(this, 1, (EnumerableRel) right, pref);
+        Expression rightExpression = builder.append("right", rightResult.block);
+        final PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), pref.preferArray());
+        final PhysType keyPhysType = leftResult.physType.project(leftKeys, JavaRowFormat.LIST);
+        return implementor.result(physType, builder.append(Expressions.call(leftExpression, BuiltInMethod.JOIN.method, Expressions.list(rightExpression, leftResult.physType.generateAccessor(leftKeys), rightResult.physType.generateAccessor(rightKeys), EnumUtils.joinSelector(joinType, physType, ImmutableList.of(leftResult.physType, rightResult.physType))).append(Util.first(keyPhysType.comparer(), Expressions.constant(null))).append(Expressions.constant(joinType.generatesNullsOnLeft())).append(Expressions.constant(joinType.generatesNullsOnRight())))).toBlock());
+    }
 
 }
 



[05/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
index d69e74d..5fceab3 100644
--- a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
+++ b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultScheduler.java
@@ -26,24 +26,17 @@ import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.kylin.common.lock.JobLock;
-import org.apache.kylin.job.execution.AbstractExecutable;
-import org.apache.commons.lang.StringUtils;
-import org.apache.curator.RetryPolicy;
 import org.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.framework.imps.CuratorFrameworkState;
 import org.apache.curator.framework.recipes.locks.InterProcessMutex;
 import org.apache.curator.framework.state.ConnectionState;
 import org.apache.curator.framework.state.ConnectionStateListener;
-import org.apache.curator.retry.ExponentialBackoffRetry;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HConstants;
+import org.apache.kylin.common.lock.JobLock;
 import org.apache.kylin.job.Scheduler;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.exception.SchedulerException;
+import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.Executable;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.Output;
@@ -52,7 +45,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Maps;
-import org.apache.kylin.common.util.HadoopUtil;
 
 /**
  * Created by qianzhou on 12/15/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
index 7382bbf..906dc22 100644
--- a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
+++ b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJob.java
@@ -32,7 +32,6 @@ public class IIJob extends DefaultChainedExecutable {
     private static final String II_INSTANCE_NAME = "iiName";
     private static final String SEGMENT_ID = "segmentId";
 
-
     void setIIName(String name) {
         setParam(II_INSTANCE_NAME, name);
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
index 83384f9..5c6efae 100644
--- a/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/invertedindex/IIJobBuilder.java
@@ -23,8 +23,6 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
 
-import com.google.common.base.Preconditions;
-
 import org.apache.kylin.invertedindex.IISegment;
 import org.apache.kylin.job.AbstractJobBuilder;
 import org.apache.kylin.job.common.HadoopShellExecutable;
@@ -41,6 +39,8 @@ import org.apache.kylin.job.hadoop.invertedindex.IIDistinctColumnsJob;
 import org.apache.kylin.job.hadoop.invertedindex.InvertedIndexJob;
 import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
 
+import com.google.common.base.Preconditions;
+
 /**
  * Created by shaoshi on 1/15/15.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
index 85f4e0a..ea46d56 100644
--- a/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
+++ b/job/src/main/java/org/apache/kylin/job/manager/ExecutableManager.java
@@ -18,9 +18,12 @@
 
 package org.apache.kylin.job.manager;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.lang.reflect.Constructor;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.job.dao.ExecutableDao;
@@ -28,15 +31,18 @@ import org.apache.kylin.job.dao.ExecutableOutputPO;
 import org.apache.kylin.job.dao.ExecutablePO;
 import org.apache.kylin.job.exception.IllegalStateTranferException;
 import org.apache.kylin.job.exception.PersistentException;
-import org.apache.kylin.job.execution.*;
+import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ChainedExecutable;
+import org.apache.kylin.job.execution.DefaultChainedExecutable;
+import org.apache.kylin.job.execution.DefaultOutput;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.execution.Output;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.lang.reflect.Constructor;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java b/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
index 65e645d..667ef92 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/CleanHtableCLI.java
@@ -26,11 +26,10 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-
 /**
  * Created by honma on 11/11/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
index b71725d..d9bf6c0 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
@@ -18,6 +18,19 @@
 
 package org.apache.kylin.job.tools;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -35,27 +48,12 @@ import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
 import org.apache.kylin.metadata.realization.RealizationStatusEnum;
 import org.apache.kylin.metadata.realization.RealizationType;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Created by honma on 9/3/14.
  * <p/>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java b/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
index ae6cd81..e488f43 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/DeployCoprocessorCLI.java
@@ -28,10 +28,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
 
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
@@ -45,14 +41,18 @@ import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java b/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
index 4e84bf3..122be15 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/GridTableHBaseBenchmark.java
@@ -36,9 +36,9 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
+import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.common.persistence.HBaseConnection;
 
 import com.google.common.collect.Lists;
 
@@ -100,7 +100,7 @@ public class GridTableHBaseBenchmark {
 
             int nLogicCols = colScans.size();
             int nLogicRows = colScans.get(0).getSecond() - colScans.get(0).getFirst();
-            
+
             Scan[] scans = new Scan[nLogicCols];
             ResultScanner[] scanners = new ResultScanner[nLogicCols];
             for (int i = 0; i < nLogicCols; i++) {
@@ -115,7 +115,7 @@ public class GridTableHBaseBenchmark {
                 }
                 dot(i, nLogicRows);
             }
-            
+
             stats.markEnd();
         } finally {
             IOUtils.closeQuietly(table);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
index 31cff50..ea7822c 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
@@ -18,16 +18,16 @@
 
 package org.apache.kylin.job.tools;
 
-import org.apache.kylin.job.constant.JobStepStatusEnum;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
index b9ceee0..a56e652 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusGetter.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.job.tools;
 
+import java.io.IOException;
+
 import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpMethod;
@@ -32,8 +34,6 @@ import org.codehaus.jackson.map.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-
 /**
  * Created by qianzhou on 1/20/15.
  */
@@ -102,8 +102,6 @@ public class HadoopStatusGetter {
         return response;
     }
 
-
-
     private static Protocol EASY_HTTPS = null;
 
     private static void registerEasyHttps() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java b/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
index 80b9fa7..6e7834a 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HtableAlterMetadataCLI.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.job.tools;
 
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import java.io.IOException;
+
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
@@ -28,11 +29,10 @@ import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-
 /**
  * Created by honma on 11/11/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java b/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
index 585ab17..a082b0a 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/LZOSupportnessChecker.java
@@ -18,12 +18,12 @@
 
 package org.apache.kylin.job.tools;
 
+import java.io.File;
+
 import org.apache.hadoop.hbase.util.CompressionTest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-
 /**
  * Created by honma on 10/21/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java b/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
index c586d4f..3553eb3 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/RowCounterCLI.java
@@ -17,17 +17,21 @@
 */
 package org.apache.kylin.job.tools;
 
+import java.io.IOException;
+import java.util.Iterator;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.Iterator;
-
 /**
  */
 public class RowCounterCLI {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java b/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
index a83b87c..1131d35 100644
--- a/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
+++ b/job/src/test/java/org/apache/kylin/job/BaseTestExecutable.java
@@ -25,7 +25,6 @@ import org.apache.kylin.job.execution.AbstractExecutable;
  */
 public abstract class BaseTestExecutable extends AbstractExecutable {
 
-
     public BaseTestExecutable() {
         super();
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
index cf3138b..b7cf7f5 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildCubeWithEngineTest.java
@@ -18,7 +18,19 @@
 
 package org.apache.kylin.job;
 
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.TimeZone;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.kylin.common.KylinConfig;
@@ -41,14 +53,7 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
-import java.lang.reflect.Method;
-import java.text.SimpleDateFormat;
-import java.util.List;
-import java.util.TimeZone;
-import java.util.concurrent.*;
-
-import static org.junit.Assert.assertEquals;
+import com.google.common.collect.Lists;
 
 public class BuildCubeWithEngineTest {
 
@@ -93,7 +98,6 @@ public class BuildCubeWithEngineTest {
         DeployUtil.deployMetadata();
         DeployUtil.overrideJobJarLocations();
 
-
         final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
         jobService = ExecutableManager.getInstance(kylinConfig);
         scheduler = DefaultScheduler.getInstance();
@@ -104,7 +108,7 @@ public class BuildCubeWithEngineTest {
         cubeManager = CubeManager.getInstance(kylinConfig);
         jobEngineConfig = new JobEngineConfig(kylinConfig);
         for (String jobId : jobService.getAllJobIds()) {
-            if(jobService.getJob(jobId) instanceof CubingJob){
+            if (jobService.getJob(jobId) instanceof CubingJob) {
                 jobService.deleteJob(jobId);
             }
         }
@@ -124,19 +128,13 @@ public class BuildCubeWithEngineTest {
 
     private void testInner() throws Exception {
         DeployUtil.prepareTestData("inner", "test_kylin_cube_with_slr_empty");
-        String[] testCase = new String[]{
-                "testInnerJoinCube",
-                "testInnerJoinCube2",
-        };
+        String[] testCase = new String[] { "testInnerJoinCube", "testInnerJoinCube2", };
         runTestAndAssertSucceed(testCase);
     }
 
     private void testLeft() throws Exception {
         DeployUtil.prepareTestData("left", "test_kylin_cube_with_slr_left_join_empty");
-        String[] testCase = new String[]{
-                "testLeftJoinCube",
-                "testLeftJoinCube2",
-        };
+        String[] testCase = new String[] { "testLeftJoinCube", "testLeftJoinCube2", };
         runTestAndAssertSucceed(testCase);
     }
 
@@ -189,7 +187,8 @@ public class BuildCubeWithEngineTest {
         }
     }
 
-    @SuppressWarnings("unused") // called by reflection
+    @SuppressWarnings("unused")
+    // called by reflection
     private List<String> testInnerJoinCube2() throws Exception {
         clearSegment("test_kylin_cube_with_slr_empty");
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
@@ -207,11 +206,11 @@ public class BuildCubeWithEngineTest {
         return result;
     }
 
-    @SuppressWarnings("unused") // called by reflection
+    @SuppressWarnings("unused")
+    // called by reflection
     private List<String> testInnerJoinCube() throws Exception {
         clearSegment("test_kylin_cube_without_slr_empty");
 
-
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
         f.setTimeZone(TimeZone.getTimeZone("GMT"));
 
@@ -219,7 +218,6 @@ public class BuildCubeWithEngineTest {
         long date1 = 0;
         long date2 = f.parse("2022-01-01").getTime();
 
-
         // this cube doesn't support incremental build, always do full build
 
         List<String> result = Lists.newArrayList();
@@ -227,7 +225,8 @@ public class BuildCubeWithEngineTest {
         return result;
     }
 
-    @SuppressWarnings("unused") // called by reflection
+    @SuppressWarnings("unused")
+    // called by reflection
     private List<String> testLeftJoinCube2() throws Exception {
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
         f.setTimeZone(TimeZone.getTimeZone("GMT"));
@@ -249,7 +248,8 @@ public class BuildCubeWithEngineTest {
 
     }
 
-    @SuppressWarnings("unused") // called by reflection
+    @SuppressWarnings("unused")
+    // called by reflection
     private List<String> testLeftJoinCube() throws Exception {
         String cubeName = "test_kylin_cube_with_slr_left_join_empty";
         clearSegment(cubeName);
@@ -272,7 +272,6 @@ public class BuildCubeWithEngineTest {
         cubeManager.updateCube(cube);
     }
 
-
     private String buildSegment(String cubeName, long startDate, long endDate) throws Exception {
         CubeSegment segment = cubeManager.appendSegments(cubeManager.getCube(cubeName), endDate);
         CubingJobBuilder cubingJobBuilder = new CubingJobBuilder(jobEngineConfig);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
index b0bf818..6570ad3 100644
--- a/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
+++ b/job/src/test/java/org/apache/kylin/job/BuildIIWithEngineTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;
@@ -35,16 +35,8 @@ import java.util.concurrent.Future;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.util.ToolRunner;
-import org.apache.kylin.common.lock.ZookeeperJobLock;
-import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import com.google.common.collect.Lists;
-
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.lock.ZookeeperJobLock;
 import org.apache.kylin.common.util.AbstractKylinTestCase;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
@@ -52,13 +44,20 @@ import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.IISegment;
 import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
 import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
 import org.apache.kylin.job.invertedindex.IIJob;
 import org.apache.kylin.job.invertedindex.IIJobBuilder;
 import org.apache.kylin.job.manager.ExecutableManager;
 import org.apache.kylin.metadata.realization.RealizationStatusEnum;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
 
 /**
  * 
@@ -116,7 +115,7 @@ public class BuildIIWithEngineTest {
         iiManager = IIManager.getInstance(kylinConfig);
         jobEngineConfig = new JobEngineConfig(kylinConfig);
         for (String jobId : jobService.getAllJobIds()) {
-            if(jobService.getJob(jobId) instanceof IIJob){
+            if (jobService.getJob(jobId) instanceof IIJob) {
                 jobService.deleteJob(jobId);
             }
         }
@@ -135,7 +134,7 @@ public class BuildIIWithEngineTest {
             ii.setStatus(RealizationStatusEnum.READY);
             iiManager.updateII(ii);
         }
-       backup();
+        backup();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/DataGenTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/DataGenTest.java b/job/src/test/java/org/apache/kylin/job/DataGenTest.java
index 89e964e..264e9e6 100644
--- a/job/src/test/java/org/apache/kylin/job/DataGenTest.java
+++ b/job/src/test/java/org/apache/kylin/job/DataGenTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.kylin.job;
 
+import static org.junit.Assert.assertTrue;
+
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.job.dataGen.FactTableGenerator;
+import org.apache.kylin.metadata.MetadataManager;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
-import static org.junit.Assert.*;
-
 /**
  * Created by honma on 6/19/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/DeployUtil.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/DeployUtil.java b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
index 329eef1..133e2c1 100644
--- a/job/src/test/java/org/apache/kylin/job/DeployUtil.java
+++ b/job/src/test/java/org/apache/kylin/job/DeployUtil.java
@@ -26,27 +26,26 @@ import java.io.InputStream;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
-import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.job.dataGen.FactTableGenerator;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.tools.ant.filters.StringInputStream;
-import org.codehaus.plexus.util.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 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.AbstractKylinTestCase;
 import org.apache.kylin.common.util.CliCommandExecutor;
 import org.apache.kylin.common.util.HiveClient;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.job.dataGen.FactTableGenerator;
 import org.apache.kylin.job.hadoop.hive.SqlHiveDataTypeMapping;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.tools.ant.filters.StringInputStream;
+import org.codehaus.plexus.util.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DeployUtil {
     @SuppressWarnings("unused")

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
index 919adeb..c4d52ce 100644
--- a/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ExportHBaseData.java
@@ -25,14 +25,13 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.kylin.common.util.HBaseMiniclusterHelper;
-import org.codehaus.plexus.util.FileUtils;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.util.AbstractKylinTestCase;
 import org.apache.kylin.common.util.CliCommandExecutor;
+import org.apache.kylin.common.util.HBaseMiniclusterHelper;
 import org.apache.kylin.common.util.SSHClient;
+import org.codehaus.plexus.util.FileUtils;
 
 public class ExportHBaseData {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
index 0f77a20..100ef54 100644
--- a/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
+++ b/job/src/test/java/org/apache/kylin/job/ImportHBaseData.java
@@ -27,7 +27,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HConnection;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.persistence.HBaseResourceStore;
@@ -96,11 +95,11 @@ public class ImportHBaseData {
         List<String> tablelocations = getTablesBackupLocations(importFolder);
         for (String tableLocation : tablelocations) {
             String table = tableLocation.substring(tableLocation.lastIndexOf("/") + 1);
-            
+
             if (!(table.equalsIgnoreCase(tableNameBase) || table.startsWith(HBaseMiniclusterHelper.SHARED_STORAGE_PREFIX))) {
                 continue;
             }
-            
+
             if (table.startsWith(HBaseMiniclusterHelper.SHARED_STORAGE_PREFIX)) {
                 // create the cube table; otherwise the import will fail.
                 HBaseConnection.createHTableIfNeeded(KylinConfig.getInstanceFromEnv().getStorageUrl(), table, "F1", "F2");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
index c643863..aeb327f 100644
--- a/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
+++ b/job/src/test/java/org/apache/kylin/job/SampleCubeSetupTest.java
@@ -22,16 +22,15 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.lang3.StringUtils;
-import org.codehaus.plexus.util.FileUtils;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.job.engine.JobEngineConfig;
+import org.codehaus.plexus.util.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Created by honma on 9/24/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java b/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
index e3ca33b..5550f0f 100644
--- a/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
+++ b/job/src/test/java/org/apache/kylin/job/dataGen/FactTableGenerator.java
@@ -23,7 +23,18 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.TreeMap;
+import java.util.TreeSet;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -32,11 +43,11 @@ import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.DataType;
 import org.apache.kylin.metadata.model.JoinDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java b/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
index b51ddf7..4468787 100644
--- a/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
+++ b/job/src/test/java/org/apache/kylin/job/dataGen/GenConfig.java
@@ -23,11 +23,12 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 
+import org.apache.kylin.common.util.JsonUtil;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.util.JsonUtil;
 
 /**
  * Created by honma on 5/29/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
index a1d3569..771849f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJobTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
index 5110041..dde0afa 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapperTest.java
@@ -18,28 +18,28 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.math.BigDecimal;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.MapDriver;
 import org.apache.hadoop.mrunit.types.Pair;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.kv.RowKeyDecoder;
+import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
index 5262936..1c902b7 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper2Test.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.nio.ByteBuffer;
@@ -27,18 +27,17 @@ import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Mapper.Context;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
index 7b86f1b..eff46a7 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapperTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.List;
@@ -28,12 +28,11 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.MapDriver;
 import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.job.constant.BatchConstants;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.job.constant.BatchConstants;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
index 75e49da..96b4a5f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/CubeReducerTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.math.BigDecimal;
@@ -31,16 +32,15 @@ import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
 import org.apache.hadoop.mrunit.types.Pair;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
index aae54b4..182310b 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJobTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 
@@ -26,12 +26,11 @@ import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * @author ysong1
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
index d903008..9786665 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapperTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
@@ -161,26 +161,26 @@ public class MergeCuboidMapperTest extends LocalFileMetadataTestCase {
 
         final Dictionary<?> dictionary = cubeManager.getDictionary(newSeg, lfn);
         assertTrue(dictionary == null);
-//        ((TrieDictionary) dictionary).dump(System.out);
+        //        ((TrieDictionary) dictionary).dump(System.out);
 
         // hack for distributed cache
-//        File metaDir = new File("../job/meta");
-//        FileUtils.copyDirectory(new File(getTestConfig().getMetadataUrl()), metaDir);
-//
-//        mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_NAME, cubeName);
-//        mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_SEGMENT_NAME, segmentName);
-//        // mapDriver.getConfiguration().set(KylinConfig.KYLIN_METADATA_URL,
-//        // "../job/meta");
-//
-//        byte[] key = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 1 };
-//        byte[] value = new byte[] { 1, 2, 3 };
-//        byte[] newkey = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 2 };
-//        byte[] newvalue = new byte[] { 1, 2, 3 };
-//
-//        mapDriver.withInput(new Text(key), new Text(value));
-//        mapDriver.withOutput(new Text(newkey), new Text(newvalue));
-//        mapDriver.setMapInputPath(new Path("/apps/hdmi-prod/b_kylin/prod/kylin-f24668f6-dcff-4cb6-a89b-77f1119df8fa/vac_sw_cube_v4/cuboid/15d_cuboid"));
-//
-//        mapDriver.runTest();
+        //        File metaDir = new File("../job/meta");
+        //        FileUtils.copyDirectory(new File(getTestConfig().getMetadataUrl()), metaDir);
+        //
+        //        mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_NAME, cubeName);
+        //        mapDriver.getConfiguration().set(BatchConstants.CFG_CUBE_SEGMENT_NAME, segmentName);
+        //        // mapDriver.getConfiguration().set(KylinConfig.KYLIN_METADATA_URL,
+        //        // "../job/meta");
+        //
+        //        byte[] key = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 1 };
+        //        byte[] value = new byte[] { 1, 2, 3 };
+        //        byte[] newkey = new byte[] { 0, 0, 0, 0, 0, 0, 0, -92, 1, 1, 2 };
+        //        byte[] newvalue = new byte[] { 1, 2, 3 };
+        //
+        //        mapDriver.withInput(new Text(key), new Text(value));
+        //        mapDriver.withOutput(new Text(newkey), new Text(newvalue));
+        //        mapDriver.setMapInputPath(new Path("/apps/hdmi-prod/b_kylin/prod/kylin-f24668f6-dcff-4cb6-a89b-77f1119df8fa/vac_sw_cube_v4/cuboid/15d_cuboid"));
+        //
+        //        mapDriver.runTest();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
index debcf3e..d6f0849 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/MockupMapContext.java
@@ -40,7 +40,6 @@ import org.apache.hadoop.mapreduce.Reducer;
 import org.apache.hadoop.mapreduce.TaskAttemptID;
 import org.apache.hadoop.mapreduce.lib.map.WrappedMapper;
 import org.apache.hadoop.security.Credentials;
-
 import org.apache.kylin.job.constant.BatchConstants;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
index c8a3d51..e77a820 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidJobTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
index 4e362b3..c4920db 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapperTest.java
@@ -18,24 +18,25 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.MapReduceDriver;
 import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.job.constant.BatchConstants;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.job.constant.BatchConstants;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
index 4aae185..dcfb1ab 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionMapperTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -28,11 +28,10 @@ import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.MapDriver;
 import org.apache.hadoop.mrunit.types.Pair;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.invertedindex.RandomKeyDistributionMapper;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author ysong1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
index 8e85a27..c8b5c6f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RandomKeyDistributionReducerTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
index b3bcc30..271000e 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJobTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * @author ysong1
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
index 550fd6b..ba44487 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapperTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
index 5f43c2a..0f8442a 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hbase/CreateHTableTest.java
@@ -18,16 +18,16 @@
 
 package org.apache.kylin.job.hadoop.hbase;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java b/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
index cc14825..ad50e4f 100644
--- a/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
+++ b/job/src/test/java/org/apache/kylin/job/hadoop/hive/JoinedFlatTableTest.java
@@ -18,10 +18,15 @@
 
 package org.apache.kylin.job.hadoop.hive;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.job.JoinedFlatTable;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.junit.After;
@@ -29,12 +34,6 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.CubeSegment;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
index 29ef7ad..ed33558 100644
--- a/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/impl/threadpool/BaseSchedulerTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.kylin.job.impl.threadpool;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.lock.ZookeeperJobLock;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
@@ -29,9 +32,6 @@ import org.apache.kylin.job.manager.ExecutableManager;
 import org.junit.After;
 import org.junit.Before;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
 /**
  * Created by qianzhou on 12/26/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java b/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
index a0ec671..da99bb3 100644
--- a/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
@@ -18,17 +18,16 @@
 
 package org.apache.kylin.job.impl.threadpool;
 
-import static org.junit.Assert.*;
-
-import org.apache.kylin.job.SelfStopExecutable;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.kylin.job.BaseTestExecutable;
 import org.apache.kylin.job.ErrorTestExecutable;
 import org.apache.kylin.job.FailedTestExecutable;
+import org.apache.kylin.job.SelfStopExecutable;
 import org.apache.kylin.job.SucceedTestExecutable;
 import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.apache.kylin.job.execution.ExecutableState;
+import org.junit.Test;
 
 /**
  * Created by qianzhou on 12/19/14.
@@ -59,6 +58,7 @@ public class DefaultSchedulerTest extends BaseSchedulerTest {
         assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task1.getId()).getState());
         assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task2.getId()).getState());
     }
+
     @Test
     public void testSucceedAndFailed() throws Exception {
         DefaultChainedExecutable job = new DefaultChainedExecutable();
@@ -72,6 +72,7 @@ public class DefaultSchedulerTest extends BaseSchedulerTest {
         assertEquals(ExecutableState.SUCCEED, jobService.getOutput(task1.getId()).getState());
         assertEquals(ExecutableState.ERROR, jobService.getOutput(task2.getId()).getState());
     }
+
     @Test
     public void testSucceedAndError() throws Exception {
         DefaultChainedExecutable job = new DefaultChainedExecutable();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java b/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
index 11af88e..c1e39eb 100644
--- a/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/manager/ExecutableManagerTest.java
@@ -18,24 +18,26 @@
 
 package org.apache.kylin.job.manager;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.job.BaseTestExecutable;
 import org.apache.kylin.job.SucceedTestExecutable;
 import org.apache.kylin.job.exception.IllegalStateTranferException;
+import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ChainedExecutable;
+import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.apache.kylin.job.execution.Executable;
 import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.execution.AbstractExecutable;
-import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.List;
-
-import static org.junit.Assert.*;
-
 /**
  * Created by qianzhou on 12/16/14.
  */
@@ -48,7 +50,7 @@ public class ExecutableManagerTest extends LocalFileMetadataTestCase {
         createTestMetadata();
         service = ExecutableManager.getInstance(KylinConfig.getInstanceFromEnv());
 
-        for (String jobId: service.getAllJobIds()) {
+        for (String jobId : service.getAllJobIds()) {
             System.out.println("deleting " + jobId);
             service.deleteJob(jobId);
         }
@@ -106,15 +108,13 @@ public class ExecutableManagerTest extends LocalFileMetadataTestCase {
     }
 
     @Test(expected = IllegalStateTranferException.class)
-    public void testInvalidStateTransfer(){
+    public void testInvalidStateTransfer() {
         SucceedTestExecutable job = new SucceedTestExecutable();
         service.addJob(job);
         service.updateJobOutput(job.getId(), ExecutableState.RUNNING, null, null);
         service.updateJobOutput(job.getId(), ExecutableState.STOPPED, null, null);
     }
 
-
-
     private static void assertJobEqual(Executable one, Executable another) {
         assertEquals(one.getClass(), another.getClass());
         assertEquals(one.getId(), another.getId());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
index c9ef366..bb971d2 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityJobTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.job.tools;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;
@@ -26,12 +26,11 @@ import java.io.IOException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.hadoop.cardinality.HiveColumnCardinalityJob;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.job.hadoop.cardinality.HiveColumnCardinalityJob;
-
 /**
  * @author ysong1
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
index e13289a..2385a53 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityMapperTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.job.tools;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -33,13 +34,12 @@ import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mrunit.mapreduce.MapDriver;
 import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityMapper;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-
 /**
  * @author ysong1
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
index 2c01fb6..5e0d59d 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/ColumnCardinalityReducerTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.job.tools;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,20 +28,19 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
 import org.apache.hadoop.mrunit.types.Pair;
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.cube.kv.RowConstants;
 import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityMapper;
 import org.apache.kylin.job.hadoop.cardinality.ColumnCardinalityReducer;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-import org.apache.kylin.cube.kv.RowConstants;
-
 /**
  * @author ysong1
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
index 0f204e6..f09b5f6 100644
--- a/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
+++ b/job/src/test/java/org/apache/kylin/job/tools/CubeMigrationTests.java
@@ -21,16 +21,15 @@ package org.apache.kylin.job.tools;
 import java.io.File;
 import java.io.IOException;
 
+import org.apache.kylin.common.util.AbstractKylinTestCase;
+import org.apache.kylin.common.util.ClassUtil;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.codehaus.jettison.json.JSONException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.AbstractKylinTestCase;
-import org.apache.kylin.common.util.ClassUtil;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * Created by honma on 9/17/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java b/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
index b5a3e96..f769110 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/MetadataManager.java
@@ -30,12 +30,6 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.kylin.metadata.model.TableDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -44,6 +38,12 @@ import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  * Serves (and caches) metadata for Kylin instance.
@@ -148,7 +148,7 @@ public class MetadataManager {
     public TableDesc getTableDesc(String tableName) {
         if (tableName != null && tableName.indexOf(".") < 0)
             tableName = "DEFAULT." + tableName;
-        
+
         TableDesc result = srcTableMap.get(tableName.toUpperCase());
         return result;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
index 1b1d979..0164956 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/CaseTupleFilter.java
@@ -18,13 +18,12 @@
 
 package org.apache.kylin.metadata.filter;
 
-import org.apache.kylin.metadata.tuple.ITuple;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.kylin.metadata.tuple.ITuple;
 
 /**
  * @author xjiang

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
index d96da2e..0f5aa8f 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/ExtractTupleFilter.java
@@ -18,12 +18,11 @@
 
 package org.apache.kylin.metadata.filter;
 
-import org.apache.kylin.metadata.tuple.ITuple;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.kylin.metadata.tuple.ITuple;
 
 /**
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
index 5d4f642..9c92ef1 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/LogicalTupleFilter.java
@@ -18,14 +18,13 @@
 
 package org.apache.kylin.metadata.filter;
 
-import org.apache.kylin.metadata.tuple.ITuple;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.kylin.metadata.tuple.ITuple;
 
 public class LogicalTupleFilter extends TupleFilter {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
index d3e6873..e500932 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/filter/TupleFilter.java
@@ -24,10 +24,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import com.google.common.collect.Maps;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
 
+import com.google.common.collect.Maps;
+
 /**
  * 
  * @author xjiang

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
index 29f281a..d286888 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/BigDecimalSerializer.java
@@ -23,7 +23,6 @@ import java.math.BigInteger;
 import java.nio.ByteBuffer;
 
 import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.common.util.BytesUtil;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
index 754bf5c..6ec9a1f 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/DoubleSerializer.java
@@ -20,8 +20,8 @@ package org.apache.kylin.metadata.measure;
 
 import java.nio.ByteBuffer;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.DoubleWritable;
+import org.apache.kylin.common.util.Bytes;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
index cc2ba1d..1db7367 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/LongSerializer.java
@@ -20,9 +20,8 @@ package org.apache.kylin.metadata.measure;
 
 import java.nio.ByteBuffer;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.LongWritable;
-
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
index aa58664..6d8658d 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureAggregators.java
@@ -22,8 +22,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
index 6fd928f..398421e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/MeasureCodec.java
@@ -22,7 +22,6 @@ import java.nio.ByteBuffer;
 import java.util.Collection;
 
 import org.apache.hadoop.io.Text;
-
 import org.apache.kylin.metadata.model.MeasureDesc;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
index 9ccb479..e878d29 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/measure/fixedlen/FixedPointLongCodec.java
@@ -18,12 +18,11 @@
 
 package org.apache.kylin.metadata.measure.fixedlen;
 
-import org.apache.kylin.metadata.model.DataType;
-import org.apache.hadoop.io.LongWritable;
+import java.math.BigDecimal;
 
+import org.apache.hadoop.io.LongWritable;
 import org.apache.kylin.common.util.BytesUtil;
-
-import java.math.BigDecimal;
+import org.apache.kylin.metadata.model.DataType;
 
 public class FixedPointLongCodec extends FixedLenMeasureCodec<LongWritable> {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
index 95b320c..04bc170 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/ColumnDesc.java
@@ -18,10 +18,11 @@
 
 package org.apache.kylin.metadata.model;
 
+import org.apache.commons.lang.StringUtils;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.commons.lang.StringUtils;
 
 /**
  * Column Metadata from Source. All name should be uppercase.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
index 8a753f7..54098aa 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/DataModelDesc.java
@@ -24,15 +24,15 @@ import java.util.HashSet;
 import java.util.Map;
 
 import org.apache.commons.lang.ArrayUtils;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.common.util.StringUtil;
+import org.apache.kylin.metadata.MetadataConstants;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Sets;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.MetadataConstants;
 
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class DataModelDesc extends RootPersistentEntity {
@@ -54,7 +54,7 @@ public class DataModelDesc extends RootPersistentEntity {
     private String filterCondition;
     @JsonProperty("partition_desc")
     PartitionDesc partitionDesc;
-    
+
     @JsonProperty("capacity")
     private RealizationCapacity capacity = RealizationCapacity.MEDIUM;
 
@@ -93,7 +93,6 @@ public class DataModelDesc extends RootPersistentEntity {
     public boolean isFactTable(String factTable) {
         return this.factTable.equalsIgnoreCase(factTable);
     }
-    
 
     public String getFilterCondition() {
         return filterCondition;
@@ -129,7 +128,7 @@ public class DataModelDesc extends RootPersistentEntity {
             if (join == null)
                 continue;
 
-            if(joinType != null && !joinType.equals(join.getType()))
+            if (joinType != null && !joinType.equals(join.getType()))
                 continue;
 
             int find = ArrayUtils.indexOf(join.getForeignKeyColumns(), fk);
@@ -150,9 +149,10 @@ public class DataModelDesc extends RootPersistentEntity {
     }
 
     private void initPartitionDesc(Map<String, TableDesc> tables) {
-        if(this.partitionDesc != null)
+        if (this.partitionDesc != null)
             this.partitionDesc.init(tables);
     }
+
     private void initJoinColumns(Map<String, TableDesc> tables) {
         // join columns may or may not present in cube;
         // here we don't modify 'allColumns' and 'dimensionColumns';

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
index 9f6d38a..5d1c1e6 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/DataType.java
@@ -32,7 +32,7 @@ import java.util.regex.Pattern;
  * 
  */
 public class DataType {
-    
+
     public static final String VALID_TYPES_STRING = "any|char|varchar|boolean|binary" //
             + "|integer|tinyint|smallint|bigint|decimal|numeric|float|real|double" //
             + "|date|time|datetime|timestamp|byte|int|short|long|string|hllc" //
@@ -145,7 +145,6 @@ public class DataType {
             }
         }
 
-
         // FIXME 256 for unknown string precision
         if ((name.equals("char") || name.equals("varchar")) && precision == -1) {
             precision = 256; // to save memory at frontend, e.g. tableau will

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
index 3c5409b..ff7c81d 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java
@@ -18,12 +18,12 @@
 
 package org.apache.kylin.metadata.model;
 
+import java.util.Collection;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-import java.util.Collection;
-
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/26/13 Time: 1:30 PM To
  * change this template use File | Settings | File Templates.
@@ -151,7 +151,7 @@ public class FunctionDesc {
         this.returnType = returnType;
         this.initReturnDataType();
     }
-    
+
     // Jackson does not provide object post-processing currently
     public void initReturnDataType() {
         this.returnDataType = DataType.getInstance(returnType);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
index 1904c0a..057a1e4 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/LookupDesc.java
@@ -19,8 +19,8 @@
 package org.apache.kylin.metadata.model;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class LookupDesc {



[08/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
index 7303c6a7..980a2c8 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
@@ -18,9 +18,13 @@
 
 package org.apache.kylin.dict.lookup;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -31,12 +35,9 @@ import org.apache.kylin.dict.TrieDictionary;
 import org.apache.kylin.dict.TrieDictionaryBuilder;
 import org.apache.kylin.metadata.model.TableDesc;
 
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
index 81db5df..b7b9338 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/DateStrDictionaryTest.java
@@ -18,7 +18,9 @@
 
 package org.apache.kylin.dict;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,14 +45,14 @@ public class DateStrDictionaryTest {
         } catch (IllegalArgumentException e) {
             // good
         }
-        
+
         try {
             dict.getValueFromId(DateStrDictionary.ID_9999_12_31 + 1);
             fail("IllegalArgumentException expected");
         } catch (IllegalArgumentException e) {
             // good
         }
-        
+
         try {
             dict.getIdFromValue("10000-1-1");
             fail("IllegalArgumentException expected");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java b/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
index c9ae716..bf8e4b3 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/HiveTableReaderTest.java
@@ -21,12 +21,11 @@ package org.apache.kylin.dict;
 import java.io.IOException;
 
 import org.apache.commons.lang.ArrayUtils;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.dict.lookup.HiveTableReader;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-
 /**
  * This test case need the hive runtime; Please run it with sandbox; It is in the exclude list of default profile in pom.xml
  * @author shaoshi

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java b/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
index 86fa635..0cfe448 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/LookupTableTest.java
@@ -20,19 +20,18 @@ package org.apache.kylin.dict;
 
 import java.io.File;
 
+import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.ByteArray;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.dict.lookup.FileTable;
 import org.apache.kylin.dict.lookup.LookupBytesTable;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.TableDesc;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.Array;
-import org.apache.kylin.common.util.ByteArray;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.TableDesc;
-
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
index 1073496..3fbe9cc 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/NumberDictionaryTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.dict;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 import java.math.BigDecimal;
 import java.util.Collections;
@@ -94,7 +95,7 @@ public class NumberDictionaryTest {
             String dictNum = dict.getValueFromId(i);
             System.out.println(sorted.get(i) + "\t" + dictNum);
         }
-        
+
         for (int i = 0; i < sorted.size(); i++) {
             String dictNum = dict.getValueFromId(i);
             assertEquals(sorted.get(i), new BigDecimal(dictNum));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java b/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
index 5176038..c6b515f 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/SnapshotManagerTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.dict;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.apache.kylin.dict.lookup.HiveTable;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java b/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
index cfecaee..50bcf26 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/TableReaderTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.dict;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java b/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
index 74f5610..6b78435 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/TrieDictionaryTest.java
@@ -18,7 +18,10 @@
 
 package org.apache.kylin.dict;
 
-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.BufferedReader;
 import java.io.ByteArrayInputStream;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
----------------------------------------------------------------------
diff --git a/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java b/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
index b9327db..7af0b63 100644
--- a/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
+++ b/dictionary/src/test/java/org/apache/kylin/dict/lookup/LookupTableTest.java
@@ -18,21 +18,21 @@
 
 package org.apache.kylin.dict.lookup;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.common.util.Pair;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 /**
  * Created by shaoshi on 2/3/15.
  */
@@ -76,13 +76,12 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
         values.add("2012-12-30");
         Pair<String, String> results = lookupTable.mapRange("CAL_DT", "2012-01-24", "2012-12-30", "QTR_BEG_DT");
 
-
         Assert.assertTrue(results != null);
         System.out.println("The first qtr_beg_dt is " + results.getFirst());
         System.out.println("The last qtr_beg_dt is " + results.getSecond());
 
         Assert.assertEquals("2012-01-01", results.getFirst());
-        Assert.assertEquals( "2012-10-01" , results.getSecond());
+        Assert.assertEquals("2012-10-01", results.getSecond());
     }
 
     @Test
@@ -102,12 +101,10 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
 
     public LookupTable initLookupTable() throws Exception {
 
-
         MetadataManager metaMgr = MetadataManager.getInstance(config);
 
-
         String tableName = "EDW.TEST_CAL_DT";
-        String[] pkCols = new String[]{"CAL_DT"};
+        String[] pkCols = new String[] { "CAL_DT" };
         String snapshotResPath = "/table_snapshot/TEST_CAL_DT.csv/4af48c94-86de-4e22-a4fd-c49b06cbaa4f.snapshot";
         SnapshotTable snapshot = getSnapshotManager().getSnapshotTable(snapshotResPath);
         TableDesc tableDesc = metaMgr.getTableDesc(tableName);
@@ -115,7 +112,6 @@ public class LookupTableTest extends LocalFileMetadataTestCase {
 
         System.out.println(lt);
 
-
         return lt;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
index e350764..119f1ad 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIDescManager.java
@@ -18,6 +18,11 @@
 
 package org.apache.kylin.invertedindex;
 
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -27,14 +32,9 @@ import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
 import org.apache.kylin.invertedindex.model.IIDesc;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * copied from CubeDescManager
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
index 89ed059..9efb8e0 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIInstance.java
@@ -18,11 +18,10 @@
 
 package org.apache.kylin.invertedindex;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-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 java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
@@ -35,9 +34,11 @@ import org.apache.kylin.metadata.realization.RealizationStatusEnum;
 import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.metadata.realization.SQLDigest;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+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;
 
 /**
  * @author honma
@@ -83,7 +84,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
 
     private String projectName;
 
-
     public long getAllocatedEndDate() {
         if (null == segments || segments.size() == 0) {
             return 0;
@@ -104,7 +104,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
         return segments.get(0).getDateRangeStart();
     }
 
-
     public IIDesc getDescriptor() {
         return IIDescManager.getInstance(config).getIIDesc(descName);
     }
@@ -243,7 +242,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
         return result;
     }
 
-
     public IISegment getSegment(String name, SegmentStatusEnum status) {
         for (IISegment segment : segments) {
             if ((null != segment.getName() && segment.getName().equals(name)) && segment.getStatus() == status) {
@@ -258,7 +256,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
         this.segments = segments;
     }
 
-
     public long getCreateTimeUTC() {
         return createTimeUTC;
     }
@@ -267,7 +264,6 @@ public class IIInstance extends RootPersistentEntity implements IRealization {
         this.createTimeUTC = createTimeUTC;
     }
 
-
     @Override
     public boolean isCapable(SQLDigest digest) {
         //TODO: currently II is nearly omnipotent

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
index 6ebfbf8..6350b66 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IIManager.java
@@ -18,6 +18,14 @@
 
 package org.apache.kylin.invertedindex;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
@@ -38,10 +46,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
 /**
  * @author honma
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
index 064f65f..7b6e462 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/IISegment.java
@@ -18,11 +18,13 @@
 
 package org.apache.kylin.invertedindex;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonBackReference;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Objects;
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.dict.ISegment;
 import org.apache.kylin.invertedindex.index.TableRecordInfo;
@@ -30,12 +32,11 @@ import org.apache.kylin.invertedindex.model.IIDesc;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.model.TblColRef;
 
-import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.TimeZone;
-import java.util.concurrent.ConcurrentHashMap;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Objects;
 
 /**
  * @author honma
@@ -284,5 +285,4 @@ public class IISegment implements Comparable<IISegment>, ISegment {
         this.createTimeUTC = createTimeUTC;
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
index 066a3c8..4ad6ef4 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/BitMapContainer.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.invertedindex.index;
 
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
-
 import java.nio.ByteBuffer;
 import java.nio.IntBuffer;
 import java.util.ArrayList;
@@ -27,10 +25,11 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.dict.Dictionary;
 
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
index f83e472..ea35bb4 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ColumnValueContainer.java
@@ -18,25 +18,26 @@
 
 package org.apache.kylin.invertedindex.index;
 
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
 /**
  * @author yangli9
  */
 public interface ColumnValueContainer {
 
-	void append(ImmutableBytesWritable valueBytes);
+    void append(ImmutableBytesWritable valueBytes);
 
-	void closeForChange();
+    void closeForChange();
 
-	int getSize();
+    int getSize();
 
-	// works only after closeForChange()
-	void getValueAt(int i, ImmutableBytesWritable valueBytes);
+    // works only after closeForChange()
+    void getValueAt(int i, ImmutableBytesWritable valueBytes);
 
-	ConciseSet getBitMap(Integer startId,Integer endId);
+    ConciseSet getBitMap(Integer startId, Integer endId);
 
-	int getMaxValueId();
+    int getMaxValueId();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
index c16172b..4dcd11b 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/CompressedValueContainer.java
@@ -23,12 +23,12 @@ import java.util.Arrays;
 
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.dict.Dictionary;
+
 import com.ning.compress.lzf.LZFDecoder;
 import com.ning.compress.lzf.LZFEncoder;
 import it.uniroma3.mat.extendedset.intset.ConciseSet;
-import org.apache.kylin.dict.Dictionary;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
index 37b93fb..628a16b 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/RawTableRecord.java
@@ -18,14 +18,14 @@
 
 package org.apache.kylin.invertedindex.index;
 
+import java.util.Arrays;
+
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.metadata.measure.fixedlen.FixedLenMeasureCodec;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.hadoop.io.LongWritable;
-
-import java.util.Arrays;
 
 /**
  * Created by honma on 11/10/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
index 4510549..f16e9fe 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingHash.java
@@ -23,10 +23,10 @@ import com.google.common.hash.Hashing;
 
 public class ShardingHash {
 
-	static HashFunction hashFunc = Hashing.murmur3_128();
+    static HashFunction hashFunc = Hashing.murmur3_128();
 
-	public static long hashInt(int integer) {
-		return hashFunc.newHasher().putInt(integer).hash().asLong();
-	}
+    public static long hashInt(int integer) {
+        return hashFunc.newHasher().putInt(integer).hash().asLong();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
index ef2db19..5f20556 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/ShardingSliceBuilder.java
@@ -24,30 +24,30 @@ import com.google.common.collect.Lists;
 
 public class ShardingSliceBuilder {
 
-	SliceBuilder[] builders;
-
-	public ShardingSliceBuilder(TableRecordInfo info) {
-		int sharding = info.getDescriptor().getSharding();
-		builders = new SliceBuilder[sharding];
-		for (short i = 0; i < sharding; i++) {
-			builders[i] = new SliceBuilder(info, i);
-		}
-	}
-
-	// NOTE: record must be appended in time order
-	public Slice append(TableRecord rec) {
-		short shard = rec.getShard();
-		return builders[shard].append(rec);
-	}
-
-	public List<Slice> close() {
-		List<Slice> result = Lists.newArrayList();
-		for (SliceBuilder builder : builders) {
-			Slice slice = builder.close();
-			if (slice != null)
-				result.add(slice);
-		}
-		return result;
-	}
+    SliceBuilder[] builders;
+
+    public ShardingSliceBuilder(TableRecordInfo info) {
+        int sharding = info.getDescriptor().getSharding();
+        builders = new SliceBuilder[sharding];
+        for (short i = 0; i < sharding; i++) {
+            builders[i] = new SliceBuilder(info, i);
+        }
+    }
+
+    // NOTE: record must be appended in time order
+    public Slice append(TableRecord rec) {
+        short shard = rec.getShard();
+        return builders[shard].append(rec);
+    }
+
+    public List<Slice> close() {
+        List<Slice> result = Lists.newArrayList();
+        for (SliceBuilder builder : builders) {
+            Slice slice = builder.close();
+            if (slice != null)
+                result.add(slice);
+        }
+        return result;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
index 59dd9cd..3ab8687 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/Slice.java
@@ -20,9 +20,10 @@ package org.apache.kylin.invertedindex.index;
 
 import java.util.Iterator;
 
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
+
 /**
  * Within a partition (per timestampGranularity), records are further sliced
  * (per sliceLength) to fit into HBASE cell.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
index 72050a1..3e90171 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/SliceBuilder.java
@@ -25,97 +25,95 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
  */
 public class SliceBuilder {
 
-	TableRecordInfo info;
-	private int nColumns;
-	int nRecordsCap;
-
-	short shard;
-	long sliceTimestamp;
-	int nRecords;
-	private ColumnValueContainer[] containers;
-
-	transient ImmutableBytesWritable temp = new ImmutableBytesWritable();
-
-	public SliceBuilder(TableRecordInfo info, short shard) {
-		this.info = info;
-		this.nColumns = info.getDigest().getColumnCount();
-		this.nRecordsCap = Math.max(1, info.getDescriptor().getSliceSize());
-
-		this.shard = shard;
-		this.sliceTimestamp = Long.MIN_VALUE;
-		this.nRecords = 0;
-		this.containers = null;
-
-		doneSlice(); // init containers
-	}
-
-	private Slice doneSlice() {
-		Slice r = null;
-		if (nRecords > 0) {
-			for (int i = 0; i < nColumns; i++) {
-				containers[i].closeForChange();
-			}
-			r = new Slice(info.getDigest(), shard, sliceTimestamp, containers);
-		}
-
-		// reset for next slice
-		nRecords = 0;
-		containers = new ColumnValueContainer[nColumns];
-		for (int i : info.getDescriptor().getValueColumns()) {
-			containers[i] = new CompressedValueContainer(info.getDigest(), i,
-					nRecordsCap);
-		}
-		for (int i : info.getDescriptor().getMetricsColumns()) {
-			containers[i] = new CompressedValueContainer(info.getDigest(), i,
-					nRecordsCap);
-		}
-
-		return r;
-
-	}
-
-	// NOTE: record must be appended in time order
-	public Slice append(TableRecord rec) {
-		if (rec.getShard() != shard)
-			throw new IllegalStateException();
-
-		Slice doneSlice = null;
-
-		if (isFull()) {
-			doneSlice = doneSlice();
-		}
-
-		if (nRecords == 0) {
-			sliceTimestamp = increaseSliceTimestamp(rec.getTimestamp());
-		}
-
-		nRecords++;
-		for (int i = 0; i < nColumns; i++) {
-			rec.getValueBytes(i, temp);
-			containers[i].append(temp);
-		}
-
-		return doneSlice;
-	}
-
-	private long increaseSliceTimestamp(long timestamp) {
-		if (timestamp < sliceTimestamp)
-			throw new IllegalStateException();
-
-		if (timestamp == sliceTimestamp)
-			return ++timestamp; // ensure slice timestamp increases
-		else
-			return timestamp;
-	}
-
-	public Slice close() {
-		Slice doneSlice = doneSlice();
-		this.sliceTimestamp = Long.MIN_VALUE;
-		this.nRecords = 0;
-		return doneSlice;
-	}
-
-	private boolean isFull() {
-		return nRecords >= nRecordsCap;
-	}
+    TableRecordInfo info;
+    private int nColumns;
+    int nRecordsCap;
+
+    short shard;
+    long sliceTimestamp;
+    int nRecords;
+    private ColumnValueContainer[] containers;
+
+    transient ImmutableBytesWritable temp = new ImmutableBytesWritable();
+
+    public SliceBuilder(TableRecordInfo info, short shard) {
+        this.info = info;
+        this.nColumns = info.getDigest().getColumnCount();
+        this.nRecordsCap = Math.max(1, info.getDescriptor().getSliceSize());
+
+        this.shard = shard;
+        this.sliceTimestamp = Long.MIN_VALUE;
+        this.nRecords = 0;
+        this.containers = null;
+
+        doneSlice(); // init containers
+    }
+
+    private Slice doneSlice() {
+        Slice r = null;
+        if (nRecords > 0) {
+            for (int i = 0; i < nColumns; i++) {
+                containers[i].closeForChange();
+            }
+            r = new Slice(info.getDigest(), shard, sliceTimestamp, containers);
+        }
+
+        // reset for next slice
+        nRecords = 0;
+        containers = new ColumnValueContainer[nColumns];
+        for (int i : info.getDescriptor().getValueColumns()) {
+            containers[i] = new CompressedValueContainer(info.getDigest(), i, nRecordsCap);
+        }
+        for (int i : info.getDescriptor().getMetricsColumns()) {
+            containers[i] = new CompressedValueContainer(info.getDigest(), i, nRecordsCap);
+        }
+
+        return r;
+
+    }
+
+    // NOTE: record must be appended in time order
+    public Slice append(TableRecord rec) {
+        if (rec.getShard() != shard)
+            throw new IllegalStateException();
+
+        Slice doneSlice = null;
+
+        if (isFull()) {
+            doneSlice = doneSlice();
+        }
+
+        if (nRecords == 0) {
+            sliceTimestamp = increaseSliceTimestamp(rec.getTimestamp());
+        }
+
+        nRecords++;
+        for (int i = 0; i < nColumns; i++) {
+            rec.getValueBytes(i, temp);
+            containers[i].append(temp);
+        }
+
+        return doneSlice;
+    }
+
+    private long increaseSliceTimestamp(long timestamp) {
+        if (timestamp < sliceTimestamp)
+            throw new IllegalStateException();
+
+        if (timestamp == sliceTimestamp)
+            return ++timestamp; // ensure slice timestamp increases
+        else
+            return timestamp;
+    }
+
+    public Slice close() {
+        Slice doneSlice = doneSlice();
+        this.sliceTimestamp = Long.MIN_VALUE;
+        this.nRecords = 0;
+        return doneSlice;
+    }
+
+    private boolean isFull() {
+        return nRecords >= nRecordsCap;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
index 221bb24..54f1e3e 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/index/TableRecordInfoDigest.java
@@ -18,152 +18,147 @@
 
 package org.apache.kylin.invertedindex.index;
 
+import java.nio.ByteBuffer;
+
+import org.apache.hadoop.io.LongWritable;
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.metadata.measure.fixedlen.FixedLenMeasureCodec;
 import org.apache.kylin.metadata.model.DataType;
-import org.apache.hadoop.io.LongWritable;
-
-import java.nio.ByteBuffer;
 
 /**
  * Created by honma on 11/10/14.
  */
 public class TableRecordInfoDigest {
 
-	private int nColumns;
-	private int byteFormLen;
-
-	private int[] offsets;// column offset in byte form row
-	private int[] dictMaxIds;// max id for each of the dict
-	private int[] lengths;// length of each encoded dict
-	private boolean[] isMetric;// whether it's metric or dict
-
-	protected FixedLenMeasureCodec<?>[] measureSerializers;
-
-	public TableRecordInfoDigest(int nColumns, int byteFormLen, int[] offsets,
-			int[] dictMaxIds, int[] lengths, boolean[] isMetric,
-			FixedLenMeasureCodec<?>[] measureSerializers) {
-		this.nColumns = nColumns;
-		this.byteFormLen = byteFormLen;
-		this.offsets = offsets;
-		this.dictMaxIds = dictMaxIds;
-		this.lengths = lengths;
-		this.isMetric = isMetric;
-		this.measureSerializers = measureSerializers;
-	}
-
-	public TableRecordInfoDigest() {
-	}
-
-	public int getByteFormLen() {
-		return byteFormLen;
-	}
-
-	public boolean isMetrics(int col) {
-		return isMetric[col];
-	}
-
-	public int getColumnCount() {
-		return nColumns;
-	}
-
-	public int offset(int col) {
-		return offsets[col];
-	}
-
-	public int length(int col) {
-		return lengths[col];
-	}
-
-	public int getMaxID(int col) {
-		return dictMaxIds[col];
-	}
-
-	public int getMetricCount() {
-		int ret = 0;
-		for (int i = 0; i < nColumns; ++i) {
-			if (isMetrics(i)) {
-				ret++;
-			}
-		}
-		return ret;
-	}
-
-	public RawTableRecord createTableRecordBytes() {
-		return new RawTableRecord(this);
-	}
-
-	// metrics go with fixed-len codec
-	@SuppressWarnings("unchecked")
-	public FixedLenMeasureCodec<LongWritable> codec(int col) {
-		// yes, all metrics are long currently
-		return (FixedLenMeasureCodec<LongWritable>) measureSerializers[col];
-	}
-
-	public static byte[] serialize(TableRecordInfoDigest o) {
-		ByteBuffer buf = ByteBuffer.allocate(Serializer.SERIALIZE_BUFFER_SIZE);
-		serializer.serialize(o, buf);
-		byte[] result = new byte[buf.position()];
-		System.arraycopy(buf.array(), 0, result, 0, buf.position());
-		return result;
-	}
-
-	public static TableRecordInfoDigest deserialize(byte[] bytes) {
-		return serializer.deserialize(ByteBuffer.wrap(bytes));
-	}
-
-	public static TableRecordInfoDigest deserialize(ByteBuffer buffer) {
-		return serializer.deserialize(buffer);
-	}
-
-	private static final Serializer serializer = new Serializer();
-
-	private static class Serializer implements
-			BytesSerializer<TableRecordInfoDigest> {
-
-		@Override
-		public void serialize(TableRecordInfoDigest value, ByteBuffer out) {
-			BytesUtil.writeVInt(value.nColumns, out);
-			BytesUtil.writeVInt(value.byteFormLen, out);
-			BytesUtil.writeIntArray(value.offsets, out);
-			BytesUtil.writeIntArray(value.dictMaxIds, out);
-			BytesUtil.writeIntArray(value.lengths, out);
-			BytesUtil.writeBooleanArray(value.isMetric, out);
-
-			for (int i = 0; i < value.measureSerializers.length; ++i) {
-				if (value.isMetrics(i)) {
-					BytesUtil.writeAsciiString(value.measureSerializers[i]
-							.getDataType().toString(), out);
-				} else {
-					BytesUtil.writeAsciiString(null, out);
-				}
-			}
-		}
-
-		@Override
-		public TableRecordInfoDigest deserialize(ByteBuffer in) {
-			TableRecordInfoDigest result = new TableRecordInfoDigest();
-			result.nColumns = BytesUtil.readVInt(in);
-			result.byteFormLen = BytesUtil.readVInt(in);
-			result.offsets = BytesUtil.readIntArray(in);
-			result.dictMaxIds = BytesUtil.readIntArray(in);
-			result.lengths = BytesUtil.readIntArray(in);
-			result.isMetric = BytesUtil.readBooleanArray(in);
-
-			result.measureSerializers = new FixedLenMeasureCodec<?>[result.nColumns];
-			for (int i = 0; i < result.nColumns; ++i) {
-				String typeStr = BytesUtil.readAsciiString(in);
-				if (typeStr == null) {
-					result.measureSerializers[i] = null;
-				} else {
-					result.measureSerializers[i] = FixedLenMeasureCodec
-							.get(DataType.getInstance(typeStr));
-				}
-			}
-
-			return result;
-		}
-
-	}
+    private int nColumns;
+    private int byteFormLen;
+
+    private int[] offsets;// column offset in byte form row
+    private int[] dictMaxIds;// max id for each of the dict
+    private int[] lengths;// length of each encoded dict
+    private boolean[] isMetric;// whether it's metric or dict
+
+    protected FixedLenMeasureCodec<?>[] measureSerializers;
+
+    public TableRecordInfoDigest(int nColumns, int byteFormLen, int[] offsets, int[] dictMaxIds, int[] lengths, boolean[] isMetric, FixedLenMeasureCodec<?>[] measureSerializers) {
+        this.nColumns = nColumns;
+        this.byteFormLen = byteFormLen;
+        this.offsets = offsets;
+        this.dictMaxIds = dictMaxIds;
+        this.lengths = lengths;
+        this.isMetric = isMetric;
+        this.measureSerializers = measureSerializers;
+    }
+
+    public TableRecordInfoDigest() {
+    }
+
+    public int getByteFormLen() {
+        return byteFormLen;
+    }
+
+    public boolean isMetrics(int col) {
+        return isMetric[col];
+    }
+
+    public int getColumnCount() {
+        return nColumns;
+    }
+
+    public int offset(int col) {
+        return offsets[col];
+    }
+
+    public int length(int col) {
+        return lengths[col];
+    }
+
+    public int getMaxID(int col) {
+        return dictMaxIds[col];
+    }
+
+    public int getMetricCount() {
+        int ret = 0;
+        for (int i = 0; i < nColumns; ++i) {
+            if (isMetrics(i)) {
+                ret++;
+            }
+        }
+        return ret;
+    }
+
+    public RawTableRecord createTableRecordBytes() {
+        return new RawTableRecord(this);
+    }
+
+    // metrics go with fixed-len codec
+    @SuppressWarnings("unchecked")
+    public FixedLenMeasureCodec<LongWritable> codec(int col) {
+        // yes, all metrics are long currently
+        return (FixedLenMeasureCodec<LongWritable>) measureSerializers[col];
+    }
+
+    public static byte[] serialize(TableRecordInfoDigest o) {
+        ByteBuffer buf = ByteBuffer.allocate(Serializer.SERIALIZE_BUFFER_SIZE);
+        serializer.serialize(o, buf);
+        byte[] result = new byte[buf.position()];
+        System.arraycopy(buf.array(), 0, result, 0, buf.position());
+        return result;
+    }
+
+    public static TableRecordInfoDigest deserialize(byte[] bytes) {
+        return serializer.deserialize(ByteBuffer.wrap(bytes));
+    }
+
+    public static TableRecordInfoDigest deserialize(ByteBuffer buffer) {
+        return serializer.deserialize(buffer);
+    }
+
+    private static final Serializer serializer = new Serializer();
+
+    private static class Serializer implements BytesSerializer<TableRecordInfoDigest> {
+
+        @Override
+        public void serialize(TableRecordInfoDigest value, ByteBuffer out) {
+            BytesUtil.writeVInt(value.nColumns, out);
+            BytesUtil.writeVInt(value.byteFormLen, out);
+            BytesUtil.writeIntArray(value.offsets, out);
+            BytesUtil.writeIntArray(value.dictMaxIds, out);
+            BytesUtil.writeIntArray(value.lengths, out);
+            BytesUtil.writeBooleanArray(value.isMetric, out);
+
+            for (int i = 0; i < value.measureSerializers.length; ++i) {
+                if (value.isMetrics(i)) {
+                    BytesUtil.writeAsciiString(value.measureSerializers[i].getDataType().toString(), out);
+                } else {
+                    BytesUtil.writeAsciiString(null, out);
+                }
+            }
+        }
+
+        @Override
+        public TableRecordInfoDigest deserialize(ByteBuffer in) {
+            TableRecordInfoDigest result = new TableRecordInfoDigest();
+            result.nColumns = BytesUtil.readVInt(in);
+            result.byteFormLen = BytesUtil.readVInt(in);
+            result.offsets = BytesUtil.readIntArray(in);
+            result.dictMaxIds = BytesUtil.readIntArray(in);
+            result.lengths = BytesUtil.readIntArray(in);
+            result.isMetric = BytesUtil.readBooleanArray(in);
+
+            result.measureSerializers = new FixedLenMeasureCodec<?>[result.nColumns];
+            for (int i = 0; i < result.nColumns; ++i) {
+                String typeStr = BytesUtil.readAsciiString(in);
+                if (typeStr == null) {
+                    result.measureSerializers[i] = null;
+                } else {
+                    result.measureSerializers[i] = FixedLenMeasureCodec.get(DataType.getInstance(typeStr));
+                }
+            }
+
+            return result;
+        }
+
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
index ab1438b..ac935b8 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDesc.java
@@ -47,7 +47,6 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
index d2d377d..c89c61e 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIDimension.java
@@ -18,12 +18,12 @@
 
 package org.apache.kylin.invertedindex.model;
 
-import java.util.Arrays;
 import java.util.List;
 
+import org.apache.kylin.common.util.StringUtil;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.common.util.StringUtil;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 12/26/14.
@@ -51,7 +51,6 @@ public class IIDimension {
         this.columns = columns;
     }
 
-
     public static void capicalizeStrings(List<IIDimension> dimensions) {
         if (dimensions != null) {
             for (IIDimension iiDimension : dimensions) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
index 6d18186..d306eee 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/model/IIKeyValueCodec.java
@@ -24,248 +24,230 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.Pair;
+import org.apache.kylin.invertedindex.index.BitMapContainer;
+import org.apache.kylin.invertedindex.index.ColumnValueContainer;
+import org.apache.kylin.invertedindex.index.CompressedValueContainer;
+import org.apache.kylin.invertedindex.index.Slice;
+import org.apache.kylin.invertedindex.index.TableRecordInfoDigest;
 
 import com.google.common.collect.Lists;
 
-import org.apache.kylin.common.util.BytesUtil;
-import org.apache.kylin.invertedindex.index.*;
-
 /**
  * @author yangli9
  */
 public class IIKeyValueCodec {
 
-	public static final int SHARD_LEN = 2;
-	public static final int TIMEPART_LEN = 8;
-	public static final int COLNO_LEN = 2;
-
-	private TableRecordInfoDigest infoDigest;
-
-	public IIKeyValueCodec(TableRecordInfoDigest digest) {
-		this.infoDigest = digest;
-	}
-
-	public Collection<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKeyValue(
-			Slice slice) {
-		ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result = Lists
-				.newArrayList();
-		ColumnValueContainer[] containers = slice.getColumnValueContainers();
-		for (int col = 0; col < containers.length; col++) {
-			if (containers[col] instanceof BitMapContainer) {
-				collectKeyValues(slice, col, (BitMapContainer) containers[col],
-						result);
-			} else if (containers[col] instanceof CompressedValueContainer) {
-				collectKeyValues(slice, col,
-						(CompressedValueContainer) containers[col], result);
-			} else {
-				throw new IllegalArgumentException("Unkown container class "
-						+ containers[col].getClass());
-			}
-		}
-		return result;
-	}
-
-	private void collectKeyValues(Slice slice,
-			int col,
-			CompressedValueContainer container, //
-			ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
-		ImmutableBytesWritable key = encodeKey(slice.getShard(),
-				slice.getTimestamp(), col, -1);
-		ImmutableBytesWritable value = container.toBytes();
-		result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
-				key, value));
-	}
-
-	private void collectKeyValues(Slice slice,
-			int col,
-			BitMapContainer container, //
-			ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
-		List<ImmutableBytesWritable> values = container.toBytes();
-		for (int v = 0; v < values.size(); v++) {
-			ImmutableBytesWritable key = encodeKey(slice.getShard(),
-					slice.getTimestamp(), col, v);
-			result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
-					key, values.get(v)));
-		}
-	}
-
-	ImmutableBytesWritable encodeKey(short shard, long timestamp, int col,
-			int colValue) {
-		byte[] bytes = new byte[20];
-		int len = encodeKey(shard, timestamp, col, colValue, bytes, 0);
-		return new ImmutableBytesWritable(bytes, 0, len);
-	}
-
-	int encodeKey(short shard, long timestamp, int col, int colValue,
-			byte[] buf, int offset) {
-		int i = offset;
-
-		BytesUtil.writeUnsigned(shard, buf, i, SHARD_LEN);
-		i += SHARD_LEN;
-		BytesUtil.writeLong(timestamp, buf, i, TIMEPART_LEN);
-		i += TIMEPART_LEN;
-
-		BytesUtil.writeUnsigned(col, buf, i, COLNO_LEN);
-		i += COLNO_LEN;
-
-		if (colValue >= 0) {
-			int colLen = infoDigest.length(col);
-			BytesUtil.writeUnsigned(colValue, buf, i, colLen);
-			i += colLen;
-		}
-
-		return i - offset;
-	}
-
-	public Iterable<Slice> decodeKeyValue(
-			Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
-		return new Decoder(infoDigest, kvs);
-	}
-
-	private static class Decoder implements Iterable<Slice> {
-
-		TableRecordInfoDigest info;
-		Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator;
-
-		Slice next = null;
-		short curShard = Short.MIN_VALUE;
-		long curSliceTimestamp = Long.MIN_VALUE;
-		int curCol = -1;
-		int curColValue = -1;
-		short lastShard = Short.MIN_VALUE;
-		long lastSliceTimestamp = Long.MIN_VALUE;
-		int lastCol = -1;
-		ColumnValueContainer[] containers = null;
-		List<ImmutableBytesWritable> bitMapValues = Lists.newArrayList();
-
-		Decoder(TableRecordInfoDigest info,
-				Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
-			this.info = info;
-			this.iterator = kvs.iterator();
-		}
-
-		private void goToNext() {
-			if (next != null) { // was not fetched
-				return;
-			}
-
-			// NOTE the input keys are ordered
-			while (next == null && iterator.hasNext()) {
-				Pair<ImmutableBytesWritable, ImmutableBytesWritable> kv = iterator
-						.next();
-				ImmutableBytesWritable k = kv.getFirst();
-				ImmutableBytesWritable v = kv.getSecond();
-				decodeKey(k);
-
-				if (curShard != lastShard
-						|| curSliceTimestamp != lastSliceTimestamp) {
-					makeNext();
-				}
-				consumeCurrent(v);
-			}
-			if (next == null) {
-				makeNext();
-			}
-		}
-
-		private void decodeKey(ImmutableBytesWritable k) {
-			byte[] buf = k.get();
-			int i = k.getOffset();
-
-			curShard = (short) BytesUtil.readUnsigned(buf, i, SHARD_LEN);
-			i += SHARD_LEN;
-			curSliceTimestamp = BytesUtil.readLong(buf, i, TIMEPART_LEN);
-			i += TIMEPART_LEN;
-
-			curCol = BytesUtil.readUnsigned(buf, i, COLNO_LEN);
-			i += COLNO_LEN;
-
-			if (i - k.getOffset() < k.getLength()) {
-				// bitmap
-				int colLen = info.length(curCol);
-				curColValue = BytesUtil.readUnsigned(buf, i, colLen);
-				i += colLen;
-			} else {
-				// value list
-				curColValue = -1;
-			}
-		}
-
-		private void consumeCurrent(ImmutableBytesWritable v) {
-			if (curCol != lastCol && bitMapValues.size() > 0) { // end of a
-																// bitmap
-																// container
-				addBitMapContainer(lastCol);
-			}
-			if (curColValue < 0) {
-				CompressedValueContainer c = new CompressedValueContainer(info,
-						curCol, 0);
-				c.fromBytes(v);
-				addContainer(curCol, c);
-			} else {
-				assert curColValue == bitMapValues.size();
-				// make a copy, the value object from caller is typically reused
-				// through iteration
-				bitMapValues.add(new ImmutableBytesWritable(v));
-			}
-
-			lastShard = curShard;
-			lastSliceTimestamp = curSliceTimestamp;
-			lastCol = curCol;
-		}
-
-		private void makeNext() {
-			if (bitMapValues.isEmpty() == false) {
-				addBitMapContainer(lastCol);
-			}
-			if (containers != null) {
-				next = new Slice(info, lastShard, lastSliceTimestamp,
-						containers);
-			}
-			lastSliceTimestamp = Long.MIN_VALUE;
-			lastCol = -1;
-			containers = null;
-			bitMapValues.clear();
-		}
-
-		private void addBitMapContainer(int col) {
-			BitMapContainer c = new BitMapContainer(info, col);
-			c.fromBytes(bitMapValues);
-			addContainer(col, c);
-			bitMapValues.clear();
-		}
-
-		private void addContainer(int col, ColumnValueContainer c) {
-			if (containers == null) {
-				containers = new ColumnValueContainer[info.getColumnCount()];
-			}
-			containers[col] = c;
-		}
-
-		@Override
-		public Iterator<Slice> iterator() {
-			return new Iterator<Slice>() {
-				@Override
-				public boolean hasNext() {
-					goToNext();
-					return next != null;
-				}
-
-				@Override
-				public Slice next() {
-					Slice result = next;
-					next = null;
-					return result;
-				}
-
-				@Override
-				public void remove() {
-					throw new UnsupportedOperationException();
-				}
-			};
-		}
-
-	}
+    public static final int SHARD_LEN = 2;
+    public static final int TIMEPART_LEN = 8;
+    public static final int COLNO_LEN = 2;
+
+    private TableRecordInfoDigest infoDigest;
+
+    public IIKeyValueCodec(TableRecordInfoDigest digest) {
+        this.infoDigest = digest;
+    }
+
+    public Collection<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKeyValue(Slice slice) {
+        ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result = Lists.newArrayList();
+        ColumnValueContainer[] containers = slice.getColumnValueContainers();
+        for (int col = 0; col < containers.length; col++) {
+            if (containers[col] instanceof BitMapContainer) {
+                collectKeyValues(slice, col, (BitMapContainer) containers[col], result);
+            } else if (containers[col] instanceof CompressedValueContainer) {
+                collectKeyValues(slice, col, (CompressedValueContainer) containers[col], result);
+            } else {
+                throw new IllegalArgumentException("Unkown container class " + containers[col].getClass());
+            }
+        }
+        return result;
+    }
+
+    private void collectKeyValues(Slice slice, int col, CompressedValueContainer container, //
+            ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
+        ImmutableBytesWritable key = encodeKey(slice.getShard(), slice.getTimestamp(), col, -1);
+        ImmutableBytesWritable value = container.toBytes();
+        result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(key, value));
+    }
+
+    private void collectKeyValues(Slice slice, int col, BitMapContainer container, //
+            ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) {
+        List<ImmutableBytesWritable> values = container.toBytes();
+        for (int v = 0; v < values.size(); v++) {
+            ImmutableBytesWritable key = encodeKey(slice.getShard(), slice.getTimestamp(), col, v);
+            result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(key, values.get(v)));
+        }
+    }
+
+    ImmutableBytesWritable encodeKey(short shard, long timestamp, int col, int colValue) {
+        byte[] bytes = new byte[20];
+        int len = encodeKey(shard, timestamp, col, colValue, bytes, 0);
+        return new ImmutableBytesWritable(bytes, 0, len);
+    }
+
+    int encodeKey(short shard, long timestamp, int col, int colValue, byte[] buf, int offset) {
+        int i = offset;
+
+        BytesUtil.writeUnsigned(shard, buf, i, SHARD_LEN);
+        i += SHARD_LEN;
+        BytesUtil.writeLong(timestamp, buf, i, TIMEPART_LEN);
+        i += TIMEPART_LEN;
+
+        BytesUtil.writeUnsigned(col, buf, i, COLNO_LEN);
+        i += COLNO_LEN;
+
+        if (colValue >= 0) {
+            int colLen = infoDigest.length(col);
+            BytesUtil.writeUnsigned(colValue, buf, i, colLen);
+            i += colLen;
+        }
+
+        return i - offset;
+    }
+
+    public Iterable<Slice> decodeKeyValue(Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+        return new Decoder(infoDigest, kvs);
+    }
+
+    private static class Decoder implements Iterable<Slice> {
+
+        TableRecordInfoDigest info;
+        Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator;
+
+        Slice next = null;
+        short curShard = Short.MIN_VALUE;
+        long curSliceTimestamp = Long.MIN_VALUE;
+        int curCol = -1;
+        int curColValue = -1;
+        short lastShard = Short.MIN_VALUE;
+        long lastSliceTimestamp = Long.MIN_VALUE;
+        int lastCol = -1;
+        ColumnValueContainer[] containers = null;
+        List<ImmutableBytesWritable> bitMapValues = Lists.newArrayList();
+
+        Decoder(TableRecordInfoDigest info, Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+            this.info = info;
+            this.iterator = kvs.iterator();
+        }
+
+        private void goToNext() {
+            if (next != null) { // was not fetched
+                return;
+            }
+
+            // NOTE the input keys are ordered
+            while (next == null && iterator.hasNext()) {
+                Pair<ImmutableBytesWritable, ImmutableBytesWritable> kv = iterator.next();
+                ImmutableBytesWritable k = kv.getFirst();
+                ImmutableBytesWritable v = kv.getSecond();
+                decodeKey(k);
+
+                if (curShard != lastShard || curSliceTimestamp != lastSliceTimestamp) {
+                    makeNext();
+                }
+                consumeCurrent(v);
+            }
+            if (next == null) {
+                makeNext();
+            }
+        }
+
+        private void decodeKey(ImmutableBytesWritable k) {
+            byte[] buf = k.get();
+            int i = k.getOffset();
+
+            curShard = (short) BytesUtil.readUnsigned(buf, i, SHARD_LEN);
+            i += SHARD_LEN;
+            curSliceTimestamp = BytesUtil.readLong(buf, i, TIMEPART_LEN);
+            i += TIMEPART_LEN;
+
+            curCol = BytesUtil.readUnsigned(buf, i, COLNO_LEN);
+            i += COLNO_LEN;
+
+            if (i - k.getOffset() < k.getLength()) {
+                // bitmap
+                int colLen = info.length(curCol);
+                curColValue = BytesUtil.readUnsigned(buf, i, colLen);
+                i += colLen;
+            } else {
+                // value list
+                curColValue = -1;
+            }
+        }
+
+        private void consumeCurrent(ImmutableBytesWritable v) {
+            if (curCol != lastCol && bitMapValues.size() > 0) { // end of a
+                                                                // bitmap
+                                                                // container
+                addBitMapContainer(lastCol);
+            }
+            if (curColValue < 0) {
+                CompressedValueContainer c = new CompressedValueContainer(info, curCol, 0);
+                c.fromBytes(v);
+                addContainer(curCol, c);
+            } else {
+                assert curColValue == bitMapValues.size();
+                // make a copy, the value object from caller is typically reused
+                // through iteration
+                bitMapValues.add(new ImmutableBytesWritable(v));
+            }
+
+            lastShard = curShard;
+            lastSliceTimestamp = curSliceTimestamp;
+            lastCol = curCol;
+        }
+
+        private void makeNext() {
+            if (bitMapValues.isEmpty() == false) {
+                addBitMapContainer(lastCol);
+            }
+            if (containers != null) {
+                next = new Slice(info, lastShard, lastSliceTimestamp, containers);
+            }
+            lastSliceTimestamp = Long.MIN_VALUE;
+            lastCol = -1;
+            containers = null;
+            bitMapValues.clear();
+        }
+
+        private void addBitMapContainer(int col) {
+            BitMapContainer c = new BitMapContainer(info, col);
+            c.fromBytes(bitMapValues);
+            addContainer(col, c);
+            bitMapValues.clear();
+        }
+
+        private void addContainer(int col, ColumnValueContainer c) {
+            if (containers == null) {
+                containers = new ColumnValueContainer[info.getColumnCount()];
+            }
+            containers[col] = c;
+        }
+
+        @Override
+        public Iterator<Slice> iterator() {
+            return new Iterator<Slice>() {
+                @Override
+                public boolean hasNext() {
+                    goToNext();
+                    return next != null;
+                }
+
+                @Override
+                public Slice next() {
+                    Slice result = next;
+                    next = null;
+                    return result;
+                }
+
+                @Override
+                public void remove() {
+                    throw new UnsupportedOperationException();
+                }
+            };
+        }
+
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java b/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
index 503a2f1..664efd5 100644
--- a/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
+++ b/invertedindex/src/main/java/org/apache/kylin/invertedindex/tools/IICLI.java
@@ -25,11 +25,11 @@ import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
 import org.apache.hadoop.io.SequenceFile;
 import org.apache.hadoop.io.SequenceFile.Reader;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.index.RawTableRecord;
@@ -43,67 +43,64 @@ import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
  */
 public class IICLI {
 
-	public static void main(String[] args) throws IOException {
-		Configuration hconf = HadoopUtil.getCurrentConfiguration();
-		IIManager mgr = IIManager.getInstance(KylinConfig.getInstanceFromEnv());
+    public static void main(String[] args) throws IOException {
+        Configuration hconf = HadoopUtil.getCurrentConfiguration();
+        IIManager mgr = IIManager.getInstance(KylinConfig.getInstanceFromEnv());
 
-		String iiName = args[0];
-		IIInstance ii = mgr.getII(iiName);
+        String iiName = args[0];
+        IIInstance ii = mgr.getII(iiName);
 
-		String path = args[1];
-		System.out.println("Reading from " + path + " ...");
+        String path = args[1];
+        System.out.println("Reading from " + path + " ...");
 
-		TableRecordInfo info = new TableRecordInfo(ii.getFirstSegment());
-		IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
-		int count = 0;
-		for (Slice slice : codec.decodeKeyValue(readSequenceKVs(hconf, path))) {
-			for (RawTableRecord rec : slice) {
-				System.out.printf(new TableRecord(rec, info).toString());
-				count++;
-			}
-		}
-		System.out.println("Total " + count + " records");
-	}
+        TableRecordInfo info = new TableRecordInfo(ii.getFirstSegment());
+        IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
+        int count = 0;
+        for (Slice slice : codec.decodeKeyValue(readSequenceKVs(hconf, path))) {
+            for (RawTableRecord rec : slice) {
+                System.out.printf(new TableRecord(rec, info).toString());
+                count++;
+            }
+        }
+        System.out.println("Total " + count + " records");
+    }
 
-	public static Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> readSequenceKVs(
-			Configuration hconf, String path) throws IOException {
-		final Reader reader = new Reader(hconf,
-				SequenceFile.Reader.file(new Path(path)));
-		return new Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
-			@Override
-			public Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator() {
-				return new Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
-					ImmutableBytesWritable k = new ImmutableBytesWritable();
-					ImmutableBytesWritable v = new ImmutableBytesWritable();
-					Pair<ImmutableBytesWritable, ImmutableBytesWritable> pair = new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(
-							k, v);
+    public static Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> readSequenceKVs(Configuration hconf, String path) throws IOException {
+        final Reader reader = new Reader(hconf, SequenceFile.Reader.file(new Path(path)));
+        return new Iterable<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
+            @Override
+            public Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> iterator() {
+                return new Iterator<Pair<ImmutableBytesWritable, ImmutableBytesWritable>>() {
+                    ImmutableBytesWritable k = new ImmutableBytesWritable();
+                    ImmutableBytesWritable v = new ImmutableBytesWritable();
+                    Pair<ImmutableBytesWritable, ImmutableBytesWritable> pair = new Pair<ImmutableBytesWritable, ImmutableBytesWritable>(k, v);
 
-					@Override
-					public boolean hasNext() {
-						boolean hasNext = false;
-						try {
-							hasNext = reader.next(k, v);
-						} catch (IOException e) {
-							throw new RuntimeException(e);
-						} finally {
-							if (hasNext == false) {
-								IOUtils.closeQuietly(reader);
-							}
-						}
-						return hasNext;
-					}
+                    @Override
+                    public boolean hasNext() {
+                        boolean hasNext = false;
+                        try {
+                            hasNext = reader.next(k, v);
+                        } catch (IOException e) {
+                            throw new RuntimeException(e);
+                        } finally {
+                            if (hasNext == false) {
+                                IOUtils.closeQuietly(reader);
+                            }
+                        }
+                        return hasNext;
+                    }
 
-					@Override
-					public Pair<ImmutableBytesWritable, ImmutableBytesWritable> next() {
-						return pair;
-					}
+                    @Override
+                    public Pair<ImmutableBytesWritable, ImmutableBytesWritable> next() {
+                        return pair;
+                    }
 
-					@Override
-					public void remove() {
-						throw new UnsupportedOperationException();
-					}
-				};
-			}
-		};
-	}
+                    @Override
+                    public void remove() {
+                        throw new UnsupportedOperationException();
+                    }
+                };
+            }
+        };
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
index bd01b2c..ddeef6e 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescManagerTest.java
@@ -18,21 +18,17 @@
 
 package org.apache.kylin.invertedindex.invertedindex;
 
+import java.io.IOException;
+import java.util.UUID;
+
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.invertedindex.IIDescManager;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.model.IIDesc;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.UUID;
-
 /**
  * Created by shaoshi on 1/30/15.
  */
@@ -72,7 +68,6 @@ public class IIDescManagerTest extends LocalFileMetadataTestCase {
 
         mgr.createIIDesc(desc);
 
-
         desc = mgr.getIIDesc(newDescName);
 
         Assert.assertNotNull(desc);
@@ -83,7 +78,6 @@ public class IIDescManagerTest extends LocalFileMetadataTestCase {
 
         Assert.assertNull(mgr.getIIDesc(newDescName));
 
-
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
index 2bbda0a..b816eae 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIDescTest.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.invertedindex.invertedindex;
 
+import java.io.IOException;
+
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.invertedindex.IIDescManager;
@@ -28,9 +30,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.IOException;
-
-
 /**
  * Created by shaoshi on 1/30/15.
  */
@@ -68,5 +67,3 @@ public class IIDescTest extends LocalFileMetadataTestCase {
         Assert.assertEquals(iiDesc, desc2);
     }
 }
-
-

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
index 53ed70c..1a609d8 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/IIInstanceTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.kylin.invertedindex.invertedindex;
 
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.invertedindex.IIDescManager;
@@ -29,9 +32,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.util.List;
-
 /**
  * Created by shaoshi on 2/5/15.
  */
@@ -46,7 +46,6 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
         cleanupTestMetadata();
     }
 
-
     @Test
     public void testGetIIsByDesc() throws IOException {
         IIManager mgr = IIManager.getInstance(getTestConfig());
@@ -55,7 +54,6 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
 
         Assert.assertTrue(iiInstances.size() > 0);
 
-
         IIInstance instance = iiInstances.get(0);
 
         Dictionary dict = mgr.getDictionary(instance.getFirstSegment(), instance.getDescriptor().findColumnRef("DEFAULT.TEST_KYLIN_FACT", "LSTG_SITE_ID"));
@@ -63,11 +61,9 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
         Assert.assertNotNull(dict);
     }
 
-
     @Test
     public void testCreateIIInstance() throws IOException {
 
-
         IIDesc iiDesc = IIDescManager.getInstance(getTestConfig()).getIIDesc("test_kylin_ii_desc");
 
         IIInstance ii = IIInstance.create("new_ii", "default", iiDesc);
@@ -81,5 +77,4 @@ public class IIInstanceTest extends LocalFileMetadataTestCase {
         Assert.assertNotNull(iiMgr.getII("new_ii"));
     }
 
-
 }


[03/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java b/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
index 9641ca3..45516c9 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/MonitorMetaManager.java
@@ -16,17 +16,23 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
+import java.io.IOException;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.log4j.Logger;
-import java.io.File;
-import java.io.IOException;
 
 /**
  * Created by jiazhong on 2015/5/25.
@@ -42,10 +48,8 @@ public class MonitorMetaManager {
     final static String ROW_KEY_QUERY_READING_FILE = "/performance/query_log_file_reading";
     final static String ROW_KEY_QUERY_READING_FILE_LINE = "/performance/query_log_file_reading";
 
-
     final static String ROW_KEY_API_REQ_LOG_READ_FILES = "/performance/api_req_log_files_already_read";
 
-
     final static Logger logger = Logger.getLogger(MonitorMetaManager.class);
 
     static Configuration conf = null;
@@ -59,16 +63,15 @@ public class MonitorMetaManager {
         conf = HBaseConfiguration.create();
     }
 
-
     /*
      * meta data initialize
      * @unused
      */
     public static void init() throws Exception {
         MonitorMetaManager.TABLE_NAME = monitorConfig.getMetadataUrlPrefix();
-        logger.info("Monitor Metadata Table :"+MonitorMetaManager.TABLE_NAME);
+        logger.info("Monitor Metadata Table :" + MonitorMetaManager.TABLE_NAME);
         logger.info("init monitor metadata,create table if not exist");
-        MonitorMetaManager.creatTable(TABLE_NAME, new String[]{COLUMN_FAMILY});
+        MonitorMetaManager.creatTable(TABLE_NAME, new String[] { COLUMN_FAMILY });
     }
 
     /*
@@ -76,29 +79,28 @@ public class MonitorMetaManager {
      */
     public static void markQueryFileAsRead(String filename) throws IOException {
         String read_query_log_file = MonitorMetaManager.getReadQueryLogFiles();
-        if(StringUtils.isEmpty(read_query_log_file)){
-            read_query_log_file =  filename;
-        }else{
+        if (StringUtils.isEmpty(read_query_log_file)) {
+            read_query_log_file = filename;
+        } else {
             read_query_log_file = read_query_log_file.concat(",").concat(filename);
         }
-        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READ_FILES, COLUMN_FAMILY,COLUMN, read_query_log_file);
+        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READ_FILES, COLUMN_FAMILY, COLUMN, read_query_log_file);
     }
 
     /*
      * mark reading file for tracking
      */
     public static void markQueryReadingFile(String query_reading_file) throws IOException {
-        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE, COLUMN_FAMILY,COLUMN, query_reading_file);
+        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE, COLUMN_FAMILY, COLUMN, query_reading_file);
     }
 
     /*
      * mark reading line for tracking
      */
     public static void markQueryReadingLine(String line_num) throws IOException {
-        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE_LINE, COLUMN_FAMILY,COLUMN, line_num);
+        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_QUERY_READING_FILE_LINE, COLUMN_FAMILY, COLUMN, line_num);
     }
 
-
     /*
      * get has been read file name list
      */
@@ -114,7 +116,6 @@ public class MonitorMetaManager {
         return getListWithRowkey(TABLE_NAME, ROW_KEY_QUERY_READ_FILES);
     }
 
-
     /*
      * get has been read file
     */
@@ -127,11 +128,10 @@ public class MonitorMetaManager {
             }
 
         }
-        fileList = fileList==null?"":fileList;
+        fileList = fileList == null ? "" : fileList;
         return fileList;
     }
 
-
     /*
      * mark api req log file as read after parsing
      */
@@ -142,10 +142,9 @@ public class MonitorMetaManager {
         } else {
             read_api_req_log_files = read_api_req_log_files.concat(",").concat(filename);
         }
-        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES, COLUMN_FAMILY,COLUMN, read_api_req_log_files);
+        MonitorMetaManager.updateData(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES, COLUMN_FAMILY, COLUMN, read_api_req_log_files);
     }
 
-
     /*
      * get has been read log file name list
      */
@@ -161,7 +160,6 @@ public class MonitorMetaManager {
         return getListWithRowkey(TABLE_NAME, ROW_KEY_API_REQ_LOG_READ_FILES);
     }
 
-
     /*
      * create table in hbase
      */
@@ -182,7 +180,7 @@ public class MonitorMetaManager {
     /*
      * update cell in hbase
      */
-    public static void updateData(String tableName, String rowKey, String family,String column, String value) throws IOException {
+    public static void updateData(String tableName, String rowKey, String family, String column, String value) throws IOException {
         HTable table = new HTable(conf, Bytes.toBytes(tableName));
         Put put = new Put(rowKey.getBytes());
         put.add(family.getBytes(), column.getBytes(), value.getBytes());
@@ -191,10 +189,10 @@ public class MonitorMetaManager {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        logger.info("update table ["+tableName+"]");
-        logger.info("rowKey ["+rowKey+"]");
-        logger.info("column family ["+family+"]");
-        logger.info("value ["+value+"]");
+        logger.info("update table [" + tableName + "]");
+        logger.info("rowKey [" + rowKey + "]");
+        logger.info("column family [" + family + "]");
+        logger.info("value [" + value + "]");
         logger.info("end insert data ......");
     }
 
@@ -208,5 +206,4 @@ public class MonitorMetaManager {
         return result;
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java b/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
index 5a1c8c8..31e1033 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/QueryParser.java
@@ -18,13 +18,11 @@
 
 package org.apache.kylin.monitor;
 
-import au.com.bytecode.opencsv.CSVWriter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import org.apache.log4j.Logger;
-
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -32,10 +30,21 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.log4j.Logger;
+
+import au.com.bytecode.opencsv.CSVWriter;
+
 /**
  * @author jiazhong
  */
@@ -46,9 +55,9 @@ public class QueryParser {
     final static String QUERY_LOG_FILE_PATTERN = "kylin_query.log.(\\d{4}-\\d{2}-\\d{2})$";
     final static String QUERY_LOG_PARSE_RESULT_FILENAME = "kylin_query_log.csv";
     static String QUERY_PARSE_RESULT_PATH = null;
-    static  String DEPLOY_ENV;
+    static String DEPLOY_ENV;
 
-    final static String[] KYLIN_QUERY_CSV_HEADER = {"REQ_TIME","REQ_DATE", "SQL", "USER", "IS_SUCCESS", "LATENCY", "PROJECT", "REALIZATION NAMES", "CUBOID IDS", "TOTAL SCAN COUNT", "RESULT ROW COUNT", "ACCEPT PARTIAL", "IS PARTIAL RESULT", "HIT CACHE", "MESSAGE","DEPLOY_ENV"};
+    final static String[] KYLIN_QUERY_CSV_HEADER = { "REQ_TIME", "REQ_DATE", "SQL", "USER", "IS_SUCCESS", "LATENCY", "PROJECT", "REALIZATION NAMES", "CUBOID IDS", "TOTAL SCAN COUNT", "RESULT ROW COUNT", "ACCEPT PARTIAL", "IS PARTIAL RESULT", "HIT CACHE", "MESSAGE", "DEPLOY_ENV" };
 
     private ConfigUtils monitorConfig;
 
@@ -108,11 +117,11 @@ public class QueryParser {
 
         logger.info("Start parsing file " + filePath + " !");
 
-//        writer config init
+        //        writer config init
         FileSystem fs = this.getHdfsFileSystem();
         org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
         OutputStreamWriter writer = new OutputStreamWriter(fs.append(resultStorePath));
-        CSVWriter cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+        CSVWriter cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
 
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
         Pattern p_query_start = Pattern.compile("^\\[.*\\]:\\[(.*),.*\\]\\[.*\\]\\[.*QueryService.logQuery.*\\].*");
@@ -145,14 +154,14 @@ public class QueryParser {
                     m_query_body.reset(query_body);
                     logger.info("parsing query...");
                     logger.info(query_body);
-//                    skip group(8) and group(14)
+                    //                    skip group(8) and group(14)
                     if (m_query_body.find()) {
                         ArrayList<String> groups = new ArrayList<String>();
                         int grp_count = m_query_body.groupCount();
                         for (int i = 1; i <= grp_count; i++) {
                             if (i != 8 && i != 14) {
                                 String grp_item = m_query_body.group(i);
-                                grp_item = grp_item ==null?"":grp_item.trim();
+                                grp_item = grp_item == null ? "" : grp_item.trim();
                                 groups.add(grp_item);
                             }
                         }
@@ -161,7 +170,7 @@ public class QueryParser {
                         groups.set(0, format.format(new Date(start_time)));
                         groups.add(DEPLOY_ENV);
                         String[] recordArray = groups.toArray(new String[groups.size()]);
-//                        write to hdfs
+                        //                        write to hdfs
                         cwriter.writeNext(recordArray);
 
                     }
@@ -192,7 +201,7 @@ public class QueryParser {
             fs = this.getHdfsFileSystem();
             org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
             writer = new OutputStreamWriter(fs.append(resultStorePath));
-            cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+            cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
 
             cwriter.writeNext(record);
 
@@ -205,7 +214,6 @@ public class QueryParser {
         }
     }
 
-
     /*
      * get all query log files
      */
@@ -229,13 +237,12 @@ public class QueryParser {
         return logFiles;
     }
 
-
     /*
      * get hdfs fileSystem
      */
     public FileSystem getHdfsFileSystem() throws IOException {
         Configuration conf = new Configuration();
-//        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+        //        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
         FileSystem fs = null;
         try {
             fs = FileSystem.get(conf);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
----------------------------------------------------------------------
diff --git a/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java b/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
index 0b2d7a5..cb5892c 100644
--- a/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
+++ b/monitor/src/test/java/org/apache/kylin/monitor/ParseLogTest.java
@@ -16,17 +16,16 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
 import java.io.File;
 import java.io.IOException;
 import java.text.ParseException;
 
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
 /**
  * Created by jiazhong on 2015/5/27.
  */
@@ -51,9 +50,8 @@ public class ParseLogTest {
 
     }
 
-
     @Before
-    public void before(){
+    public void before() {
         queryParser = new QueryParser();
         apiReqParser = new ApiRequestParser();
     }
@@ -68,10 +66,8 @@ public class ParseLogTest {
         queryParser.getQueryLogFiles();
     }
 
-    private void testApiReqParsing(){
+    private void testApiReqParsing() {
         apiReqParser.getRequestLogFiles();
     }
 
-
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java b/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
index 011db30..b28b2cf 100644
--- a/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
+++ b/query/src/main/java/org/apache/kylin/query/enumerator/CubeEnumerator.java
@@ -22,19 +22,19 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.calcite.DataContext;
 import org.apache.calcite.jdbc.CalciteConnection;
 import org.apache.calcite.linq4j.Enumerator;
 import org.apache.calcite.rel.type.RelDataTypeField;
-import org.apache.kylin.query.relnode.OLAPContext;
-import org.apache.kylin.storage.IStorageEngine;
-import org.apache.kylin.storage.StorageEngineFactory;
 import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.tuple.ITuple;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageEngineFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  */
@@ -46,7 +46,7 @@ public class CubeEnumerator implements Enumerator<Object[]> {
     private final DataContext optiqContext;
     private final Object[] current;
     private ITupleIterator cursor;
-    private int[] fieldIndexes;    
+    private int[] fieldIndexes;
     private List<String> tupleFieldsSnapshot;
 
     public CubeEnumerator(OLAPContext olapContext, DataContext optiqContext) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java b/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
index c538080..1c1b412 100644
--- a/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
+++ b/query/src/main/java/org/apache/kylin/query/enumerator/LookupTableEnumerator.java
@@ -48,7 +48,7 @@ public class LookupTableEnumerator implements Enumerator<Object[]> {
 
     @SuppressWarnings("unused")
     private final static Logger logger = LoggerFactory.getLogger(LookupTableEnumerator.class);
-    
+
     public LookupTableEnumerator(OLAPContext olapContext) {
 
         //TODO: assuming LookupTableEnumerator is handled by a cube
@@ -57,7 +57,7 @@ public class LookupTableEnumerator implements Enumerator<Object[]> {
         if (olapContext.realization instanceof CubeInstance)
             cube = (CubeInstance) olapContext.realization;
         else if (olapContext.realization instanceof HybridInstance) {
-            final HybridInstance hybridInstance = (HybridInstance)olapContext.realization;
+            final HybridInstance hybridInstance = (HybridInstance) olapContext.realization;
             final IRealization latestRealization = hybridInstance.getLatestRealization();
             if (latestRealization instanceof CubeInstance) {
                 cube = (CubeInstance) latestRealization;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
index b80a483..6fa2731 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPAggregateRule.java
@@ -24,8 +24,8 @@ import org.apache.calcite.rel.InvalidRelException;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.convert.ConverterRule;
 import org.apache.calcite.rel.logical.LogicalAggregate;
-import org.apache.kylin.query.relnode.OLAPRel;
 import org.apache.kylin.query.relnode.OLAPAggregateRel;
+import org.apache.kylin.query.relnode.OLAPRel;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
index 3dcbbd7..33f3ea8 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPFilterRule.java
@@ -41,7 +41,7 @@ public class OLAPFilterRule extends RelOptRule {
 
         RelTraitSet origTraitSet = filter.getTraitSet();
         RelTraitSet traitSet = origTraitSet.replace(OLAPRel.CONVENTION).simplify();
-        
+
         OLAPFilterRel olapFilter = new OLAPFilterRel(filter.getCluster(), traitSet, convert(filter.getInput(), traitSet), filter.getCondition());
         call.transformTo(olapFilter);
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java b/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
index 5eb1ff8..76c2baf 100644
--- a/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
+++ b/query/src/main/java/org/apache/kylin/query/optrule/OLAPLimitRule.java
@@ -42,7 +42,7 @@ public class OLAPLimitRule extends RelOptRule {
         if (sort.offset == null && sort.fetch == null) {
             return;
         }
-        
+
         RelTraitSet origTraitSet = sort.getTraitSet();
         RelTraitSet traitSet = origTraitSet.replace(OLAPRel.CONVENTION).simplify();
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
index 832d4c8..b9adb4a 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
@@ -18,7 +18,12 @@
 
 package org.apache.kylin.query.relnode;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.calcite.adapter.enumerable.EnumerableAggregate;
 import org.apache.calcite.adapter.enumerable.EnumerableConvention;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
index 86473b5..73a91d8 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPContext.java
@@ -27,14 +27,14 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.calcite.rel.type.RelDataType;
-import org.apache.kylin.metadata.realization.SQLDigest;
-import org.apache.kylin.query.schema.OLAPSchema;
+import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.SQLDigest;
+import org.apache.kylin.query.schema.OLAPSchema;
 import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.metadata.filter.TupleFilter;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
index af69ec5..21880ce 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
@@ -90,7 +90,7 @@ public class OLAPToEnumerableConverter extends ConverterImpl implements Enumerab
         OLAPRel.JavaImplementor impl = new OLAPRel.JavaImplementor(enumImplementor);
         EnumerableRel inputAsEnum = impl.createEnumerable((OLAPRel) getInput());
         this.replaceInput(0, inputAsEnum);
-        
+
         if (System.getProperty("calcite.debug") != null) {
             String dumpPlan = RelOptUtil.dumpPlan("", this, false, SqlExplainLevel.DIGEST_ATTRIBUTES);
             System.out.println("EXECUTION PLAN AFTER REWRITE");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java b/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
index e9e7e7b..ad507dd 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/QueryRouter.java
@@ -21,13 +21,13 @@ package org.apache.kylin.query.routing;
 import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.metadata.project.ProjectManager;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.query.relnode.OLAPContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.IRealization;
-import org.apache.kylin.query.relnode.OLAPContext;
 
 /**
  * @author xjiang

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
index 04972fa..86d9318 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRule.java
@@ -21,14 +21,16 @@ package org.apache.kylin.query.routing;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.kylin.query.routing.RoutingRules.*;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.RealizationType;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.query.routing.RoutingRules.AdjustForWeeklyMatchedRealization;
+import org.apache.kylin.query.routing.RoutingRules.RealizationSortRule;
+import org.apache.kylin.query.routing.RoutingRules.RemoveUncapableRealizationsRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
-import org.apache.kylin.metadata.realization.IRealization;
-import org.apache.kylin.metadata.realization.RealizationType;
-import org.apache.kylin.query.relnode.OLAPContext;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 1/5/15.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
index 2c2ac4a..e00ae4f 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/AdjustForWeeklyMatchedRealization.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.query.routing.RoutingRules;
 
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.kylin.cube.CubeCapabilityChecker;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.model.CubeDesc;
@@ -32,10 +36,6 @@ import org.apache.kylin.storage.hybrid.HybridInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  */
 public class AdjustForWeeklyMatchedRealization extends RoutingRule {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
index 72995d6..734e7a6 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationPriorityRule.java
@@ -18,14 +18,18 @@
 
 package org.apache.kylin.query.routing.RoutingRules;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
 
-import com.google.common.collect.Maps;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.query.relnode.OLAPContext;
 import org.apache.kylin.query.routing.RoutingRule;
 
+import com.google.common.collect.Maps;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 1/5/15.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
index f9a250e..d101288 100644
--- a/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
+++ b/query/src/main/java/org/apache/kylin/query/routing/RoutingRules/RealizationSortRule.java
@@ -18,15 +18,15 @@
 
 package org.apache.kylin.query.routing.RoutingRules;
 
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.query.relnode.OLAPContext;
 import org.apache.kylin.query.routing.RoutingRule;
 import org.apache.kylin.storage.hybrid.HybridInstance;
 
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
 /**
  */
 public class RealizationSortRule extends RoutingRule {
@@ -60,7 +60,6 @@ public class RealizationSortRule extends RoutingRule {
             }
         });
 
-
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java b/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
index 356c1e3..7881c42 100644
--- a/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
+++ b/query/src/main/java/org/apache/kylin/query/sqlfunc/HLLDistinctCountAggFunc.java
@@ -21,11 +21,10 @@ package org.apache.kylin.query.sqlfunc;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
+import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
-
 /**
  * @author xjiang
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java b/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
index b85379a..71693f9 100644
--- a/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/CombinationTest.java
@@ -22,13 +22,12 @@ import java.sql.SQLException;
 import java.util.Arrays;
 import java.util.Collection;
 
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
 /**
  * Created by honma on 7/2/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/H2Database.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/H2Database.java b/query/src/test/java/org/apache/kylin/query/test/H2Database.java
index ed0c13f..afe9f5b 100644
--- a/query/src/test/java/org/apache/kylin/query/test/H2Database.java
+++ b/query/src/test/java/org/apache/kylin/query/test/H2Database.java
@@ -28,13 +28,12 @@ import java.sql.Statement;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class H2Database {
     private static final Logger logger = LoggerFactory.getLogger(H2Database.class);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
index 864e3c1..fa40dd4 100644
--- a/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/IIQueryTest.java
@@ -24,7 +24,6 @@ import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.query.routing.RoutingRules.RealizationPriorityRule;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import com.google.common.collect.Maps;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
index 415783a..a653db3 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinQueryTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.query.test;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.sql.DriverManager;
@@ -27,7 +27,14 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.query.enumerator.OLAPQuery;
+import org.apache.kylin.query.relnode.OLAPContext;
+import org.apache.kylin.query.schema.OLAPSchemaFactory;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
 import org.apache.kylin.storage.hybrid.HybridManager;
 import org.dbunit.database.DatabaseConnection;
 import org.dbunit.database.IDatabaseConnection;
@@ -36,14 +43,6 @@ import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.query.relnode.OLAPContext;
-import org.apache.kylin.query.schema.OLAPSchemaFactory;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
 @Ignore("KylinQueryTest is contained by CombinationTest")
 public class KylinQueryTest extends KylinTestBase {
 
@@ -249,7 +248,6 @@ public class KylinQueryTest extends KylinTestBase {
         }
     }
 
-
     @Test
     public void testDynamicQuery() throws Exception {
         execAndCompDynamicQuery("src/test/resources/query/sql_dynamic", null, true);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
index 819d2f9..450975a 100644
--- a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
+++ b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
@@ -43,6 +43,7 @@ import java.util.Set;
 import java.util.logging.LogManager;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.KylinConfig;
 import org.dbunit.Assertion;
 import org.dbunit.database.DatabaseConfig;
 import org.dbunit.database.DatabaseConnection;
@@ -57,7 +58,6 @@ import org.dbunit.ext.h2.H2DataTypeFactory;
 import org.junit.Assert;
 
 import com.google.common.io.Files;
-import org.apache.kylin.common.KylinConfig;
 
 /**
  * Created by hongbin on 2/18/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
index 030c04e..e6f2f4f 100644
--- a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
+++ b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.rest;
 
+import java.io.File;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
 import org.apache.catalina.Context;
 import org.apache.catalina.core.AprLifecycleListener;
 import org.apache.catalina.core.StandardServer;
@@ -27,10 +31,6 @@ import org.apache.hadoop.util.Shell;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.rest.util.ClasspathUtil;
 
-import java.io.File;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
 public class DebugTomcat {
 
     public static void setupDebugEnv() {
@@ -39,13 +39,13 @@ public class DebugTomcat {
             ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox").getAbsolutePath());
             System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
             overrideDevJobJarLocations();
-            
+
             System.setProperty("spring.profiles.active", "testing");
-            
+
             //avoid log permission issue
             if (System.getProperty("catalina.home") == null)
-                System.setProperty("catalina.home", "."); 
-            
+                System.setProperty("catalina.home", ".");
+
             if (System.getProperty("hdp.version") == null)
                 System.setProperty("hdp.version", "2.2.4.2-2"); // mapred-site.xml ref this
 
@@ -98,12 +98,12 @@ public class DebugTomcat {
 
     public static void main(String[] args) throws Exception {
         setupDebugEnv();
-        
+
         int port = 7070;
         if (args.length >= 1) {
             port = Integer.parseInt(args[0]);
         }
-        
+
         String webBase = new File("../webapp/app").getAbsolutePath();
         if (new File(webBase, "WEB-INF").exists() == false) {
             throw new RuntimeException("In order to launch Kylin web app from IDE, please copy server/src/main/webapp/WEB-INF to  webapp/app/WEB-INF");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java b/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
index d0d2b66..461aa3f 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/AccessController.java
@@ -21,6 +21,7 @@ package org.apache.kylin.rest.controller;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.kylin.common.persistence.AclEntity;
 import org.apache.kylin.rest.request.AccessRequest;
 import org.apache.kylin.rest.response.AccessEntryResponse;
 import org.apache.kylin.rest.security.AclPermissionFactory;
@@ -36,8 +37,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import org.apache.kylin.common.persistence.AclEntity;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java b/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
index b855827..de3c4b4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/AdminController.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.rest.controller;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.rest.request.MetricsRequest;
 import org.apache.kylin.rest.request.UpdateConfigRequest;
 import org.apache.kylin.rest.response.GeneralResponse;
 import org.apache.kylin.rest.response.MetricsResponse;
@@ -30,9 +32,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.rest.request.MetricsRequest;
-
 /**
  * Admin Controller is defined as Restful API entrance for UI.
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java b/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
index 9b75f1b..0a3b077 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/BasicController.java
@@ -20,19 +20,17 @@ package org.apache.kylin.rest.controller;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.kylin.rest.exception.BadRequestException;
 import org.apache.kylin.rest.exception.ForbiddenException;
+import org.apache.kylin.rest.exception.NotFoundException;
 import org.apache.kylin.rest.response.ErrorResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
-import org.apache.kylin.rest.exception.BadRequestException;
-import org.apache.kylin.rest.exception.NotFoundException;
-
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/1/13 Time: 10:54 PM To
  * change this template use File | Settings | File Templates.
@@ -48,7 +46,6 @@ public class BasicController {
         logger.error("", ex);
         return new ErrorResponse(req.getRequestURL().toString(), ex);
     }
-    
 
     @ResponseStatus(HttpStatus.FORBIDDEN)
     @ExceptionHandler(ForbiddenException.class)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java b/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
index 3ed30c5..74216f4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CacheController.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.rest.controller;
 
+import java.io.IOException;
+
 import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.common.restclient.Broadcaster.EVENT;
 import org.apache.kylin.rest.service.CacheService;
@@ -30,8 +32,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import java.io.IOException;
-
 /**
  * CubeController is defined as Restful API entrance for UI.
  *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
index 1c47a1e..b310086 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
@@ -85,7 +85,7 @@ public class CubeController extends BasicController {
     @Autowired
     private JobService jobService;
 
-    @RequestMapping(value = "", method = {RequestMethod.GET})
+    @RequestMapping(value = "", method = { RequestMethod.GET })
     @ResponseBody
     public List<CubeInstance> getCubes(@RequestParam(value = "cubeName", required = false) String cubeName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam("limit") Integer limit, @RequestParam("offset") Integer offset) {
         return cubeService.getCubes(cubeName, projectName, (null == limit) ? 20 : limit, offset);
@@ -99,7 +99,7 @@ public class CubeController extends BasicController {
      * @throws UnknownHostException
      * @throws IOException
      */
-    @RequestMapping(value = "/{cubeName}/segs/{segmentName}/sql", method = {RequestMethod.GET})
+    @RequestMapping(value = "/{cubeName}/segs/{segmentName}/sql", method = { RequestMethod.GET })
     @ResponseBody
     public GeneralResponse getSql(@PathVariable String cubeName, @PathVariable String segmentName) {
         CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -122,7 +122,7 @@ public class CubeController extends BasicController {
      * @throws IOException
      * @throws CubeIntegrityException
      */
-    @RequestMapping(value = "/{cubeName}/notify_list", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/notify_list", method = { RequestMethod.PUT })
     @ResponseBody
     public void updateNotifyList(@PathVariable String cubeName, @RequestBody List<String> notifyList) {
         CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -140,7 +140,7 @@ public class CubeController extends BasicController {
 
     }
 
-    @RequestMapping(value = "/{cubeName}/cost", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/cost", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeInstance updateCubeCost(@PathVariable String cubeName, @RequestParam(value = "cost") int cost) {
         try {
@@ -152,7 +152,7 @@ public class CubeController extends BasicController {
         }
     }
 
-    @RequestMapping(value = "/{cubeName}/coprocessor", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/coprocessor", method = { RequestMethod.PUT })
     @ResponseBody
     public Map<String, Boolean> updateCubeCoprocessor(@PathVariable String cubeName, @RequestParam(value = "force") String force) {
         try {
@@ -170,7 +170,7 @@ public class CubeController extends BasicController {
      *
      * @throws IOException
      */
-    @RequestMapping(value = "/{cubeName}/segs/{segmentName}/refresh_lookup", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/segs/{segmentName}/refresh_lookup", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeInstance rebuildLookupSnapshot(@PathVariable String cubeName, @PathVariable String segmentName, @RequestParam(value = "lookupTable") String lookupTable) {
         try {
@@ -188,7 +188,7 @@ public class CubeController extends BasicController {
      * @return
      * @throws IOException
      */
-    @RequestMapping(value = "/{cubeName}/rebuild", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/rebuild", method = { RequestMethod.PUT })
     @ResponseBody
     public JobInstance rebuild(@PathVariable String cubeName, @RequestBody JobBuildRequest jobBuildRequest) {
         try {
@@ -205,7 +205,7 @@ public class CubeController extends BasicController {
         }
     }
 
-    @RequestMapping(value = "/{cubeName}/disable", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/disable", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeInstance disableCube(@PathVariable String cubeName) {
         try {
@@ -223,7 +223,7 @@ public class CubeController extends BasicController {
         }
     }
 
-    @RequestMapping(value = "/{cubeName}/purge", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/purge", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeInstance purgeCube(@PathVariable String cubeName) {
         try {
@@ -241,7 +241,7 @@ public class CubeController extends BasicController {
         }
     }
 
-    @RequestMapping(value = "/{cubeName}/enable", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{cubeName}/enable", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeInstance enableCube(@PathVariable String cubeName) {
         try {
@@ -258,7 +258,7 @@ public class CubeController extends BasicController {
         }
     }
 
-    @RequestMapping(value = "/{cubeName}", method = {RequestMethod.DELETE})
+    @RequestMapping(value = "/{cubeName}", method = { RequestMethod.DELETE })
     @ResponseBody
     public void deleteCube(@PathVariable String cubeName) {
         CubeInstance cube = cubeService.getCubeManager().getCube(cubeName);
@@ -280,7 +280,7 @@ public class CubeController extends BasicController {
      * @return Table metadata array
      * @throws IOException
      */
-    @RequestMapping(value = "", method = {RequestMethod.POST})
+    @RequestMapping(value = "", method = { RequestMethod.POST })
     @ResponseBody
     public CubeRequest saveCubeDesc(@RequestBody CubeRequest cubeRequest) {
         //Update Model
@@ -336,7 +336,7 @@ public class CubeController extends BasicController {
      * @throws JsonProcessingException
      * @throws IOException
      */
-    @RequestMapping(value = "", method = {RequestMethod.PUT})
+    @RequestMapping(value = "", method = { RequestMethod.PUT })
     @ResponseBody
     public CubeRequest updateCubeDesc(@RequestBody CubeRequest cubeRequest) throws JsonProcessingException {
 
@@ -409,7 +409,7 @@ public class CubeController extends BasicController {
      * @return true
      * @throws IOException
      */
-    @RequestMapping(value = "/{cubeName}/hbase", method = {RequestMethod.GET})
+    @RequestMapping(value = "/{cubeName}/hbase", method = { RequestMethod.GET })
     @ResponseBody
     public List<HBaseResponse> getHBaseInfo(@PathVariable String cubeName) {
         List<HBaseResponse> hbase = new ArrayList<HBaseResponse>();
@@ -451,7 +451,7 @@ public class CubeController extends BasicController {
         try {
             logger.debug("Saving cube " + cubeRequest.getCubeDescData());
             desc = JsonUtil.readValue(cubeRequest.getCubeDescData(), CubeDesc.class);
-//            desc.setRetentionRange(cubeRequest.getRetentionRange());
+            //            desc.setRetentionRange(cubeRequest.getRetentionRange());
         } catch (JsonParseException e) {
             logger.error("The cube definition is not valid.", e);
             updateRequest(cubeRequest, false, e.getMessage());
@@ -488,7 +488,7 @@ public class CubeController extends BasicController {
      */
     private String omitMessage(List<String> errors) {
         StringBuffer buffer = new StringBuffer();
-        for (Iterator<String> iterator = errors.iterator(); iterator.hasNext(); ) {
+        for (Iterator<String> iterator = errors.iterator(); iterator.hasNext();) {
             String string = (String) iterator.next();
             buffer.append(string);
             buffer.append("\n");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java b/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
index faec985..aaa3496 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CubeDescController.java
@@ -20,6 +20,8 @@ package org.apache.kylin.rest.controller;
 
 import java.io.IOException;
 
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.rest.service.CubeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -28,9 +30,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.model.CubeDesc;
-
 /**
  * @author xduo
  * 
@@ -54,7 +53,7 @@ public class CubeDescController {
     @ResponseBody
     public CubeDesc[] getCube(@PathVariable String cubeName) {
         CubeInstance cubeInstance = cubeService.getCubeManager().getCube(cubeName);
-        if (cubeInstance == null){
+        if (cubeInstance == null) {
             return null;
         }
         CubeDesc cSchema = cubeInstance.getDescriptor();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
index 0e0a0b1..26ba913 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -26,8 +26,16 @@ import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
 
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.lock.ZookeeperJobLock;
+import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.constant.JobStatusEnum;
+import org.apache.kylin.job.engine.JobEngineConfig;
+import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
+import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.request.JobListRequest;
+import org.apache.kylin.rest.service.JobService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.InitializingBean;
@@ -38,15 +46,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.constant.JobStatusEnum;
-import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.JobListRequest;
-import org.apache.kylin.rest.service.JobService;
-
 /**
  * @author ysong1
  * @author Jack

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
index 2499f59..85c5874 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
@@ -20,6 +20,9 @@ package org.apache.kylin.rest.controller;
 
 import java.io.IOException;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.rest.service.CubeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -28,10 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.DataModelDesc;
-
 /**
  * @author jiazhong
  * 
@@ -54,10 +53,10 @@ public class ModelController {
     @RequestMapping(value = "/{model_name}", method = { RequestMethod.GET })
     @ResponseBody
     public DataModelDesc getModel(@PathVariable String model_name) {
-        MetadataManager metaManager= MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
+        MetadataManager metaManager = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
         DataModelDesc modeDesc = metaManager.getDataModelDesc(model_name);
         return modeDesc;
-            
+
     }
 
     public void setCubeService(CubeService cubeService) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
index 7158916..156c782 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
@@ -18,7 +18,11 @@
 
 package org.apache.kylin.rest.controller;
 
+import java.io.IOException;
+import java.util.List;
+
 import net.sf.ehcache.CacheManager;
+
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.rest.service.CubeService;
 import org.apache.kylin.rest.service.PerformService;
@@ -26,10 +30,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.List;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 /**
  * Handle query requests.
@@ -42,7 +45,6 @@ public class PerformanceController extends BasicController {
 
     private static final Logger logger = LoggerFactory.getLogger(PerformanceController.class);
 
-
     @Autowired
     private PerformService performService;
 
@@ -64,46 +66,42 @@ public class PerformanceController extends BasicController {
         return performService.projectPercentile();
     }
 
-
     @RequestMapping(value = "/last30DayPercentile", method = RequestMethod.GET)
     @ResponseBody
     public List<String[]> last30DayPercentile() throws IOException {
         return performService.last30DayPercentile();
     }
 
-    @RequestMapping(value = "/cubesStorage", method = {RequestMethod.GET})
+    @RequestMapping(value = "/cubesStorage", method = { RequestMethod.GET })
     @ResponseBody
     public List<CubeInstance> getCubeStorage() {
         return cubeService.listAllCubes(null, null);
     }
 
-
-    @RequestMapping(value = "/totalQueryUser", method = {RequestMethod.GET})
+    @RequestMapping(value = "/totalQueryUser", method = { RequestMethod.GET })
     @ResponseBody
     public List<String[]> totalQueryUser() throws IOException {
         return performService.getTotalQueryUser();
     }
 
-    @RequestMapping(value = "/dailyQueryCount", method = {RequestMethod.GET})
+    @RequestMapping(value = "/dailyQueryCount", method = { RequestMethod.GET })
     @ResponseBody
     public List<String[]> dailyQueryCount() throws IOException {
         return performService.dailyQueryCount();
     }
 
-    @RequestMapping(value = "/avgDayQuery", method = {RequestMethod.GET})
+    @RequestMapping(value = "/avgDayQuery", method = { RequestMethod.GET })
     @ResponseBody
     public List<String[]> avgDayQuery() throws IOException {
         return performService.avgDayQuery();
     }
 
-    @RequestMapping(value = "/listCubes", method = {RequestMethod.GET})
+    @RequestMapping(value = "/listCubes", method = { RequestMethod.GET })
     @ResponseBody
     public List<CubeInstance> getCubes() {
-        return cubeService.listAllCubes(null,null);
+        return cubeService.listAllCubes(null, null);
     }
 
-
-
     public void setCubeService(CubeService cubeService) {
         this.cubeService = cubeService;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java b/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
index d34b854..a2419d4 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/ProjectController.java
@@ -21,8 +21,8 @@ package org.apache.kylin.rest.controller;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.rest.exception.InternalErrorException;
 import org.apache.kylin.rest.request.CreateProjectRequest;
 import org.apache.kylin.rest.request.UpdateProjectRequest;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java b/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
index 27ceadc..76b2deb 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/QueryController.java
@@ -18,9 +18,19 @@
 
 package org.apache.kylin.rest.controller;
 
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.Element;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.debug.BackdoorToggles;
@@ -43,19 +53,15 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.supercsv.io.CsvListWriter;
 import org.supercsv.io.ICsvListWriter;
 import org.supercsv.prefs.CsvPreference;
 
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Handle query requests.
  * 
@@ -195,11 +201,11 @@ public class QueryController extends BasicController {
             }
 
             checkQueryAuth(sqlResponse);
-            
+
         } catch (Throwable e) { // calcite may throw AssertError
             logger.error("Exception when execute sql", e);
             String errMsg = QueryUtil.makeErrorMsgUserFriendly(e);
-            
+
             sqlResponse = new SQLResponse(null, null, 0, true, errMsg);
 
             // Access exception is bind with each user, it will not be cached
@@ -208,7 +214,7 @@ public class QueryController extends BasicController {
                 exceptionCache.put(new Element(sqlRequest, sqlResponse));
             }
         }
-        
+
         if (sqlResponse.getIsException())
             throw new InternalErrorException(sqlResponse.getExceptionMessage());
         else

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/TableController.java b/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
index 631ac4e..133b5ad 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/TableController.java
@@ -18,6 +18,14 @@
 
 package org.apache.kylin.rest.controller;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.model.ColumnDesc;
@@ -31,10 +39,12 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 /**
  * @author xduo
@@ -53,7 +63,7 @@ public class TableController extends BasicController {
      * @return Table metadata array
      * @throws IOException
      */
-    @RequestMapping(value = "", method = {RequestMethod.GET})
+    @RequestMapping(value = "", method = { RequestMethod.GET })
     @ResponseBody
     public List<TableDesc> getHiveTables(@RequestParam(value = "ext", required = false) boolean withExt, @RequestParam(value = "project", required = false) String project) {
         long start = System.currentTimeMillis();
@@ -80,7 +90,7 @@ public class TableController extends BasicController {
      * @return Table metadata array
      * @throws IOException
      */
-    @RequestMapping(value = "/{tableName}", method = {RequestMethod.GET})
+    @RequestMapping(value = "/{tableName}", method = { RequestMethod.GET })
     @ResponseBody
     public TableDesc getHiveTable(@PathVariable String tableName) {
         return cubeMgmtService.getMetadataManager().getTableDesc(tableName);
@@ -92,21 +102,21 @@ public class TableController extends BasicController {
      * @return Table metadata array
      * @throws IOException
      */
-    @RequestMapping(value = "/{tableName}/exd-map", method = {RequestMethod.GET})
+    @RequestMapping(value = "/{tableName}/exd-map", method = { RequestMethod.GET })
     @ResponseBody
     public Map<String, String> getHiveTableExd(@PathVariable String tableName) {
         Map<String, String> tableExd = cubeMgmtService.getMetadataManager().getTableDescExd(tableName);
         return tableExd;
     }
 
-    @RequestMapping(value = "/reload", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/reload", method = { RequestMethod.PUT })
     @ResponseBody
     public String reloadSourceTable() {
         cubeMgmtService.getMetadataManager().reload();
         return "ok";
     }
 
-    @RequestMapping(value = "/{tables}/{project}", method = {RequestMethod.POST})
+    @RequestMapping(value = "/{tables}/{project}", method = { RequestMethod.POST })
     @ResponseBody
     public Map<String, String[]> loadHiveTable(@PathVariable String tables, @PathVariable String project) throws IOException {
         String submitter = SecurityContextHolder.getContext().getAuthentication().getName();
@@ -115,7 +125,7 @@ public class TableController extends BasicController {
         cubeMgmtService.syncTableToProject(loaded, project);
         Map<String, String[]> result = new HashMap<String, String[]>();
         result.put("result.loaded", loaded);
-        result.put("result.unloaded", new String[]{});
+        result.put("result.unloaded", new String[] {});
         return result;
     }
 
@@ -125,7 +135,7 @@ public class TableController extends BasicController {
      * @return Table metadata array
      * @throws IOException
      */
-    @RequestMapping(value = "/{tableNames}/cardinality", method = {RequestMethod.PUT})
+    @RequestMapping(value = "/{tableNames}/cardinality", method = { RequestMethod.PUT })
     @ResponseBody
     public CardinalityRequest generateCardinality(@PathVariable String tableNames, @RequestBody CardinalityRequest request) {
         String submitter = SecurityContextHolder.getContext().getAuthentication().getName();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/UserController.java b/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
index d093ff1..94a4808 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/UserController.java
@@ -20,6 +20,7 @@ package org.apache.kylin.rest.controller;
 
 import java.util.List;
 
+import org.apache.kylin.rest.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -28,8 +29,6 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
-import org.apache.kylin.rest.service.UserService;
-
 /**
  * Handle user authentication request to protected kylin rest resources by
  * spring security.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java b/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
index 257adfc..897804c 100644
--- a/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
+++ b/server/src/main/java/org/apache/kylin/rest/filter/KylinApiFilter.java
@@ -17,14 +17,12 @@
 */
 package org.apache.kylin.rest.filter;
 
-import com.github.isrsal.logging.RequestWrapper;
-import com.github.isrsal.logging.ResponseWrapper;
-import com.sun.jersey.core.util.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContext;
-import org.springframework.web.filter.OncePerRequestFilter;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.concurrent.atomic.AtomicLong;
 
 import javax.servlet.FilterChain;
 import javax.servlet.ServletException;
@@ -33,12 +31,16 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.concurrent.atomic.AtomicLong;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import com.github.isrsal.logging.RequestWrapper;
+import com.github.isrsal.logging.ResponseWrapper;
+import com.sun.jersey.core.util.Base64;
 
 /**
  * Created by jiazhong on 2015/4/20.
@@ -54,38 +56,38 @@ public class KylinApiFilter extends OncePerRequestFilter {
     }
 
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
-        if(logger.isDebugEnabled()) {
+        if (logger.isDebugEnabled()) {
             long requestId = this.id.incrementAndGet();
-            request = new RequestWrapper(Long.valueOf(requestId), (HttpServletRequest)request);
-            response = new ResponseWrapper(Long.valueOf(requestId), (HttpServletResponse)response);
+            request = new RequestWrapper(Long.valueOf(requestId), (HttpServletRequest) request);
+            response = new ResponseWrapper(Long.valueOf(requestId), (HttpServletResponse) response);
         }
 
         try {
-            filterChain.doFilter((ServletRequest)request, (ServletResponse)response);
+            filterChain.doFilter((ServletRequest) request, (ServletResponse) response);
         } finally {
-            if(logger.isDebugEnabled()) {
-                this.logRequest((HttpServletRequest)request,(ResponseWrapper)response);
-//                this.logResponse((ResponseWrapper)response);
+            if (logger.isDebugEnabled()) {
+                this.logRequest((HttpServletRequest) request, (ResponseWrapper) response);
+                //                this.logResponse((ResponseWrapper)response);
             }
 
         }
 
     }
 
-    private void logRequest(HttpServletRequest request,ResponseWrapper response) {
+    private void logRequest(HttpServletRequest request, ResponseWrapper response) {
         StringBuilder msg = new StringBuilder();
         msg.append("REQUEST: ");
         HttpSession session = request.getSession(true);
-        SecurityContext context = (SecurityContext)session.getAttribute("SPRING_SECURITY_CONTEXT");
+        SecurityContext context = (SecurityContext) session.getAttribute("SPRING_SECURITY_CONTEXT");
 
-        String requester="";
-        if(context!=null){
-            Authentication authentication=  context.getAuthentication();
-            if(authentication!=null){
+        String requester = "";
+        if (context != null) {
+            Authentication authentication = context.getAuthentication();
+            if (authentication != null) {
                 requester = authentication.getName();
             }
 
-        }else {
+        } else {
             final String authorization = request.getHeader("Authorization");
             if (authorization != null && authorization.startsWith("Basic")) {
                 // Authorization: Basic base64credentials
@@ -96,24 +98,24 @@ public class KylinApiFilter extends OncePerRequestFilter {
                 requester = values[0];
             }
         }
-        msg.append("REQUESTER="+requester);
+        msg.append("REQUESTER=" + requester);
 
         SimpleDateFormat format = new SimpleDateFormat("z yyyy-MM-dd HH:mm:ss");
         msg.append(";REQ_TIME=" + format.format(new Date()));
         msg.append(";URI=").append(request.getRequestURI());
         msg.append(";METHOD=").append(request.getMethod());
         msg.append(";QUERY_STRING=").append(request.getQueryString());
-        if(request instanceof RequestWrapper && !this.isMultipart(request)) {
-            RequestWrapper requestWrapper = (RequestWrapper)request;
+        if (request instanceof RequestWrapper && !this.isMultipart(request)) {
+            RequestWrapper requestWrapper = (RequestWrapper) request;
 
             try {
-                String e = requestWrapper.getCharacterEncoding() != null?requestWrapper.getCharacterEncoding():"UTF-8";
+                String e = requestWrapper.getCharacterEncoding() != null ? requestWrapper.getCharacterEncoding() : "UTF-8";
                 msg.append(";PAYLOAD=").append(new String(requestWrapper.toByteArray(), e));
             } catch (UnsupportedEncodingException var6) {
                 logger.warn("Failed to parse request payload", var6);
             }
         }
-        msg.append(";RESP_STATUS="+response.getStatus()).append(";");
+        msg.append(";RESP_STATUS=" + response.getStatus()).append(";");
 
         logger.debug(msg.toString());
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java b/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
index 58ee2bc..8ce4c72 100644
--- a/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
+++ b/server/src/main/java/org/apache/kylin/rest/request/CubeRequest.java
@@ -86,7 +86,7 @@ public class CubeRequest {
     public CubeRequest() {
     }
 
-    public CubeRequest(long id, String cubeName, String cubeDescData,String modelDescData) {
+    public CubeRequest(long id, String cubeName, String cubeDescData, String modelDescData) {
         this.cubeName = cubeName;
         this.cubeDescData = cubeDescData;
         this.modelDescData = modelDescData;
@@ -99,9 +99,7 @@ public class CubeRequest {
     public void setCubeDescData(String cubeDescData) {
         this.cubeDescData = cubeDescData;
     }
-    
-    
-    
+
     public String getModelDescData() {
         return modelDescData;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java b/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
index 901badd..a1d17f9 100644
--- a/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
+++ b/server/src/main/java/org/apache/kylin/rest/request/SQLRequest.java
@@ -28,7 +28,7 @@ public class SQLRequest {
     private Integer limit = 0;
     private boolean acceptPartial = true;
 
-    private Map<String,String> backdoorToggles;
+    private Map<String, String> backdoorToggles;
 
     public SQLRequest() {
     }
@@ -41,7 +41,6 @@ public class SQLRequest {
         this.backdoorToggles = backdoorToggles;
     }
 
-
     public String getProject() {
         return project;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java b/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
index 302cb02..607d61a 100644
--- a/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
+++ b/server/src/main/java/org/apache/kylin/rest/response/HBaseResponse.java
@@ -87,16 +87,22 @@ public class HBaseResponse implements Serializable {
      * @param segmentStartTime
      *            the segmentStartTime to set
      */
-    public void setDateRangeStart(long dateRangeStart) { this.dateRangeStart = dateRangeStart; }
+    public void setDateRangeStart(long dateRangeStart) {
+        this.dateRangeStart = dateRangeStart;
+    }
 
     /**
      * @return the segmentEndTime
      */
-    public long getDateRangeEnd() { return dateRangeEnd; }
+    public long getDateRangeEnd() {
+        return dateRangeEnd;
+    }
 
     /**
      * @param segmentEndTime
      *            the segmentEndTime to set
      */
-    public void setDateRangeEnd(long dateRangeEnd) { this.dateRangeEnd = dateRangeEnd; }
+    public void setDateRangeEnd(long dateRangeEnd) {
+        this.dateRangeEnd = dateRangeEnd;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java b/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
index f65e42a..fc663dd 100644
--- a/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
+++ b/server/src/main/java/org/apache/kylin/rest/response/TableDescResponse.java
@@ -21,9 +21,10 @@ package org.apache.kylin.rest.response;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.kylin.metadata.model.TableDesc;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * A response class to wrap TableDesc
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java b/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
index 346b2fe..7983fc0 100644
--- a/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
+++ b/server/src/main/java/org/apache/kylin/rest/security/AuthoritiesPopulator.java
@@ -21,13 +21,12 @@ package org.apache.kylin.rest.security;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.kylin.rest.constant.Constant;
 import org.springframework.ldap.core.ContextSource;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
 
-import org.apache.kylin.rest.constant.Constant;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
index d034eca..b8ccbeb 100644
--- a/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
+++ b/server/src/main/java/org/apache/kylin/rest/security/PasswordPlaceholderConfigurer.java
@@ -24,13 +24,12 @@ import javax.crypto.Cipher;
 import javax.crypto.spec.SecretKeySpec;
 
 import org.apache.commons.codec.binary.Base64;
+import org.apache.kylin.common.KylinConfig;
 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.core.io.Resource;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
-import org.apache.kylin.common.KylinConfig;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AccessService.java b/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
index c04bfa7..cd93eba 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AccessService.java
@@ -22,7 +22,12 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.kylin.common.persistence.AclEntity;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.exception.ForbiddenException;
+import org.apache.kylin.rest.response.AccessEntryResponse;
+import org.apache.kylin.rest.security.AclEntityFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.acls.domain.BasePermission;
@@ -43,12 +48,6 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
-import org.apache.kylin.common.persistence.AclEntity;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.response.AccessEntryResponse;
-import org.apache.kylin.rest.security.AclEntityFactory;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AclService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AclService.java b/server/src/main/java/org/apache/kylin/rest/service/AclService.java
index 8413f47..7554011 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AclService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AclService.java
@@ -38,7 +38,10 @@ import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
 import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.rest.util.Serializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -68,9 +71,6 @@ import org.springframework.util.Assert;
 
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.HBaseConnection;
-import org.apache.kylin.rest.util.Serializer;
 
 /**
  * @author xduo



[04/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
index 42a752f..b104454 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
@@ -72,8 +72,8 @@ public class PartitionDesc {
         } else {
             throw new IllegalStateException("The 'partition_date_column' format is invalid: " + partitionDateColumn + ", it should be {db}.{table}.{column}.");
         }
-        
-       partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz);
+
+        partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz);
     }
 
     public boolean isPartitioned() {
@@ -178,7 +178,6 @@ public class PartitionDesc {
             }
             builder.append(concatField + " < '" + DateFormat.formatToDateStr(endExclusive) + "'");
 
-
             return builder.toString();
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java b/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
index 30c4d76..a0df206 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/model/TableDesc.java
@@ -18,15 +18,16 @@
 
 package org.apache.kylin.metadata.model;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Arrays;
+import java.util.Comparator;
+
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.common.util.StringSplitter;
 
-import java.util.Arrays;
-import java.util.Comparator;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * Table Metadata from Source. All name should be uppercase.
@@ -64,7 +65,6 @@ public class TableDesc extends RootPersistentEntity {
     public String getResourcePath() {
         return concatResourcePath(getIdentity());
     }
-    
 
     /**
      * @deprecated this is for compatible with data model v1;
@@ -73,14 +73,14 @@ public class TableDesc extends RootPersistentEntity {
     public String getResourcePathV1() {
         return concatResourcePath(name);
     }
-    
+
     public String getIdentity() {
         if (identity == null) {
             identity = String.format("%s.%s", this.getDatabase().toUpperCase(), this.getName()).toUpperCase();
         }
         return identity;
     }
-    
+
     public static String concatResourcePath(String tableIdentity) {
         return ResourceStore.TABLE_RESOURCE_ROOT + "/" + tableIdentity + ".json";
     }
@@ -88,7 +88,7 @@ public class TableDesc extends RootPersistentEntity {
     public static String concatExdResourcePath(String tableIdentity) {
         return ResourceStore.TABLE_EXD_RESOURCE_ROOT + "/" + tableIdentity + ".json";
     }
-    
+
     // ============================================================================
 
     public String getName() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
index 6da490d..b5a6b3e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectInstance.java
@@ -18,6 +18,18 @@
 
 package org.apache.kylin.metadata.project;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.annotation.Nullable;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.metadata.realization.RealizationType;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -25,16 +37,6 @@ import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.metadata.realization.RealizationType;
-
-import javax.annotation.Nullable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
 
 /**
  * Project is a concept in Kylin similar to schema in DBMS

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
index bc1b3a6..994bd3e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectL2Cache.java
@@ -24,7 +24,11 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.ColumnDesc;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationRegistry;
 import org.slf4j.Logger;
@@ -90,7 +94,6 @@ class ProjectL2Cache {
         if (tableCache == null)
             return false;
 
-
         for (ColumnDesc colDesc : tableCache.exposedColumns) {
             if (colDesc.getName().equals(col))
                 return true;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
index ce93241..a0b3162 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectManager.java
@@ -25,23 +25,23 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.JsonSerializer;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.common.restclient.Broadcaster;
+import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationRegistry;
+import org.apache.kylin.metadata.realization.RealizationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.JsonSerializer;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.Serializer;
-import org.apache.kylin.common.restclient.Broadcaster;
-import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.realization.RealizationType;
 
 public class ProjectManager {
     private static final Logger logger = LoggerFactory.getLogger(ProjectManager.class);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
index 036fcc6..a453161 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/ProjectTable.java
@@ -18,9 +18,10 @@
 
 package org.apache.kylin.metadata.project;
 
+import org.apache.kylin.metadata.realization.IRealization;
+
 import com.google.common.collect.HashMultiset;
 import com.google.common.collect.Multiset;
-import org.apache.kylin.metadata.realization.IRealization;
 
 /**
  * @author xduo

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java b/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
index 73c899b..13195ec 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/project/RealizationEntry.java
@@ -18,9 +18,10 @@
 
 package org.apache.kylin.metadata.project;
 
+import org.apache.kylin.metadata.realization.RealizationType;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.metadata.realization.RealizationType;
 
 /**
  * Created by qianzhou on 12/5/14.
@@ -52,13 +53,17 @@ public class RealizationEntry {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
 
         RealizationEntry entry = (RealizationEntry) o;
 
-        if (realization != null ? !realization.equalsIgnoreCase(entry.realization) : entry.realization != null) return false;
-        if (type != entry.type) return false;
+        if (realization != null ? !realization.equalsIgnoreCase(entry.realization) : entry.realization != null)
+            return false;
+        if (type != entry.type)
+            return false;
 
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
index 1f3837d..a446db0 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealization.java
@@ -60,9 +60,9 @@ public interface IRealization {
     public String getName();
 
     public String getCanonicalName();
-    
+
     public String getProjectName();
-    
+
     public void setProjectName(String prjName);
 
     public long getDateRangeStart();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
index 802dfb3..8a9cb7a 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationProvider.java
@@ -24,5 +24,4 @@ public interface IRealizationProvider {
 
     IRealization getRealization(String name);
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
index 2c7ba42..b4e0e40 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/RealizationRegistry.java
@@ -18,14 +18,6 @@
 
 package org.apache.kylin.metadata.realization;
 
-import com.google.common.collect.*;
-import org.apache.kylin.common.KylinConfig;
-
-import org.reflections.Reflections;
-import org.reflections.scanners.SubTypesScanner;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
@@ -33,6 +25,15 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.kylin.common.KylinConfig;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 12/18/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java b/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
index 83052c0..066efe4 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigestUtil.java
@@ -17,14 +17,19 @@
 */
 package org.apache.kylin.metadata.realization;
 
-import com.google.common.base.Function;
-import com.google.common.collect.BoundType;
-import com.google.common.collect.Range;
 import org.apache.kylin.common.util.DateFormat;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.LogicalTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.DataType;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.google.common.base.Function;
+import com.google.common.collect.BoundType;
+import com.google.common.collect.Range;
+
 /**
  */
 public class SQLDigestUtil {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java b/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
index 5297188..2fc39ed 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tool/HiveSourceTableLoader.java
@@ -18,9 +18,13 @@
 
 package org.apache.kylin.metadata.tool;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.kylin.common.KylinConfig;
@@ -33,8 +37,9 @@ import org.apache.kylin.metadata.model.TableDesc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.*;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 /**
  * Management class to sync hive table metadata with command See main method for
@@ -147,9 +152,7 @@ public class HiveSourceTableLoader {
             loadedTables.add(tableDesc.getIdentity());
         }
 
-
         return loadedTables;
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java b/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
index badc720..0fdb23e 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tuple/CompoundTupleIterator.java
@@ -17,13 +17,14 @@
 */
 package org.apache.kylin.metadata.tuple;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterators;
+import java.util.Iterator;
+import java.util.List;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Iterator;
-import java.util.List;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Iterators;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
index 5235387..52b3d21 100644
--- a/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
+++ b/metadata/src/main/java/org/apache/kylin/metadata/tuple/ITupleIterator.java
@@ -23,7 +23,7 @@ import java.util.Iterator;
 /**
  * @author xjiang
  */
-public interface ITupleIterator extends Iterator<ITuple>  {
+public interface ITupleIterator extends Iterator<ITuple> {
     public static final ITupleIterator EMPTY_TUPLE_ITERATOR = new ITupleIterator() {
         @Override
         public boolean hasNext() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java b/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
index e71294a..f0aaae5 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/MetadataManagerTest.java
@@ -20,14 +20,13 @@ package org.apache.kylin.metadata;
 
 import java.util.List;
 
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 2:38 PM To
  * change this template use File | Settings | File Templates.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java b/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
index 78895c8..6a923fd 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/model/TableDescTest.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.metadata.model;
 
-
 /**
  * Created by qianzhou on 12/3/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java b/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
index cd773ba..2da25b6 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tool/HiveSourceTableLoaderTest.java
@@ -18,18 +18,17 @@
 
 package org.apache.kylin.metadata.tool;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
 import java.util.Set;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.HBaseMetadataTestCase;
-
 public class HiveSourceTableLoaderTest extends HBaseMetadataTestCase {
 
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java b/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
index 2c07530..d356fc4 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tool/SandboxMetastoreCLI.java
@@ -16,9 +16,10 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.metadata.tool;
 
+import java.io.File;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.kylin.common.KylinConfig;
@@ -26,8 +27,6 @@ import org.apache.kylin.common.persistence.ResourceTool;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 
-import java.io.File;
-
 /**
  * This is a helper class for developer to directly manipulate the metadata store in sandbox
  * This is designed to run in IDE(i.e. not on sandbox hadoop CLI)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
----------------------------------------------------------------------
diff --git a/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java b/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
index b3083dc..2940486 100644
--- a/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
+++ b/metadata/src/test/java/org/apache/kylin/metadata/tuple/EmptyTupleIteratorTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.metadata.tuple;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.core.resources.prefs b/monitor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..04cfa2c
--- /dev/null
+++ b/monitor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.jdt.core.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.jdt.core.prefs b/monitor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a903301
--- /dev/null
+++ b/monitor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,379 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=999
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/.settings/org.eclipse.jdt.ui.prefs
----------------------------------------------------------------------
diff --git a/monitor/.settings/org.eclipse.jdt.ui.prefs b/monitor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..dece0e6
--- /dev/null
+++ b/monitor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+formatter_profile=_Space Indent & Long Lines
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java b/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
index d634044..1125d07 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/ApiRequestParser.java
@@ -18,13 +18,11 @@
 
 package org.apache.kylin.monitor;
 
-import au.com.bytecode.opencsv.CSVWriter;
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import org.apache.log4j.Logger;
-
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -38,6 +36,13 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.io.filefilter.RegexFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.log4j.Logger;
+
+import au.com.bytecode.opencsv.CSVWriter;
+
 /**
  * @author jiazhong
  */
@@ -50,8 +55,7 @@ public class ApiRequestParser {
     final static String REQUEST_LOG_PARSE_RESULT_FILENAME = "kylin_request_log.csv";
     static String DEPLOY_ENV;
 
-
-    final static String[] KYLIN_REQUEST_CSV_HEADER = {"REQUESTER", "REQ_TIME","REQ_DATE", "URI", "METHOD", "QUERY_STRING", "PAYLOAD", "RESP_STATUS", "TARGET", "ACTION","DEPLOY_ENV"};
+    final static String[] KYLIN_REQUEST_CSV_HEADER = { "REQUESTER", "REQ_TIME", "REQ_DATE", "URI", "METHOD", "QUERY_STRING", "PAYLOAD", "RESP_STATUS", "TARGET", "ACTION", "DEPLOY_ENV" };
 
     private ConfigUtils monitorConfig;
 
@@ -106,11 +110,11 @@ public class ApiRequestParser {
 
         logger.info("Start parsing kylin api request file " + filePath + " !");
 
-//        writer config init
+        //        writer config init
         FileSystem fs = this.getHdfsFileSystem();
         org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
         OutputStreamWriter writer = new OutputStreamWriter(fs.append(resultStorePath));
-        CSVWriter cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+        CSVWriter cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
 
         Pattern p_available = Pattern.compile("/kylin/api/(cubes|user)+.*");
         Pattern p_request = Pattern.compile("^.*\\[.*KylinApiFilter.logRequest.*\\].*REQUEST:.*REQUESTER=(.*);REQ_TIME=(\\w+ (\\d{4}-\\d{2}-\\d{2}).*);URI=(.*);METHOD=(.*);QUERY_STRING=(.*);PAYLOAD=(.*);RESP_STATUS=(.*);$");
@@ -148,16 +152,16 @@ public class ApiRequestParser {
                             //add action
                             if (m_uri.group(1).equals("cubes")) {
                                 switch (m_request.group(5)) {
-                                    case "DELETE":
-                                        groups.add("drop");
-                                        break;
-                                    case "POST":
-                                        groups.add("save");
-                                        break;
-                                    default:
-                                        //add parse action
-                                        groups.add(m_uri.group(3));
-                                        break;
+                                case "DELETE":
+                                    groups.add("drop");
+                                    break;
+                                case "POST":
+                                    groups.add("save");
+                                    break;
+                                default:
+                                    //add parse action
+                                    groups.add(m_uri.group(3));
+                                    break;
                                 }
                             }
 
@@ -169,7 +173,6 @@ public class ApiRequestParser {
                     }
                 }
 
-
             }
         } catch (IOException ex) {
             logger.info("Failed to write to hdfs:", ex);
@@ -191,7 +194,7 @@ public class ApiRequestParser {
             fs = this.getHdfsFileSystem();
             org.apache.hadoop.fs.Path resultStorePath = new org.apache.hadoop.fs.Path(dPath);
             writer = new OutputStreamWriter(fs.append(resultStorePath));
-            cwriter = new CSVWriter(writer,'|',CSVWriter.NO_QUOTE_CHARACTER);
+            cwriter = new CSVWriter(writer, '|', CSVWriter.NO_QUOTE_CHARACTER);
             cwriter.writeNext(record);
 
         } catch (IOException e) {
@@ -206,7 +209,7 @@ public class ApiRequestParser {
     public List<File> getRequestLogFiles() {
         List<File> logFiles = new ArrayList<File>();
 
-//        String request_log_file_pattern = monitorConfig.getRequestLogFilePattern();
+        //        String request_log_file_pattern = monitorConfig.getRequestLogFilePattern();
 
         List<String> request_log_dir_list = monitorConfig.getLogBaseDir();
         FileFilter filter = new RegexFileFilter(REQUEST_LOG_FILE_PATTERN);
@@ -227,7 +230,7 @@ public class ApiRequestParser {
 
     public FileSystem getHdfsFileSystem() throws IOException {
         Configuration conf = new Configuration();
-//        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+        //        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
         FileSystem fs = null;
         try {
             fs = FileSystem.get(conf);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/Client.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/Client.java b/monitor/src/main/java/org/apache/kylin/monitor/Client.java
index 41416b1..e0b5a83 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/Client.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/Client.java
@@ -16,39 +16,34 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-
 import java.io.File;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
 
 /**
  * Created by jiazhong on 2015/5/7.
  */
 public class Client {
 
-
     static {
         //set monitor log path
         String KYLIN_HOME = ConfigUtils.getKylinHome();
         String CATALINA_HOME = null;
-        if(!StringUtils.isEmpty(KYLIN_HOME)){
-            CATALINA_HOME = ConfigUtils.getKylinHome() + File.separator + "tomcat"+File.separator;
-            System.out.println("will use "+CATALINA_HOME+"/logs to put monitor log");
-        }else{
+        if (!StringUtils.isEmpty(KYLIN_HOME)) {
+            CATALINA_HOME = ConfigUtils.getKylinHome() + File.separator + "tomcat" + File.separator;
+            System.out.println("will use " + CATALINA_HOME + "/logs to put monitor log");
+        } else {
             CATALINA_HOME = "";
             System.out.println("will use default path to put monitor log");
         }
         //log4j config will use this
-        System.setProperty("CATALINA_HOME",CATALINA_HOME);
+        System.setProperty("CATALINA_HOME", CATALINA_HOME);
     }
     final static Logger logger = Logger.getLogger(Client.class);
 
-
-
     public static void main(String[] args) {
         logger.info("monitor client start parsing...");
         QueryParser queryParser = new QueryParser();
@@ -58,7 +53,7 @@ public class Client {
             queryParser.start();
             jdbcClient.start();
         } catch (Exception e) {
-            logger.info("Exception",e);
+            logger.info("Exception", e);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java b/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
index d33a02d..3c92b36 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/ConfigUtils.java
@@ -16,12 +16,13 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.Method;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -29,6 +30,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+
 /**
  * Created by jiazhong on 2015/4/28.
  */
@@ -66,10 +70,8 @@ public class ConfigUtils {
 
     public static final String DEPLOY_ENV = "deploy.env";
 
-
     public static final String HIVE_JDBC_CON_URL = "kylin.hive.jdbc.connection.url";
 
-
     public void loadMonitorParam() throws IOException {
         Properties props = new Properties();
         InputStream resourceStream = this.getKylinPropertiesAsInputSteam();
@@ -77,7 +79,6 @@ public class ConfigUtils {
         this.monitorConfig = props;
     }
 
-
     public static InputStream getKylinPropertiesAsInputSteam() {
         File propFile = getKylinMonitorProperties();
         if (propFile == null || !propFile.exists()) {
@@ -93,7 +94,6 @@ public class ConfigUtils {
 
     }
 
-
     private static File getKylinMonitorProperties() {
         String kylinConfHome = System.getProperty(KYLIN_CONF);
         if (!StringUtils.isEmpty(kylinConfHome)) {
@@ -108,7 +108,7 @@ public class ConfigUtils {
             throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME, please set one of them");
 
         String path = kylinHome + File.separator + "conf";
-        logger.info("load kylin.properties file from " + kylinHome+". (from KYLIN_HOME System.env)");
+        logger.info("load kylin.properties file from " + kylinHome + ". (from KYLIN_HOME System.env)");
         return getKylinPropertiesFile(path);
 
     }
@@ -119,7 +119,7 @@ public class ConfigUtils {
             logger.warn("KYLIN_HOME was not set");
             return kylinHome;
         }
-        logger.info("KYLIN_HOME is :"+kylinHome);
+        logger.info("KYLIN_HOME is :" + kylinHome);
         return kylinHome;
     }
 
@@ -130,7 +130,6 @@ public class ConfigUtils {
         return new File(path, KYLIN_MONITOR_CONF_PROP_FILE);
     }
 
-
     /*
      * get where to path log
      */
@@ -146,8 +145,8 @@ public class ConfigUtils {
         String kylinExtLogBaseDir = getExtLogBaseDir();
         if (!StringUtils.isEmpty(kylinExtLogBaseDir)) {
             String[] extPaths = kylinExtLogBaseDir.split(",");
-            for(String path:extPaths){
-                if(!StringUtils.isEmpty(path)){
+            for (String path : extPaths) {
+                if (!StringUtils.isEmpty(path)) {
                     logger.info("Use ext log dir=" + path);
                     logDirList.add(path.trim());
                 }
@@ -156,23 +155,21 @@ public class ConfigUtils {
 
         String kylinHome = getKylinHome();
         if (!StringUtils.isEmpty(kylinHome))
-            if(logDirList.isEmpty()){
-               throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME or KYLIN_EXT_LOG_BASE_DIR, please set one of them");
+            if (logDirList.isEmpty()) {
+                throw new RuntimeException("Didn't find KYLIN_CONF or KYLIN_HOME or KYLIN_EXT_LOG_BASE_DIR, please set one of them");
+            } else {
+                String path = kylinHome + File.separator + "tomcat" + File.separator + "logs";
+                logDirList.add(path);
             }
-        else{
-            String path = kylinHome + File.separator + "tomcat" + File.separator + "logs";
-            logDirList.add(path);
-        }
 
         return logDirList;
     }
 
-
-    public  String getMetadataUrl(){
+    public String getMetadataUrl() {
         return this.monitorConfig.getProperty(KYLIN_METADATA_URL);
     }
 
-    public  String getMetadataUrlPrefix() {
+    public String getMetadataUrlPrefix() {
         String hbaseMetadataUrl = getMetadataUrl();
         String defaultPrefix = "kylin_metadata";
         int cut = hbaseMetadataUrl.indexOf('@');
@@ -185,27 +182,28 @@ public class ConfigUtils {
     }
 
     public String getKylinHdfsWorkingDir() {
-        String root =  this.monitorConfig.getProperty(KYLIN_HDFS_WORKING_DIR);
+        String root = this.monitorConfig.getProperty(KYLIN_HDFS_WORKING_DIR);
         if (!root.endsWith("/")) {
             root += "/";
         }
         return root + getMetadataUrlPrefix();
     }
+
     public String getQueryLogParseResultDir() {
-        return this.getKylinHdfsWorkingDir()+"/performance/query/";
+        return this.getKylinHdfsWorkingDir() + "/performance/query/";
     }
 
     public String getQueryLogResultTable() {
         String query_log_parse_result_table = this.monitorConfig.getProperty(QUERY_LOG_PARSE_RESULT_TABLE);
-        if(!StringUtils.isEmpty(query_log_parse_result_table)){
+        if (!StringUtils.isEmpty(query_log_parse_result_table)) {
             return query_log_parse_result_table;
-        }else{
+        } else {
             return DEFAULT_QUERY_LOG_PARSE_RESULT_TABLE;
         }
     }
 
     public String getRequestLogParseResultDir() {
-        return this.getKylinHdfsWorkingDir()+"/performance/request/";
+        return this.getKylinHdfsWorkingDir() + "/performance/request/";
     }
 
     public String getHiveJdbcConUrl() {
@@ -213,14 +211,13 @@ public class ConfigUtils {
     }
 
     public String getLogParseResultMetaDir() {
-        return this.getKylinHdfsWorkingDir()+"/performance/metadata/";
+        return this.getKylinHdfsWorkingDir() + "/performance/metadata/";
     }
 
-    public String getDeployEnv(){
+    public String getDeployEnv() {
         return this.monitorConfig.getProperty(DEPLOY_ENV);
     }
 
-
     public String getHiveJdbcConUserName() {
         return this.monitorConfig.getProperty(HIVE_JDBC_CON_USERNAME);
     }
@@ -229,7 +226,6 @@ public class ConfigUtils {
         return this.monitorConfig.getProperty(HIVE_JDBC_CON_PASSWD);
     }
 
-
     public static void addClasspath(String path) throws Exception {
         File file = new File(path);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java b/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
index d939537..f0c3b7e 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/DebugClient.java
@@ -16,26 +16,24 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import org.apache.log4j.Logger;
 import java.io.File;
 
+import org.apache.log4j.Logger;
 
 /**
  * Created by jiazhong on 2015/5/7
  */
 public class DebugClient {
 
-    static{
+    static {
         //set catalina.home temp
         System.setProperty(ConfigUtils.CATALINA_HOME, "../server/");
     }
 
     final static Logger logger = Logger.getLogger(DebugClient.class);
 
-
     public static void main(String[] args) throws Exception {
 
         // test_case_data/sandbox/ contains HDP 2.2 site xmls which is dev sandbox
@@ -47,7 +45,6 @@ public class DebugClient {
         //get kylin.properties ,if not exist will get from $KYLIN_HOME/conf/
         System.setProperty(ConfigUtils.KYLIN_CONF, "../examples/test_case_data/sandbox");
 
-
         QueryParser queryParser = new QueryParser();
         HiveJdbcClient jdbcClient = new HiveJdbcClient();
 
@@ -56,7 +53,7 @@ public class DebugClient {
             queryParser.start();
             jdbcClient.start();
         } catch (Exception e) {
-            logger.info("Exception ",e);
+            logger.info("Exception ", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java b/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
index c42bab7..2560203 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/FileUtils.java
@@ -16,16 +16,16 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import au.com.bytecode.opencsv.CSVWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.log4j.Logger;
 
-import java.io.IOException;
-import java.io.OutputStreamWriter;
+import au.com.bytecode.opencsv.CSVWriter;
 
 /**
  * Created by jiazhong on 2015/6/18.
@@ -35,7 +35,7 @@ public class FileUtils {
     final static Logger logger = Logger.getLogger(FileUtils.class);
 
     public static boolean pathCheck(String filePath) throws IOException {
-        logger.info("checking file:"+filePath);
+        logger.info("checking file:" + filePath);
         FileSystem fs = null;
         try {
             Configuration conf = new Configuration();
@@ -53,7 +53,6 @@ public class FileUtils {
         return true;
     }
 
-
     /*
     * write parse result to hdfs
     */
@@ -102,7 +101,7 @@ public class FileUtils {
      */
     public static FileSystem getHdfsFileSystem() throws IOException {
         Configuration conf = new Configuration();
-//        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
+        //        conf.set("dfs.client.block.write.replace-datanode-on-failure.policy", "NEVER");
         FileSystem fs = null;
         try {
             fs = FileSystem.newInstance(conf);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
----------------------------------------------------------------------
diff --git a/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java b/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
index ec919c4..a8c7fb9 100644
--- a/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
+++ b/monitor/src/main/java/org/apache/kylin/monitor/HiveJdbcClient.java
@@ -16,17 +16,20 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.monitor;
 
-import org.apache.log4j.Logger;
-import org.datanucleus.util.StringUtils;
-
 import java.io.IOException;
-import java.sql.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 
+import org.apache.log4j.Logger;
+import org.datanucleus.util.StringUtils;
+
 /**
  * Created by jiazhong on 2015/6/17.
  */
@@ -40,7 +43,6 @@ public class HiveJdbcClient {
 
     static String SQL_LAST_30_DAYILY_QUERY_COUNT = "SELECT REQUEST_DATE, COUNT(*) FROM  [QUERY_LOG_TABLE_NAME]  WHERE  REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE]  GROUP BY REQUEST_DATE";
 
-
     //last 30 days
     static String SQL_90_PERCENTTILE_LAST_30_DAY = "SELECT PERCENTILE_APPROX(LOG.QUERY_LATENCY,0.9) FROM (SELECT QUERY_LATENCY FROM [QUERY_LOG_TABLE_NAME]  WHERE IS_SUCCESS='true' AND REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE]) LOG";
 
@@ -50,13 +52,10 @@ public class HiveJdbcClient {
     //0.9,0.95 [project] percentile in last 30 days
     static String SQL_DAY_PERCENTILE_BY_PROJECT = "SELECT QUERY_PROJECT, PERCENTILE_APPROX(QUERY_LATENCY,ARRAY(0.9,0.95)) FROM  [QUERY_LOG_TABLE_NAME]  WHERE IS_SUCCESS='true' AND  REQUEST_DATE>=[START_DATE] AND REQUEST_DATE<[END_DATE]  GROUP BY QUERY_PROJECT";
 
-
-
     static String QUERY_LOG_TABLE_NAME = "KYLIN_QUERY_LOG";
 
     final static Logger logger = Logger.getLogger(HiveJdbcClient.class);
 
-
     private static String driverName = "org.apache.hive.jdbc.HiveDriver";
     private static ConfigUtils monitorConfig = ConfigUtils.getInstance();
 
@@ -74,7 +73,6 @@ public class HiveJdbcClient {
         }
     }
 
-
     /*
      * will create external hive table for [query] log parse result csv file on hdfs
      * and will generate metric data in csv file on hdfs for web dashboard
@@ -102,7 +100,7 @@ public class HiveJdbcClient {
         FileUtils.pathCheck(total_query_user_path);
         FileUtils.clearHdfsFile(total_query_user_path);
         while (res.next()) {
-            FileUtils.appendResultToHdfs(total_query_user_path, new String[]{res.getString(1)});
+            FileUtils.appendResultToHdfs(total_query_user_path, new String[] { res.getString(1) });
             logger.info("Total User:" + res.getString(1));
         }
 
@@ -114,11 +112,10 @@ public class HiveJdbcClient {
         FileUtils.pathCheck(avg_day_query_path);
         FileUtils.clearHdfsFile(avg_day_query_path);
         while (res.next()) {
-            FileUtils.appendResultToHdfs(avg_day_query_path, new String[]{res.getString(1)});
+            FileUtils.appendResultToHdfs(avg_day_query_path, new String[] { res.getString(1) });
             logger.info("avg day query:" + res.getString(1));
         }
 
-
         SQL_LAST_30_DAYILY_QUERY_COUNT = generateLast30DayilyQueryCount();
         logger.info("Running Sql (Daily Query Count):" + SQL_LAST_30_DAYILY_QUERY_COUNT);
         res = stmt.executeQuery(SQL_LAST_30_DAYILY_QUERY_COUNT);
@@ -127,11 +124,10 @@ public class HiveJdbcClient {
         FileUtils.pathCheck(last_30_daily_query_count_path);
         FileUtils.clearHdfsFile(last_30_daily_query_count_path);
         while (res.next()) {
-            FileUtils.appendResultToHdfs(last_30_daily_query_count_path, new String[]{res.getString(1),res.getString(2)});
-            logger.info("last 30 daily query count:" + res.getString(1)+","+res.getString(2));
+            FileUtils.appendResultToHdfs(last_30_daily_query_count_path, new String[] { res.getString(1), res.getString(2) });
+            logger.info("last 30 daily query count:" + res.getString(1) + "," + res.getString(2));
         }
 
-
         //90 percentile latency for all query in last 30 days
         SQL_90_PERCENTTILE_LAST_30_DAY = generateNintyPercentileSql();
         logger.info("Running Sql (last 30 days ,90 percentile query latency):" + SQL_90_PERCENTTILE_LAST_30_DAY);
@@ -141,7 +137,7 @@ public class HiveJdbcClient {
         FileUtils.pathCheck(last_30_day_90_percentile_latency);
         FileUtils.clearHdfsFile(last_30_day_90_percentile_latency);
         while (res.next()) {
-            FileUtils.appendResultToHdfs(last_30_day_90_percentile_latency, new String[]{res.getString(1)});
+            FileUtils.appendResultToHdfs(last_30_day_90_percentile_latency, new String[] { res.getString(1) });
             logger.info("last 30 day 90 percentile latency:" + res.getString(1));
         }
 
@@ -154,7 +150,7 @@ public class HiveJdbcClient {
         FileUtils.pathCheck(last_30_day_project_percentile_latency_path);
         FileUtils.clearHdfsFile(last_30_day_project_percentile_latency_path);
         while (res.next() && res.getMetaData().getColumnCount() == 2) {
-            FileUtils.appendResultToHdfs(last_30_day_project_percentile_latency_path, new String[]{res.getString(1), res.getString(2)});
+            FileUtils.appendResultToHdfs(last_30_day_project_percentile_latency_path, new String[] { res.getString(1), res.getString(2) });
             logger.info(res.getString(1) + "," + res.getString(2));
         }
 
@@ -167,8 +163,8 @@ public class HiveJdbcClient {
 
         res = stmt.executeQuery(SQL_EACH_DAY_PERCENTILE);
         while (res.next() && res.getMetaData().getColumnCount() == 3) {
-            FileUtils.appendResultToHdfs(each_day_percentile_file, new String[]{res.getString(1), res.getString(2),res.getString(3)});
-            logger.info(res.getString(1) + "," + res.getString(2)+ "," + res.getString(3));
+            FileUtils.appendResultToHdfs(each_day_percentile_file, new String[] { res.getString(1), res.getString(2), res.getString(3) });
+            logger.info(res.getString(1) + "," + res.getString(2) + "," + res.getString(3));
         }
 
     }
@@ -192,8 +188,6 @@ public class HiveJdbcClient {
         return monthStasticSqlConvert(SQL_LAST_30_DAYILY_QUERY_COUNT);
     }
 
-
-
     //last 30 days
     public String generateNintyPercentileSql() {
         SQL_90_PERCENTTILE_LAST_30_DAY = SQL_90_PERCENTTILE_LAST_30_DAY.replace("[QUERY_LOG_TABLE_NAME]", QUERY_LOG_TABLE_NAME);
@@ -222,5 +216,4 @@ public class HiveJdbcClient {
         return sql.replace("[START_DATE]", "'" + startDate + "'").replace("[END_DATE]", "'" + endDate + "'");
     }
 
-
 }
\ No newline at end of file


[09/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
index 9353cfc..cdc1e51 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDescUpgrader.java
@@ -18,34 +18,35 @@
 
 package org.apache.kylin.cube;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.UUID;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
+import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.cube.model.HierarchyDesc;
 import org.apache.kylin.cube.model.RowKeyColDesc;
 import org.apache.kylin.cube.model.RowKeyDesc;
-import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.cube.model.v1.CubeDesc;
 import org.apache.kylin.cube.model.v1.CubePartitionDesc;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.DataModelDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.LookupDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.kylin.metadata.model.PartitionDesc;
+import org.apache.kylin.metadata.model.TableDesc;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.UUID;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 public class CubeDescUpgrader {
 
@@ -84,7 +85,7 @@ public class CubeDescUpgrader {
         for (LookupDesc lookupDesc : modelDesc.getLookups()) {
             if (lookupDesc.getJoin() != null) {
                 JoinDesc join = lookupDesc.getJoin();
-                for (int i=0; i< join.getForeignKey().length; i++) {
+                for (int i = 0; i < join.getForeignKey().length; i++) {
                     pkToFK.put(join.getPrimaryKey()[i], join.getForeignKey()[i]);
                 }
             }
@@ -101,14 +102,13 @@ public class CubeDescUpgrader {
         }
 
         for (String[] aggregationGroup : rowKey.getAggregationGroups()) {
-            for (int i=0; i< aggregationGroup.length; i++) {
+            for (int i = 0; i < aggregationGroup.length; i++) {
                 if (pkToFK.containsKey(aggregationGroup[i])) {
                     aggregationGroup[i] = pkToFK.get(aggregationGroup[i]);
                 }
             }
         }
 
-
     }
 
     private void copyUnChangedProperties(CubeDesc oldModel, org.apache.kylin.cube.model.CubeDesc newModel) {
@@ -155,7 +155,7 @@ public class CubeDescUpgrader {
                 //column on fact table
                 newDim = newDimensionDesc(dim, dimId++, dim.getName());
                 newDimensions.add(newDim);
-                newDim.setColumn(new String[]{dim.getColumn()});
+                newDim.setColumn(new String[] { dim.getColumn() });
                 needNameSuffix = true;
             } else if (ArrayUtils.isEmpty(dim.getDerived()) && ArrayUtils.isEmpty(dim.getHierarchy())) {
                 // user defines a lookup table, but didn't use any column other than the pk, in this case, convert to use fact table's fk
@@ -227,7 +227,6 @@ public class CubeDescUpgrader {
         dm.setFilterCondition(oldModel.getFilterCondition());
         updatePartitionDesc(oldModel, dm);
 
-
         if (oldModel.getCapacity() == CubeDesc.CubeCapacity.SMALL) {
             dm.setCapacity(DataModelDesc.RealizationCapacity.SMALL);
         } else if (oldModel.getCapacity() == CubeDesc.CubeCapacity.MEDIUM) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java b/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
index dcdcfd5..f088767 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDimensionDeriver.java
@@ -18,11 +18,11 @@
 
 package org.apache.kylin.cube;
 
-import org.apache.kylin.metadata.model.TblColRef;
-
 import java.util.Collection;
 import java.util.HashSet;
 
+import org.apache.kylin.metadata.model.TblColRef;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 1/8/15.
  *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java b/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
index 7accada..ad0bb28 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
@@ -88,9 +88,9 @@ public class CubeInstance extends RootPersistentEntity implements IRealization {
 
     @JsonProperty("retention_range")
     private long retentionRange = 0;
-    
+
     private String projectName;
-    
+
     public List<CubeSegment> getBuildingSegments() {
         List<CubeSegment> buildingSegments = new ArrayList<CubeSegment>();
         if (null != segments) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index 6994e02..df0d0d5 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -18,18 +18,25 @@
 
 package org.apache.kylin.cube;
 
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
 import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
@@ -46,14 +53,17 @@ import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.*;
+import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.IRealizationConstants;
+import org.apache.kylin.metadata.realization.IRealizationProvider;
+import org.apache.kylin.metadata.realization.RealizationStatusEnum;
+import org.apache.kylin.metadata.realization.RealizationType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Multimap;
 
 /**
  * @author yangli9
@@ -286,7 +296,6 @@ public class CubeManager implements IRealizationProvider {
         return newSegment;
     }
 
-
     public CubeSegment refreshSegment(CubeInstance cube, long startDate, long endDate) throws IOException {
         checkNoBuildingSegment(cube);
 
@@ -550,7 +559,7 @@ public class CubeManager implements IRealizationProvider {
         CubeSegment firstSeg = tobe.get(0);
         firstSeg.validate();
 
-        for (int i = 0, j = 1; j < tobe.size(); ) {
+        for (int i = 0, j = 1; j < tobe.size();) {
             CubeSegment is = tobe.get(i);
             CubeSegment js = tobe.get(j);
             js.validate();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
index 00821a4..a3edcd9 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeSegment.java
@@ -24,17 +24,18 @@ import java.util.Map;
 import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonBackReference;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Objects;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.dict.ISegment;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 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.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Objects;
+
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class CubeSegment implements Comparable<CubeSegment>, ISegment {
 
@@ -176,7 +177,6 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
         this.lastBuildJobID = lastBuildJobID;
     }
 
-
     public long getCreateTimeUTC() {
         return createTimeUTC;
     }
@@ -327,7 +327,6 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
         return Objects.toStringHelper(this).add("uuid", uuid).add("create_time_utc:", createTimeUTC).add("name", name).add("last_build_job_id", lastBuildJobID).add("status", status).toString();
     }
 
-
     public void setDictionaries(ConcurrentHashMap<String, String> dictionaries) {
         this.dictionaries = dictionaries;
     }
@@ -335,5 +334,5 @@ public class CubeSegment implements Comparable<CubeSegment>, ISegment {
     public void setSnapshots(ConcurrentHashMap<String, String> snapshots) {
         this.snapshots = snapshots;
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java b/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
index feb0f1a..c8b58bf 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cli/DictionaryGeneratorCLI.java
@@ -20,16 +20,15 @@ package org.apache.kylin.cube.cli;
 
 import java.io.IOException;
 
-import org.apache.kylin.cube.model.DimensionDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DictionaryGeneratorCLI {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java b/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
index 48db0d8..7e379dd 100644
--- a/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
+++ b/cube/src/main/java/org/apache/kylin/cube/common/RowKeySplitter.java
@@ -18,9 +18,8 @@
 
 package org.apache.kylin.cube.common;
 
-import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.common.util.Bytes;
-
+import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.RowConstants;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java b/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
index 488091a..8a2fb79 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
@@ -28,7 +28,6 @@ import java.util.Queue;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.RowKeyColDesc;
 import org.apache.kylin.cube.model.RowKeyDesc;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java b/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
index 6f64116..ad0ca32 100644
--- a/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
+++ b/cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java
@@ -22,6 +22,7 @@ package org.apache.kylin.cube.cuboid;
  * @author George Song (ysong1)
  * 
  */
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java b/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
index 9a654b7..4057c82 100644
--- a/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
+++ b/cube/src/main/java/org/apache/kylin/cube/estimation/CubeSizeEstimationCLI.java
@@ -33,9 +33,9 @@ import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.cube.model.HierarchyDesc;
 import org.apache.kylin.cube.model.RowKeyColDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.cube.model.RowKeyDesc;
 import org.apache.kylin.metadata.model.DataType;
+import org.apache.kylin.metadata.model.MeasureDesc;
 
 /**
  * Created by honma on 9/1/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
index ddfbab3..f566f5c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/AbstractRowKeyEncoder.java
@@ -22,13 +22,12 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
index ccbc686..2bf101e 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyColumnIO.java
@@ -20,14 +20,13 @@ package org.apache.kylin.cube.kv;
 
 import java.util.Arrays;
 
-import org.apache.kylin.dict.ISegment;
 import org.apache.kylin.common.util.Bytes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.dict.Dictionary;
+import org.apache.kylin.dict.ISegment;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Read/Write column values from/into bytes

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
index b3bf7f2..f34e675 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyDecoder.java
@@ -23,9 +23,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.metadata.model.TblColRef;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
index 5b6cd91..7f8bbd3 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowKeyEncoder.java
@@ -24,7 +24,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.metadata.model.TblColRef;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java b/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
index eeffdf5..9ec98f3 100644
--- a/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
+++ b/cube/src/main/java/org/apache/kylin/cube/kv/RowValueDecoder.java
@@ -28,11 +28,10 @@ import org.apache.hadoop.io.DoubleWritable;
 import org.apache.hadoop.io.FloatWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
-
 import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.metadata.measure.MeasureCodec;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
 
 /**
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
index ff0ca04..172a924 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java
@@ -33,7 +33,6 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.net.util.Base64;
@@ -56,6 +55,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.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.Lists;
@@ -118,7 +118,7 @@ public class CubeDesc extends RootPersistentEntity {
     /*
      * this field will not be serialized ,can be deserialized to front javascript
      */
-    private  long retentionRange;
+    private long retentionRange;
 
     private Map<String, Map<String, TblColRef>> columnMap = new HashMap<String, Map<String, TblColRef>>();
     private LinkedHashSet<TblColRef> allColumns = new LinkedHashSet<TblColRef>();
@@ -626,7 +626,7 @@ public class CubeDesc extends RootPersistentEntity {
             if (m.getDependentMeasureRef() != null) {
                 m.setDependentMeasureRef(m.getDependentMeasureRef().toUpperCase());
             }
-            
+
             FunctionDesc f = m.getFunction();
             f.setExpression(f.getExpression().toUpperCase());
             f.initReturnDataType();
@@ -645,7 +645,7 @@ public class CubeDesc extends RootPersistentEntity {
                 if (colRefs.isEmpty() == false)
                     p.setColRefs(colRefs);
             }
-            
+
             // verify holistic count distinct as a dependent measure
             if (m.isHolisticCountDistinct() && StringUtils.isBlank(m.getDependentMeasureRef())) {
                 throw new IllegalStateException(m + " is a holistic count distinct but it has no DependentMeasureRef defined!");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
index 85fe45b..981fdc6 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/DimensionDesc.java
@@ -23,15 +23,16 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.kylin.common.util.StringUtil;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.LookupDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 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;
+
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To
  * change this template use File | Settings | File Templates.
@@ -107,7 +108,7 @@ public class DimensionDesc {
         if (derived != null) {
             StringUtil.toUpperCaseArray(derived, derived);
         }
-        
+
         if (derived != null && join == null) {
             throw new IllegalStateException("Derived can only be defined on lookup table, cube " + cubeDesc + ", " + this);
         }
@@ -123,7 +124,7 @@ public class DimensionDesc {
         }
         return false;
     }
-    
+
     public boolean isDerived() {
         return derived != null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
index f31c289..3e3481c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HBaseColumnDesc.java
@@ -20,11 +20,12 @@ package org.apache.kylin.cube.model;
 
 import java.util.Arrays;
 
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
 
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/30/13 Time: 10:57 AM To

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
index f7eb20e..6b46824 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HBaseMappingDesc.java
@@ -22,12 +22,13 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
 
+import org.apache.kylin.common.util.StringUtil;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.FunctionDesc;
 
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:44 AM To

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
index 588c2f3..81d2509 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/HierarchyDesc.java
@@ -18,10 +18,11 @@
 
 package org.apache.kylin.cube.model;
 
+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 org.apache.kylin.metadata.model.TblColRef;
 
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:46 AM To

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
index b3a2253..17c75b8 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyColDesc.java
@@ -18,10 +18,11 @@
 
 package org.apache.kylin.cube.model;
 
+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 org.apache.kylin.metadata.model.TblColRef;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
index 0d2c238..1ebe88d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/RowKeyDesc.java
@@ -27,12 +27,12 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.util.StringUtil;
+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 org.apache.kylin.common.util.StringUtil;
-import org.apache.kylin.metadata.model.TblColRef;
 
 /**
  * Created by lukhan on 1/2/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
index 65547e2..5ee6544 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeInstance.java
@@ -22,6 +22,10 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -29,9 +33,6 @@ import com.fasterxml.jackson.annotation.JsonManagedReference;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
 
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class CubeInstance extends RootPersistentEntity {
@@ -163,10 +164,9 @@ public class CubeInstance extends RootPersistentEntity {
         }
     }
 
-//    public CubeDesc getDescriptor() {
-//        return CubeDescManager.getInstance(config).getCubeDesc(descName);
-//    }
-
+    //    public CubeDesc getDescriptor() {
+    //        return CubeDescManager.getInstance(config).getCubeDesc(descName);
+    //    }
 
     public boolean isReady() {
         return getStatus() == CubeStatusEnum.READY;
@@ -361,7 +361,7 @@ public class CubeInstance extends RootPersistentEntity {
     public long[] getDateRange() {
         List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
         if (readySegments.isEmpty()) {
-            return new long[]{0L, 0L};
+            return new long[] { 0L, 0L };
         }
         long start = Long.MAX_VALUE;
         long end = Long.MIN_VALUE;
@@ -373,55 +373,55 @@ public class CubeInstance extends RootPersistentEntity {
                 end = segment.getDateRangeEnd();
             }
         }
-        return new long[]{start, end};
-    }
-
-//    private boolean appendOnHll() {
-//        CubePartitionDesc cubePartitionDesc = getDescriptor().getCubePartitionDesc();
-//        if (cubePartitionDesc == null) {
-//            return false;
-//        }
-//        if (cubePartitionDesc.getPartitionDateColumn() == null) {
-//            return false;
-//        }
-//        if (cubePartitionDesc.getCubePartitionType() != CubePartitionDesc.CubePartitionType.APPEND) {
-//            return false;
-//        }
-//        return getDescriptor().hasHolisticCountDistinctMeasures();
-//    }
-
-//    public boolean appendBuildOnHllMeasure(long startDate, long endDate) {
-//        if (!appendOnHll()) {
-//            return false;
-//        }
-//        List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
-//        if (readySegments.isEmpty()) {
-//            return false;
-//        }
-//        for (CubeSegment readySegment: readySegments) {
-//            if (readySegment.getDateRangeStart() == startDate && readySegment.getDateRangeEnd() == endDate) {
-//                //refresh build
-//                return false;
-//            }
-//        }
-//        return true;
-//    }
-
-//    public boolean needMergeImmediatelyAfterBuild(CubeSegment segment) {
-//        if (!appendOnHll()) {
-//            return false;
-//        }
-//        List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
-//        if (readySegments.isEmpty()) {
-//            return false;
-//        }
-//        for (CubeSegment readySegment: readySegments) {
-//            if (readySegment.getDateRangeEnd() > segment.getDateRangeStart()) {
-//                //has overlap and not refresh
-//                return true;
-//            }
-//        }
-//        return false;
-//    }
+        return new long[] { start, end };
+    }
+
+    //    private boolean appendOnHll() {
+    //        CubePartitionDesc cubePartitionDesc = getDescriptor().getCubePartitionDesc();
+    //        if (cubePartitionDesc == null) {
+    //            return false;
+    //        }
+    //        if (cubePartitionDesc.getPartitionDateColumn() == null) {
+    //            return false;
+    //        }
+    //        if (cubePartitionDesc.getCubePartitionType() != CubePartitionDesc.CubePartitionType.APPEND) {
+    //            return false;
+    //        }
+    //        return getDescriptor().hasHolisticCountDistinctMeasures();
+    //    }
+
+    //    public boolean appendBuildOnHllMeasure(long startDate, long endDate) {
+    //        if (!appendOnHll()) {
+    //            return false;
+    //        }
+    //        List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
+    //        if (readySegments.isEmpty()) {
+    //            return false;
+    //        }
+    //        for (CubeSegment readySegment: readySegments) {
+    //            if (readySegment.getDateRangeStart() == startDate && readySegment.getDateRangeEnd() == endDate) {
+    //                //refresh build
+    //                return false;
+    //            }
+    //        }
+    //        return true;
+    //    }
+
+    //    public boolean needMergeImmediatelyAfterBuild(CubeSegment segment) {
+    //        if (!appendOnHll()) {
+    //            return false;
+    //        }
+    //        List<CubeSegment> readySegments = getSegment(CubeSegmentStatusEnum.READY);
+    //        if (readySegments.isEmpty()) {
+    //            return false;
+    //        }
+    //        for (CubeSegment readySegment: readySegments) {
+    //            if (readySegment.getDateRangeEnd() > segment.getDateRangeStart()) {
+    //                //has overlap and not refresh
+    //                return true;
+    //            }
+    //        }
+    //        return false;
+    //    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
index a5818ca..89bf70d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubePartitionDesc.java
@@ -20,10 +20,11 @@ package org.apache.kylin.cube.model.v1;
 
 import java.util.Map;
 
+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 org.apache.kylin.metadata.model.TblColRef;
 
 /**
  * @author xduo
@@ -57,7 +58,7 @@ public class CubePartitionDesc {
             }
         }
     }
-    
+
     public boolean isPartitioned() {
         return partitionDateColumnRef != null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
index 392642b..aea429d 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/CubeSegment.java
@@ -24,12 +24,13 @@ import java.util.Map;
 import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 
+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.JsonBackReference;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.base.Objects;
-import org.apache.kylin.metadata.model.TblColRef;
 
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class CubeSegment implements Comparable<CubeSegment> {
@@ -70,9 +71,9 @@ public class CubeSegment implements Comparable<CubeSegment> {
     @JsonProperty("snapshots")
     private ConcurrentHashMap<String, String> snapshots; // table name ==> snapshot resource path
 
-//    public CubeDesc getCubeDesc() {
-//        return getCubeInstance().getDescriptor();
-//    }
+    //    public CubeDesc getCubeDesc() {
+    //        return getCubeInstance().getDescriptor();
+    //    }
 
     /**
      * @param startDate
@@ -93,7 +94,6 @@ public class CubeSegment implements Comparable<CubeSegment> {
 
     // ============================================================================
 
-
     public String getUuid() {
         return uuid;
     }
@@ -298,12 +298,6 @@ public class CubeSegment implements Comparable<CubeSegment> {
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
-                .add("uuid", uuid)
-                .add("create_time:", createTime)
-                .add("name", name)
-                .add("last_build_job_id", lastBuildJobID)
-                .add("status", status)
-                .toString();
+        return Objects.toStringHelper(this).add("uuid", uuid).add("create_time:", createTime).add("name", name).add("last_build_job_id", lastBuildJobID).add("status", status).toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
index da0d0fa..de6233c 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/DimensionDesc.java
@@ -21,15 +21,16 @@ package org.apache.kylin.cube.model.v1;
 import java.util.Arrays;
 import java.util.Map;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.kylin.common.util.StringUtil;
 import org.apache.kylin.cube.model.HierarchyDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 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;
+
 /**
  * Created with IntelliJ IDEA. User: lukhan Date: 9/24/13 Time: 10:40 AM To
  * change this template use File | Settings | File Templates.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java b/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
index 16d193e..e8757b1 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/v1/ProjectInstance.java
@@ -23,13 +23,14 @@ import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.metadata.project.ProjectStatusEnum;
 
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 /**
  * Project is a concept in Kylin similar to schema in DBMS
  */
@@ -47,7 +48,6 @@ public class ProjectInstance extends RootPersistentEntity {
     @JsonProperty("tables")
     private Set<String> tables;
 
-
     @JsonProperty("owner")
     private String owner;
 
@@ -162,7 +162,6 @@ public class ProjectInstance extends RootPersistentEntity {
         return cubes;
     }
 
-
     public void setCubes(List<String> cubes) {
         this.cubes = cubes;
     }
@@ -216,7 +215,6 @@ public class ProjectInstance extends RootPersistentEntity {
         this.lastUpdateTime = formatTime(timeMillis);
     }
 
-
     public void init() {
         if (name == null)
             name = ProjectInstance.DEFAULT_PROJECT_NAME;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
index 70f0b2f..80bd2f7 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/FunctionRule.java
@@ -25,19 +25,18 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.model.CubeDesc;
+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.metadata.model.MeasureDesc;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.DataType;
-import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
+import org.apache.kylin.metadata.model.TableDesc;
 
 /**
  * Validate function parameter. Ticket:

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
index 0057a7f..4585900 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/MandatoryColumnRule.java
@@ -22,7 +22,6 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.commons.lang.ArrayUtils;
-
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.RowKeyColDesc;
 import org.apache.kylin.cube.model.validation.IValidatorRule;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
index 5cd0343..e90f6cd 100644
--- a/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
+++ b/cube/src/main/java/org/apache/kylin/cube/model/validation/rule/RowKeyAttrRule.java
@@ -19,7 +19,6 @@
 package org.apache.kylin.cube.model.validation.rule;
 
 import org.apache.commons.lang.StringUtils;
-
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.RowKeyColDesc;
 import org.apache.kylin.cube.model.RowKeyDesc;
@@ -55,17 +54,17 @@ public class RowKeyAttrRule implements IValidatorRule<CubeDesc> {
             context.addResult(ResultLevel.ERROR, "Rowkey columns do not exist");
             return;
         }
-        if(rcd.length == 0){
+        if (rcd.length == 0) {
             context.addResult(ResultLevel.ERROR, "Rowkey columns is empty");
-            return;       	
+            return;
         }
 
         for (int i = 0; i < rcd.length; i++) {
             RowKeyColDesc rd = rcd[i];
-            if (rd.getLength() != 0 && (!StringUtils.isEmpty(rd.getDictionary())&&!rd.getDictionary().equals("false"))) {
+            if (rd.getLength() != 0 && (!StringUtils.isEmpty(rd.getDictionary()) && !rd.getDictionary().equals("false"))) {
                 context.addResult(ResultLevel.ERROR, "Rowkey column " + rd.getColumn() + " must not have both 'length' and 'dictionary' attribute");
             }
-            if (rd.getLength() == 0 && (StringUtils.isEmpty(rd.getDictionary())||rd.getDictionary().equals("false"))) {
+            if (rd.getLength() == 0 && (StringUtils.isEmpty(rd.getDictionary()) || rd.getDictionary().equals("false"))) {
                 context.addResult(ResultLevel.ERROR, "Rowkey column " + rd.getColumn() + " must not have both 'length' and 'dictionary' empty");
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
index 57d710c..e7914c7 100644
--- a/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/AggregationGroupSizeRuleTest.java
@@ -18,17 +18,17 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
+import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.IValidatorRule;
 import org.apache.kylin.cube.model.validation.ValidateContext;
 import org.apache.kylin.cube.model.validation.rule.AggregationGroupSizeRule;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
-
 /**
  * @author jianliu
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
index c130337..13fcd4a 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeDescTest.java
@@ -21,6 +21,8 @@ package org.apache.kylin.cube;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.junit.After;
 import org.junit.Assert;
@@ -28,8 +30,6 @@ import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.collect.Maps;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 
 /**
  * @author yangli9
@@ -60,22 +60,22 @@ public class CubeDescTest extends LocalFileMetadataTestCase {
         CubeDesc cubeDesc = CubeDescManager.getInstance(getTestConfig()).getCubeDesc("test_kylin_cube_with_slr_desc");
         Assert.assertNotNull(cubeDesc);
     }
-    
+
     @Test
-    public void testSerializeMap()  throws Exception {
+    public void testSerializeMap() throws Exception {
         Map<String, String> map = Maps.newHashMap();
 
         map.put("key1", "value1");
         map.put("key2", "value2");
-        
+
         String mapStr = JsonUtil.writeValueAsString(map);
-        
+
         System.out.println(mapStr);
-        
+
         Map<?, ?> map2 = JsonUtil.readValue(mapStr, HashMap.class);
-        
+
         Assert.assertEquals(map, map2);
-        
+
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
index 5e64e01..ecdaada 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeManagerCacheTest.java
@@ -18,19 +18,18 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
+import org.apache.kylin.common.persistence.ResourceStore;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.metadata.realization.RealizationStatusEnum;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.persistence.ResourceStore;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
 /**
  * @author yangli9
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
index 5c4d824..88f5e47 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeManagerTest.java
@@ -18,7 +18,8 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java b/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
index 7afd1e3..dbd7c4e 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeSegmentsTest.java
@@ -18,12 +18,13 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
 
-import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.junit.After;
 import org.junit.Before;
@@ -72,7 +73,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
         assertEquals(0, seg2.getDateRangeStart());
         assertEquals(Long.MAX_VALUE, seg2.getDateRangeEnd());
         assertEquals(2, cube.getSegments().size());
-        
+
         // non-partitioned cannot merge, throw exception
         mgr.mergeSegments(cube, 0, Long.MAX_VALUE, false);
     }
@@ -97,7 +98,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
         assertEquals(2000, seg2.getDateRangeEnd());
         assertEquals(SegmentStatusEnum.NEW, seg2.getStatus());
         seg2.setStatus(SegmentStatusEnum.READY);
-        
+
         // merge first and second
         CubeSegment merge = mgr.mergeSegments(cube, 0, 2000, true);
 
@@ -105,15 +106,15 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
         assertEquals(0, merge.getDateRangeStart());
         assertEquals(2000, merge.getDateRangeEnd());
         assertEquals(SegmentStatusEnum.NEW, merge.getStatus());
-        
+
         // segments are strictly ordered
         assertEquals(seg1, cube.getSegments().get(0));
         assertEquals(merge, cube.getSegments().get(1));
         assertEquals(seg2, cube.getSegments().get(2));
-        
+
         // drop the merge
         cube.getSegments().remove(merge);
-        
+
         // try merge at start/end at middle of segments
         CubeSegment merge2 = mgr.mergeSegments(cube, 500, 1500, true);
         assertEquals(3, cube.getSegments().size());
@@ -135,7 +136,7 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
         } catch (IllegalStateException ex) {
             // expected, append and merge requires at least one segment
         }
-        
+
         // append first
         CubeSegment seg1 = mgr.appendSegments(cube, 1000);
         seg1.setStatus(SegmentStatusEnum.READY);
@@ -152,13 +153,13 @@ public class CubeSegmentsTest extends LocalFileMetadataTestCase {
         assertEquals(2000, seg2.getDateRangeEnd());
         assertEquals(0, merge.getDateRangeStart());
         assertEquals(2000, merge.getDateRangeEnd());
-        
+
         // segments are strictly ordered
         assertEquals(seg1, cube.getSegments().get(0));
         assertEquals(merge, cube.getSegments().get(1));
         assertEquals(seg2, cube.getSegments().get(2));
     }
-    
+
     private void discard(Object o) {
         // throw away input parameter
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java b/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
index 46773e7..04eb9b1 100644
--- a/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/CubeSizeEstimationCLITest.java
@@ -18,14 +18,13 @@
 
 package org.apache.kylin.cube;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.estimation.CubeSizeEstimationCLI;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Created by honma on 9/1/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
index 246cd74..d7feb56 100644
--- a/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/DictionaryManagerTest.java
@@ -18,15 +18,11 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.util.HashSet;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.model.CubeDesc;
@@ -34,6 +30,10 @@ import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.dict.DictionaryInfo;
 import org.apache.kylin.dict.DictionaryManager;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 public class DictionaryManagerTest extends LocalFileMetadataTestCase {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
index 662694d..29b7183 100644
--- a/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/MandatoryColumnRuleTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
-
-import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.validation.IValidatorRule;
+import org.apache.kylin.cube.model.validation.ValidateContext;
 import org.apache.kylin.cube.model.validation.rule.MandatoryColumnRule;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author jianliu

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java b/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
index d07c72a..000fa1d 100644
--- a/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/RowKeyAttrRuleTest.java
@@ -18,17 +18,16 @@
 
 package org.apache.kylin.cube;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
+import org.apache.kylin.common.util.JsonUtil;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.IValidatorRule;
 import org.apache.kylin.cube.model.validation.ValidateContext;
 import org.apache.kylin.cube.model.validation.rule.RowKeyAttrRule;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.validation.IValidatorRule;
-
 /**
  * @author jianliu
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java b/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
index 916d84d..074d973 100644
--- a/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/common/BytesSplitterTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.cube.common;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.kylin.common.util.BytesSplitter;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java b/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
index 92a3e37..9a7970c 100644
--- a/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/common/RowKeySplitterTest.java
@@ -18,16 +18,15 @@
 
 package org.apache.kylin.cube.common;
 
-import static org.junit.Assert.*;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
index 198f104..a69f179 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CombinationTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.cube.cuboid;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
index ad60caa..83e8d94 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
@@ -18,21 +18,22 @@
 
 package org.apache.kylin.cube.cuboid;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
index 4914448..235edf2 100644
--- a/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidTest.java
@@ -18,17 +18,17 @@
 
 package org.apache.kylin.cube.cuboid;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.MetadataManager;
-
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
index 968e8ab..a8dd965 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyDecoderTest.java
@@ -18,22 +18,21 @@
 
 package org.apache.kylin.cube.kv;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.util.List;
 
 import org.apache.kylin.common.util.Bytes;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.metadata.MetadataManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
index c8164e4..c50b8c9 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowKeyEncoderTest.java
@@ -18,22 +18,23 @@
 
 package org.apache.kylin.cube.kv;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
 
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.metadata.MetadataManager;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.metadata.MetadataManager;
-
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java b/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
index c61eb29..4e44d13 100644
--- a/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/kv/RowValueDecoderTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.cube.kv;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
@@ -26,18 +26,17 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.hadoop.io.LongWritable;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.HBaseColumnDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java b/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
index 20f976b..faea24f 100644
--- a/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
+++ b/cube/src/test/java/org/apache/kylin/cube/project/ProjectManagerTest.java
@@ -18,15 +18,12 @@
 
 package org.apache.kylin.cube.project;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
 import java.util.Set;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -38,6 +35,9 @@ import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.metadata.realization.RealizationType;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * @author xduo
@@ -69,7 +69,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
         ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
         CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
         CubeDescManager cubeDescMgr = CubeDescManager.getInstance(getTestConfig());
-        
+
         int originalProjectCount = prjMgr.listAllProjects().size();
         int originalCubeCount = cubeMgr.listAllCubes().size();
         int originalCubeCountInDefault = prjMgr.listAllRealizations("default").size();
@@ -117,7 +117,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
         ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
         CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
         CubeDescManager cubeDescMgr = CubeDescManager.getInstance(getTestConfig());
-        
+
         int originalProjectCount = prjMgr.listAllProjects().size();
         int originalCubeCount = cubeMgr.listAllCubes().size();
         ResourceStore store = getStore();
@@ -146,7 +146,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
     public void testProjectsDrop() throws IOException {
         ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
         CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
-        
+
         CubeInstance cube = cubeMgr.getCube("test_kylin_cube_with_slr_empty");
         assertTrue(prjMgr.getRealizationsByTable("default", "default.test_kylin_fact").contains(cube));
         assertTrue(prjMgr.listAllRealizations("default").contains(cube));
@@ -161,7 +161,7 @@ public class ProjectManagerTest extends LocalFileMetadataTestCase {
     public void testProjectsLoadAfterProjectChange() throws IOException {
         ProjectManager prjMgr = ProjectManager.getInstance(getTestConfig());
         CubeManager cubeMgr = CubeManager.getInstance(getTestConfig());
-        
+
         CubeInstance cube = cubeMgr.getCube("test_kylin_cube_with_slr_empty");
         assertTrue(prjMgr.getRealizationsByTable("default", "default.test_kylin_fact").contains(cube));
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java b/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
index e8feb87..6eff233 100644
--- a/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
+++ b/cube/src/test/java/org/apache/kylin/metadata/MetadataUpgradeTest.java
@@ -20,15 +20,6 @@ package org.apache.kylin.metadata;
 
 import java.util.List;
 
-import org.apache.kylin.metadata.model.DataModelDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -37,6 +28,13 @@ import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.TableDesc;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Test the data model upgrade
@@ -63,8 +61,8 @@ public class MetadataUpgradeTest extends LocalFileMetadataTestCase {
         MetadataManager.getInstance(config).reload();
         CubeDescManager.clearCache();
         CubeDescManager.getInstance(config);
-//        CubeManager cubeManager = CubeManager.getInstance(config);
-//        ProjectManager.getInstance(config);
+        //        CubeManager cubeManager = CubeManager.getInstance(config);
+        //        ProjectManager.getInstance(config);
 
     }
 
@@ -73,23 +71,22 @@ public class MetadataUpgradeTest extends LocalFileMetadataTestCase {
 
         MetadataManager metaMgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
         TableDesc fact = metaMgr.getTableDesc("default.test_kylin_fact");
-        
+
         @SuppressWarnings("deprecation")
         String oldResLocation = fact.getResourcePathV1();
         String newResLocation = fact.getResourcePath();
-        
+
         ResourceStore store = ResourceStore.getStore(KylinConfig.getInstanceFromEnv());
-        
+
         Assert.assertTrue(store.exists(newResLocation));
         Assert.assertTrue(!store.exists(oldResLocation));
-        
-        
+
         String oldExdResLocation = TableDesc.concatExdResourcePath("test_kylin_fact".toUpperCase());
         String newExdResLocation = TableDesc.concatExdResourcePath("default.test_kylin_fact".toUpperCase());
-        
+
         Assert.assertTrue(store.exists(newExdResLocation));
         Assert.assertTrue(!store.exists(oldExdResLocation));
-        
+
     }
 
     private void checkCubeDesc(String descName) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java b/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
index ddb624e..be19c8e 100644
--- a/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
+++ b/cube/src/test/java/org/apache/kylin/metadata/measure/MeasureCodecTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.metadata.measure;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
@@ -26,12 +26,11 @@ import java.util.Arrays;
 
 import org.apache.hadoop.io.DoubleWritable;
 import org.apache.hadoop.io.LongWritable;
-import org.junit.Test;
-
 import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.junit.Test;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java b/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
index 3b5e88d..6476d68 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/Dictionary.java
@@ -22,7 +22,6 @@ import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 
 import org.apache.hadoop.io.Writable;
-
 import org.apache.kylin.common.util.BytesUtil;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
index fc01b78..c2eb927 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java
@@ -164,7 +164,7 @@ public class DictionaryManager {
             logger.info("Use one of the merging dictionaries directly");
             return dicts.get(0);
         }
-        
+
         Dictionary<?> newDict = DictionaryGenerator.mergeDictionaries(newDictInfo, dicts);
         return trySaveNewDict(newDict, newDictInfo);
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java b/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
index 872ae2d..b48a321 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/ISegment.java
@@ -28,8 +28,8 @@ public interface ISegment {
     public abstract int getColumnLength(TblColRef col);
 
     public abstract Dictionary<?> getDictionary(TblColRef col);
-    
+
     public String getName();
-    
+
     public String getUuid();
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
index 8674852..49cb6d3 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/FileTableReader.java
@@ -29,17 +29,17 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.SequenceFile;
 import org.apache.hadoop.io.SequenceFile.Reader;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.ReflectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.common.util.StringSplitter;
 import org.apache.kylin.dict.lookup.ReadableTable.TableReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Tables are typically CSV or SEQ file.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
index 2941861..73fb4f6 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/HiveTable.java
@@ -57,14 +57,14 @@ public class HiveTable implements ReadableTable {
             Pair<Long, Long> sizeAndLastModified = FileTable.getSizeAndLastModified(path);
             long size = sizeAndLastModified.getFirst();
             long lastModified = sizeAndLastModified.getSecond();
-            
+
             // for non-native hive table, cannot rely on size & last modified on HDFS
             if (getHiveClient().isNativeTable(database, hiveTable) == false) {
                 lastModified = System.currentTimeMillis(); // assume table is ever changing
             }
 
             return new TableSignature(path, size, lastModified);
-            
+
         } catch (Exception e) {
             if (e instanceof IOException)
                 throw (IOException) e;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
index 701c2dd..2004ac6 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupBytesTable.java
@@ -20,9 +20,8 @@ package org.apache.kylin.dict.lookup;
 
 import java.io.IOException;
 
-import org.apache.kylin.common.util.Bytes;
-
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.metadata.model.TableDesc;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
index 7e83197..192abdf 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupTable.java
@@ -25,14 +25,13 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Sets;
-
 import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.dict.lookup.ReadableTable.TableReader;
 import org.apache.kylin.metadata.model.TableDesc;
 
+import com.google.common.collect.Sets;
+
 /**
  * An in-memory lookup table, in which each cell is an object of type T. The
  * table is indexed by specified PK for fast lookup.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
index fa4d9e3..03998a5 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/ReadableTable.java
@@ -22,8 +22,8 @@ import java.io.Closeable;
 import java.io.IOException;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  */
@@ -44,11 +44,11 @@ public interface ReadableTable {
 
         /** Get the current row. */
         public String[] getRow();
-        
+
     }
-    
+
     // ============================================================================
-    
+
     @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
     public class TableSignature {
 
@@ -94,7 +94,6 @@ public interface ReadableTable {
             return lastModifiedTime;
         }
 
-
         @Override
         public int hashCode() {
             final int prime = 31;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
----------------------------------------------------------------------
diff --git a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
index af2d2a0..8a61d76 100644
--- a/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
+++ b/dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotManager.java
@@ -22,13 +22,13 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.dict.lookup.ReadableTable.TableSignature;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.model.TableDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author yangli9



[06/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
index cd81d64..c02b2bb 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
@@ -21,10 +21,11 @@ package org.apache.kylin.job.dao;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Maps;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
 
 /**
  * Created by qianzhou on 12/15/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java b/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
index 7a73790..ed12cff 100644
--- a/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/deployment/HbaseConfigPrinterCLI.java
@@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HConstants;
-
 import org.apache.kylin.job.tools.LZOSupportnessChecker;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 8cc44bf..34fe858 100644
--- a/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -18,6 +18,12 @@
 
 package org.apache.kylin.job.engine;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.tools.OptionsHelper;
@@ -25,8 +31,6 @@ import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.*;
-
 /**
  * @author ysong1
  */
@@ -108,7 +112,6 @@ public class JobEngineConfig {
         return config.getHdfsWorkingDirectory();
     }
 
-
     /**
      * @return the maxConcurrentJobLimit
      */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
index d5b801b..ea9afb9 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
@@ -18,10 +18,13 @@
 
 package org.apache.kylin.job.execution;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.kylin.common.KylinConfig;
@@ -33,12 +36,10 @@ import org.apache.kylin.job.manager.ExecutableManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
index 8ceb23e..0c49ec1 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ChainedExecutable.java
@@ -26,7 +26,7 @@ import java.util.List;
 public interface ChainedExecutable extends Executable {
 
     List<? extends AbstractExecutable> getTasks();
-    
+
     void addTask(AbstractExecutable executable);
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java b/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
index e6b0d8e..557ce67 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/DefaultChainedExecutable.java
@@ -21,12 +21,13 @@ package org.apache.kylin.job.execution;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.manager.ExecutableManager;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
 /**
  * Created by qianzhou on 12/16/14.
  */
@@ -36,7 +37,7 @@ public class DefaultChainedExecutable extends AbstractExecutable implements Chai
 
     protected final ExecutableManager jobService = ExecutableManager.getInstance(KylinConfig.getInstanceFromEnv());
 
-    public DefaultChainedExecutable(){
+    public DefaultChainedExecutable() {
         super();
     }
 
@@ -74,7 +75,7 @@ public class DefaultChainedExecutable extends AbstractExecutable implements Chai
             List<? extends Executable> jobs = getTasks();
             boolean allSucceed = true;
             boolean hasError = false;
-            for (Executable task: jobs) {
+            for (Executable task : jobs) {
                 final ExecutableState status = task.getStatus();
                 if (status == ExecutableState.ERROR) {
                     hasError = true;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java b/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
index d6d2ddb..9e8afe1 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/DefaultOutput.java
@@ -18,10 +18,10 @@
 
 package org.apache.kylin.job.execution;
 
-import org.apache.commons.lang3.StringUtils;
-
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * Created by qianzhou on 1/6/15.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/Executable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/Executable.java b/job/src/main/java/org/apache/kylin/job/execution/Executable.java
index 7bd2351..2a8d337 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/Executable.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/Executable.java
@@ -18,10 +18,10 @@
 
 package org.apache.kylin.job.execution;
 
-import org.apache.kylin.job.exception.ExecuteException;
-
 import java.util.Map;
 
+import org.apache.kylin.job.exception.ExecuteException;
+
 /**
  * Created by qianzhou on 12/15/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java b/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
index 24d23ee..3a9aa4a 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ExecutableState.java
@@ -32,17 +32,12 @@ import com.google.common.collect.Multimaps;
  */
 public enum ExecutableState {
 
-    READY,
-    RUNNING,
-    ERROR,
-    STOPPED,
-    DISCARDED,
-    SUCCEED;
+    READY, RUNNING, ERROR, STOPPED, DISCARDED, SUCCEED;
 
     private static Multimap<ExecutableState, ExecutableState> VALID_STATE_TRANSFER;
 
     static {
-        VALID_STATE_TRANSFER = Multimaps.newSetMultimap(Maps.<ExecutableState, Collection<ExecutableState>>newEnumMap(ExecutableState.class), new Supplier<Set<ExecutableState>>() {
+        VALID_STATE_TRANSFER = Multimaps.newSetMultimap(Maps.<ExecutableState, Collection<ExecutableState>> newEnumMap(ExecutableState.class), new Supplier<Set<ExecutableState>>() {
             @Override
             public Set<ExecutableState> get() {
                 return new CopyOnWriteArraySet<ExecutableState>();
@@ -64,7 +59,6 @@ public enum ExecutableState {
         //scheduler,job
         VALID_STATE_TRANSFER.put(ExecutableState.RUNNING, ExecutableState.ERROR);
 
-
         VALID_STATE_TRANSFER.put(ExecutableState.STOPPED, ExecutableState.DISCARDED);
         VALID_STATE_TRANSFER.put(ExecutableState.STOPPED, ExecutableState.READY);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java b/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
index bc0137d..874c414 100644
--- a/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
+++ b/job/src/main/java/org/apache/kylin/job/execution/ExecuteResult.java
@@ -25,7 +25,9 @@ import com.google.common.base.Preconditions;
  */
 public final class ExecuteResult {
 
-    public static enum State {SUCCEED, FAILED, ERROR, DISCARDED, STOPPED}
+    public static enum State {
+        SUCCEED, FAILED, ERROR, DISCARDED, STOPPED
+    }
 
     private final State state;
     private final String output;
@@ -48,7 +50,6 @@ public final class ExecuteResult {
         return state == State.SUCCEED;
     }
 
-
     public String output() {
         return output;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
index 1d34f1f..b9413c0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/AbstractHadoopJob.java
@@ -23,6 +23,15 @@ package org.apache.kylin.job.hadoop;
  *
  */
 
+import static org.apache.hadoop.util.StringUtils.formatTime;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
@@ -57,15 +66,6 @@ import org.apache.kylin.metadata.model.TableDesc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.hadoop.util.StringUtils.formatTime;
-
 @SuppressWarnings("static-access")
 public abstract class AbstractHadoopJob extends Configured implements Tool {
     protected static final Logger logger = LoggerFactory.getLogger(AbstractHadoopJob.class);
@@ -163,7 +163,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
             logger.info("The default mapred classpath is: " + classpath);
         }
 
-
         if (kylinHBaseDependency != null) {
             // yarn classpath is comma separated
             kylinHBaseDependency = kylinHBaseDependency.replace(":", ",");
@@ -180,7 +179,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
         logger.info("Hadoop job classpath is: " + job.getConfiguration().get(MAP_REDUCE_CLASSPATH));
     }
 
-
     private String getDefaultMapRedClasspath() {
 
         String classpath = "";
@@ -197,7 +195,6 @@ public abstract class AbstractHadoopJob extends Configured implements Tool {
         return classpath;
     }
 
-
     public void addInputDirs(String input, Job job) throws IOException {
         for (String inp : StringSplitter.split(input, ",")) {
             inp = inp.trim();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
index 3e3c3fb..3bddae3 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityMapper.java
@@ -24,16 +24,15 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hive.hcatalog.data.HCatRecord;
 import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
 import org.apache.hive.hcatalog.data.schema.HCatSchema;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
 import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.cube.kv.RowConstants;
 
 /**
@@ -46,10 +45,10 @@ public class ColumnCardinalityMapper<T> extends KylinMapper<T, HCatRecord, IntWr
     public static final String DEFAULT_DELIM = ",";
 
     private int counter = 0;
-    
+
     private HCatSchema schema = null;
     private int columnSize = 0;
-    
+
     @Override
     protected void setup(Context context) throws IOException {
         super.publishConfiguration(context.getConfiguration());
@@ -67,7 +66,7 @@ public class ColumnCardinalityMapper<T> extends KylinMapper<T, HCatRecord, IntWr
             fieldValue = value.get(field.getName(), schema);
             if (fieldValue == null)
                 fieldValue = "NULL";
-            
+
             if (counter < 5 && m < 10) {
                 System.out.println("Get row " + counter + " column '" + field.getName() + "'  value: " + fieldValue);
             }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
index a9ac1a3..b0c3053 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/ColumnCardinalityReducer.java
@@ -20,12 +20,16 @@ package org.apache.kylin.job.hadoop.cardinality;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.hadoop.io.BytesWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
-
 import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.cube.kv.RowConstants;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
index d5e5292..eae59ab 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityJob.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cardinality;
 
-import java.io.File;
-
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
@@ -32,7 +30,6 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 
@@ -70,7 +67,7 @@ public class HiveColumnCardinalityJob extends AbstractHadoopJob {
             job = Job.getInstance(conf, jobName);
 
             setJobClasspath(job);
-            
+
             Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
             FileOutputFormat.setOutputPath(job, output);
             job.getConfiguration().set("dfs.block.size", "67108864");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
index 48553d7..5b7f87e 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cardinality/HiveColumnCardinalityUpdateJob.java
@@ -37,7 +37,6 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.compress.CompressionCodec;
 import org.apache.hadoop.io.compress.CompressionCodecFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.apache.kylin.metadata.MetadataConstants;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
index 5f7802a..c181ec7 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidJob.java
@@ -35,5 +35,5 @@ public class BaseCuboidJob extends CuboidJob {
         int exitCode = ToolRunner.run(job, args);
         System.exit(exitCode);
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
index c12ecaa..2a20379 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/BaseCuboidMapper.java
@@ -23,31 +23,31 @@ import java.nio.ByteBuffer;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.BytesSplitter;
+import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
-import org.apache.kylin.common.util.BytesSplitter;
-import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.AbstractRowKeyEncoder;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.apache.kylin.job.hadoop.hive.CubeJoinedFlatTableDesc;
+import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.ParameterDesc;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
index bb4c927..5c5799d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileJob.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import java.io.File;
-
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
@@ -32,15 +30,14 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-
 /**
  * @author George Song (ysong1)
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
index d038534..12a0e1a 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CubeHFileMapper.java
@@ -26,22 +26,22 @@ import java.util.List;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
-
-import com.google.common.collect.Lists;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.metadata.model.MeasureDesc;
 
+import com.google.common.collect.Lists;
+
 /**
  * @author George Song (ysong1)
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
index 540f7f4..3c7d092 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidJob.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
@@ -32,9 +31,6 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -43,6 +39,8 @@ import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.exception.JobException;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author ysong1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
index 7181fa1..1d87898 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/CuboidReducer.java
@@ -22,20 +22,19 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.List;
 
-import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.kv.RowConstants;
-import org.apache.kylin.metadata.measure.MeasureAggregators;
-import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.measure.MeasureAggregators;
+import org.apache.kylin.metadata.measure.MeasureCodec;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author George Song (ysong1)

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
index b5aa35e..478f885 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsCombiner.java
@@ -21,12 +21,11 @@ package org.apache.kylin.job.hadoop.cube;
 import java.io.IOException;
 import java.util.HashSet;
 
-import org.apache.kylin.common.mr.KylinReducer;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
-
+import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
index 208f90e..e701092 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsJob.java
@@ -19,12 +19,10 @@
 package org.apache.kylin.job.hadoop.cube;
 
 import java.io.IOException;
-import java.util.List;
+import java.util.List;
 
-import com.google.common.base.Joiner;
-import com.google.common.collect.Lists;
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.ShortWritable;
@@ -38,22 +36,25 @@ import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.RowKeyDesc;
-import org.apache.kylin.dict.DictionaryManager;
+import org.apache.kylin.cube.cuboid.Cuboid;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.RowKeyDesc;
+import org.apache.kylin.dict.DictionaryManager;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+
 /**
  * @author yangli9
  */
 public class FactDistinctColumnsJob extends AbstractHadoopJob {
     protected static final Logger log = LoggerFactory.getLogger(FactDistinctColumnsJob.class);
-    private static final Joiner joiner = Joiner.on(",");
+    private static final Joiner joiner = Joiner.on(",");
 
     @Override
     public int run(String[] args) throws Exception {
@@ -67,8 +68,8 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
             parseOptions(options, args);
 
             job = Job.getInstance(getConf(), getOptionValue(OPTION_JOB_NAME));
-            Configuration jobConf = job.getConfiguration();
-
+            Configuration jobConf = job.getConfiguration();
+
             String cubeName = getOptionValue(OPTION_CUBE_NAME);
             Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));
             String intermediateTable = getOptionValue(OPTION_TABLE_NAME);
@@ -77,42 +78,42 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
             // add metadata to distributed cache
             CubeManager cubeMgr = CubeManager.getInstance(KylinConfig.getInstanceFromEnv());
             CubeInstance cubeInstance = cubeMgr.getCube(cubeName);
-            CubeDesc cubeDesc = cubeInstance.getDescriptor();
+            CubeDesc cubeDesc = cubeInstance.getDescriptor();
 
-            jobConf.set(BatchConstants.CFG_CUBE_NAME, cubeName);
+            jobConf.set(BatchConstants.CFG_CUBE_NAME, cubeName);
             System.out.println("Starting: " + job.getJobName());
 
             setJobClasspath(job);
-            
+
             setupMapper(intermediateTable);
             setupReducer(output);
 
             // CubeSegment seg = cubeMgr.getCube(cubeName).getTheOnlySegment();
-            attachKylinPropsAndMetadata(cubeInstance, jobConf);
-
-            // set names and row key indexes of fact table's dictionary columns in Configuration,
-            // so that mapper & reducer task can use them
-            List<String> factDictColNames = Lists.newArrayList();
-            List<Integer> factDictColRowKeyIndexes = Lists.newArrayList();
-
-            Cuboid baseCuboid = Cuboid.findById(cubeDesc, Cuboid.getBaseCuboidId(cubeDesc));
-            List<TblColRef> columns = baseCuboid.getColumns();
-
-            RowKeyDesc rowkey = cubeDesc.getRowkey();
-            DictionaryManager dictMgr = DictionaryManager.getInstance(KylinConfig.getInstanceFromEnv());
-            for (int i = 0; i < columns.size(); i++) {
-                TblColRef col = columns.get(i);
-                if (!rowkey.isUseDictionary(col))
-                    continue;
-
-                String scanTable = (String) dictMgr.decideSourceData(cubeDesc.getModel(), rowkey.getDictionary(col), col, null)[0];
-                if (cubeDesc.getModel().isFactTable(scanTable)) {
-                    factDictColNames.add(col.getName());
-                    factDictColRowKeyIndexes.add(i);
-                }
-            }
-            jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES, joiner.join(factDictColNames));
-            jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES, joiner.join(factDictColRowKeyIndexes));
+            attachKylinPropsAndMetadata(cubeInstance, jobConf);
+
+            // set names and row key indexes of fact table's dictionary columns in Configuration,
+            // so that mapper & reducer task can use them
+            List<String> factDictColNames = Lists.newArrayList();
+            List<Integer> factDictColRowKeyIndexes = Lists.newArrayList();
+
+            Cuboid baseCuboid = Cuboid.findById(cubeDesc, Cuboid.getBaseCuboidId(cubeDesc));
+            List<TblColRef> columns = baseCuboid.getColumns();
+
+            RowKeyDesc rowkey = cubeDesc.getRowkey();
+            DictionaryManager dictMgr = DictionaryManager.getInstance(KylinConfig.getInstanceFromEnv());
+            for (int i = 0; i < columns.size(); i++) {
+                TblColRef col = columns.get(i);
+                if (!rowkey.isUseDictionary(col))
+                    continue;
+
+                String scanTable = (String) dictMgr.decideSourceData(cubeDesc.getModel(), rowkey.getDictionary(col), col, null)[0];
+                if (cubeDesc.getModel().isFactTable(scanTable)) {
+                    factDictColNames.add(col.getName());
+                    factDictColRowKeyIndexes.add(i);
+                }
+            }
+            jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES, joiner.join(factDictColNames));
+            jobConf.set(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES, joiner.join(factDictColRowKeyIndexes));
 
             return waitForCompletion(job);
 
@@ -128,12 +129,11 @@ public class FactDistinctColumnsJob extends AbstractHadoopJob {
     }
 
     private void setupMapper(String intermediateTable) throws IOException {
-//        FileInputFormat.setInputPaths(job, input);
+        //        FileInputFormat.setInputPaths(job, input);
 
         String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
-        HCatInputFormat.setInput(job, dbTableNames[0],
-                dbTableNames[1]);
-        
+        HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
+
         job.setInputFormatClass(HCatInputFormat.class);
         job.setMapperClass(FactDistinctColumnsMapper.class);
         job.setCombinerClass(FactDistinctColumnsCombiner.class);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
index 8636717..ca0671d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
@@ -22,16 +22,15 @@ import java.io.IOException;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hive.hcatalog.data.HCatRecord;
 import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
 import org.apache.hive.hcatalog.data.schema.HCatSchema;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.model.CubeDesc;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
index e6fd3f1..7e24484 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
@@ -19,22 +19,24 @@
 package org.apache.kylin.job.hadoop.cube;
 
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapreduce.Reducer;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.cuboid.Cuboid;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
index dfa20ca..788c482 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidJob.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import java.io.File;
-
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.Text;
@@ -27,7 +25,6 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
index d0a0d19..9b7b146 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MergeCuboidMapper.java
@@ -27,15 +27,14 @@ import java.util.regex.Pattern;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.InputSplit;
 import org.apache.hadoop.mapreduce.lib.input.FileSplit;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
 import org.apache.kylin.common.util.BytesUtil;
+import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.RowConstants;
 import org.apache.kylin.cube.model.CubeDesc;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
index 8b84277..f1cdff5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/MetadataCleanupJob.java
@@ -18,8 +18,11 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
@@ -31,10 +34,8 @@ import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 
 public class MetadataCleanupJob extends AbstractHadoopJob {
 
@@ -104,7 +105,7 @@ public class MetadataCleanupJob extends AbstractHadoopJob {
         List<String> toDeleteResource = Lists.newArrayList();
 
         // two level resources, snapshot tables and cube statistics
-        for (String resourceRoot : new String[]{ResourceStore.SNAPSHOT_RESOURCE_ROOT}) {
+        for (String resourceRoot : new String[] { ResourceStore.SNAPSHOT_RESOURCE_ROOT }) {
             ArrayList<String> snapshotTables = getStore().listResources(resourceRoot);
 
             if (snapshotTables != null) {
@@ -140,7 +141,6 @@ public class MetadataCleanupJob extends AbstractHadoopJob {
             }
         }
 
-
         if (toDeleteResource.size() > 0) {
             logger.info("The following resources have no reference, will be cleaned from metadata store: \n");
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
index dc65baa..a9a6080 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NDCuboidMapper.java
@@ -21,24 +21,22 @@ package org.apache.kylin.job.hadoop.cube;
 import java.io.IOException;
 import java.util.Collection;
 
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
-
 import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.common.RowKeySplitter;
-import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.cuboid.CuboidScheduler;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author George Song (ysong1)
@@ -64,7 +62,6 @@ public class NDCuboidMapper extends KylinMapper<Text, Text, Text, Text> {
     protected void setup(Context context) throws IOException {
         super.publishConfiguration(context.getConfiguration());
 
-
         cubeName = context.getConfiguration().get(BatchConstants.CFG_CUBE_NAME).toUpperCase();
         segmentName = context.getConfiguration().get(BatchConstants.CFG_CUBE_SEGMENT_NAME).toUpperCase();
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
index 6a8c360..f587ac8 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/NewBaseCuboidMapper.java
@@ -27,19 +27,14 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.kylin.common.util.Bytes;
-import org.apache.kylin.common.util.Pair;
 import org.apache.hadoop.io.Text;
-import org.apache.kylin.job.constant.BatchConstants;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinMapper;
 import org.apache.kylin.common.util.Array;
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesSplitter;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.common.util.SplittedBytes;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -51,6 +46,8 @@ import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
 import org.apache.kylin.dict.lookup.HiveTable;
 import org.apache.kylin.dict.lookup.LookupBytesTable;
+import org.apache.kylin.job.constant.BatchConstants;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.measure.MeasureCodec;
 import org.apache.kylin.metadata.model.FunctionDesc;
@@ -60,6 +57,8 @@ import org.apache.kylin.metadata.model.ParameterDesc;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author George Song (ysong1),honma

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
index 061cb90..6b7cb2b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionJob.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import java.io.File;
-
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.LongWritable;
@@ -29,15 +27,14 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.apache.kylin.metadata.model.DataModelDesc.RealizationCapacity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author xjiang, ysong1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
index 71f6b36..48ad7c5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionMapper.java
@@ -20,9 +20,9 @@ package org.apache.kylin.job.hadoop.cube;
 
 import java.io.IOException;
 
-import org.apache.kylin.common.mr.KylinMapper;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
+import org.apache.kylin.common.mr.KylinMapper;
 
 /**
  * @author ysong1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
index 6bdacfd..fbe3531 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RangeKeyDistributionReducer.java
@@ -25,12 +25,11 @@ import java.util.List;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.util.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.cube.model.v1.CubeDesc.CubeCapacity;
 import org.apache.kylin.job.constant.BatchConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author ysong1
@@ -39,10 +38,10 @@ import org.apache.kylin.job.constant.BatchConstants;
 public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable, Text, LongWritable> {
 
     public static final long ONE_GIGA_BYTES = 1024L * 1024L * 1024L;
-    public static final int SMALL_CUT = 10;  //  10 GB per region
+    public static final int SMALL_CUT = 10; //  10 GB per region
     public static final int MEDIUM_CUT = 20; //  20 GB per region
     public static final int LARGE_CUT = 100; // 100 GB per region
-    
+
     public static final int MAX_REGION = 500;
 
     private static final Logger logger = LoggerFactory.getLogger(RangeKeyDistributionReducer.class);
@@ -78,7 +77,7 @@ public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable
         for (LongWritable v : values) {
             bytesRead += v.get();
         }
-        
+
         if (bytesRead >= ONE_GIGA_BYTES) {
             gbPoints.add(new Text(key));
             bytesRead = 0; // reset bytesRead
@@ -88,15 +87,15 @@ public class RangeKeyDistributionReducer extends KylinReducer<Text, LongWritable
     @Override
     protected void cleanup(Context context) throws IOException, InterruptedException {
         int nRegion = Math.round((float) gbPoints.size() / (float) cut);
-        nRegion = Math.max(1,  nRegion);
+        nRegion = Math.max(1, nRegion);
         nRegion = Math.min(MAX_REGION, nRegion);
-        
+
         int gbPerRegion = gbPoints.size() / nRegion;
         gbPerRegion = Math.max(1, gbPerRegion);
-        
+
         System.out.println(nRegion + " regions");
         System.out.println(gbPerRegion + " GB per region");
-        
+
         for (int i = gbPerRegion; i < gbPoints.size(); i += gbPerRegion) {
             Text key = gbPoints.get(i);
             outputValue.set(i);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
index faf6675..d47739d 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerJob.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
-
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
index af6e7f3..1ba0102 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerMapper.java
@@ -27,9 +27,12 @@ import java.util.Map.Entry;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.io.*;
+import org.apache.hadoop.io.IOUtils;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.ReflectionUtils;
-
 import org.apache.kylin.common.mr.KylinMapper;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
index bceec33..7e082a9 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/RowKeyDistributionCheckerReducer.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
-
 import org.apache.kylin.common.mr.KylinReducer;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
index 09fba01..af4b6f8 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
@@ -18,18 +18,11 @@
 
 package org.apache.kylin.job.hadoop.cube;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.CubeSegment;
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.manager.ExecutableManager;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
@@ -43,15 +36,22 @@ import org.apache.hadoop.hbase.MasterNotRunningException;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.engine.JobEngineConfig;
+import org.apache.kylin.job.execution.ExecutableState;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.manager.ExecutableManager;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
 /**
  * @author ysong1
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
index a2d3190..814e47b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/dict/CreateDictionaryJob.java
@@ -20,7 +20,6 @@ package org.apache.kylin.job.hadoop.dict;
 
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.util.ToolRunner;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.cli.DictionaryGeneratorCLI;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
index 7a4702e..572cde6 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/BulkLoadJob.java
@@ -26,14 +26,12 @@ import org.apache.hadoop.fs.permission.FsPermission;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
 import org.apache.hadoop.util.ToolRunner;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -75,7 +73,7 @@ public class BulkLoadJob extends AbstractHadoopJob {
                 Path columnFamilyPath = new Path(input + cfName);
 
                 // File may have already been auto-loaded (in the case of MapR DB)
-                if(fs.exists(columnFamilyPath)) {
+                if (fs.exists(columnFamilyPath)) {
                     fs.setPermission(columnFamilyPath, permission);
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
index 4be85e5..6988a8a 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hbase/CreateHTableJob.java
@@ -18,14 +18,9 @@
 
 package org.apache.kylin.job.hadoop.hbase;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.tools.DeployCoprocessorCLI;
-import org.apache.kylin.job.tools.LZOSupportnessChecker;
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
@@ -46,13 +41,18 @@ import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.ReflectionUtils;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.HBaseColumnFamilyDesc;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.tools.DeployCoprocessorCLI;
+import org.apache.kylin.job.tools.LZOSupportnessChecker;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author George Song (ysong1)
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java b/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
index ae66a18..b8948b0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hive/CubeJoinedFlatTableDesc.java
@@ -133,7 +133,7 @@ public class CubeJoinedFlatTableDesc implements IJoinedFlatTableDesc {
         if (columnCount != bytesSplitter.getBufferSize()) {
             throw new IllegalArgumentException("Expect " + columnCount + " columns, but see " + bytesSplitter.getBufferSize() + " -- " + bytesSplitter);
         }
-        
+
         // TODO: check data types here
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java b/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
index 187b3da..27fcb6b 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/hive/IIJoinedFlatTableDesc.java
@@ -20,16 +20,13 @@ package org.apache.kylin.job.hadoop.hive;
 
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
-
-import com.google.common.collect.Lists;
 
 import org.apache.kylin.invertedindex.model.IIDesc;
 import org.apache.kylin.metadata.model.DataModelDesc;
-import org.apache.kylin.metadata.model.JoinDesc;
-import org.apache.kylin.metadata.model.LookupDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.google.common.collect.Lists;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 12/30/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
index f636af4..5ab28ad 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIBulkLoadJob.java
@@ -18,12 +18,6 @@
 
 package org.apache.kylin.job.hadoop.invertedindex;
 
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.IISegment;
-import org.apache.kylin.invertedindex.model.IIDesc;
-import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -32,6 +26,12 @@ import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.IISegment;
+import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
 
 /**
  * @author ysong1

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
index fd569ca..7fb1963 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
@@ -18,11 +18,6 @@
 
 package org.apache.kylin.job.hadoop.invertedindex;
 
-import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.model.IIDesc;
-import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
-import org.apache.kylin.job.tools.DeployCoprocessorCLI;
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -36,7 +31,12 @@ import org.apache.hadoop.util.ToolRunner;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.HadoopUtil;
+import org.apache.kylin.invertedindex.IIInstance;
+import org.apache.kylin.invertedindex.IIManager;
+import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.tools.DeployCoprocessorCLI;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
index 24f8b6f..cfcadbe 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsCombiner.java
@@ -21,12 +21,11 @@ package org.apache.kylin.job.hadoop.invertedindex;
 import java.io.IOException;
 import java.util.HashSet;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
-
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
index 9c7051a..af02bca 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsJob.java
@@ -41,7 +41,6 @@ import org.apache.kylin.job.hadoop.hive.IntermediateColumnDesc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 /**
  * @author yangli9
  */
@@ -74,7 +73,7 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
             job.getConfiguration().set(BatchConstants.TABLE_COLUMNS, getColumns(ii));
 
             setJobClasspath(job);
-            
+
             setupMapper();
             setupReducer(output);
 
@@ -103,7 +102,7 @@ public class IIDistinctColumnsJob extends AbstractHadoopJob {
         String tableName = job.getConfiguration().get(BatchConstants.TABLE_NAME);
         String[] dbTableNames = HadoopUtil.parseHiveTableName(tableName);
 
-        log.info("setting hcat input format, db name {} , table name {}", dbTableNames[0],dbTableNames[1]);
+        log.info("setting hcat input format, db name {} , table name {}", dbTableNames[0], dbTableNames[1]);
 
         HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
index 6b6e22b..f45e982 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsMapper.java
@@ -20,15 +20,14 @@ package org.apache.kylin.job.hadoop.invertedindex;
 
 import java.io.IOException;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hive.hcatalog.data.HCatRecord;
 import org.apache.hive.hcatalog.data.schema.HCatFieldSchema;
 import org.apache.hive.hcatalog.data.schema.HCatSchema;
 import org.apache.hive.hcatalog.mapreduce.HCatInputFormat;
-
 import org.apache.kylin.common.mr.KylinMapper;
+import org.apache.kylin.common.util.Bytes;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
index 781b0b4..83e220f 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIDistinctColumnsReducer.java
@@ -25,13 +25,12 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.ShortWritable;
 import org.apache.hadoop.io.Text;
-
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.common.util.ByteArray;
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.job.constant.BatchConstants;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
index 43c0631..e8e1874 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IIFlattenHiveJob.java
@@ -20,21 +20,21 @@ package org.apache.kylin.job.hadoop.invertedindex;
 
 import org.apache.commons.cli.Options;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.invertedindex.IIDescManager;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.model.IIDesc;
+import org.apache.kylin.job.JobInstance;
 import org.apache.kylin.job.JoinedFlatTable;
 import org.apache.kylin.job.cmd.ICommandOutput;
 import org.apache.kylin.job.cmd.ShellCmd;
 import org.apache.kylin.job.engine.JobEngineConfig;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.job.hadoop.hive.IIJoinedFlatTableDesc;
 import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.JobInstance;
-import org.apache.kylin.job.hadoop.hive.IIJoinedFlatTableDesc;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 12/30/14.
@@ -70,7 +70,7 @@ public class IIFlattenHiveJob extends AbstractHadoopJob {
             buf.append(createTableHql + "\n");
             buf.append(insertDataHqls + "\n");
             buf.append("\"");
-            
+
             System.out.println(buf.toString());
             System.out.println("========================");
 
@@ -78,7 +78,7 @@ public class IIFlattenHiveJob extends AbstractHadoopJob {
             ICommandOutput output = cmd.execute();
             System.out.println(output.getOutput());
             System.out.println(output.getExitCode());
-            
+
             return 0;
         } catch (Exception e) {
             printUsage(options);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
index 6a0532e..d975fb1 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexJob.java
@@ -68,7 +68,7 @@ public class InvertedIndexJob extends AbstractHadoopJob {
 
             IIInstance ii = getII(iiname);
             short sharding = ii.getDescriptor().getSharding();
-            
+
             setJobClasspath(job);
 
             setupMapper(intermediateTable);
@@ -105,9 +105,8 @@ public class InvertedIndexJob extends AbstractHadoopJob {
     private void setupMapper(String intermediateTable) throws IOException {
 
         String[] dbTableNames = HadoopUtil.parseHiveTableName(intermediateTable);
-        HCatInputFormat.setInput(job, dbTableNames[0],
-                dbTableNames[1]);
-        
+        HCatInputFormat.setInput(job, dbTableNames[0], dbTableNames[1]);
+
         job.setInputFormatClass(HCatInputFormat.class);
 
         job.setMapperClass(InvertedIndexMapper.class);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
index 735a945..cb807a5 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexMapper.java
@@ -51,7 +51,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
     private ImmutableBytesWritable outputValue;
     private HCatSchema schema = null;
     private List<HCatFieldSchema> fields;
-    
+
     @Override
     protected void setup(Context context) throws IOException {
         super.publishConfiguration(context.getConfiguration());
@@ -69,7 +69,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
         outputValue = new ImmutableBytesWritable(rec.getBytes());
 
         schema = HCatInputFormat.getTableSchema(context.getConfiguration());
-        
+
         fields = schema.getFields();
     }
 
@@ -79,7 +79,7 @@ public class InvertedIndexMapper<KEYIN> extends KylinMapper<KEYIN, HCatRecord, L
         rec.reset();
         for (int i = 0; i < fields.size(); i++) {
             Object fieldValue = record.get(i);
-            rec.setValueString(i, fieldValue == null? null : fieldValue.toString());
+            rec.setValueString(i, fieldValue == null ? null : fieldValue.toString());
         }
 
         outputKey.set(rec.getTimestamp());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
index 141565f..e5d62b0 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexPartitioner.java
@@ -20,7 +20,6 @@ package org.apache.kylin.job.hadoop.invertedindex;
 
 import java.io.IOException;
 
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.hadoop.conf.Configurable;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -34,6 +33,7 @@ import org.apache.kylin.invertedindex.index.TableRecord;
 import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
index 26474d2..66f7005 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/InvertedIndexReducer.java
@@ -22,10 +22,10 @@ import java.io.IOException;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.mr.KylinReducer;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.invertedindex.IISegment;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
index 0f94d32..782dcf6 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionJob.java
@@ -28,12 +28,11 @@ import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.job.constant.BatchConstants;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.job.constant.BatchConstants;
-
 /**
  * @author ysong1
  * 
@@ -64,7 +63,7 @@ public class RandomKeyDistributionJob extends AbstractHadoopJob {
             job = Job.getInstance(getConf(), jobName);
 
             setJobClasspath(job);
-            
+
             addInputDirs(getOptionValue(OPTION_INPUT_PATH), job);
 
             Path output = new Path(getOptionValue(OPTION_OUTPUT_PATH));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
index a7ce079..0442c27 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionMapper.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.ReflectionUtils;
-
 import org.apache.kylin.common.mr.KylinMapper;
 import org.apache.kylin.common.util.RandomSampler;
 import org.apache.kylin.job.constant.BatchConstants;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
index dbbbeb9..16ac05e 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/RandomKeyDistributionReducer.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.util.ReflectionUtils;
-
 import org.apache.kylin.common.mr.KylinReducer;
 import org.apache.kylin.job.constant.BatchConstants;
 
@@ -36,7 +35,6 @@ import org.apache.kylin.job.constant.BatchConstants;
  */
 public class RandomKeyDistributionReducer<KEY extends Writable> extends KylinReducer<KEY, NullWritable, KEY, NullWritable> {
 
-
     private Configuration conf;
     private int regionNumber;
     private List<KEY> allSplits;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
index b2dc06d..2837ae5 100644
--- a/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
+++ b/job/src/main/java/org/apache/kylin/job/impl/threadpool/DefaultContext.java
@@ -18,14 +18,14 @@
 
 package org.apache.kylin.job.impl.threadpool;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.execution.Executable;
-import org.apache.kylin.job.execution.ExecutableContext;
-
 import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.ConcurrentMap;
 
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.job.execution.Executable;
+import org.apache.kylin.job.execution.ExecutableContext;
+
 /**
  * Created by qianzhou on 12/16/14.
  */
@@ -38,6 +38,7 @@ public class DefaultContext implements ExecutableContext {
         this.runningJobs = runningJobs;
         this.kylinConfig = kylinConfig;
     }
+
     @Override
     public Object getSchedulerContext() {
         return null;



[11/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
index 89eb3b1..3cb0793 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
@@ -17,27 +17,118 @@
 */
 package org.apache.calcite.sql2rel;
 
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.*;
+import static org.apache.calcite.sql.SqlUtil.stripAs;
+import static org.apache.calcite.util.Static.RESOURCE;
+
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.TreeSet;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
 import org.apache.calcite.linq4j.Ord;
-import org.apache.calcite.plan.*;
+import org.apache.calcite.plan.Convention;
+import org.apache.calcite.plan.RelOptCluster;
+import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.plan.RelOptSamplingParameters;
+import org.apache.calcite.plan.RelOptTable;
+import org.apache.calcite.plan.RelOptUtil;
 import org.apache.calcite.prepare.Prepare;
 import org.apache.calcite.prepare.RelOptTableImpl;
-import org.apache.calcite.rel.*;
-import org.apache.calcite.rel.core.*;
-import org.apache.calcite.rel.logical.*;
+import org.apache.calcite.rel.RelCollation;
+import org.apache.calcite.rel.RelCollations;
+import org.apache.calcite.rel.RelFieldCollation;
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.RelShuttle;
+import org.apache.calcite.rel.core.Aggregate;
+import org.apache.calcite.rel.core.AggregateCall;
+import org.apache.calcite.rel.core.Collect;
+import org.apache.calcite.rel.core.CorrelationId;
+import org.apache.calcite.rel.core.Join;
+import org.apache.calcite.rel.core.JoinInfo;
+import org.apache.calcite.rel.core.JoinRelType;
+import org.apache.calcite.rel.core.Project;
+import org.apache.calcite.rel.core.Sample;
+import org.apache.calcite.rel.core.Uncollect;
+import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.logical.LogicalCorrelate;
+import org.apache.calcite.rel.logical.LogicalIntersect;
+import org.apache.calcite.rel.logical.LogicalJoin;
+import org.apache.calcite.rel.logical.LogicalMinus;
+import org.apache.calcite.rel.logical.LogicalProject;
+import org.apache.calcite.rel.logical.LogicalSort;
+import org.apache.calcite.rel.logical.LogicalTableFunctionScan;
+import org.apache.calcite.rel.logical.LogicalTableModify;
+import org.apache.calcite.rel.logical.LogicalTableScan;
+import org.apache.calcite.rel.logical.LogicalUnion;
+import org.apache.calcite.rel.logical.LogicalValues;
 import org.apache.calcite.rel.metadata.RelColumnMapping;
 import org.apache.calcite.rel.stream.LogicalDelta;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rel.type.RelDataTypeField;
-import org.apache.calcite.rex.*;
+import org.apache.calcite.rex.RexBuilder;
+import org.apache.calcite.rex.RexCall;
+import org.apache.calcite.rex.RexCallBinding;
+import org.apache.calcite.rex.RexCorrelVariable;
+import org.apache.calcite.rex.RexDynamicParam;
+import org.apache.calcite.rex.RexFieldAccess;
+import org.apache.calcite.rex.RexFieldCollation;
+import org.apache.calcite.rex.RexInputRef;
+import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexRangeRef;
+import org.apache.calcite.rex.RexShuttle;
+import org.apache.calcite.rex.RexUtil;
+import org.apache.calcite.rex.RexVisitorImpl;
+import org.apache.calcite.rex.RexWindowBound;
 import org.apache.calcite.schema.ModifiableTable;
 import org.apache.calcite.schema.ModifiableView;
 import org.apache.calcite.schema.Table;
 import org.apache.calcite.schema.TranslatableTable;
-import org.apache.calcite.sql.*;
+import org.apache.calcite.sql.JoinConditionType;
+import org.apache.calcite.sql.JoinType;
+import org.apache.calcite.sql.SemiJoinType;
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlBasicCall;
+import org.apache.calcite.sql.SqlCall;
+import org.apache.calcite.sql.SqlDataTypeSpec;
+import org.apache.calcite.sql.SqlDelete;
+import org.apache.calcite.sql.SqlDynamicParam;
+import org.apache.calcite.sql.SqlExplainLevel;
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlInsert;
+import org.apache.calcite.sql.SqlIntervalQualifier;
+import org.apache.calcite.sql.SqlJoin;
+import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlMerge;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.SqlNodeList;
+import org.apache.calcite.sql.SqlNumericLiteral;
+import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.SqlOperatorTable;
+import org.apache.calcite.sql.SqlSampleSpec;
+import org.apache.calcite.sql.SqlSelect;
+import org.apache.calcite.sql.SqlSelectKeyword;
+import org.apache.calcite.sql.SqlSetOperator;
+import org.apache.calcite.sql.SqlUpdate;
+import org.apache.calcite.sql.SqlUtil;
+import org.apache.calcite.sql.SqlValuesOperator;
+import org.apache.calcite.sql.SqlWindow;
+import org.apache.calcite.sql.SqlWith;
+import org.apache.calcite.sql.SqlWithItem;
 import org.apache.calcite.sql.fun.SqlCountAggFunction;
 import org.apache.calcite.sql.fun.SqlInOperator;
 import org.apache.calcite.sql.fun.SqlRowOperator;
@@ -49,19 +140,38 @@ import org.apache.calcite.sql.type.SqlTypeUtil;
 import org.apache.calcite.sql.type.TableFunctionReturnTypeInference;
 import org.apache.calcite.sql.util.SqlBasicVisitor;
 import org.apache.calcite.sql.util.SqlVisitor;
-import org.apache.calcite.sql.validate.*;
-import org.apache.calcite.util.*;
+import org.apache.calcite.sql.validate.AggregatingSelectScope;
+import org.apache.calcite.sql.validate.CollectNamespace;
+import org.apache.calcite.sql.validate.DelegatingScope;
+import org.apache.calcite.sql.validate.ListScope;
+import org.apache.calcite.sql.validate.ParameterScope;
+import org.apache.calcite.sql.validate.SelectScope;
+import org.apache.calcite.sql.validate.SqlMonotonicity;
+import org.apache.calcite.sql.validate.SqlQualified;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableFunction;
+import org.apache.calcite.sql.validate.SqlUserDefinedTableMacro;
+import org.apache.calcite.sql.validate.SqlValidator;
+import org.apache.calcite.sql.validate.SqlValidatorImpl;
+import org.apache.calcite.sql.validate.SqlValidatorNamespace;
+import org.apache.calcite.sql.validate.SqlValidatorScope;
+import org.apache.calcite.sql.validate.SqlValidatorUtil;
+import org.apache.calcite.util.ImmutableBitSet;
+import org.apache.calcite.util.ImmutableIntList;
+import org.apache.calcite.util.NlsString;
+import org.apache.calcite.util.NumberUtil;
+import org.apache.calcite.util.Pair;
+import org.apache.calcite.util.Util;
 import org.apache.calcite.util.mapping.Mappings;
 import org.apache.calcite.util.trace.CalciteTrace;
 
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import static org.apache.calcite.sql.SqlUtil.stripAs;
-import static org.apache.calcite.util.Static.RESOURCE;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 /*
  * OVERRIDE POINT:
@@ -79,4845 +189,3983 @@ import static org.apache.calcite.util.Static.RESOURCE;
  * {@link #convertExpression(SqlNode)}.
  */
 public class SqlToRelConverter {
-  //~ Static fields/initializers ---------------------------------------------
-
-  protected static final Logger SQL2REL_LOGGER =
-      CalciteTrace.getSqlToRelTracer();
-
-  private static final BigDecimal TWO = BigDecimal.valueOf(2L);
-
-  //~ Instance fields --------------------------------------------------------
-
-  protected final SqlValidator validator;
-  protected final RexBuilder rexBuilder;
-  protected final Prepare.CatalogReader catalogReader;
-  protected final RelOptCluster cluster;
-  private DefaultValueFactory defaultValueFactory;
-  private SubqueryConverter subqueryConverter;
-  protected final List<RelNode> leaves = new ArrayList<>();
-  private final List<SqlDynamicParam> dynamicParamSqlNodes = new ArrayList<>();
-  private final SqlOperatorTable opTab;
-  private boolean shouldConvertTableAccess;
-  protected final RelDataTypeFactory typeFactory;
-  private final SqlNodeToRexConverter exprConverter;
-  private boolean decorrelationEnabled;
-  private boolean trimUnusedFields;
-  private boolean shouldCreateValuesRel;
-  private boolean isExplain;
-  private int nDynamicParamsInExplain;
-
-  /**
-   * Fields used in name resolution for correlated subqueries.
-   */
-  private final Map<String, DeferredLookup> mapCorrelToDeferred =
-      new HashMap<>();
-  private int nextCorrel = 0;
-
-  private static final String CORREL_PREFIX = "$cor";
-
-  /**
-   * Stack of names of datasets requested by the <code>
-   * TABLE(SAMPLE(&lt;datasetName&gt;, &lt;query&gt;))</code> construct.
-   */
-  private final Stack<String> datasetStack = new Stack<>();
-
-  /**
-   * Mapping of non-correlated subqueries that have been converted to their
-   * equivalent constants. Used to avoid re-evaluating the subquery if it's
-   * already been evaluated.
-   */
-  private final Map<SqlNode, RexNode> mapConvertedNonCorrSubqs =
-      new HashMap<>();
-
-  public final RelOptTable.ViewExpander viewExpander;
-
-  //~ Constructors -----------------------------------------------------------
-  /**
-   * Creates a converter.
-   *
-   * @param viewExpander    Preparing statement
-   * @param validator       Validator
-   * @param catalogReader   Schema
-   * @param planner         Planner
-   * @param rexBuilder      Rex builder
-   * @param convertletTable Expression converter
-   */
-  @Deprecated // will be removed before 2.0
-  public SqlToRelConverter(
-      RelOptTable.ViewExpander viewExpander,
-      SqlValidator validator,
-      Prepare.CatalogReader catalogReader,
-      RelOptPlanner planner,
-      RexBuilder rexBuilder,
-      SqlRexConvertletTable convertletTable) {
-    this(viewExpander, validator, catalogReader,
-        RelOptCluster.create(planner, rexBuilder), convertletTable);
-  }
-
-  /* Creates a converter. */
-  public SqlToRelConverter(
-      RelOptTable.ViewExpander viewExpander,
-      SqlValidator validator,
-      Prepare.CatalogReader catalogReader,
-      RelOptCluster cluster,
-      SqlRexConvertletTable convertletTable) {
-    this.viewExpander = viewExpander;
-    this.opTab =
-        (validator
-            == null) ? SqlStdOperatorTable.instance()
-            : validator.getOperatorTable();
-    this.validator = validator;
-    this.catalogReader = catalogReader;
-    this.defaultValueFactory = new NullDefaultValueFactory();
-    this.subqueryConverter = new NoOpSubqueryConverter();
-    this.rexBuilder = cluster.getRexBuilder();
-    this.typeFactory = rexBuilder.getTypeFactory();
-    this.cluster = Preconditions.checkNotNull(cluster);
-    this.shouldConvertTableAccess = true;
-    this.exprConverter =
-        new SqlNodeToRexConverterImpl(convertletTable);
-    decorrelationEnabled = true;
-    trimUnusedFields = false;
-    shouldCreateValuesRel = true;
-    isExplain = false;
-    nDynamicParamsInExplain = 0;
-  }
-
-  //~ Methods ----------------------------------------------------------------
-
-  /**
-   * @return the RelOptCluster in use.
-   */
-  public RelOptCluster getCluster() {
-    return cluster;
-  }
-
-  /**
-   * Returns the row-expression builder.
-   */
-  public RexBuilder getRexBuilder() {
-    return rexBuilder;
-  }
-
-  /**
-   * Returns the number of dynamic parameters encountered during translation;
-   * this must only be called after {@link #convertQuery}.
-   *
-   * @return number of dynamic parameters
-   */
-  public int getDynamicParamCount() {
-    return dynamicParamSqlNodes.size();
-  }
-
-  /**
-   * Returns the type inferred for a dynamic parameter.
-   *
-   * @param index 0-based index of dynamic parameter
-   * @return inferred type, never null
-   */
-  public RelDataType getDynamicParamType(int index) {
-    SqlNode sqlNode = dynamicParamSqlNodes.get(index);
-    if (sqlNode == null) {
-      throw Util.needToImplement("dynamic param type inference");
-    }
-    return validator.getValidatedNodeType(sqlNode);
-  }
-
-  /**
-   * Returns the current count of the number of dynamic parameters in an
-   * EXPLAIN PLAN statement.
-   *
-   * @param increment if true, increment the count
-   * @return the current count before the optional increment
-   */
-  public int getDynamicParamCountInExplain(boolean increment) {
-    int retVal = nDynamicParamsInExplain;
-    if (increment) {
-      ++nDynamicParamsInExplain;
-    }
-    return retVal;
-  }
-
-  /**
-   * @return mapping of non-correlated subqueries that have been converted to
-   * the constants that they evaluate to
-   */
-  public Map<SqlNode, RexNode> getMapConvertedNonCorrSubqs() {
-    return mapConvertedNonCorrSubqs;
-  }
-
-  /**
-   * Adds to the current map of non-correlated converted subqueries the
-   * elements from another map that contains non-correlated subqueries that
-   * have been converted by another SqlToRelConverter.
-   *
-   * @param alreadyConvertedNonCorrSubqs the other map
-   */
-  public void addConvertedNonCorrSubqs(
-      Map<SqlNode, RexNode> alreadyConvertedNonCorrSubqs) {
-    mapConvertedNonCorrSubqs.putAll(alreadyConvertedNonCorrSubqs);
-  }
-
-  /**
-   * Set a new DefaultValueFactory. To have any effect, this must be called
-   * before any convert method.
-   *
-   * @param factory new DefaultValueFactory
-   */
-  public void setDefaultValueFactory(DefaultValueFactory factory) {
-    defaultValueFactory = factory;
-  }
-
-  /**
-   * Sets a new SubqueryConverter. To have any effect, this must be called
-   * before any convert method.
-   *
-   * @param converter new SubqueryConverter
-   */
-  public void setSubqueryConverter(SubqueryConverter converter) {
-    subqueryConverter = converter;
-  }
-
-  /**
-   * Indicates that the current statement is part of an EXPLAIN PLAN statement
-   *
-   * @param nDynamicParams number of dynamic parameters in the statement
-   */
-  public void setIsExplain(int nDynamicParams) {
-    isExplain = true;
-    nDynamicParamsInExplain = nDynamicParams;
-  }
-
-  /**
-   * Controls whether table access references are converted to physical rels
-   * immediately. The optimizer doesn't like leaf rels to have
-   * {@link Convention#NONE}. However, if we are doing further conversion
-   * passes (e.g. {@link RelStructuredTypeFlattener}), then we may need to
-   * defer conversion. To have any effect, this must be called before any
-   * convert method.
-   *
-   * @param enabled true for immediate conversion (the default); false to
-   *                generate logical LogicalTableScan instances
-   */
-  public void enableTableAccessConversion(boolean enabled) {
-    shouldConvertTableAccess = enabled;
-  }
-
-  /**
-   * Controls whether instances of
-   * {@link org.apache.calcite.rel.logical.LogicalValues} are generated. These
-   * may not be supported by all physical implementations. To have any effect,
-   * this must be called before any convert method.
-   *
-   * @param enabled true to allow LogicalValues to be generated (the default);
-   *                false to force substitution of Project+OneRow instead
-   */
-  public void enableValuesRelCreation(boolean enabled) {
-    shouldCreateValuesRel = enabled;
-  }
-
-  private void checkConvertedType(SqlNode query, RelNode result) {
-    if (!query.isA(SqlKind.DML)) {
-      // Verify that conversion from SQL to relational algebra did
-      // not perturb any type information.  (We can't do this if the
-      // SQL statement is something like an INSERT which has no
-      // validator type information associated with its result,
-      // hence the namespace check above.)
-      RelDataType convertedRowType = result.getRowType();
-      if (!checkConvertedRowType(query, convertedRowType)) {
-        RelDataType validatedRowType =
-            validator.getValidatedNodeType(query);
-        validatedRowType = uniquifyFields(validatedRowType);
-        throw Util.newInternal("Conversion to relational algebra failed to "
-            + "preserve datatypes:\n"
-            + "validated type:\n"
-            + validatedRowType.getFullTypeString()
-            + "\nconverted type:\n"
-            + convertedRowType.getFullTypeString()
-            + "\nrel:\n"
-            + RelOptUtil.toString(result));
-      }
-    }
-  }
-
-  public RelNode flattenTypes(
-      RelNode rootRel,
-      boolean restructure) {
-    RelStructuredTypeFlattener typeFlattener =
-        new RelStructuredTypeFlattener(rexBuilder, createToRelContext());
-    return typeFlattener.rewrite(rootRel, restructure);
-  }
-
-  /**
-   * If subquery is correlated and decorrelation is enabled, performs
-   * decorrelation.
-   *
-   * @param query   Query
-   * @param rootRel Root relational expression
-   * @return New root relational expression after decorrelation
-   */
-  public RelNode decorrelate(SqlNode query, RelNode rootRel) {
-    if (!enableDecorrelation()) {
-      return rootRel;
-    }
-    final RelNode result = decorrelateQuery(rootRel);
-    if (result != rootRel) {
-      checkConvertedType(query, result);
-    }
-    return result;
-  }
-
-  /**
-   * Walks over a tree of relational expressions, replacing each
-   * {@link RelNode} with a 'slimmed down' relational expression that projects
-   * only the fields required by its consumer.
-   *
-   * <p>This may make things easier for the optimizer, by removing crud that
-   * would expand the search space, but is difficult for the optimizer itself
-   * to do it, because optimizer rules must preserve the number and type of
-   * fields. Hence, this transform that operates on the entire tree, similar
-   * to the {@link RelStructuredTypeFlattener type-flattening transform}.
-   *
-   * <p>Currently this functionality is disabled in farrago/luciddb; the
-   * default implementation of this method does nothing.
-   *
-   * @param rootRel Relational expression that is at the root of the tree
-   * @return Trimmed relational expression
-   */
-  public RelNode trimUnusedFields(RelNode rootRel) {
-    // Trim fields that are not used by their consumer.
-    if (isTrimUnusedFields()) {
-      final RelFieldTrimmer trimmer = newFieldTrimmer();
-      rootRel = trimmer.trim(rootRel);
-      boolean dumpPlan = SQL2REL_LOGGER.isLoggable(Level.FINE);
-      if (dumpPlan) {
-        SQL2REL_LOGGER.fine(
-            RelOptUtil.dumpPlan(
-                "Plan after trimming unused fields",
-                rootRel,
-                false,
-                SqlExplainLevel.EXPPLAN_ATTRIBUTES));
-      }
-    }
-    return rootRel;
-  }
-
-  /**
-   * Creates a RelFieldTrimmer.
-   *
-   * @return Field trimmer
-   */
-  protected RelFieldTrimmer newFieldTrimmer() {
-    return new RelFieldTrimmer(validator);
-  }
-
-  /**
-   * Converts an unvalidated query's parse tree into a relational expression.
-   *
-   * @param query           Query to convert
-   * @param needsValidation Whether to validate the query before converting;
-   *                        <code>false</code> if the query has already been
-   *                        validated.
-   * @param top             Whether the query is top-level, say if its result
-   *                        will become a JDBC result set; <code>false</code> if
-   *                        the query will be part of a view.
-   */
-  public RelNode convertQuery(
-      SqlNode query,
-      final boolean needsValidation,
-      final boolean top) {
-    if (needsValidation) {
-      query = validator.validate(query);
-    }
-
-    RelNode result = convertQueryRecursive(query, top, null);
-    if (top && isStream(query)) {
-      result = new LogicalDelta(cluster, result.getTraitSet(), result);
-    }
-    checkConvertedType(query, result);
-
-    boolean dumpPlan = SQL2REL_LOGGER.isLoggable(Level.FINE);
-    if (dumpPlan) {
-      SQL2REL_LOGGER.fine(
-          RelOptUtil.dumpPlan(
-              "Plan after converting SqlNode to RelNode",
-              result,
-              false,
-              SqlExplainLevel.EXPPLAN_ATTRIBUTES));
-    }
+    //~ Static fields/initializers ---------------------------------------------
+
+    protected static final Logger SQL2REL_LOGGER = CalciteTrace.getSqlToRelTracer();
+
+    private static final BigDecimal TWO = BigDecimal.valueOf(2L);
+
+    //~ Instance fields --------------------------------------------------------
+
+    protected final SqlValidator validator;
+    protected final RexBuilder rexBuilder;
+    protected final Prepare.CatalogReader catalogReader;
+    protected final RelOptCluster cluster;
+    private DefaultValueFactory defaultValueFactory;
+    private SubqueryConverter subqueryConverter;
+    protected final List<RelNode> leaves = new ArrayList<>();
+    private final List<SqlDynamicParam> dynamicParamSqlNodes = new ArrayList<>();
+    private final SqlOperatorTable opTab;
+    private boolean shouldConvertTableAccess;
+    protected final RelDataTypeFactory typeFactory;
+    private final SqlNodeToRexConverter exprConverter;
+    private boolean decorrelationEnabled;
+    private boolean trimUnusedFields;
+    private boolean shouldCreateValuesRel;
+    private boolean isExplain;
+    private int nDynamicParamsInExplain;
 
-    return result;
-  }
-
-  private static boolean isStream(SqlNode query) {
-    return query instanceof SqlSelect
-        && ((SqlSelect) query).isKeywordPresent(SqlSelectKeyword.STREAM);
-  }
-
-  protected boolean checkConvertedRowType(
-      SqlNode query,
-      RelDataType convertedRowType) {
-    RelDataType validatedRowType = validator.getValidatedNodeType(query);
-    validatedRowType = uniquifyFields(validatedRowType);
-
-    return RelOptUtil.equal(
-        "validated row type", validatedRowType, "converted row type", convertedRowType, false);
-  }
-
-  protected RelDataType uniquifyFields(RelDataType rowType) {
-    return validator.getTypeFactory().createStructType(
-        RelOptUtil.getFieldTypeList(rowType),
-        SqlValidatorUtil.uniquify(rowType.getFieldNames()));
-  }
-
-  /**
-   * Converts a SELECT statement's parse tree into a relational expression.
-   */
-  public RelNode convertSelect(SqlSelect select) {
-    final SqlValidatorScope selectScope = validator.getWhereScope(select);
-    final Blackboard bb = createBlackboard(selectScope, null);
-    convertSelectImpl(bb, select);
-    return bb.root;
-  }
-
-  /**
-   * Factory method for creating translation workspace.
-   */
-  protected Blackboard createBlackboard(
-      SqlValidatorScope scope,
-      Map<String, RexNode> nameToNodeMap) {
-    return new Blackboard(scope, nameToNodeMap);
-  }
-
-  /**
-   * Implementation of {@link #convertSelect(SqlSelect)}; derived class may
-   * override.
-   */
-  protected void convertSelectImpl(
-      final Blackboard bb,
-      SqlSelect select) {
-    convertFrom(
-        bb,
-        select.getFrom());
-    convertWhere(
-        bb,
-        select.getWhere());
-
-    final List<SqlNode> orderExprList = new ArrayList<>();
-    final List<RelFieldCollation> collationList = new ArrayList<>();
-    gatherOrderExprs(
-        bb,
-        select,
-        select.getOrderList(),
-        orderExprList,
-        collationList);
-    final RelCollation collation =
-        cluster.traitSet().canonize(RelCollations.of(collationList));
-
-    if (validator.isAggregate(select)) {
-      convertAgg(
-          bb,
-          select,
-          orderExprList);
-    } else {
-      convertSelectList(
-          bb,
-          select,
-          orderExprList);
-    }
+    /**
+     * Fields used in name resolution for correlated subqueries.
+     */
+    private final Map<String, DeferredLookup> mapCorrelToDeferred = new HashMap<>();
+    private int nextCorrel = 0;
 
-    if (select.isDistinct()) {
-      distinctify(bb, true);
-    }
-    convertOrder(
-        select, bb, collation, orderExprList, select.getOffset(),
-        select.getFetch());
-    bb.setRoot(bb.root, true);
-  }
-
-  /**
-   * Having translated 'SELECT ... FROM ... [GROUP BY ...] [HAVING ...]', adds
-   * a relational expression to make the results unique.
-   *
-   * <p>If the SELECT clause contains duplicate expressions, adds
-   * {@link org.apache.calcite.rel.logical.LogicalProject}s so that we are
-   * grouping on the minimal set of keys. The performance gain isn't huge, but
-   * it is difficult to detect these duplicate expressions later.
-   *
-   * @param bb               Blackboard
-   * @param checkForDupExprs Check for duplicate expressions
-   */
-  private void distinctify(
-      Blackboard bb,
-      boolean checkForDupExprs) {
-    // Look for duplicate expressions in the project.
-    // Say we have 'select x, y, x, z'.
-    // Then dups will be {[2, 0]}
-    // and oldToNew will be {[0, 0], [1, 1], [2, 0], [3, 2]}
-    RelNode rel = bb.root;
-    if (checkForDupExprs && (rel instanceof LogicalProject)) {
-      LogicalProject project = (LogicalProject) rel;
-      final List<RexNode> projectExprs = project.getProjects();
-      final List<Integer> origins = new ArrayList<>();
-      int dupCount = 0;
-      for (int i = 0; i < projectExprs.size(); i++) {
-        int x = findExpr(projectExprs.get(i), projectExprs, i);
-        if (x >= 0) {
-          origins.add(x);
-          ++dupCount;
-        } else {
-          origins.add(i);
-        }
-      }
-      if (dupCount == 0) {
-        distinctify(bb, false);
-        return;
-      }
-
-      final Map<Integer, Integer> squished = Maps.newHashMap();
-      final List<RelDataTypeField> fields = rel.getRowType().getFieldList();
-      final List<Pair<RexNode, String>> newProjects = Lists.newArrayList();
-      for (int i = 0; i < fields.size(); i++) {
-        if (origins.get(i) == i) {
-          squished.put(i, newProjects.size());
-          newProjects.add(RexInputRef.of2(i, fields));
-        }
-      }
-      rel =
-          LogicalProject.create(rel, Pair.left(newProjects),
-              Pair.right(newProjects));
-      bb.root = rel;
-      distinctify(bb, false);
-      rel = bb.root;
-
-      // Create the expressions to reverse the mapping.
-      // Project($0, $1, $0, $2).
-      final List<Pair<RexNode, String>> undoProjects = Lists.newArrayList();
-      for (int i = 0; i < fields.size(); i++) {
-        final int origin = origins.get(i);
-        RelDataTypeField field = fields.get(i);
-        undoProjects.add(
-            Pair.of(
-                (RexNode) new RexInputRef(
-                    squished.get(origin), field.getType()),
-                field.getName()));
-      }
-
-      rel =
-          LogicalProject.create(rel, Pair.left(undoProjects),
-              Pair.right(undoProjects));
-      bb.setRoot(
-          rel,
-          false);
-
-      return;
-    }
+    private static final String CORREL_PREFIX = "$cor";
 
-    // Usual case: all of the expressions in the SELECT clause are
-    // different.
-    final ImmutableBitSet groupSet =
-        ImmutableBitSet.range(rel.getRowType().getFieldCount());
-    rel =
-        createAggregate(bb, false, groupSet, ImmutableList.of(groupSet),
-            ImmutableList.<AggregateCall>of());
-
-    bb.setRoot(
-        rel,
-        false);
-  }
-
-  private int findExpr(RexNode seek, List<RexNode> exprs, int count) {
-    for (int i = 0; i < count; i++) {
-      RexNode expr = exprs.get(i);
-      if (expr.toString().equals(seek.toString())) {
-        return i;
-      }
-    }
-    return -1;
-  }
-
-  /**
-   * Converts a query's ORDER BY clause, if any.
-   *
-   * @param select        Query
-   * @param bb            Blackboard
-   * @param collation     Collation list
-   * @param orderExprList Method populates this list with orderBy expressions
-   *                      not present in selectList
-   * @param offset        Expression for number of rows to discard before
-   *                      returning first row
-   * @param fetch         Expression for number of rows to fetch
-   */
-  protected void convertOrder(
-      SqlSelect select,
-      Blackboard bb,
-      RelCollation collation,
-      List<SqlNode> orderExprList,
-      SqlNode offset,
-      SqlNode fetch) {
-    if (select.getOrderList() == null) {
-      assert collation.getFieldCollations().isEmpty();
-      if (offset == null && fetch == null) {
-        return;
-      }
-    }
+    /**
+     * Stack of names of datasets requested by the <code>
+     * TABLE(SAMPLE(&lt;datasetName&gt;, &lt;query&gt;))</code> construct.
+     */
+    private final Stack<String> datasetStack = new Stack<>();
 
-    // Create a sorter using the previously constructed collations.
-    bb.setRoot(
-        LogicalSort.create(bb.root, collation,
-            offset == null ? null : convertExpression(offset),
-            fetch == null ? null : convertExpression(fetch)),
-        false);
-
-    // If extra expressions were added to the project list for sorting,
-    // add another project to remove them.
-    if (orderExprList.size() > 0) {
-      final List<RexNode> exprs = new ArrayList<>();
-      final RelDataType rowType = bb.root.getRowType();
-      final int fieldCount =
-          rowType.getFieldCount() - orderExprList.size();
-      for (int i = 0; i < fieldCount; i++) {
-        exprs.add(rexBuilder.makeInputRef(bb.root, i));
-      }
-      bb.setRoot(
-          new LogicalProject(
-              cluster,
-              cluster.traitSetOf(RelCollations.PRESERVE),
-              bb.root,
-              exprs,
-              cluster.getTypeFactory().createStructType(
-                  rowType.getFieldList().subList(0, fieldCount))),
-          false);
-    }
-  }
-
-  /**
-   * Returns whether a given node contains a {@link SqlInOperator}.
-   *
-   * @param node a RexNode tree
-   */
-  private static boolean containsInOperator(
-      SqlNode node) {
-    try {
-      SqlVisitor<Void> visitor =
-          new SqlBasicVisitor<Void>() {
-            public Void visit(SqlCall call) {
-              if (call.getOperator() instanceof SqlInOperator) {
-                throw new Util.FoundOne(call);
-              }
-              return super.visit(call);
-            }
-          };
-      node.accept(visitor);
-      return false;
-    } catch (Util.FoundOne e) {
-      Util.swallow(e, null);
-      return true;
-    }
-  }
-
-  /**
-   * Push down all the NOT logical operators into any IN/NOT IN operators.
-   *
-   * @param sqlNode the root node from which to look for NOT operators
-   * @return the transformed SqlNode representation with NOT pushed down.
-   */
-  private static SqlNode pushDownNotForIn(SqlNode sqlNode) {
-    if ((sqlNode instanceof SqlCall) && containsInOperator(sqlNode)) {
-      SqlCall sqlCall = (SqlCall) sqlNode;
-      if ((sqlCall.getOperator() == SqlStdOperatorTable.AND)
-          || (sqlCall.getOperator() == SqlStdOperatorTable.OR)) {
-        SqlNode[] sqlOperands = ((SqlBasicCall) sqlCall).operands;
-        for (int i = 0; i < sqlOperands.length; i++) {
-          sqlOperands[i] = pushDownNotForIn(sqlOperands[i]);
-        }
-        return sqlNode;
-      } else if (sqlCall.getOperator() == SqlStdOperatorTable.NOT) {
-        SqlNode childNode = sqlCall.operand(0);
-        assert childNode instanceof SqlCall;
-        SqlBasicCall childSqlCall = (SqlBasicCall) childNode;
-        if (childSqlCall.getOperator() == SqlStdOperatorTable.AND) {
-          SqlNode[] andOperands = childSqlCall.getOperands();
-          SqlNode[] orOperands = new SqlNode[andOperands.length];
-          for (int i = 0; i < orOperands.length; i++) {
-            orOperands[i] =
-                SqlStdOperatorTable.NOT.createCall(
-                    SqlParserPos.ZERO,
-                    andOperands[i]);
-          }
-          for (int i = 0; i < orOperands.length; i++) {
-            orOperands[i] = pushDownNotForIn(orOperands[i]);
-          }
-          return SqlStdOperatorTable.OR.createCall(SqlParserPos.ZERO,
-              orOperands[0], orOperands[1]);
-        } else if (childSqlCall.getOperator() == SqlStdOperatorTable.OR) {
-          SqlNode[] orOperands = childSqlCall.getOperands();
-          SqlNode[] andOperands = new SqlNode[orOperands.length];
-          for (int i = 0; i < andOperands.length; i++) {
-            andOperands[i] =
-                SqlStdOperatorTable.NOT.createCall(
-                    SqlParserPos.ZERO,
-                    orOperands[i]);
-          }
-          for (int i = 0; i < andOperands.length; i++) {
-            andOperands[i] = pushDownNotForIn(andOperands[i]);
-          }
-          return SqlStdOperatorTable.AND.createCall(SqlParserPos.ZERO,
-              andOperands[0], andOperands[1]);
-        } else if (childSqlCall.getOperator() == SqlStdOperatorTable.NOT) {
-          SqlNode[] notOperands = childSqlCall.getOperands();
-          assert notOperands.length == 1;
-          return pushDownNotForIn(notOperands[0]);
-        } else if (childSqlCall.getOperator() instanceof SqlInOperator) {
-          SqlNode[] inOperands = childSqlCall.getOperands();
-          SqlInOperator inOp =
-              (SqlInOperator) childSqlCall.getOperator();
-          if (inOp.isNotIn()) {
-            return SqlStdOperatorTable.IN.createCall(
-                SqlParserPos.ZERO,
-                inOperands[0],
-                inOperands[1]);
-          } else {
-            return SqlStdOperatorTable.NOT_IN.createCall(
-                SqlParserPos.ZERO,
-                inOperands[0],
-                inOperands[1]);
-          }
-        } else {
-          // childSqlCall is "leaf" node in a logical expression tree
-          // (only considering AND, OR, NOT)
-          return sqlNode;
-        }
-      } else {
-        // sqlNode is "leaf" node in a logical expression tree
-        // (only considering AND, OR, NOT)
-        return sqlNode;
-      }
-    } else {
-      // tree rooted at sqlNode does not contain inOperator
-      return sqlNode;
-    }
-  }
-
-  /**
-   * Converts a WHERE clause.
-   *
-   * @param bb    Blackboard
-   * @param where WHERE clause, may be null
-   */
-  private void convertWhere(
-      final Blackboard bb,
-      final SqlNode where) {
-    if (where == null) {
-      return;
-    }
-    SqlNode newWhere = pushDownNotForIn(where);
-    replaceSubqueries(bb, newWhere, RelOptUtil.Logic.UNKNOWN_AS_FALSE);
-    final RexNode convertedWhere = bb.convertExpression(newWhere);
-
-    // only allocate filter if the condition is not TRUE
-    if (!convertedWhere.isAlwaysTrue()) {
-      bb.setRoot(
-          RelOptUtil.createFilter(bb.root, convertedWhere),
-          false);
-    }
-  }
-
-  private void replaceSubqueries(
-      final Blackboard bb,
-      final SqlNode expr,
-      RelOptUtil.Logic logic) {
-    findSubqueries(bb, expr, logic, false);
-    for (SubQuery node : bb.subqueryList) {
-      substituteSubquery(bb, node);
-    }
-  }
+    /**
+     * Mapping of non-correlated subqueries that have been converted to their
+     * equivalent constants. Used to avoid re-evaluating the subquery if it's
+     * already been evaluated.
+     */
+    private final Map<SqlNode, RexNode> mapConvertedNonCorrSubqs = new HashMap<>();
 
-  private void substituteSubquery(Blackboard bb, SubQuery subQuery) {
-    final RexNode expr = subQuery.expr;
-    if (expr != null) {
-      // Already done.
-      return;
-    }
+    public final RelOptTable.ViewExpander viewExpander;
 
-    final SqlBasicCall call;
-    final RelNode rel;
-    final SqlNode query;
-    final Pair<RelNode, Boolean> converted;
-    switch (subQuery.node.getKind()) {
-    case CURSOR:
-      convertCursor(bb, subQuery);
-      return;
-
-    case MULTISET_QUERY_CONSTRUCTOR:
-    case MULTISET_VALUE_CONSTRUCTOR:
-      rel = convertMultisets(ImmutableList.of(subQuery.node), bb);
-      subQuery.expr = bb.register(rel, JoinRelType.INNER);
-      return;
-
-    case IN:
-      call = (SqlBasicCall) subQuery.node;
-      final SqlNode[] operands = call.getOperands();
-
-      SqlNode leftKeyNode = operands[0];
-      query = operands[1];
-
-      final List<RexNode> leftKeys;
-      switch (leftKeyNode.getKind()) {
-      case ROW:
-        leftKeys = Lists.newArrayList();
-        for (SqlNode sqlExpr : ((SqlBasicCall) leftKeyNode).getOperandList()) {
-          leftKeys.add(bb.convertExpression(sqlExpr));
-        }
-        break;
-      default:
-        leftKeys = ImmutableList.of(bb.convertExpression(leftKeyNode));
-      }
-
-      final boolean isNotIn = ((SqlInOperator) call.getOperator()).isNotIn();
-      if (query instanceof SqlNodeList) {
-        SqlNodeList valueList = (SqlNodeList) query;
-        if (!containsNullLiteral(valueList)
-            && valueList.size() < getInSubqueryThreshold()) {
-          // We're under the threshold, so convert to OR.
-          subQuery.expr =
-              convertInToOr(
-                  bb,
-                  leftKeys,
-                  valueList,
-                  isNotIn);
-          return;
-        }
-
-        // Otherwise, let convertExists translate
-        // values list into an inline table for the
-        // reference to Q below.
-      }
-
-      // Project out the search columns from the left side
-
-      //  Q1:
-      // "select from emp where emp.deptno in (select col1 from T)"
-      //
-      // is converted to
-      //
-      // "select from
-      //   emp inner join (select distinct col1 from T)) q
-      //   on emp.deptno = q.col1
-      //
-      // Q2:
-      // "select from emp where emp.deptno not in (Q)"
-      //
-      // is converted to
-      //
-      // "select from
-      //   emp left outer join (select distinct col1, TRUE from T) q
-      //   on emp.deptno = q.col1
-      //   where emp.deptno <> null
-      //         and q.indicator <> TRUE"
-      //
-      final boolean outerJoin = bb.subqueryNeedsOuterJoin
-          || isNotIn
-          || subQuery.logic == RelOptUtil.Logic.TRUE_FALSE_UNKNOWN;
-      converted =
-          convertExists(query, RelOptUtil.SubqueryType.IN, subQuery.logic,
-              outerJoin);
-      if (converted.right) {
-        // Generate
-        //    emp CROSS JOIN (SELECT COUNT(*) AS c,
-        //                       COUNT(deptno) AS ck FROM dept)
-        final RelDataType longType =
-            typeFactory.createSqlType(SqlTypeName.BIGINT);
-        final RelNode seek = converted.left.getInput(0); // fragile
-        final int keyCount = leftKeys.size();
-        final List<Integer> args = ImmutableIntList.range(0, keyCount);
-        LogicalAggregate aggregate =
-            LogicalAggregate.create(seek, false, ImmutableBitSet.of(), null,
-                ImmutableList.of(
-                    AggregateCall.create(SqlStdOperatorTable.COUNT, false,
-                        ImmutableList.<Integer>of(), -1, longType, null),
-                    AggregateCall.create(SqlStdOperatorTable.COUNT, false,
-                        args, -1, longType, null)));
-        LogicalJoin join =
-            LogicalJoin.create(bb.root,
-                aggregate,
-                rexBuilder.makeLiteral(true),
-                JoinRelType.INNER,
-                ImmutableSet.<String>of());
-        bb.setRoot(join, false);
-      }
-      RexNode rex =
-          bb.register(converted.left,
-              outerJoin ? JoinRelType.LEFT : JoinRelType.INNER, leftKeys);
-
-      subQuery.expr = translateIn(subQuery, bb.root, rex);
-      if (isNotIn) {
-        subQuery.expr =
-            rexBuilder.makeCall(SqlStdOperatorTable.NOT, subQuery.expr);
-      }
-      return;
-
-    case EXISTS:
-      // "select from emp where exists (select a from T)"
-      //
-      // is converted to the following if the subquery is correlated:
-      //
-      // "select from emp left outer join (select AGG_TRUE() as indicator
-      // from T group by corr_var) q where q.indicator is true"
-      //
-      // If there is no correlation, the expression is replaced with a
-      // boolean indicating whether the subquery returned 0 or >= 1 row.
-      call = (SqlBasicCall) subQuery.node;
-      query = call.getOperands()[0];
-      converted = convertExists(query, RelOptUtil.SubqueryType.EXISTS,
-          subQuery.logic, true);
-      assert !converted.right;
-      if (convertNonCorrelatedSubQuery(subQuery, bb, converted.left, true)) {
-        return;
-      }
-      subQuery.expr = bb.register(converted.left, JoinRelType.LEFT);
-      return;
-
-    case SCALAR_QUERY:
-      // Convert the subquery.  If it's non-correlated, convert it
-      // to a constant expression.
-      call = (SqlBasicCall) subQuery.node;
-      query = call.getOperands()[0];
-      converted = convertExists(query, RelOptUtil.SubqueryType.SCALAR,
-          subQuery.logic, true);
-      assert !converted.right;
-      if (convertNonCorrelatedSubQuery(subQuery, bb, converted.left, false)) {
-        return;
-      }
-      rel = convertToSingleValueSubq(query, converted.left);
-      subQuery.expr = bb.register(rel, JoinRelType.LEFT);
-      return;
-
-    case SELECT:
-      // This is used when converting multiset queries:
-      //
-      // select * from unnest(select multiset[deptno] from emps);
-      //
-      converted = convertExists(subQuery.node, RelOptUtil.SubqueryType.SCALAR,
-          subQuery.logic, true);
-      assert !converted.right;
-      subQuery.expr = bb.register(converted.left, JoinRelType.LEFT);
-      return;
-
-    default:
-      throw Util.newInternal("unexpected kind of subquery :" + subQuery.node);
-    }
-  }
-
-  private RexNode translateIn(SubQuery subQuery, RelNode root,
-      final RexNode rex) {
-    switch (subQuery.logic) {
-    case TRUE:
-      return rexBuilder.makeLiteral(true);
-
-    case UNKNOWN_AS_FALSE:
-      assert rex instanceof RexRangeRef;
-      final int fieldCount = rex.getType().getFieldCount();
-      RexNode rexNode = rexBuilder.makeFieldAccess(rex, fieldCount - 1);
-      rexNode = rexBuilder.makeCall(SqlStdOperatorTable.IS_TRUE, rexNode);
-
-      // Then append the IS NOT NULL(leftKeysForIn).
-      //
-      // RexRangeRef contains the following fields:
-      //   leftKeysForIn,
-      //   rightKeysForIn (the original subquery select list),
-      //   nullIndicator
-      //
-      // The first two lists contain the same number of fields.
-      final int k = (fieldCount - 1) / 2;
-      for (int i = 0; i < k; i++) {
-        rexNode =
-            rexBuilder.makeCall(
-                SqlStdOperatorTable.AND,
-                rexNode,
-                rexBuilder.makeCall(
-                    SqlStdOperatorTable.IS_NOT_NULL,
-                    rexBuilder.makeFieldAccess(rex, i)));
-      }
-      return rexNode;
-
-    case TRUE_FALSE_UNKNOWN:
-    case UNKNOWN_AS_TRUE:
-      // select e.deptno,
-      //   case
-      //   when ct.c = 0 then false
-      //   when dt.i is not null then true
-      //   when e.deptno is null then null
-      //   when ct.ck < ct.c then null
-      //   else false
-      //   end
-      // from e
-      // cross join (select count(*) as c, count(deptno) as ck from v) as ct
-      // left join (select distinct deptno, true as i from v) as dt
-      //   on e.deptno = dt.deptno
-      final Join join = (Join) root;
-      final Project left = (Project) join.getLeft();
-      final RelNode leftLeft = ((Join) left.getInput()).getLeft();
-      final int leftLeftCount = leftLeft.getRowType().getFieldCount();
-      final RelDataType nullableBooleanType =
-          typeFactory.createTypeWithNullability(
-              typeFactory.createSqlType(SqlTypeName.BOOLEAN), true);
-      final RelDataType longType =
-          typeFactory.createSqlType(SqlTypeName.BIGINT);
-      final RexNode cRef = rexBuilder.makeInputRef(root, leftLeftCount);
-      final RexNode ckRef = rexBuilder.makeInputRef(root, leftLeftCount + 1);
-      final RexNode iRef =
-          rexBuilder.makeInputRef(root, root.getRowType().getFieldCount() - 1);
-
-      final RexLiteral zero =
-          rexBuilder.makeExactLiteral(BigDecimal.ZERO, longType);
-      final RexLiteral trueLiteral = rexBuilder.makeLiteral(true);
-      final RexLiteral falseLiteral = rexBuilder.makeLiteral(false);
-      final RexNode unknownLiteral =
-          rexBuilder.makeNullLiteral(SqlTypeName.BOOLEAN);
-
-      final ImmutableList.Builder<RexNode> args = ImmutableList.builder();
-      args.add(rexBuilder.makeCall(SqlStdOperatorTable.EQUALS, cRef, zero),
-          falseLiteral,
-          rexBuilder.makeCall(SqlStdOperatorTable.IS_NOT_NULL, iRef),
-          trueLiteral);
-      final JoinInfo joinInfo = join.analyzeCondition();
-      for (int leftKey : joinInfo.leftKeys) {
-        final RexNode kRef = rexBuilder.makeInputRef(root, leftKey);
-        args.add(rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL, kRef),
-            unknownLiteral);
-      }
-      args.add(rexBuilder.makeCall(SqlStdOperatorTable.LESS_THAN, ckRef, cRef),
-          unknownLiteral,
-          falseLiteral);
-
-      return rexBuilder.makeCall(
-          nullableBooleanType,
-          SqlStdOperatorTable.CASE,
-          args.build());
-
-    default:
-      throw new AssertionError(subQuery.logic);
-    }
-  }
+    //~ Constructors -----------------------------------------------------------
+    /**
+     * Creates a converter.
+     *
+     * @param viewExpander    Preparing statement
+     * @param validator       Validator
+     * @param catalogReader   Schema
+     * @param planner         Planner
+     * @param rexBuilder      Rex builder
+     * @param convertletTable Expression converter
+     */
+    @Deprecated
+    // will be removed before 2.0
+    public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptPlanner planner, RexBuilder rexBuilder, SqlRexConvertletTable convertletTable) {
+        this(viewExpander, validator, catalogReader, RelOptCluster.create(planner, rexBuilder), convertletTable);
+    }
+
+    /* Creates a converter. */
+    public SqlToRelConverter(RelOptTable.ViewExpander viewExpander, SqlValidator validator, Prepare.CatalogReader catalogReader, RelOptCluster cluster, SqlRexConvertletTable convertletTable) {
+        this.viewExpander = viewExpander;
+        this.opTab = (validator == null) ? SqlStdOperatorTable.instance() : validator.getOperatorTable();
+        this.validator = validator;
+        this.catalogReader = catalogReader;
+        this.defaultValueFactory = new NullDefaultValueFactory();
+        this.subqueryConverter = new NoOpSubqueryConverter();
+        this.rexBuilder = cluster.getRexBuilder();
+        this.typeFactory = rexBuilder.getTypeFactory();
+        this.cluster = Preconditions.checkNotNull(cluster);
+        this.shouldConvertTableAccess = true;
+        this.exprConverter = new SqlNodeToRexConverterImpl(convertletTable);
+        decorrelationEnabled = true;
+        trimUnusedFields = false;
+        shouldCreateValuesRel = true;
+        isExplain = false;
+        nDynamicParamsInExplain = 0;
+    }
+
+    //~ Methods ----------------------------------------------------------------
 
-  private static boolean containsNullLiteral(SqlNodeList valueList) {
-    for (SqlNode node : valueList.getList()) {
-      if (node instanceof SqlLiteral) {
-        SqlLiteral lit = (SqlLiteral) node;
-        if (lit.getValue() == null) {
-          return true;
-        }
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Determines if a subquery is non-correlated and if so, converts it to a
-   * constant.
-   *
-   * @param subQuery  the call that references the subquery
-   * @param bb        blackboard used to convert the subquery
-   * @param converted RelNode tree corresponding to the subquery
-   * @param isExists  true if the subquery is part of an EXISTS expression
-   * @return if the subquery can be converted to a constant
-   */
-  private boolean convertNonCorrelatedSubQuery(
-      SubQuery subQuery,
-      Blackboard bb,
-      RelNode converted,
-      boolean isExists) {
-    SqlCall call = (SqlBasicCall) subQuery.node;
-    if (subqueryConverter.canConvertSubquery()
-        && isSubQueryNonCorrelated(converted, bb)) {
-      // First check if the subquery has already been converted
-      // because it's a nested subquery.  If so, don't re-evaluate
-      // it again.
-      RexNode constExpr = mapConvertedNonCorrSubqs.get(call);
-      if (constExpr == null) {
-        constExpr =
-            subqueryConverter.convertSubquery(
-                call,
-                this,
-                isExists,
-                isExplain);
-      }
-      if (constExpr != null) {
-        subQuery.expr = constExpr;
-        mapConvertedNonCorrSubqs.put(call, constExpr);
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Converts the RelNode tree for a select statement to a select that
-   * produces a single value.
-   *
-   * @param query the query
-   * @param plan   the original RelNode tree corresponding to the statement
-   * @return the converted RelNode tree
-   */
-  public RelNode convertToSingleValueSubq(
-      SqlNode query,
-      RelNode plan) {
-    // Check whether query is guaranteed to produce a single value.
-    if (query instanceof SqlSelect) {
-      SqlSelect select = (SqlSelect) query;
-      SqlNodeList selectList = select.getSelectList();
-      SqlNodeList groupList = select.getGroup();
-
-      if ((selectList.size() == 1)
-          && ((groupList == null) || (groupList.size() == 0))) {
-        SqlNode selectExpr = selectList.get(0);
-        if (selectExpr instanceof SqlCall) {
-          SqlCall selectExprCall = (SqlCall) selectExpr;
-          if (Util.isSingleValue(selectExprCall)) {
-            return plan;
-          }
-        }
-
-        // If there is a limit with 0 or 1,
-        // it is ensured to produce a single value
-        if (select.getFetch() != null
-            && select.getFetch() instanceof SqlNumericLiteral) {
-          SqlNumericLiteral limitNum = (SqlNumericLiteral) select.getFetch();
-          if (((BigDecimal) limitNum.getValue()).intValue() < 2) {
-            return plan;
-          }
-        }
-      }
-    } else if (query instanceof SqlCall) {
-      // If the query is (values ...),
-      // it is necessary to look into the operands to determine
-      // whether SingleValueAgg is necessary
-      SqlCall exprCall = (SqlCall) query;
-      if (exprCall.getOperator()
-          instanceof SqlValuesOperator
-              && Util.isSingleValue(exprCall)) {
-        return plan;
-      }
+    /**
+     * @return the RelOptCluster in use.
+     */
+    public RelOptCluster getCluster() {
+        return cluster;
     }
 
-    // If not, project SingleValueAgg
-    return RelOptUtil.createSingleValueAggRel(
-        cluster,
-        plan);
-  }
-
-  /**
-   * Converts "x IN (1, 2, ...)" to "x=1 OR x=2 OR ...".
-   *
-   * @param leftKeys   LHS
-   * @param valuesList RHS
-   * @param isNotIn    is this a NOT IN operator
-   * @return converted expression
-   */
-  private RexNode convertInToOr(
-      final Blackboard bb,
-      final List<RexNode> leftKeys,
-      SqlNodeList valuesList,
-      boolean isNotIn) {
-    final List<RexNode> comparisons = new ArrayList<>();
-    for (SqlNode rightVals : valuesList) {
-      RexNode rexComparison;
-      if (leftKeys.size() == 1) {
-        rexComparison =
-            rexBuilder.makeCall(
-                SqlStdOperatorTable.EQUALS,
-                leftKeys.get(0),
-                rexBuilder.ensureType(leftKeys.get(0).getType(),
-                    bb.convertExpression(rightVals), true));
-      } else {
-        assert rightVals instanceof SqlCall;
-        final SqlBasicCall call = (SqlBasicCall) rightVals;
-        assert (call.getOperator() instanceof SqlRowOperator)
-            && call.getOperands().length == leftKeys.size();
-        rexComparison =
-            RexUtil.composeConjunction(
-                rexBuilder,
-                Iterables.transform(
-                    Pair.zip(leftKeys, call.getOperandList()),
-                    new Function<Pair<RexNode, SqlNode>, RexNode>() {
-                      public RexNode apply(Pair<RexNode, SqlNode> pair) {
-                        return rexBuilder.makeCall(SqlStdOperatorTable.EQUALS,
-                            pair.left,
-                            rexBuilder.ensureType(pair.left.getType(),
-                                bb.convertExpression(pair.right), true));
-                      }
-                    }),
-                false);
-      }
-      comparisons.add(rexComparison);
+    /**
+     * Returns the row-expression builder.
+     */
+    public RexBuilder getRexBuilder() {
+        return rexBuilder;
     }
 
-    RexNode result =
-        RexUtil.composeDisjunction(rexBuilder, comparisons, true);
-    assert result != null;
-
-    if (isNotIn) {
-      result =
-          rexBuilder.makeCall(
-              SqlStdOperatorTable.NOT,
-              result);
+    /**
+     * Returns the number of dynamic parameters encountered during translation;
+     * this must only be called after {@link #convertQuery}.
+     *
+     * @return number of dynamic parameters
+     */
+    public int getDynamicParamCount() {
+        return dynamicParamSqlNodes.size();
     }
 
-    return result;
-  }
-
-  /**
-   * Gets the list size threshold under which {@link #convertInToOr} is used.
-   * Lists of this size or greater will instead be converted to use a join
-   * against an inline table
-   * ({@link org.apache.calcite.rel.logical.LogicalValues}) rather than a
-   * predicate. A threshold of 0 forces usage of an inline table in all cases; a
-   * threshold of Integer.MAX_VALUE forces usage of OR in all cases
-   *
-   * @return threshold, default 20
-   */
-  protected int getInSubqueryThreshold() {
-    /* OVERRIDE POINT */
-    return Integer.MAX_VALUE;
-  }
-
-  /**
-   * Converts an EXISTS or IN predicate into a join. For EXISTS, the subquery
-   * produces an indicator variable, and the result is a relational expression
-   * which outer joins that indicator to the original query. After performing
-   * the outer join, the condition will be TRUE if the EXISTS condition holds,
-   * NULL otherwise.
-   *
-   * @param seek           A query, for example 'select * from emp' or
-   *                       'values (1,2,3)' or '('Foo', 34)'.
-   * @param subqueryType   Whether sub-query is IN, EXISTS or scalar
-   * @param logic Whether the answer needs to be in full 3-valued logic (TRUE,
-   *     FALSE, UNKNOWN) will be required, or whether we can accept an
-   *     approximation (say representing UNKNOWN as FALSE)
-   * @param needsOuterJoin Whether an outer join is needed
-   * @return join expression
-   * @pre extraExpr == null || extraName != null
-   */
-  private Pair<RelNode, Boolean> convertExists(
-      SqlNode seek,
-      RelOptUtil.SubqueryType subqueryType,
-      RelOptUtil.Logic logic,
-      boolean needsOuterJoin) {
-    final SqlValidatorScope seekScope =
-        (seek instanceof SqlSelect)
-            ? validator.getSelectScope((SqlSelect) seek)
-            : null;
-    final Blackboard seekBb = createBlackboard(seekScope, null);
-    RelNode seekRel = convertQueryOrInList(seekBb, seek);
-
-    return RelOptUtil.createExistsPlan(seekRel, subqueryType, logic,
-        needsOuterJoin);
-  }
-
-  private RelNode convertQueryOrInList(
-      Blackboard bb,
-      SqlNode seek) {
-    // NOTE: Once we start accepting single-row queries as row constructors,
-    // there will be an ambiguity here for a case like X IN ((SELECT Y FROM
-    // Z)).  The SQL standard resolves the ambiguity by saying that a lone
-    // select should be interpreted as a table expression, not a row
-    // expression.  The semantic difference is that a table expression can
-    // return multiple rows.
-    if (seek instanceof SqlNodeList) {
-      return convertRowValues(
-          bb,
-          seek,
-          ((SqlNodeList) seek).getList(),
-          false,
-          null);
-    } else {
-      return convertQueryRecursive(seek, false, null);
-    }
-  }
-
-  private RelNode convertRowValues(
-      Blackboard bb,
-      SqlNode rowList,
-      Collection<SqlNode> rows,
-      boolean allowLiteralsOnly,
-      RelDataType targetRowType) {
-    // NOTE jvs 30-Apr-2006: We combine all rows consisting entirely of
-    // literals into a single LogicalValues; this gives the optimizer a smaller
-    // input tree.  For everything else (computed expressions, row
-    // subqueries), we union each row in as a projection on top of a
-    // LogicalOneRow.
-
-    final ImmutableList.Builder<ImmutableList<RexLiteral>> tupleList =
-        ImmutableList.builder();
-    final RelDataType rowType;
-    if (targetRowType != null) {
-      rowType = targetRowType;
-    } else {
-      rowType =
-          SqlTypeUtil.promoteToRowType(
-              typeFactory,
-              validator.getValidatedNodeType(rowList),
-              null);
+    /**
+     * Returns the type inferred for a dynamic parameter.
+     *
+     * @param index 0-based index of dynamic parameter
+     * @return inferred type, never null
+     */
+    public RelDataType getDynamicParamType(int index) {
+        SqlNode sqlNode = dynamicParamSqlNodes.get(index);
+        if (sqlNode == null) {
+            throw Util.needToImplement("dynamic param type inference");
+        }
+        return validator.getValidatedNodeType(sqlNode);
     }
 
-    final List<RelNode> unionInputs = new ArrayList<>();
-    for (SqlNode node : rows) {
-      SqlBasicCall call;
-      if (isRowConstructor(node)) {
-        call = (SqlBasicCall) node;
-        ImmutableList.Builder<RexLiteral> tuple = ImmutableList.builder();
-        for (Ord<SqlNode> operand : Ord.zip(call.operands)) {
-          RexLiteral rexLiteral =
-              convertLiteralInValuesList(
-                  operand.e,
-                  bb,
-                  rowType,
-                  operand.i);
-          if ((rexLiteral == null) && allowLiteralsOnly) {
-            return null;
-          }
-          if ((rexLiteral == null) || !shouldCreateValuesRel) {
-            // fallback to convertRowConstructor
-            tuple = null;
-            break;
-          }
-          tuple.add(rexLiteral);
-        }
-        if (tuple != null) {
-          tupleList.add(tuple.build());
-          continue;
-        }
-      } else {
-        RexLiteral rexLiteral =
-            convertLiteralInValuesList(
-                node,
-                bb,
-                rowType,
-                0);
-        if ((rexLiteral != null) && shouldCreateValuesRel) {
-          tupleList.add(ImmutableList.of(rexLiteral));
-          continue;
-        } else {
-          if ((rexLiteral == null) && allowLiteralsOnly) {
-            return null;
-          }
+    /**
+     * Returns the current count of the number of dynamic parameters in an
+     * EXPLAIN PLAN statement.
+     *
+     * @param increment if true, increment the count
+     * @return the current count before the optional increment
+     */
+    public int getDynamicParamCountInExplain(boolean increment) {
+        int retVal = nDynamicParamsInExplain;
+        if (increment) {
+            ++nDynamicParamsInExplain;
         }
-
-        // convert "1" to "row(1)"
-        call =
-            (SqlBasicCall) SqlStdOperatorTable.ROW.createCall(
-                SqlParserPos.ZERO,
-                node);
-      }
-      unionInputs.add(convertRowConstructor(bb, call));
-    }
-    LogicalValues values =
-        LogicalValues.create(cluster, rowType, tupleList.build());
-    RelNode resultRel;
-    if (unionInputs.isEmpty()) {
-      resultRel = values;
-    } else {
-      if (!values.getTuples().isEmpty()) {
-        unionInputs.add(values);
-      }
-      resultRel = LogicalUnion.create(unionInputs, true);
+        return retVal;
     }
-    leaves.add(resultRel);
-    return resultRel;
-  }
-
-  private RexLiteral convertLiteralInValuesList(
-      SqlNode sqlNode,
-      Blackboard bb,
-      RelDataType rowType,
-      int iField) {
-    if (!(sqlNode instanceof SqlLiteral)) {
-      return null;
-    }
-    RelDataTypeField field = rowType.getFieldList().get(iField);
-    RelDataType type = field.getType();
-    if (type.isStruct()) {
-      // null literals for weird stuff like UDT's need
-      // special handling during type flattening, so
-      // don't use LogicalValues for those
-      return null;
-    }
-
-    RexNode literalExpr =
-        exprConverter.convertLiteral(
-            bb,
-            (SqlLiteral) sqlNode);
-
-    if (!(literalExpr instanceof RexLiteral)) {
-      assert literalExpr.isA(SqlKind.CAST);
-      RexNode child = ((RexCall) literalExpr).getOperands().get(0);
-      assert RexLiteral.isNullLiteral(child);
 
-      // NOTE jvs 22-Nov-2006:  we preserve type info
-      // in LogicalValues digest, so it's OK to lose it here
-      return (RexLiteral) child;
+    /**
+     * @return mapping of non-correlated subqueries that have been converted to
+     * the constants that they evaluate to
+     */
+    public Map<SqlNode, RexNode> getMapConvertedNonCorrSubqs() {
+        return mapConvertedNonCorrSubqs;
     }
 
-    RexLiteral literal = (RexLiteral) literalExpr;
-
-    Comparable value = literal.getValue();
-
-    if (SqlTypeUtil.isExactNumeric(type)) {
-      BigDecimal roundedValue =
-          NumberUtil.rescaleBigDecimal(
-              (BigDecimal) value,
-              type.getScale());
-      return rexBuilder.makeExactLiteral(
-          roundedValue,
-          type);
+    /**
+     * Adds to the current map of non-correlated converted subqueries the
+     * elements from another map that contains non-correlated subqueries that
+     * have been converted by another SqlToRelConverter.
+     *
+     * @param alreadyConvertedNonCorrSubqs the other map
+     */
+    public void addConvertedNonCorrSubqs(Map<SqlNode, RexNode> alreadyConvertedNonCorrSubqs) {
+        mapConvertedNonCorrSubqs.putAll(alreadyConvertedNonCorrSubqs);
     }
 
-    if ((value instanceof NlsString)
-        && (type.getSqlTypeName() == SqlTypeName.CHAR)) {
-      // pad fixed character type
-      NlsString unpadded = (NlsString) value;
-      return rexBuilder.makeCharLiteral(
-          new NlsString(
-              Util.rpad(unpadded.getValue(), type.getPrecision()),
-              unpadded.getCharsetName(),
-              unpadded.getCollation()));
+    /**
+     * Set a new DefaultValueFactory. To have any effect, this must be called
+     * before any convert method.
+     *
+     * @param factory new DefaultValueFactory
+     */
+    public void setDefaultValueFactory(DefaultValueFactory factory) {
+        defaultValueFactory = factory;
     }
-    return literal;
-  }
 
-  private boolean isRowConstructor(SqlNode node) {
-    if (!(node.getKind() == SqlKind.ROW)) {
-      return false;
-    }
-    SqlCall call = (SqlCall) node;
-    return call.getOperator().getName().equalsIgnoreCase("row");
-  }
-
-  /**
-   * Builds a list of all <code>IN</code> or <code>EXISTS</code> operators
-   * inside SQL parse tree. Does not traverse inside queries.
-   *
-   * @param bb                           blackboard
-   * @param node                         the SQL parse tree
-   * @param logic Whether the answer needs to be in full 3-valued logic (TRUE,
-   *              FALSE, UNKNOWN) will be required, or whether we can accept
-   *              an approximation (say representing UNKNOWN as FALSE)
-   * @param registerOnlyScalarSubqueries if set to true and the parse tree
-   *                                     corresponds to a variation of a select
-   *                                     node, only register it if it's a scalar
-   *                                     subquery
-   */
-  private void findSubqueries(
-      Blackboard bb,
-      SqlNode node,
-      RelOptUtil.Logic logic,
-      boolean registerOnlyScalarSubqueries) {
-    final SqlKind kind = node.getKind();
-    switch (kind) {
-    case EXISTS:
-    case SELECT:
-    case MULTISET_QUERY_CONSTRUCTOR:
-    case MULTISET_VALUE_CONSTRUCTOR:
-    case CURSOR:
-    case SCALAR_QUERY:
-      if (!registerOnlyScalarSubqueries
-          || (kind == SqlKind.SCALAR_QUERY)) {
-        bb.registerSubquery(node, RelOptUtil.Logic.TRUE_FALSE);
-      }
-      return;
-    case IN:
-      if (((SqlCall) node).getOperator() == SqlStdOperatorTable.NOT_IN) {
-        logic = logic.negate();
-      }
-      break;
-    case NOT:
-      logic = logic.negate();
-      break;
-    }
-    if (node instanceof SqlCall) {
-      if (kind == SqlKind.OR
-          || kind == SqlKind.NOT) {
-        // It's always correct to outer join subquery with
-        // containing query; however, when predicates involve Or
-        // or NOT, outer join might be necessary.
-        bb.subqueryNeedsOuterJoin = true;
-      }
-      for (SqlNode operand : ((SqlCall) node).getOperandList()) {
-        if (operand != null) {
-          // In the case of an IN expression, locate scalar
-          // subqueries so we can convert them to constants
-          findSubqueries(
-              bb,
-              operand,
-              logic,
-              kind == SqlKind.IN || registerOnlyScalarSubqueries);
-        }
-      }
-    } else if (node instanceof SqlNodeList) {
-      for (SqlNode child : (SqlNodeList) node) {
-        findSubqueries(
-            bb,
-            child,
-            logic,
-            kind == SqlKind.IN || registerOnlyScalarSubqueries);
-      }
+    /**
+     * Sets a new SubqueryConverter. To have any effect, this must be called
+     * before any convert method.
+     *
+     * @param converter new SubqueryConverter
+     */
+    public void setSubqueryConverter(SubqueryConverter converter) {
+        subqueryConverter = converter;
     }
 
-    // Now that we've located any scalar subqueries inside the IN
-    // expression, register the IN expression itself.  We need to
-    // register the scalar subqueries first so they can be converted
-    // before the IN expression is converted.
-    if (kind == SqlKind.IN) {
-      if (logic == RelOptUtil.Logic.TRUE_FALSE_UNKNOWN
-          && !validator.getValidatedNodeType(node).isNullable()) {
-        logic = RelOptUtil.Logic.UNKNOWN_AS_FALSE;
-      }
-      // TODO: This conversion is only valid in the WHERE clause
-      if (logic == RelOptUtil.Logic.UNKNOWN_AS_FALSE
-          && !bb.subqueryNeedsOuterJoin) {
-        logic = RelOptUtil.Logic.TRUE;
-      }
-      bb.registerSubquery(node, logic);
-    }
-  }
-
-  /**
-   * Converts an expression from {@link SqlNode} to {@link RexNode} format.
-   *
-   * @param node Expression to translate
-   * @return Converted expression
-   */
-  public RexNode convertExpression(
-      SqlNode node) {
-    Map<String, RelDataType> nameToTypeMap = Collections.emptyMap();
-    Blackboard bb =
-        createBlackboard(
-            new ParameterScope((SqlValidatorImpl) validator, nameToTypeMap),
-            null);
-    return bb.convertExpression(node);
-  }
-
-  /**
-   * Converts an expression from {@link SqlNode} to {@link RexNode} format,
-   * mapping identifier references to predefined expressions.
-   *
-   * @param node          Expression to translate
-   * @param nameToNodeMap map from String to {@link RexNode}; when an
-   *                      {@link SqlIdentifier} is encountered, it is used as a
-   *                      key and translated to the corresponding value from
-   *                      this map
-   * @return Converted expression
-   */
-  public RexNode convertExpression(
-      SqlNode node,
-      Map<String, RexNode> nameToNodeMap) {
-    final Map<String, RelDataType> nameToTypeMap = new HashMap<>();
-    for (Map.Entry<String, RexNode> entry : nameToNodeMap.entrySet()) {
-      nameToTypeMap.put(entry.getKey(), entry.getValue().getType());
-    }
-    Blackboard bb =
-        createBlackboard(
-            new ParameterScope((SqlValidatorImpl) validator, nameToTypeMap),
-            nameToNodeMap);
-    return bb.convertExpression(node);
-  }
-
-  /**
-   * Converts a non-standard expression.
-   *
-   * <p>This method is an extension-point that derived classes can override. If
-   * this method returns a null result, the normal expression translation
-   * process will proceed. The default implementation always returns null.
-   *
-   * @param node Expression
-   * @param bb   Blackboard
-   * @return null to proceed with the usual expression translation process
-   */
-  protected RexNode convertExtendedExpression(
-      SqlNode node,
-      Blackboard bb) {
-    return null;
-  }
-
-  private RexNode convertOver(Blackboard bb, SqlNode node) {
-    SqlCall call = (SqlCall) node;
-    SqlCall aggCall = call.operand(0);
-    SqlNode windowOrRef = call.operand(1);
-    final SqlWindow window =
-        validator.resolveWindow(windowOrRef, bb.scope, true);
-    final SqlNodeList partitionList = window.getPartitionList();
-    final ImmutableList.Builder<RexNode> partitionKeys =
-        ImmutableList.builder();
-    for (SqlNode partition : partitionList) {
-      partitionKeys.add(bb.convertExpression(partition));
-    }
-    RexNode lowerBound = bb.convertExpression(window.getLowerBound());
-    RexNode upperBound = bb.convertExpression(window.getUpperBound());
-    SqlNodeList orderList = window.getOrderList();
-    if ((orderList.size() == 0) && !window.isRows()) {
-      // A logical range requires an ORDER BY clause. Use the implicit
-      // ordering of this relation. There must be one, otherwise it would
-      // have failed validation.
-      orderList = bb.scope.getOrderList();
-      if (orderList == null) {
-        throw new AssertionError(
-            "Relation should have sort key for implicit ORDER BY");
-      }
-    }
-    final ImmutableList.Builder<RexFieldCollation> orderKeys =
-        ImmutableList.builder();
-    final Set<SqlKind> flags = EnumSet.noneOf(SqlKind.class);
-    for (SqlNode order : orderList) {
-      flags.clear();
-      RexNode e = bb.convertSortExpression(order, flags);
-      orderKeys.add(new RexFieldCollation(e, flags));
-    }
-    try {
-      Util.permAssert(bb.window == null, "already in window agg mode");
-      bb.window = window;
-      RexNode rexAgg = exprConverter.convertCall(bb, aggCall);
-      rexAgg =
-          rexBuilder.ensureType(
-              validator.getValidatedNodeType(call), rexAgg, false);
-
-      // Walk over the tree and apply 'over' to all agg functions. This is
-      // necessary because the returned expression is not necessarily a call
-      // to an agg function. For example, AVG(x) becomes SUM(x) / COUNT(x).
-      final RexShuttle visitor =
-          new HistogramShuttle(
-              partitionKeys.build(), orderKeys.build(),
-              RexWindowBound.create(window.getLowerBound(), lowerBound),
-              RexWindowBound.create(window.getUpperBound(), upperBound),
-              window);
-      return rexAgg.accept(visitor);
-    } finally {
-      bb.window = null;
-    }
-  }
-
-  /**
-   * Converts a FROM clause into a relational expression.
-   *
-   * @param bb   Scope within which to resolve identifiers
-   * @param from FROM clause of a query. Examples include:
-   *
-   *             <ul>
-   *             <li>a single table ("SALES.EMP"),
-   *             <li>an aliased table ("EMP AS E"),
-   *             <li>a list of tables ("EMP, DEPT"),
-   *             <li>an ANSI Join expression ("EMP JOIN DEPT ON EMP.DEPTNO =
-   *             DEPT.DEPTNO"),
-   *             <li>a VALUES clause ("VALUES ('Fred', 20)"),
-   *             <li>a query ("(SELECT * FROM EMP WHERE GENDER = 'F')"),
-   *             <li>or any combination of the above.
-   *             </ul>
-   */
-  protected void convertFrom(
-      Blackboard bb,
-      SqlNode from) {
-    SqlCall call;
-    final SqlNode[] operands;
-    switch (from.getKind()) {
-    case AS:
-      operands = ((SqlBasicCall) from).getOperands();
-      convertFrom(bb, operands[0]);
-      return;
-
-    case WITH_ITEM:
-      convertFrom(bb, ((SqlWithItem) from).query);
-      return;
-
-    case WITH:
-      convertFrom(bb, ((SqlWith) from).body);
-      return;
-
-    case TABLESAMPLE:
-      operands = ((SqlBasicCall) from).getOperands();
-      SqlSampleSpec sampleSpec = SqlLiteral.sampleValue(operands[1]);
-      if (sampleSpec instanceof SqlSampleSpec.SqlSubstitutionSampleSpec) {
-        String sampleName =
-            ((SqlSampleSpec.SqlSubstitutionSampleSpec) sampleSpec)
-                .getName();
-        datasetStack.push(sampleName);
-        convertFrom(bb, operands[0]);
-        datasetStack.pop();
-      } else if (sampleSpec instanceof SqlSampleSpec.SqlTableSampleSpec) {
-        SqlSampleSpec.SqlTableSampleSpec tableSampleSpec =
-            (SqlSampleSpec.SqlTableSampleSpec) sampleSpec;
-        convertFrom(bb, operands[0]);
-        RelOptSamplingParameters params =
-            new RelOptSamplingParameters(
-                tableSampleSpec.isBernoulli(),
-                tableSampleSpec.getSamplePercentage(),
-                tableSampleSpec.isRepeatable(),
-                tableSampleSpec.getRepeatableSeed());
-        bb.setRoot(new Sample(cluster, bb.root, params), false);
-      } else {
-        throw Util.newInternal(
-            "unknown TABLESAMPLE type: " + sampleSpec);
-      }
-      return;
-
-    case IDENTIFIER:
-      final SqlValidatorNamespace fromNamespace =
-          validator.getNamespace(from).resolve();
-      if (fromNamespace.getNode() != null) {
-        convertFrom(bb, fromNamespace.getNode());
-        return;
-      }
-      final String datasetName =
-          datasetStack.isEmpty() ? null : datasetStack.peek();
-      boolean[] usedDataset = {false};
-      RelOptTable table =
-          SqlValidatorUtil.getRelOptTable(
-              fromNamespace,
-              catalogReader,
-              datasetName,
-              usedDataset);
-      final RelNode tableRel;
-      if (shouldConvertTableAccess) {
-        tableRel = toRel(table);
-      } else {
-        tableRel = LogicalTableScan.create(cluster, table);
-      }
-      bb.setRoot(tableRel, true);
-      if (usedDataset[0]) {
-        bb.setDataset(datasetName);
-      }
-      return;
-
-    case JOIN:
-      final SqlJoin join = (SqlJoin) from;
-      final Blackboard fromBlackboard =
-          createBlackboard(validator.getJoinScope(from), null);
-      SqlNode left = join.getLeft();
-      SqlNode right = join.getRight();
-      final boolean isNatural = join.isNatural();
-      final JoinType joinType = join.getJoinType();
-      final Blackboard leftBlackboard =
-          createBlackboard(
-              Util.first(validator.getJoinScope(left),
-                  ((DelegatingScope) bb.scope).getParent()), null);
-      final Blackboard rightBlackboard =
-          createBlackboard(
-              Util.first(validator.getJoinScope(right),
-                  ((DelegatingScope) bb.scope).getParent()), null);
-      convertFrom(leftBlackboard, left);
-      RelNode leftRel = leftBlackboard.root;
-      convertFrom(rightBlackboard, right);
-      RelNode rightRel = rightBlackboard.root;
-      JoinRelType convertedJoinType = convertJoinType(joinType);
-      RexNode conditionExp;
-      if (isNatural) {
-        final List<String> columnList =
-            SqlValidatorUtil.deriveNaturalJoinColumnList(
-                validator.getNamespace(left).getRowType(),
-                validator.getNamespace(right).getRowType());
-        conditionExp = convertUsing(leftRel, rightRel, columnList);
-      } else {
-        conditionExp =
-            convertJoinCondition(
-                fromBlackboard,
-                join.getCondition(),
-                join.getConditionType(),
-                leftRel,
-                rightRel);
-      }
-
-      final RelNode joinRel =
-          createJoin(
-              fromBlackboard,
-              leftRel,
-              rightRel,
-              conditionExp,
-              convertedJoinType);
-      bb.setRoot(joinRel, false);
-      return;
-
-    case SELECT:
-    case INTERSECT:
-    case EXCEPT:
-    case UNION:
-      final RelNode rel = convertQueryRecursive(from, false, null);
-      bb.setRoot(rel, true);
-      return;
-
-    case VALUES:
-      convertValuesImpl(bb, (SqlCall) from, null);
-      return;
-
-    case UNNEST:
-      final SqlNode node = ((SqlCall) from).operand(0);
-      replaceSubqueries(bb, node, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
-      final RelNode childRel =
-          RelOptUtil.createProject(
-              (null != bb.root) ? bb.root : LogicalValues.createOneRow(cluster),
-              Collections.singletonList(bb.convertExpression(node)),
-              Collections.singletonList(validator.deriveAlias(node, 0)),
-              true);
-
-      Uncollect uncollect =
-          new Uncollect(cluster, cluster.traitSetOf(Convention.NONE),
-              childRel);
-      bb.setRoot(uncollect, true);
-      return;
-
-    case COLLECTION_TABLE:
-      call = (SqlCall) from;
-
-      // Dig out real call; TABLE() wrapper is just syntactic.
-      assert call.getOperandList().size() == 1;
-      call = call.operand(0);
-      convertCollectionTable(bb, call);
-      return;
-
-    default:
-      throw Util.newInternal("not a join operator " + from);
-    }
-  }
-
-  protected void convertCollectionTable(
-      Blackboard bb,
-      SqlCall call) {
-    final SqlOperator operator = call.getOperator();
-    if (operator == SqlStdOperatorTable.TABLESAMPLE) {
-      final String sampleName =
-          SqlLiteral.stringValue(call.operand(0));
-      datasetStack.push(sampleName);
-      SqlCall cursorCall = call.operand(1);
-      SqlNode query = cursorCall.operand(0);
-      RelNode converted = convertQuery(query, false, false);
-      bb.setRoot(converted, false);
-      datasetStack.pop();
-      return;
-    }
-    replaceSubqueries(bb, call, RelOptUtil.Logic.TRUE_FALSE_UNKNOWN);
-
-    // Expand table macro if possible. It's more efficient than
-    // LogicalTableFunctionScan.
-    if (operator instanceof SqlUserDefinedTableMacro) {
-      final SqlUserDefinedTableMacro udf =
-          (SqlUserDefinedTableMacro) operator;
-      final TranslatableTable table = udf.getTable(typeFactory,
-        call.getOperandList());
-      final RelDataType rowType = table.getRowType(typeFactory);
-      RelOptTable relOptTable = RelOptTableImpl.create(null, rowType, table);
-      RelNode converted = toRel(relOptTable);
-      bb.setRoot(converted, true);
-      return;
+    /**
+     * Indicates that the current statement is part of an EXPLAIN PLAN statement
+     *
+     * @param nDynamicParams number of dynamic parameters in the statement
+     */
+    public void setIsExplain(int nDynamicParams) {
+        isExplain = true;
+        nDynamicParamsInExplain = nDynamicParams;
     }
 
-    Type elementType;
-    if (operator instanceof SqlUserDefinedTableFunction) {
-      SqlUserDefinedTableFunction udtf = (SqlUserDefinedTableFunction) operator;
-      elementType = udtf.getElementType(typeFactory, call.getOperandList());
-    } else {
-      elementType = null;
+    /**
+     * Controls whether table access references are converted to physical rels
+     * immediately. The optimizer doesn't like leaf rels to have
+     * {@link Convention#NONE}. However, if we are doing further conversion
+     * passes (e.g. {@link RelStructuredTypeFlattener}), then we may need to
+     * defer conversion. To have any effect, this must be called before any
+     * convert method.
+     *
+     * @param enabled true for immediate conversion (the default); false to
+     *                generate logical LogicalTableScan instances
+     */
+    public void enableTableAccessConversion(boolean enabled) {
+        shouldConvertTableAccess = enabled;
     }
 
-    RexNode rexCall = bb.convertExpression(call);
-    final List<RelNode> inputs = bb.retrieveCursors();
-    Set<RelColumnMapping> columnMappings =
-        getColumnMappings(operator);
-    LogicalTableFunctionScan callRel =
-        LogicalTableFunctionScan.create(
-            cluster,
-            inputs,
-            rexCall,
-            elementType,
-            validator.getValidatedNodeType(call),
-            columnMappings);
-    bb.setRoot(callRel, true);
-    afterTableFunction(bb, call, callRel);
-  }
-
-  protected void afterTableFunction(
-      SqlToRelConverter.Blackboard bb,
-      SqlCall call,
-      LogicalTableFunctionScan callRel) {
-  }
-
-  private Set<RelColumnMapping> getColumnMappings(SqlOperator op) {
-    SqlReturnTypeInference rti = op.getReturnTypeInference();
-    if (rti == null) {
-      return null;
-    }
-    if (rti instanceof TableFunctionReturnTypeInference) {
-      TableFunctionReturnTypeInference tfrti =
-          (TableFunctionReturnTypeInference) rti;
-      return tfrti.getColumnMappings();
-    } else {
-      return null;
-    }
-  }
-
-  protected RelNode createJoin(
-      Blackboard bb,
-      RelNode leftRel,
-      RelNode rightRel,
-      RexNode joinCond,
-      JoinRelType joinType) {
-    assert joinCond != null;
-
-    Set<String> correlatedVariables = RelOptUtil.getVariablesUsed(rightRel);
-    if (correlatedVariables.size() > 0) {
-      final ImmutableBitSet.Builder requiredColumns = ImmutableBitSet.builder();
-      final List<String> correlNames = Lists.newArrayList();
-
-      // All correlations must refer the same namespace since correlation
-      // produces exactly one correlation source.
-      // The same source might be referenced by different variables since
-      // DeferredLookups are not de-duplicated at create time.
-      SqlValidatorNamespace prevNs = null;
-
-      for (String correlName : correlatedVariables) {
-        DeferredLookup lookup = mapCorrelToDeferred.get(correlName);
-        RexFieldAccess fieldAccess = lookup.getFieldAccess(correlName);
-        String originalRelName = lookup.getOriginalRelName();
-        String originalFieldName = fieldAccess.getField().getName();
-
-        int[] nsIndexes = {-1};
-        final SqlValidatorScope[] ancestorScopes = {null};
-        SqlValidatorNamespace foundNs =
-            lookup.bb.scope.resolve(
-                ImmutableList.of(originalRelName),
-                ancestorScopes,
-                nsIndexes);
-
-        assert foundNs != null;
-        assert nsIndexes.length == 1;
-
-        int childNamespaceIndex = nsIndexes[0];
-
-        SqlValidatorScope ancestorScope = ancestorScopes[0];
-        boolean correlInCurrentScope = ancestorScope == bb.scope;
-
-        if (!correlInCurrentScope) {
-          continue;
-        }
-
-        if (prevNs == null) {
-          prevNs = foundNs;
-        } else {
-          assert prevNs == foundNs : "All correlation variables should resolve"
-              + " to the same namespace."
-              + " Prev ns=" + prevNs
-              + ", new ns=" + foundNs;
-        }
-
-        int namespaceOffset = 0;
-        if (childNamespaceIndex > 0) {
-          // If not the first child, need to figure out the width
-          // of output types from all the preceding namespaces
-          assert ancestorScope instanceof ListScope;
-          List<SqlValidatorNamespace> children =
-              ((ListScope) ancestorScope).getChildren();
-
-          for (int i = 0; i < childNamespaceIndex; i++) {
-            SqlValidatorNamespace child = children.get(i);
-            namespaceOffset +=
-                child.getRowType().getFieldCount();
-          }
-        }
-
-        RelDataTypeField field =
-            catalogReader.field(foundNs.getRowType(), originalFieldName);
-        int pos = namespaceOffset + field.getIndex();
-
-        assert field.getType()
-            == lookup.getFieldAccess(correlName).getField().getType();
-
-        assert pos != -1;
-
-        if (bb.mapRootRelToFieldProjection.containsKey(bb.root)) {
-          // bb.root is an aggregate and only projects group by
-          // keys.
-          Map<Integer, Integer> exprProjection =
-              bb.mapRootRelToFieldProjection.get(bb.root);
-
-          // subquery can reference group by keys projected from
-          // the root of the outer relation.
-          if (exprProjection.containsKey(pos)) {
-            pos = exprProjection.get(pos);
-          } else {
-            // correl not grouped
-            throw Util.newInternal(
-                "Identifier '" + originalRelName + "."
-                + originalFieldName + "' is not a group expr");
-          }
-        }
-
-        requiredColumns.set(pos);
-        correlNames.add(correlName);
-      }
-
-      if (!correlNames.isEmpty()) {
-        if (correlNames.size() > 1) {
-          // The same table was referenced more than once.
-          // So we deduplicate
-          RelShuttle dedup =
-              new DeduplicateCorrelateVariables(rexBuilder,
-                  correlNames.get(0),
-                  ImmutableSet.copyOf(Util.skip(correlNames)));
-          rightRel = rightRel.accept(dedup);
-        }
-        LogicalCorrelate corr = LogicalCorrelate.create(leftRel, rightRel,
-            new CorrelationId(correlNames.get(0)), requiredColumns.build(),
-            SemiJoinType.of(joinType));
-        if (!joinCond.isAlwaysTrue()) {
-          return RelOptUtil.createFilter(corr, joinCond);
-        }
-        return corr;
-      }
+    /**
+     * Controls whether instances of
+     * {@link org.apache.calcite.rel.logical.LogicalValues} are generated. These
+     * may not be supported by all physical implementations. To have any effect,
+     * this must be called before any convert method.
+     *
+     * @param enabled true to allow LogicalValues to be generated (the default);
+     *                false to force substitution of Project+OneRow instead
+     */
+    public void enableValuesRelCreation(boolean enabled) {
+        shouldCreateValuesRel = enabled;
+    }
+
+    private void checkConvertedType(SqlNode query, RelNode result) {
+        if (!query.isA(SqlKind.DML)) {
+            // Verify that conversion from SQL to relational algebra did
+            // not perturb any type information.  (We can't do this if the
+            // SQL statement is something like an INSERT which has no
+            // validator type information associated with its result,
+            // hence the namespace check above.)
+            RelDataType convertedRowType = result.getRowType();
+            if (!checkConvertedRowType(query, convertedRowType)) {
+                RelDataType validatedRowType = validator.getValidatedNodeType(query);
+                validatedRowType = uniquifyFields(validatedRowType);
+                throw Util.newInternal("Conversion to relational algebra failed to " + "preserve datatypes:\n" + "validated type:\n" + validatedRowType.getFullTypeString() + "\nconverted type:\n" + convertedRowType.getFullTypeString() + "\nrel:\n" + RelOptUtil.toString(result));
+            }
+        }
     }
 
-    final List<RexNode> extraLeftExprs = new ArrayList<>();
-    final List<RexNode> extraRightExprs = new ArrayList<>();
-    final int leftCount = leftRel.getRowType().getFieldCount();
-    final int rightCount = rightRel.getRowType().getFieldCount();
-    if (!containsGet(joinCond)) {
-      joinCond = pushDownJoinConditions(
-          joinCond, leftCount, rightCount, extraLeftExprs, extraRightExprs);
+    public RelNode flattenTypes(RelNode rootRel, boolean restructure) {
+        RelStructuredTypeFlattener typeFlattener = new RelStructuredTypeFlattener(rexBuilder, createToRelContext());
+        return typeFlattener.rewrite(rootRel, restructure);
     }
-    if (!extraLeftExprs.isEmpty()) {
-      final List<RelDataTypeField> fields =
-          leftRel.getRowType().getFieldList();
-      leftRel = RelOp

<TRUNCATED>


[12/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
----------------------------------------------------------------------
diff --git a/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java b/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
index c3e99ef..9d5465f 100644
--- a/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
+++ b/atopcalcite/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
@@ -17,6 +17,20 @@
 */
 package org.apache.calcite.runtime;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.MathContext;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.text.DecimalFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.regex.Pattern;
+
 import org.apache.calcite.DataContext;
 import org.apache.calcite.avatica.util.ByteString;
 import org.apache.calcite.avatica.util.DateTimeUtils;
@@ -27,16 +41,6 @@ import org.apache.calcite.linq4j.function.Function1;
 import org.apache.calcite.linq4j.function.NonDeterministic;
 import org.apache.calcite.linq4j.tree.Primitive;
 
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.math.MathContext;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.text.DecimalFormat;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.regex.Pattern;
-
 /**
  * OVERRIDE POINT:
  * - divide(BigDecimal,BigDecimal), was `b0.divide(b1)`, now `b0.divide(b1, MathContext.DECIMAL64);`
@@ -53,1319 +57,1258 @@ import java.util.regex.Pattern;
 @SuppressWarnings("UnnecessaryUnboxing")
 @Deterministic
 public class SqlFunctions {
-  private static final DecimalFormat DOUBLE_FORMAT =
-      new DecimalFormat("0.0E0");
+    private static final DecimalFormat DOUBLE_FORMAT = new DecimalFormat("0.0E0");
 
-  private static final TimeZone LOCAL_TZ = TimeZone.getDefault();
+    private static final TimeZone LOCAL_TZ = TimeZone.getDefault();
 
-  private static final Function1<List<Object>, Enumerable<Object>>
-  LIST_AS_ENUMERABLE =
-      new Function1<List<Object>, Enumerable<Object>>() {
+    private static final Function1<List<Object>, Enumerable<Object>> LIST_AS_ENUMERABLE = new Function1<List<Object>, Enumerable<Object>>() {
         public Enumerable<Object> apply(List<Object> list) {
-          return Linq4j.asEnumerable(list);
+            return Linq4j.asEnumerable(list);
         }
-      };
-
-  /** Holds, for each thread, a map from sequence name to sequence current
-   * value.
-   *
-   * <p>This is a straw man of an implementation whose main goal is to prove
-   * that sequences can be parsed, validated and planned. A real application
-   * will want persistent values for sequences, shared among threads. */
-  private static final ThreadLocal<Map<String, AtomicLong>> THREAD_SEQUENCES =
-      new ThreadLocal<Map<String, AtomicLong>>() {
-        @Override protected Map<String, AtomicLong> initialValue() {
-          return new HashMap<String, AtomicLong>();
+    };
+
+    /** Holds, for each thread, a map from sequence name to sequence current
+     * value.
+     *
+     * <p>This is a straw man of an implementation whose main goal is to prove
+     * that sequences can be parsed, validated and planned. A real application
+     * will want persistent values for sequences, shared among threads. */
+    private static final ThreadLocal<Map<String, AtomicLong>> THREAD_SEQUENCES = new ThreadLocal<Map<String, AtomicLong>>() {
+        @Override
+        protected Map<String, AtomicLong> initialValue() {
+            return new HashMap<String, AtomicLong>();
         }
-      };
-
-  private SqlFunctions() {
-  }
-
-  /** SQL SUBSTRING(string FROM ... FOR ...) function. */
-  public static String substring(String s, int from, int for_) {
-    return s.substring(from - 1, Math.min(from - 1 + for_, s.length()));
-  }
-
-  /** SQL SUBSTRING(string FROM ...) function. */
-  public static String substring(String s, int from) {
-    return s.substring(from - 1);
-  }
-
-  /** SQL UPPER(string) function. */
-  public static String upper(String s) {
-    return s.toUpperCase();
-  }
-
-  /** SQL LOWER(string) function. */
-  public static String lower(String s) {
-    return s.toLowerCase();
-  }
-
-  /** SQL INITCAP(string) function. */
-  public static String initcap(String s) {
-    // Assumes Alpha as [A-Za-z0-9]
-    // white space is treated as everything else.
-    final int len = s.length();
-    boolean start = true;
-    final StringBuilder newS = new StringBuilder();
-
-    for (int i = 0; i < len; i++) {
-      char curCh = s.charAt(i);
-      final int c = (int) curCh;
-      if (start) {  // curCh is whitespace or first character of word.
-        if (c > 47 && c < 58) { // 0-9
-          start = false;
-        } else if (c > 64 && c < 91) {  // A-Z
-          start = false;
-        } else if (c > 96 && c < 123) {  // a-z
-          start = false;
-          curCh = (char) (c - 32); // Uppercase this character
+    };
+
+    private SqlFunctions() {
+    }
+
+    /** SQL SUBSTRING(string FROM ... FOR ...) function. */
+    public static String substring(String s, int from, int for_) {
+        return s.substring(from - 1, Math.min(from - 1 + for_, s.length()));
+    }
+
+    /** SQL SUBSTRING(string FROM ...) function. */
+    public static String substring(String s, int from) {
+        return s.substring(from - 1);
+    }
+
+    /** SQL UPPER(string) function. */
+    public static String upper(String s) {
+        return s.toUpperCase();
+    }
+
+    /** SQL LOWER(string) function. */
+    public static String lower(String s) {
+        return s.toLowerCase();
+    }
+
+    /** SQL INITCAP(string) function. */
+    public static String initcap(String s) {
+        // Assumes Alpha as [A-Za-z0-9]
+        // white space is treated as everything else.
+        final int len = s.length();
+        boolean start = true;
+        final StringBuilder newS = new StringBuilder();
+
+        for (int i = 0; i < len; i++) {
+            char curCh = s.charAt(i);
+            final int c = (int) curCh;
+            if (start) { // curCh is whitespace or first character of word.
+                if (c > 47 && c < 58) { // 0-9
+                    start = false;
+                } else if (c > 64 && c < 91) { // A-Z
+                    start = false;
+                } else if (c > 96 && c < 123) { // a-z
+                    start = false;
+                    curCh = (char) (c - 32); // Uppercase this character
+                }
+                // else {} whitespace
+            } else { // Inside of a word or white space after end of word.
+                if (c > 47 && c < 58) { // 0-9
+                    // noop
+                } else if (c > 64 && c < 91) { // A-Z
+                    curCh = (char) (c + 32); // Lowercase this character
+                } else if (c > 96 && c < 123) { // a-z
+                    // noop
+                } else { // whitespace
+                    start = true;
+                }
+            }
+            newS.append(curCh);
+        } // for each character in s
+        return newS.toString();
+    }
+
+    /** SQL CHARACTER_LENGTH(string) function. */
+    public static int charLength(String s) {
+        return s.length();
+    }
+
+    /** SQL {@code string || string} operator. */
+    public static String concat(String s0, String s1) {
+        return s0 + s1;
+    }
+
+    /** SQL {@code binary || binary} operator. */
+    public static ByteString concat(ByteString s0, ByteString s1) {
+        return s0.concat(s1);
+    }
+
+    /** SQL {@code RTRIM} function applied to string. */
+    public static String rtrim(String s) {
+        return trim_(s, false, true, ' ');
+    }
+
+    /** SQL {@code LTRIM} function. */
+    public static String ltrim(String s) {
+        return trim_(s, true, false, ' ');
+    }
+
+    /** SQL {@code TRIM(... seek FROM s)} function. */
+    public static String trim(boolean leading, boolean trailing, String seek, String s) {
+        return trim_(s, leading, trailing, seek.charAt(0));
+    }
+
+    /** SQL {@code TRIM} function. */
+    private static String trim_(String s, boolean left, boolean right, char c) {
+        int j = s.length();
+        if (right) {
+            for (;;) {
+                if (j == 0) {
+                    return "";
+                }
+                if (s.charAt(j - 1) != c) {
+                    break;
+                }
+                --j;
+            }
         }
-        // else {} whitespace
-      } else {  // Inside of a word or white space after end of word.
-        if (c > 47 && c < 58) { // 0-9
-          // noop
-        } else if (c > 64 && c < 91) {  // A-Z
-          curCh = (char) (c + 32); // Lowercase this character
-        } else if (c > 96 && c < 123) {  // a-z
-          // noop
-        } else { // whitespace
-          start = true;
+        int i = 0;
+        if (left) {
+            for (;;) {
+                if (i == j) {
+                    return "";
+                }
+                if (s.charAt(i) != c) {
+                    break;
+                }
+                ++i;
+            }
         }
-      }
-      newS.append(curCh);
-    } // for each character in s
-    return newS.toString();
-  }
-
-  /** SQL CHARACTER_LENGTH(string) function. */
-  public static int charLength(String s) {
-    return s.length();
-  }
-
-  /** SQL {@code string || string} operator. */
-  public static String concat(String s0, String s1) {
-    return s0 + s1;
-  }
-
-  /** SQL {@code binary || binary} operator. */
-  public static ByteString concat(ByteString s0, ByteString s1) {
-    return s0.concat(s1);
-  }
-
-  /** SQL {@code RTRIM} function applied to string. */
-  public static String rtrim(String s) {
-    return trim_(s, false, true, ' ');
-  }
-
-  /** SQL {@code LTRIM} function. */
-  public static String ltrim(String s) {
-    return trim_(s, true, false, ' ');
-  }
-
-  /** SQL {@code TRIM(... seek FROM s)} function. */
-  public static String trim(boolean leading, boolean trailing, String seek,
-      String s) {
-    return trim_(s, leading, trailing, seek.charAt(0));
-  }
-
-  /** SQL {@code TRIM} function. */
-  private static String trim_(String s, boolean left, boolean right, char c) {
-    int j = s.length();
-    if (right) {
-      for (;;) {
-        if (j == 0) {
-          return "";
+        return s.substring(i, j);
+    }
+
+    /** SQL {@code TRIM} function applied to binary string. */
+    public static ByteString trim(ByteString s) {
+        return trim_(s, true, true);
+    }
+
+    /** Helper for CAST. */
+    public static ByteString rtrim(ByteString s) {
+        return trim_(s, false, true);
+    }
+
+    /** SQL {@code TRIM} function applied to binary string. */
+    private static ByteString trim_(ByteString s, boolean left, boolean right) {
+        int j = s.length();
+        if (right) {
+            for (;;) {
+                if (j == 0) {
+                    return ByteString.EMPTY;
+                }
+                if (s.byteAt(j - 1) != 0) {
+                    break;
+                }
+                --j;
+            }
         }
-        if (s.charAt(j - 1) != c) {
-          break;
+        int i = 0;
+        if (left) {
+            for (;;) {
+                if (i == j) {
+                    return ByteString.EMPTY;
+                }
+                if (s.byteAt(i) != 0) {
+                    break;
+                }
+                ++i;
+            }
         }
-        --j;
-      }
-    }
-    int i = 0;
-    if (left) {
-      for (;;) {
-        if (i == j) {
-          return "";
+        return s.substring(i, j);
+    }
+
+    /** SQL {@code OVERLAY} function. */
+    public static String overlay(String s, String r, int start) {
+        if (s == null || r == null) {
+            return null;
         }
-        if (s.charAt(i) != c) {
-          break;
+        return s.substring(0, start - 1) + r + s.substring(start - 1 + r.length());
+    }
+
+    /** SQL {@code OVERLAY} function. */
+    public static String overlay(String s, String r, int start, int length) {
+        if (s == null || r == null) {
+            return null;
         }
-        ++i;
-      }
-    }
-    return s.substring(i, j);
-  }
-
-  /** SQL {@code TRIM} function applied to binary string. */
-  public static ByteString trim(ByteString s) {
-    return trim_(s, true, true);
-  }
-
-  /** Helper for CAST. */
-  public static ByteString rtrim(ByteString s) {
-    return trim_(s, false, true);
-  }
-
-  /** SQL {@code TRIM} function applied to binary string. */
-  private static ByteString trim_(ByteString s, boolean left, boolean right) {
-    int j = s.length();
-    if (right) {
-      for (;;) {
-        if (j == 0) {
-          return ByteString.EMPTY;
+        return s.substring(0, start - 1) + r + s.substring(start - 1 + length);
+    }
+
+    /** SQL {@code OVERLAY} function applied to binary strings. */
+    public static ByteString overlay(ByteString s, ByteString r, int start) {
+        if (s == null || r == null) {
+            return null;
         }
-        if (s.byteAt(j - 1) != 0) {
-          break;
+        return s.substring(0, start - 1).concat(r).concat(s.substring(start - 1 + r.length()));
+    }
+
+    /** SQL {@code OVERLAY} function applied to binary strings. */
+    public static ByteString overlay(ByteString s, ByteString r, int start, int length) {
+        if (s == null || r == null) {
+            return null;
         }
-        --j;
-      }
-    }
-    int i = 0;
-    if (left) {
-      for (;;) {
-        if (i == j) {
-          return ByteString.EMPTY;
+        return s.substring(0, start - 1).concat(r).concat(s.substring(start - 1 + length));
+    }
+
+    /** SQL {@code LIKE} function. */
+    public static boolean like(String s, String pattern) {
+        final String regex = Like.sqlToRegexLike(pattern, null);
+        return Pattern.matches(regex, s);
+    }
+
+    /** SQL {@code LIKE} function with escape. */
+    public static boolean like(String s, String pattern, String escape) {
+        final String regex = Like.sqlToRegexLike(pattern, escape);
+        return Pattern.matches(regex, s);
+    }
+
+    /** SQL {@code SIMILAR} function. */
+    public static boolean similar(String s, String pattern) {
+        final String regex = Like.sqlToRegexSimilar(pattern, null);
+        return Pattern.matches(regex, s);
+    }
+
+    /** SQL {@code SIMILAR} function with escape. */
+    public static boolean similar(String s, String pattern, String escape) {
+        final String regex = Like.sqlToRegexSimilar(pattern, escape);
+        return Pattern.matches(regex, s);
+    }
+
+    // =
+
+    /** SQL = operator applied to Object values (including String; neither
+     * side may be null). */
+    public static boolean eq(Object b0, Object b1) {
+        return b0.equals(b1);
+    }
+
+    /** SQL = operator applied to BigDecimal values (neither may be null). */
+    public static boolean eq(BigDecimal b0, BigDecimal b1) {
+        return b0.stripTrailingZeros().equals(b1.stripTrailingZeros());
+    }
+
+    // <>
+
+    /** SQL &lt;&gt; operator applied to Object values (including String;
+     * neither side may be null). */
+    public static boolean ne(Object b0, Object b1) {
+        return !b0.equals(b1);
+    }
+
+    /** SQL &lt;&gt; operator applied to BigDecimal values. */
+    public static boolean ne(BigDecimal b0, BigDecimal b1) {
+        return b0.compareTo(b1) != 0;
+    }
+
+    // <
+
+    /** SQL &lt; operator applied to boolean values. */
+    public static boolean lt(boolean b0, boolean b1) {
+        return compare(b0, b1) < 0;
+    }
+
+    /** SQL &lt; operator applied to String values. */
+    public static boolean lt(String b0, String b1) {
+        return b0.compareTo(b1) < 0;
+    }
+
+    /** SQL &lt; operator applied to ByteString values. */
+    public static boolean lt(ByteString b0, ByteString b1) {
+        return b0.compareTo(b1) < 0;
+    }
+
+    /** SQL &lt; operator applied to BigDecimal values. */
+    public static boolean lt(BigDecimal b0, BigDecimal b1) {
+        return b0.compareTo(b1) < 0;
+    }
+
+    // <=
+
+    /** SQL &le; operator applied to boolean values. */
+    public static boolean le(boolean b0, boolean b1) {
+        return compare(b0, b1) <= 0;
+    }
+
+    /** SQL &le; operator applied to String values. */
+    public static boolean le(String b0, String b1) {
+        return b0.compareTo(b1) <= 0;
+    }
+
+    /** SQL &le; operator applied to ByteString values. */
+    public static boolean le(ByteString b0, ByteString b1) {
+        return b0.compareTo(b1) <= 0;
+    }
+
+    /** SQL &le; operator applied to BigDecimal values. */
+    public static boolean le(BigDecimal b0, BigDecimal b1) {
+        return b0.compareTo(b1) <= 0;
+    }
+
+    // >
+
+    /** SQL &gt; operator applied to boolean values. */
+    public static boolean gt(boolean b0, boolean b1) {
+        return compare(b0, b1) > 0;
+    }
+
+    /** SQL &gt; operator applied to String values. */
+    public static boolean gt(String b0, String b1) {
+        return b0.compareTo(b1) > 0;
+    }
+
+    /** SQL &gt; operator applied to ByteString values. */
+    public static boolean gt(ByteString b0, ByteString b1) {
+        return b0.compareTo(b1) > 0;
+    }
+
+    /** SQL &gt; operator applied to BigDecimal values. */
+    public static boolean gt(BigDecimal b0, BigDecimal b1) {
+        return b0.compareTo(b1) > 0;
+    }
+
+    // >=
+
+    /** SQL &ge; operator applied to boolean values. */
+    public static boolean ge(boolean b0, boolean b1) {
+        return compare(b0, b1) >= 0;
+    }
+
+    /** SQL &ge; operator applied to String values. */
+    public static boolean ge(String b0, String b1) {
+        return b0.compareTo(b1) >= 0;
+    }
+
+    /** SQL &ge; operator applied to ByteString values. */
+    public static boolean ge(ByteString b0, ByteString b1) {
+        return b0.compareTo(b1) >= 0;
+    }
+
+    /** SQL &ge; operator applied to BigDecimal values. */
+    public static boolean ge(BigDecimal b0, BigDecimal b1) {
+        return b0.compareTo(b1) >= 0;
+    }
+
+    // +
+
+    /** SQL <code>+</code> operator applied to int values. */
+    public static int plus(int b0, int b1) {
+        return b0 + b1;
+    }
+
+    /** SQL <code>+</code> operator applied to int values; left side may be
+     * null. */
+    public static Integer plus(Integer b0, int b1) {
+        return b0 == null ? null : (b0 + b1);
+    }
+
+    /** SQL <code>+</code> operator applied to int values; right side may be
+     * null. */
+    public static Integer plus(int b0, Integer b1) {
+        return b1 == null ? null : (b0 + b1);
+    }
+
+    /** SQL <code>+</code> operator applied to nullable int values. */
+    public static Integer plus(Integer b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0 + b1);
+    }
+
+    /** SQL <code>+</code> operator applied to nullable long and int values. */
+    public static Long plus(Long b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() + b1.longValue());
+    }
+
+    /** SQL <code>+</code> operator applied to nullable int and long values. */
+    public static Long plus(Integer b0, Long b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() + b1.longValue());
+    }
+
+    /** SQL <code>+</code> operator applied to BigDecimal values. */
+    public static BigDecimal plus(BigDecimal b0, BigDecimal b1) {
+        return (b0 == null || b1 == null) ? null : b0.add(b1);
+    }
+
+    // -
+
+    /** SQL <code>-</code> operator applied to int values. */
+    public static int minus(int b0, int b1) {
+        return b0 - b1;
+    }
+
+    /** SQL <code>-</code> operator applied to int values; left side may be
+     * null. */
+    public static Integer minus(Integer b0, int b1) {
+        return b0 == null ? null : (b0 - b1);
+    }
+
+    /** SQL <code>-</code> operator applied to int values; right side may be
+     * null. */
+    public static Integer minus(int b0, Integer b1) {
+        return b1 == null ? null : (b0 - b1);
+    }
+
+    /** SQL <code>-</code> operator applied to nullable int values. */
+    public static Integer minus(Integer b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0 - b1);
+    }
+
+    /** SQL <code>-</code> operator applied to nullable long and int values. */
+    public static Long minus(Long b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() - b1.longValue());
+    }
+
+    /** SQL <code>-</code> operator applied to nullable int and long values. */
+    public static Long minus(Integer b0, Long b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() - b1.longValue());
+    }
+
+    /** SQL <code>-</code> operator applied to BigDecimal values. */
+    public static BigDecimal minus(BigDecimal b0, BigDecimal b1) {
+        return (b0 == null || b1 == null) ? null : b0.subtract(b1);
+    }
+
+    // /
+
+    /** SQL <code>/</code> operator applied to int values. */
+    public static int divide(int b0, int b1) {
+        return b0 / b1;
+    }
+
+    /** SQL <code>/</code> operator applied to int values; left side may be
+     * null. */
+    public static Integer divide(Integer b0, int b1) {
+        return b0 == null ? null : (b0 / b1);
+    }
+
+    /** SQL <code>/</code> operator applied to int values; right side may be
+     * null. */
+    public static Integer divide(int b0, Integer b1) {
+        return b1 == null ? null : (b0 / b1);
+    }
+
+    /** SQL <code>/</code> operator applied to nullable int values. */
+    public static Integer divide(Integer b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0 / b1);
+    }
+
+    /** SQL <code>/</code> operator applied to nullable long and int values. */
+    public static Long divide(Long b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() / b1.longValue());
+    }
+
+    /** SQL <code>/</code> operator applied to nullable int and long values. */
+    public static Long divide(Integer b0, Long b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() / b1.longValue());
+    }
+
+    /** SQL <code>/</code> operator applied to BigDecimal values. */
+    public static BigDecimal divide(BigDecimal b0, BigDecimal b1) {
+        return (b0 == null || b1 == null) ? null : b0.divide(b1, MathContext.DECIMAL64);
+    }
+
+    // *
+
+    /** SQL <code>*</code> operator applied to int values. */
+    public static int multiply(int b0, int b1) {
+        return b0 * b1;
+    }
+
+    /** SQL <code>*</code> operator applied to int values; left side may be
+     * null. */
+    public static Integer multiply(Integer b0, int b1) {
+        return b0 == null ? null : (b0 * b1);
+    }
+
+    /** SQL <code>*</code> operator applied to int values; right side may be
+     * null. */
+    public static Integer multiply(int b0, Integer b1) {
+        return b1 == null ? null : (b0 * b1);
+    }
+
+    /** SQL <code>*</code> operator applied to nullable int values. */
+    public static Integer multiply(Integer b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0 * b1);
+    }
+
+    /** SQL <code>*</code> operator applied to nullable long and int values. */
+    public static Long multiply(Long b0, Integer b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() * b1.longValue());
+    }
+
+    /** SQL <code>*</code> operator applied to nullable int and long values. */
+    public static Long multiply(Integer b0, Long b1) {
+        return (b0 == null || b1 == null) ? null : (b0.longValue() * b1.longValue());
+    }
+
+    /** SQL <code>*</code> operator applied to BigDecimal values. */
+    public static BigDecimal multiply(BigDecimal b0, BigDecimal b1) {
+        return (b0 == null || b1 == null) ? null : b0.multiply(b1);
+    }
+
+    // EXP
+
+    /** SQL <code>EXP</code> operator applied to double values. */
+    public static double exp(double b0) {
+        return Math.exp(b0);
+    }
+
+    public static double exp(long b0) {
+        return Math.exp(b0);
+    }
+
+    // POWER
+
+    /** SQL <code>POWER</code> operator applied to double values. */
+    public static double power(double b0, double b1) {
+        return Math.pow(b0, b1);
+    }
+
+    public static double power(long b0, long b1) {
+        return Math.pow(b0, b1);
+    }
+
+    public static double power(long b0, BigDecimal b1) {
+        return Math.pow(b0, b1.doubleValue());
+    }
+
+    // LN
+
+    /** SQL {@code LN(number)} function applied to double values. */
+    public static double ln(double d) {
+        return Math.log(d);
+    }
+
+    /** SQL {@code LN(number)} function applied to long values. */
+    public static double ln(long b0) {
+        return Math.log(b0);
+    }
+
+    /** SQL {@code LN(number)} function applied to BigDecimal values. */
+    public static double ln(BigDecimal d) {
+        return Math.log(d.doubleValue());
+    }
+
+    // LOG10
+
+    /** SQL <code>LOG10(numeric)</code> operator applied to double values. */
+    public static double log10(double b0) {
+        return Math.log10(b0);
+    }
+
+    /** SQL {@code LOG10(number)} function applied to long values. */
+    public static double log10(long b0) {
+        return Math.log10(b0);
+    }
+
+    /** SQL {@code LOG10(number)} function applied to BigDecimal values. */
+    public static double log10(BigDecimal d) {
+        return Math.log10(d.doubleValue());
+    }
+
+    // MOD
+
+    /** SQL <code>MOD</code> operator applied to byte values. */
+    public static byte mod(byte b0, byte b1) {
+        return (byte) (b0 % b1);
+    }
+
+    /** SQL <code>MOD</code> operator applied to short values. */
+    public static short mod(short b0, short b1) {
+        return (short) (b0 % b1);
+    }
+
+    /** SQL <code>MOD</code> operator applied to int values. */
+    public static int mod(int b0, int b1) {
+        return b0 % b1;
+    }
+
+    /** SQL <code>MOD</code> operator applied to long values. */
+    public static long mod(long b0, long b1) {
+        return b0 % b1;
+    }
+
+    // temporary
+    public static BigDecimal mod(BigDecimal b0, int b1) {
+        return mod(b0, BigDecimal.valueOf(b1));
+    }
+
+    // temporary
+    public static int mod(int b0, BigDecimal b1) {
+        return mod(b0, b1.intValue());
+    }
+
+    public static BigDecimal mod(BigDecimal b0, BigDecimal b1) {
+        final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+        return bigDecimals[1];
+    }
+
+    // FLOOR
+
+    public static double floor(double b0) {
+        return Math.floor(b0);
+    }
+
+    public static float floor(float b0) {
+        return (float) Math.floor(b0);
+    }
+
+    public static BigDecimal floor(BigDecimal b0) {
+        return b0.setScale(0, BigDecimal.ROUND_FLOOR);
+    }
+
+    /** SQL <code>FLOOR</code> operator applied to byte values. */
+    public static byte floor(byte b0, byte b1) {
+        return (byte) floor((int) b0, (int) b1);
+    }
+
+    /** SQL <code>FLOOR</code> operator applied to short values. */
+    public static short floor(short b0, short b1) {
+        return (short) floor((int) b0, (int) b1);
+    }
+
+    /** SQL <code>FLOOR</code> operator applied to int values. */
+    public static int floor(int b0, int b1) {
+        int r = b0 % b1;
+        if (r < 0) {
+            r += b1;
+        }
+        return b0 - r;
+    }
+
+    /** SQL <code>FLOOR</code> operator applied to long values. */
+    public static long floor(long b0, long b1) {
+        long r = b0 % b1;
+        if (r < 0) {
+            r += b1;
         }
-        if (s.byteAt(i) != 0) {
-          break;
+        return b0 - r;
+    }
+
+    // temporary
+    public static BigDecimal floor(BigDecimal b0, int b1) {
+        return floor(b0, BigDecimal.valueOf(b1));
+    }
+
+    // temporary
+    public static int floor(int b0, BigDecimal b1) {
+        return floor(b0, b1.intValue());
+    }
+
+    public static BigDecimal floor(BigDecimal b0, BigDecimal b1) {
+        final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+        BigDecimal r = bigDecimals[1];
+        if (r.signum() < 0) {
+            r = r.add(b1);
         }
-        ++i;
-      }
-    }
-    return s.substring(i, j);
-  }
-
-  /** SQL {@code OVERLAY} function. */
-  public static String overlay(String s, String r, int start) {
-    if (s == null || r == null) {
-      return null;
-    }
-    return s.substring(0, start - 1)
-        + r
-        + s.substring(start - 1 + r.length());
-  }
-
-  /** SQL {@code OVERLAY} function. */
-  public static String overlay(String s, String r, int start, int length) {
-    if (s == null || r == null) {
-      return null;
-    }
-    return s.substring(0, start - 1)
-        + r
-        + s.substring(start - 1 + length);
-  }
-
-  /** SQL {@code OVERLAY} function applied to binary strings. */
-  public static ByteString overlay(ByteString s, ByteString r, int start) {
-    if (s == null || r == null) {
-      return null;
-    }
-    return s.substring(0, start - 1)
-           .concat(r)
-           .concat(s.substring(start - 1 + r.length()));
-  }
-
-  /** SQL {@code OVERLAY} function applied to binary strings. */
-  public static ByteString overlay(ByteString s, ByteString r, int start,
-      int length) {
-    if (s == null || r == null) {
-      return null;
-    }
-    return s.substring(0, start - 1)
-           .concat(r)
-           .concat(s.substring(start - 1 + length));
-  }
-
-  /** SQL {@code LIKE} function. */
-  public static boolean like(String s, String pattern) {
-    final String regex = Like.sqlToRegexLike(pattern, null);
-    return Pattern.matches(regex, s);
-  }
-
-  /** SQL {@code LIKE} function with escape. */
-  public static boolean like(String s, String pattern, String escape) {
-    final String regex = Like.sqlToRegexLike(pattern, escape);
-    return Pattern.matches(regex, s);
-  }
-
-  /** SQL {@code SIMILAR} function. */
-  public static boolean similar(String s, String pattern) {
-    final String regex = Like.sqlToRegexSimilar(pattern, null);
-    return Pattern.matches(regex, s);
-  }
-
-  /** SQL {@code SIMILAR} function with escape. */
-  public static boolean similar(String s, String pattern, String escape) {
-    final String regex = Like.sqlToRegexSimilar(pattern, escape);
-    return Pattern.matches(regex, s);
-  }
-
-  // =
-
-  /** SQL = operator applied to Object values (including String; neither
-   * side may be null). */
-  public static boolean eq(Object b0, Object b1) {
-    return b0.equals(b1);
-  }
-
-  /** SQL = operator applied to BigDecimal values (neither may be null). */
-  public static boolean eq(BigDecimal b0, BigDecimal b1) {
-    return b0.stripTrailingZeros().equals(b1.stripTrailingZeros());
-  }
-
-  // <>
-
-  /** SQL &lt;&gt; operator applied to Object values (including String;
-   * neither side may be null). */
-  public static boolean ne(Object b0, Object b1) {
-    return !b0.equals(b1);
-  }
-
-  /** SQL &lt;&gt; operator applied to BigDecimal values. */
-  public static boolean ne(BigDecimal b0, BigDecimal b1) {
-    return b0.compareTo(b1) != 0;
-  }
-
-  // <
-
-  /** SQL &lt; operator applied to boolean values. */
-  public static boolean lt(boolean b0, boolean b1) {
-    return compare(b0, b1) < 0;
-  }
-
-  /** SQL &lt; operator applied to String values. */
-  public static boolean lt(String b0, String b1) {
-    return b0.compareTo(b1) < 0;
-  }
-
-  /** SQL &lt; operator applied to ByteString values. */
-  public static boolean lt(ByteString b0, ByteString b1) {
-    return b0.compareTo(b1) < 0;
-  }
-
-  /** SQL &lt; operator applied to BigDecimal values. */
-  public static boolean lt(BigDecimal b0, BigDecimal b1) {
-    return b0.compareTo(b1) < 0;
-  }
-
-  // <=
-
-  /** SQL &le; operator applied to boolean values. */
-  public static boolean le(boolean b0, boolean b1) {
-    return compare(b0, b1) <= 0;
-  }
-
-  /** SQL &le; operator applied to String values. */
-  public static boolean le(String b0, String b1) {
-    return b0.compareTo(b1) <= 0;
-  }
-
-  /** SQL &le; operator applied to ByteString values. */
-  public static boolean le(ByteString b0, ByteString b1) {
-    return b0.compareTo(b1) <= 0;
-  }
-
-  /** SQL &le; operator applied to BigDecimal values. */
-  public static boolean le(BigDecimal b0, BigDecimal b1) {
-    return b0.compareTo(b1) <= 0;
-  }
-
-  // >
-
-  /** SQL &gt; operator applied to boolean values. */
-  public static boolean gt(boolean b0, boolean b1) {
-    return compare(b0, b1) > 0;
-  }
-
-  /** SQL &gt; operator applied to String values. */
-  public static boolean gt(String b0, String b1) {
-    return b0.compareTo(b1) > 0;
-  }
-
-  /** SQL &gt; operator applied to ByteString values. */
-  public static boolean gt(ByteString b0, ByteString b1) {
-    return b0.compareTo(b1) > 0;
-  }
-
-  /** SQL &gt; operator applied to BigDecimal values. */
-  public static boolean gt(BigDecimal b0, BigDecimal b1) {
-    return b0.compareTo(b1) > 0;
-  }
-
-  // >=
-
-  /** SQL &ge; operator applied to boolean values. */
-  public static boolean ge(boolean b0, boolean b1) {
-    return compare(b0, b1) >= 0;
-  }
-
-  /** SQL &ge; operator applied to String values. */
-  public static boolean ge(String b0, String b1) {
-    return b0.compareTo(b1) >= 0;
-  }
-
-  /** SQL &ge; operator applied to ByteString values. */
-  public static boolean ge(ByteString b0, ByteString b1) {
-    return b0.compareTo(b1) >= 0;
-  }
-
-  /** SQL &ge; operator applied to BigDecimal values. */
-  public static boolean ge(BigDecimal b0, BigDecimal b1) {
-    return b0.compareTo(b1) >= 0;
-  }
-
-  // +
-
-  /** SQL <code>+</code> operator applied to int values. */
-  public static int plus(int b0, int b1) {
-    return b0 + b1;
-  }
-
-  /** SQL <code>+</code> operator applied to int values; left side may be
-   * null. */
-  public static Integer plus(Integer b0, int b1) {
-    return b0 == null ? null : (b0 + b1);
-  }
-
-  /** SQL <code>+</code> operator applied to int values; right side may be
-   * null. */
-  public static Integer plus(int b0, Integer b1) {
-    return b1 == null ? null : (b0 + b1);
-  }
-
-  /** SQL <code>+</code> operator applied to nullable int values. */
-  public static Integer plus(Integer b0, Integer b1) {
-    return (b0 == null || b1 == null) ? null : (b0 + b1);
-  }
-
-  /** SQL <code>+</code> operator applied to nullable long and int values. */
-  public static Long plus(Long b0, Integer b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() + b1.longValue());
-  }
-
-  /** SQL <code>+</code> operator applied to nullable int and long values. */
-  public static Long plus(Integer b0, Long b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() + b1.longValue());
-  }
-
-  /** SQL <code>+</code> operator applied to BigDecimal values. */
-  public static BigDecimal plus(BigDecimal b0, BigDecimal b1) {
-    return (b0 == null || b1 == null) ? null : b0.add(b1);
-  }
-
-  // -
-
-  /** SQL <code>-</code> operator applied to int values. */
-  public static int minus(int b0, int b1) {
-    return b0 - b1;
-  }
-
-  /** SQL <code>-</code> operator applied to int values; left side may be
-   * null. */
-  public static Integer minus(Integer b0, int b1) {
-    return b0 == null ? null : (b0 - b1);
-  }
-
-  /** SQL <code>-</code> operator applied to int values; right side may be
-   * null. */
-  public static Integer minus(int b0, Integer b1) {
-    return b1 == null ? null : (b0 - b1);
-  }
-
-  /** SQL <code>-</code> operator applied to nullable int values. */
-  public static Integer minus(Integer b0, Integer b1) {
-    return (b0 == null || b1 == null) ? null : (b0 - b1);
-  }
-
-  /** SQL <code>-</code> operator applied to nullable long and int values. */
-  public static Long minus(Long b0, Integer b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() - b1.longValue());
-  }
-
-  /** SQL <code>-</code> operator applied to nullable int and long values. */
-  public static Long minus(Integer b0, Long b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() - b1.longValue());
-  }
-
-  /** SQL <code>-</code> operator applied to BigDecimal values. */
-  public static BigDecimal minus(BigDecimal b0, BigDecimal b1) {
-    return (b0 == null || b1 == null) ? null : b0.subtract(b1);
-  }
-
-  // /
-
-  /** SQL <code>/</code> operator applied to int values. */
-  public static int divide(int b0, int b1) {
-    return b0 / b1;
-  }
-
-  /** SQL <code>/</code> operator applied to int values; left side may be
-   * null. */
-  public static Integer divide(Integer b0, int b1) {
-    return b0 == null ? null : (b0 / b1);
-  }
-
-  /** SQL <code>/</code> operator applied to int values; right side may be
-   * null. */
-  public static Integer divide(int b0, Integer b1) {
-    return b1 == null ? null : (b0 / b1);
-  }
-
-  /** SQL <code>/</code> operator applied to nullable int values. */
-  public static Integer divide(Integer b0, Integer b1) {
-    return (b0 == null || b1 == null) ? null : (b0 / b1);
-  }
-
-  /** SQL <code>/</code> operator applied to nullable long and int values. */
-  public static Long divide(Long b0, Integer b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() / b1.longValue());
-  }
-
-  /** SQL <code>/</code> operator applied to nullable int and long values. */
-  public static Long divide(Integer b0, Long b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() / b1.longValue());
-  }
-
-  /** SQL <code>/</code> operator applied to BigDecimal values. */
-  public static BigDecimal divide(BigDecimal b0, BigDecimal b1) {
-    return (b0 == null || b1 == null) ? null : b0.divide(b1, MathContext.DECIMAL64);
-  }
-
-  // *
-
-  /** SQL <code>*</code> operator applied to int values. */
-  public static int multiply(int b0, int b1) {
-    return b0 * b1;
-  }
-
-  /** SQL <code>*</code> operator applied to int values; left side may be
-   * null. */
-  public static Integer multiply(Integer b0, int b1) {
-    return b0 == null ? null : (b0 * b1);
-  }
-
-  /** SQL <code>*</code> operator applied to int values; right side may be
-   * null. */
-  public static Integer multiply(int b0, Integer b1) {
-    return b1 == null ? null : (b0 * b1);
-  }
-
-  /** SQL <code>*</code> operator applied to nullable int values. */
-  public static Integer multiply(Integer b0, Integer b1) {
-    return (b0 == null || b1 == null) ? null : (b0 * b1);
-  }
-
-  /** SQL <code>*</code> operator applied to nullable long and int values. */
-  public static Long multiply(Long b0, Integer b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() * b1.longValue());
-  }
-
-  /** SQL <code>*</code> operator applied to nullable int and long values. */
-  public static Long multiply(Integer b0, Long b1) {
-    return (b0 == null || b1 == null)
-        ? null
-        : (b0.longValue() * b1.longValue());
-  }
-
-  /** SQL <code>*</code> operator applied to BigDecimal values. */
-  public static BigDecimal multiply(BigDecimal b0, BigDecimal b1) {
-    return (b0 == null || b1 == null) ? null : b0.multiply(b1);
-  }
-
-  // EXP
-
-  /** SQL <code>EXP</code> operator applied to double values. */
-  public static double exp(double b0) {
-    return Math.exp(b0);
-  }
-
-  public static double exp(long b0) {
-    return Math.exp(b0);
-  }
-
-  // POWER
-
-  /** SQL <code>POWER</code> operator applied to double values. */
-  public static double power(double b0, double b1) {
-    return Math.pow(b0, b1);
-  }
-
-  public static double power(long b0, long b1) {
-    return Math.pow(b0, b1);
-  }
-
-  public static double power(long b0, BigDecimal b1) {
-    return Math.pow(b0, b1.doubleValue());
-  }
-
-  // LN
-
-  /** SQL {@code LN(number)} function applied to double values. */
-  public static double ln(double d) {
-    return Math.log(d);
-  }
-
-  /** SQL {@code LN(number)} function applied to long values. */
-  public static double ln(long b0) {
-    return Math.log(b0);
-  }
-
-  /** SQL {@code LN(number)} function applied to BigDecimal values. */
-  public static double ln(BigDecimal d) {
-    return Math.log(d.doubleValue());
-  }
-
-  // LOG10
-
-  /** SQL <code>LOG10(numeric)</code> operator applied to double values. */
-  public static double log10(double b0) {
-    return Math.log10(b0);
-  }
-
-  /** SQL {@code LOG10(number)} function applied to long values. */
-  public static double log10(long b0) {
-    return Math.log10(b0);
-  }
-
-  /** SQL {@code LOG10(number)} function applied to BigDecimal values. */
-  public static double log10(BigDecimal d) {
-    return Math.log10(d.doubleValue());
-  }
-
-  // MOD
-
-  /** SQL <code>MOD</code> operator applied to byte values. */
-  public static byte mod(byte b0, byte b1) {
-    return (byte) (b0 % b1);
-  }
-
-  /** SQL <code>MOD</code> operator applied to short values. */
-  public static short mod(short b0, short b1) {
-    return (short) (b0 % b1);
-  }
-
-  /** SQL <code>MOD</code> operator applied to int values. */
-  public static int mod(int b0, int b1) {
-    return b0 % b1;
-  }
-
-  /** SQL <code>MOD</code> operator applied to long values. */
-  public static long mod(long b0, long b1) {
-    return b0 % b1;
-  }
-
-  // temporary
-  public static BigDecimal mod(BigDecimal b0, int b1) {
-    return mod(b0, BigDecimal.valueOf(b1));
-  }
-
-  // temporary
-  public static int mod(int b0, BigDecimal b1) {
-    return mod(b0, b1.intValue());
-  }
-
-  public static BigDecimal mod(BigDecimal b0, BigDecimal b1) {
-    final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
-    return bigDecimals[1];
-  }
-
-  // FLOOR
-
-  public static double floor(double b0) {
-    return Math.floor(b0);
-  }
-
-  public static float floor(float b0) {
-    return (float) Math.floor(b0);
-  }
-
-  public static BigDecimal floor(BigDecimal b0) {
-    return b0.setScale(0, BigDecimal.ROUND_FLOOR);
-  }
-
-  /** SQL <code>FLOOR</code> operator applied to byte values. */
-  public static byte floor(byte b0, byte b1) {
-    return (byte) floor((int) b0, (int) b1);
-  }
-
-  /** SQL <code>FLOOR</code> operator applied to short values. */
-  public static short floor(short b0, short b1) {
-    return (short) floor((int) b0, (int) b1);
-  }
-
-  /** SQL <code>FLOOR</code> operator applied to int values. */
-  public static int floor(int b0, int b1) {
-    int r = b0 % b1;
-    if (r < 0) {
-      r += b1;
-    }
-    return b0 - r;
-  }
-
-  /** SQL <code>FLOOR</code> operator applied to long values. */
-  public static long floor(long b0, long b1) {
-    long r = b0 % b1;
-    if (r < 0) {
-      r += b1;
-    }
-    return b0 - r;
-  }
-
-  // temporary
-  public static BigDecimal floor(BigDecimal b0, int b1) {
-    return floor(b0, BigDecimal.valueOf(b1));
-  }
-
-  // temporary
-  public static int floor(int b0, BigDecimal b1) {
-    return floor(b0, b1.intValue());
-  }
-
-  public static BigDecimal floor(BigDecimal b0, BigDecimal b1) {
-    final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
-    BigDecimal r = bigDecimals[1];
-    if (r.signum() < 0) {
-      r = r.add(b1);
-    }
-    return b0.subtract(r);
-  }
-
-  // CEIL
-
-  public static double ceil(double b0) {
-    return Math.ceil(b0);
-  }
-
-  public static float ceil(float b0) {
-    return (float) Math.ceil(b0);
-  }
-
-  public static BigDecimal ceil(BigDecimal b0) {
-    return b0.setScale(0, BigDecimal.ROUND_CEILING);
-  }
-
-  /** SQL <code>CEIL</code> operator applied to byte values. */
-  public static byte ceil(byte b0, byte b1) {
-    return floor((byte) (b0 + b1 - 1), b1);
-  }
-
-  /** SQL <code>CEIL</code> operator applied to short values. */
-  public static short ceil(short b0, short b1) {
-    return floor((short) (b0 + b1 - 1), b1);
-  }
-
-  /** SQL <code>CEIL</code> operator applied to int values. */
-  public static int ceil(int b0, int b1) {
-    int r = b0 % b1;
-    if (r > 0) {
-      r -= b1;
-    }
-    return b0 - r;
-  }
-
-  /** SQL <code>CEIL</code> operator applied to long values. */
-  public static long ceil(long b0, long b1) {
-    return floor(b0 + b1 - 1, b1);
-  }
-
-  // temporary
-  public static BigDecimal ceil(BigDecimal b0, int b1) {
-    return ceil(b0, BigDecimal.valueOf(b1));
-  }
-
-  // temporary
-  public static int ceil(int b0, BigDecimal b1) {
-    return ceil(b0, b1.intValue());
-  }
-
-  public static BigDecimal ceil(BigDecimal b0, BigDecimal b1) {
-    final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
-    BigDecimal r = bigDecimals[1];
-    if (r.signum() > 0) {
-      r = r.subtract(b1);
-    }
-    return b0.subtract(r);
-  }
-
-  // ABS
-
-  /** SQL <code>ABS</code> operator applied to byte values. */
-  public static byte abs(byte b0) {
-    return (byte) Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to short values. */
-  public static short abs(short b0) {
-    return (short) Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to int values. */
-  public static int abs(int b0) {
-    return Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to long values. */
-  public static long abs(long b0) {
-    return Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to float values. */
-  public static float abs(float b0) {
-    return Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to double values. */
-  public static double abs(double b0) {
-    return Math.abs(b0);
-  }
-
-  /** SQL <code>ABS</code> operator applied to BigDecimal values. */
-  public static BigDecimal abs(BigDecimal b0) {
-    return b0.abs();
-  }
-
-  // Helpers
-
-  /** Helper for implementing MIN. Somewhat similar to LEAST operator. */
-  public static <T extends Comparable<T>> T lesser(T b0, T b1) {
-    return b0 == null || b0.compareTo(b1) > 0 ? b1 : b0;
-  }
-
-  /** LEAST operator. */
-  public static <T extends Comparable<T>> T least(T b0, T b1) {
-    return b0 == null || b1 != null && b0.compareTo(b1) > 0 ? b1 : b0;
-  }
-
-  public static boolean greater(boolean b0, boolean b1) {
-    return b0 || b1;
-  }
-
-  public static boolean lesser(boolean b0, boolean b1) {
-    return b0 && b1;
-  }
-
-  public static byte greater(byte b0, byte b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static byte lesser(byte b0, byte b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static char greater(char b0, char b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static char lesser(char b0, char b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static short greater(short b0, short b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static short lesser(short b0, short b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static int greater(int b0, int b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static int lesser(int b0, int b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static long greater(long b0, long b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static long lesser(long b0, long b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static float greater(float b0, float b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static float lesser(float b0, float b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  public static double greater(double b0, double b1) {
-    return b0 > b1 ? b0 : b1;
-  }
-
-  public static double lesser(double b0, double b1) {
-    return b0 > b1 ? b1 : b0;
-  }
-
-  /** Helper for implementing MAX. Somewhat similar to GREATEST operator. */
-  public static <T extends Comparable<T>> T greater(T b0, T b1) {
-    return b0 == null || b0.compareTo(b1) < 0 ? b1 : b0;
-  }
-
-  /** GREATEST operator. */
-  public static <T extends Comparable<T>> T greatest(T b0, T b1) {
-    return b0 == null || b1 != null && b0.compareTo(b1) < 0 ? b1 : b0;
-  }
-
-  /** Boolean comparison. */
-  public static int compare(boolean x, boolean y) {
-    return x == y ? 0 : x ? 1 : -1;
-  }
-
-  /** CAST(FLOAT AS VARCHAR). */
-  public static String toString(float x) {
-    if (x == 0) {
-      return "0E0";
-    }
-    BigDecimal bigDecimal =
-        new BigDecimal(x, MathContext.DECIMAL32).stripTrailingZeros();
-    final String s = bigDecimal.toString();
-    return s.replaceAll("0*E", "E").replace("E+", "E");
-  }
-
-  /** CAST(DOUBLE AS VARCHAR). */
-  public static String toString(double x) {
-    if (x == 0) {
-      return "0E0";
-    }
-    BigDecimal bigDecimal =
-        new BigDecimal(x, MathContext.DECIMAL64).stripTrailingZeros();
-    final String s = bigDecimal.toString();
-    return s.replaceAll("0*E", "E").replace("E+", "E");
-  }
-
-  /** CAST(DECIMAL AS VARCHAR). */
-  public static String toString(BigDecimal x) {
-    final String s = x.toString();
-    if (s.startsWith("0")) {
-      // we want ".1" not "0.1"
-      return s.substring(1);
-    } else if (s.startsWith("-0")) {
-      // we want "-.1" not "-0.1"
-      return "-" + s.substring(2);
-    } else {
-      return s;
-    }
-  }
-
-  /** CAST(BOOLEAN AS VARCHAR). */
-  public static String toString(boolean x) {
-    // Boolean.toString returns lower case -- no good.
-    return x ? "TRUE" : "FALSE";
-  }
-
-  @NonDeterministic
-  private static Object cannotConvert(Object o, Class toType) {
-    throw new RuntimeException("Cannot convert " + o + " to " + toType);
-  }
-
-  /** CAST(VARCHAR AS BOOLEAN). */
-  public static boolean toBoolean(String s) {
-    s = trim_(s, true, true, ' ');
-    if (s.equalsIgnoreCase("TRUE")) {
-      return true;
-    } else if (s.equalsIgnoreCase("FALSE")) {
-      return false;
-    } else {
-      throw new RuntimeException("Invalid character for cast");
-    }
-  }
-
-  public static boolean toBoolean(Number number) {
-    return !number.equals(0);
-  }
-
-  public static boolean toBoolean(Object o) {
-    return o instanceof Boolean ? (Boolean) o
-        : o instanceof Number ? toBoolean((Number) o)
-        : o instanceof String ? toBoolean((String) o)
-        : (Boolean) cannotConvert(o, boolean.class);
-  }
-
-  // Don't need parseByte etc. - Byte.parseByte is sufficient.
-
-  public static byte toByte(Object o) {
-    return o instanceof Byte ? (Byte) o
-        : o instanceof Number ? toByte((Number) o)
-        : Byte.parseByte(o.toString());
-  }
-
-  public static byte toByte(Number number) {
-    return number.byteValue();
-  }
-
-  public static char toChar(String s) {
-    return s.charAt(0);
-  }
-
-  public static Character toCharBoxed(String s) {
-    return s.charAt(0);
-  }
-
-  public static short toShort(String s) {
-    return Short.parseShort(s.trim());
-  }
-
-  public static short toShort(Number number) {
-    return number.shortValue();
-  }
-
-  public static short toShort(Object o) {
-    return o instanceof Short ? (Short) o
-        : o instanceof Number ? toShort((Number) o)
-        : o instanceof String ? toShort((String) o)
-        : (Short) cannotConvert(o, short.class);
-  }
-
-  public static int toInt(java.util.Date v) {
-    return toInt(v, LOCAL_TZ);
-  }
-
-  public static int toInt(java.util.Date v, TimeZone timeZone) {
-    return (int) (toLong(v, timeZone)  / DateTimeUtils.MILLIS_PER_DAY);
-  }
-
-  public static Integer toIntOptional(java.util.Date v) {
-    return v == null ? null : toInt(v);
-  }
-
-  public static Integer toIntOptional(java.util.Date v, TimeZone timeZone) {
-    return v == null
-        ? null
-        : toInt(v, timeZone);
-  }
-
-  public static long toLong(Date v) {
-    return toLong(v, LOCAL_TZ);
-  }
-
-  public static int toInt(java.sql.Time v) {
-    return (int) (toLong(v) % DateTimeUtils.MILLIS_PER_DAY);
-  }
-
-  public static Integer toIntOptional(java.sql.Time v) {
-    return v == null ? null : toInt(v);
-  }
-
-  public static int toInt(String s) {
-    return Integer.parseInt(s.trim());
-  }
-
-  public static int toInt(Number number) {
-    return number.intValue();
-  }
-
-  public static int toInt(Object o) {
-    return o instanceof Integer ? (Integer) o
-        : o instanceof Number ? toInt((Number) o)
-        : o instanceof String ? toInt((String) o)
-        : (Integer) cannotConvert(o, int.class);
-  }
-
-  public static long toLong(Timestamp v) {
-    return toLong(v, LOCAL_TZ);
-  }
-
-  // mainly intended for java.sql.Timestamp but works for other dates also
-  public static long toLong(java.util.Date v, TimeZone timeZone) {
-    final long time = v.getTime();
-    return time + timeZone.getOffset(time);
-  }
-
-  // mainly intended for java.sql.Timestamp but works for other dates also
-  public static Long toLongOptional(java.util.Date v) {
-    return v == null ? null : toLong(v, LOCAL_TZ);
-  }
-
-  public static Long toLongOptional(Timestamp v, TimeZone timeZone) {
-    if (v == null) {
-      return null;
-    }
-    return toLong(v, LOCAL_TZ);
-  }
-
-  public static long toLong(String s) {
-    if (s.startsWith("199") && s.contains(":")) {
-      return Timestamp.valueOf(s).getTime();
-    }
-    return Long.parseLong(s.trim());
-  }
-
-  public static long toLong(Number number) {
-    return number.longValue();
-  }
-
-  public static long toLong(Object o) {
-    return o instanceof Long ? (Long) o
-        : o instanceof Number ? toLong((Number) o)
-        : o instanceof String ? toLong((String) o)
-        : (Long) cannotConvert(o, long.class);
-  }
-
-  public static float toFloat(String s) {
-    return Float.parseFloat(s.trim());
-  }
-
-  public static float toFloat(Number number) {
-    return number.floatValue();
-  }
-
-  public static float toFloat(Object o) {
-    return o instanceof Float ? (Float) o
-        : o instanceof Number ? toFloat((Number) o)
-            : o instanceof String ? toFloat((String) o)
-                : (Float) cannotConvert(o, float.class);
-  }
-
-  public static double toDouble(String s) {
-    return Double.parseDouble(s.trim());
-  }
-
-  public static double toDouble(Number number) {
-    return number.doubleValue();
-  }
-
-  public static double toDouble(Object o) {
-    return o instanceof Double ? (Double) o
-        : o instanceof Number ? toDouble((Number) o)
-        : o instanceof String ? toDouble((String) o)
-        : (Double) cannotConvert(o, double.class);
-  }
-
-  public static BigDecimal toBigDecimal(String s) {
-    return new BigDecimal(s.trim());
-  }
-
-  public static BigDecimal toBigDecimal(Number number) {
-    // There are some values of "long" that cannot be represented as "double".
-    // Not so "int". If it isn't a long, go straight to double.
-    return number instanceof BigDecimal ? (BigDecimal) number
-        : number instanceof BigInteger ? new BigDecimal((BigInteger) number)
-        : number instanceof Long ? new BigDecimal(number.longValue())
-        : new BigDecimal(number.doubleValue());
-  }
-
-  public static BigDecimal toBigDecimal(Object o) {
-    return o instanceof Number ? toBigDecimal((Number) o)
-        : toBigDecimal(o.toString());
-  }
-
-  // Don't need shortValueOf etc. - Short.valueOf is sufficient.
-
-  /** Helper for CAST(... AS VARCHAR(maxLength)). */
-  public static String truncate(String s, int maxLength) {
-    return s == null ? null
-        : s.length() > maxLength ? s.substring(0, maxLength)
-        : s;
-  }
-
-  /** Helper for CAST(... AS VARBINARY(maxLength)). */
-  public static ByteString truncate(ByteString s, int maxLength) {
-    return s == null ? null
-        : s.length() > maxLength ? s.substring(0, maxLength)
-        : s;
-  }
-
-  /** SQL {@code POSITION(seek IN string)} function. */
-  public static int position(String seek, String s) {
-    return s.indexOf(seek) + 1;
-  }
-
-  /** SQL {@code POSITION(seek IN string)} function. */
-  public static int position(ByteString seek, ByteString s) {
-    return s.indexOf(seek) + 1;
-  }
-
-  /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
-  public static long round(long v, long x) {
-    return truncate(v + x / 2, x);
-  }
-
-  /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
-  public static long truncate(long v, long x) {
-    long remainder = v % x;
-    if (remainder < 0) {
-      remainder += x;
-    }
-    return v - remainder;
-  }
-
-  /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
-  public static int round(int v, int x) {
-    return truncate(v + x / 2, x);
-  }
-
-  /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
-  public static int truncate(int v, int x) {
-    int remainder = v % x;
-    if (remainder < 0) {
-      remainder += x;
-    }
-    return v - remainder;
-  }
-
-  /** SQL {@code CURRENT_TIMESTAMP} function. */
-  @NonDeterministic
-  public static long currentTimestamp(DataContext root) {
-    // Cast required for JDK 1.6.
-    return (Long) DataContext.Variable.CURRENT_TIMESTAMP.get(root);
-  }
-
-  /** SQL {@code CURRENT_TIME} function. */
-  @NonDeterministic
-  public static int currentTime(DataContext root) {
-    int time = (int) (currentTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
-    if (time < 0) {
-      time += DateTimeUtils.MILLIS_PER_DAY;
-    }
-    return time;
-  }
-
-  /** SQL {@code CURRENT_DATE} function. */
-  @NonDeterministic
-  public static int currentDate(DataContext root) {
-    final long timestamp = currentTimestamp(root);
-    int date = (int) (timestamp / DateTimeUtils.MILLIS_PER_DAY);
-    final int time = (int) (timestamp % DateTimeUtils.MILLIS_PER_DAY);
-    if (time < 0) {
-      --date;
-    }
-    return date;
-  }
-
-  /** SQL {@code LOCAL_TIMESTAMP} function. */
-  @NonDeterministic
-  public static long localTimestamp(DataContext root) {
-    // Cast required for JDK 1.6.
-    return (Long) DataContext.Variable.LOCAL_TIMESTAMP.get(root);
-  }
-
-  /** SQL {@code LOCAL_TIME} function. */
-  @NonDeterministic
-  public static int localTime(DataContext root) {
-    return (int) (localTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
-  }
-
-  /** Helper for "array element reference". Caller has already ensured that
-   * array and index are not null. Index is 1-based, per SQL. */
-  public static Object arrayItem(List list, int item) {
-    if (item < 1 || item > list.size()) {
-      return null;
-    }
-    return list.get(item - 1);
-  }
-
-  /** Helper for "map element reference". Caller has already ensured that
-   * array and index are not null. Index is 1-based, per SQL. */
-  public static Object mapItem(Map map, Object item) {
-    return map.get(item);
-  }
-
-  /** Implements the {@code [ ... ]} operator on an object whose type is not
-   * known until runtime.
-   */
-  public static Object item(Object object, Object index) {
-    if (object instanceof Map) {
-      return ((Map) object).get(index);
-    }
-    if (object instanceof List && index instanceof Number) {
-      List list = (List) object;
-      return list.get(((Number) index).intValue());
-    }
-    return null;
-  }
-
-  /** NULL &rarr; FALSE, FALSE &rarr; FALSE, TRUE &rarr; TRUE. */
-  public static boolean isTrue(Boolean b) {
-    return b != null && b;
-  }
-
-  /** NULL &rarr; TRUE, FALSE &rarr; FALSE, TRUE &rarr; TRUE. */
-  public static boolean isNotFalse(Boolean b) {
-    return b == null || b;
-  }
-
-  /** NULL &rarr; NULL, FALSE &rarr; TRUE, TRUE &rarr; FALSE. */
-  public static Boolean not(Boolean b) {
-    return (b == null) ? null : !b;
-  }
-
-  /** Converts a JDBC array to a list. */
-  public static List arrayToList(final java.sql.Array a) {
-    if (a == null) {
-      return null;
-    }
-    try {
-      return Primitive.asList(a.getArray());
-    } catch (SQLException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  /** Support the {@code CURRENT VALUE OF sequence} operator. */
-  @NonDeterministic
-  public static long sequenceCurrentValue(String key) {
-    return getAtomicLong(key).get();
-  }
-
-  /** Support the {@code NEXT VALUE OF sequence} operator. */
-  @NonDeterministic
-  public static long sequenceNextValue(String key) {
-    return getAtomicLong(key).incrementAndGet();
-  }
-
-  private static AtomicLong getAtomicLong(String key) {
-    final Map<String, AtomicLong> map = THREAD_SEQUENCES.get();
-    AtomicLong atomic = map.get(key);
-    if (atomic == null) {
-      atomic = new AtomicLong();
-      map.put(key, atomic);
-    }
-    return atomic;
-  }
-
-  /** Support the SLICE function. */
-  public static List slice(List list) {
-    return list;
-  }
-
-  /** Support the ELEMENT function. */
-  public static Object element(List list) {
-    switch (list.size()) {
-    case 0:
-      return null;
-    case 1:
-      return list.get(0);
-    default:
-      throw new RuntimeException("more than one value");
-    }
-  }
-
-  /** Returns a lambda that converts a list to an enumerable. */
-  public static <E> Function1<List<E>, Enumerable<E>> listToEnumerable() {
-    //noinspection unchecked
-    return (Function1<List<E>, Enumerable<E>>) (Function1) LIST_AS_ENUMERABLE;
-  }
+        return b0.subtract(r);
+    }
+
+    // CEIL
+
+    public static double ceil(double b0) {
+        return Math.ceil(b0);
+    }
+
+    public static float ceil(float b0) {
+        return (float) Math.ceil(b0);
+    }
+
+    public static BigDecimal ceil(BigDecimal b0) {
+        return b0.setScale(0, BigDecimal.ROUND_CEILING);
+    }
+
+    /** SQL <code>CEIL</code> operator applied to byte values. */
+    public static byte ceil(byte b0, byte b1) {
+        return floor((byte) (b0 + b1 - 1), b1);
+    }
+
+    /** SQL <code>CEIL</code> operator applied to short values. */
+    public static short ceil(short b0, short b1) {
+        return floor((short) (b0 + b1 - 1), b1);
+    }
+
+    /** SQL <code>CEIL</code> operator applied to int values. */
+    public static int ceil(int b0, int b1) {
+        int r = b0 % b1;
+        if (r > 0) {
+            r -= b1;
+        }
+        return b0 - r;
+    }
+
+    /** SQL <code>CEIL</code> operator applied to long values. */
+    public static long ceil(long b0, long b1) {
+        return floor(b0 + b1 - 1, b1);
+    }
+
+    // temporary
+    public static BigDecimal ceil(BigDecimal b0, int b1) {
+        return ceil(b0, BigDecimal.valueOf(b1));
+    }
+
+    // temporary
+    public static int ceil(int b0, BigDecimal b1) {
+        return ceil(b0, b1.intValue());
+    }
+
+    public static BigDecimal ceil(BigDecimal b0, BigDecimal b1) {
+        final BigDecimal[] bigDecimals = b0.divideAndRemainder(b1);
+        BigDecimal r = bigDecimals[1];
+        if (r.signum() > 0) {
+            r = r.subtract(b1);
+        }
+        return b0.subtract(r);
+    }
+
+    // ABS
+
+    /** SQL <code>ABS</code> operator applied to byte values. */
+    public static byte abs(byte b0) {
+        return (byte) Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to short values. */
+    public static short abs(short b0) {
+        return (short) Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to int values. */
+    public static int abs(int b0) {
+        return Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to long values. */
+    public static long abs(long b0) {
+        return Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to float values. */
+    public static float abs(float b0) {
+        return Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to double values. */
+    public static double abs(double b0) {
+        return Math.abs(b0);
+    }
+
+    /** SQL <code>ABS</code> operator applied to BigDecimal values. */
+    public static BigDecimal abs(BigDecimal b0) {
+        return b0.abs();
+    }
+
+    // Helpers
+
+    /** Helper for implementing MIN. Somewhat similar to LEAST operator. */
+    public static <T extends Comparable<T>> T lesser(T b0, T b1) {
+        return b0 == null || b0.compareTo(b1) > 0 ? b1 : b0;
+    }
+
+    /** LEAST operator. */
+    public static <T extends Comparable<T>> T least(T b0, T b1) {
+        return b0 == null || b1 != null && b0.compareTo(b1) > 0 ? b1 : b0;
+    }
+
+    public static boolean greater(boolean b0, boolean b1) {
+        return b0 || b1;
+    }
+
+    public static boolean lesser(boolean b0, boolean b1) {
+        return b0 && b1;
+    }
+
+    public static byte greater(byte b0, byte b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static byte lesser(byte b0, byte b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static char greater(char b0, char b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static char lesser(char b0, char b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static short greater(short b0, short b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static short lesser(short b0, short b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static int greater(int b0, int b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static int lesser(int b0, int b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static long greater(long b0, long b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static long lesser(long b0, long b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static float greater(float b0, float b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static float lesser(float b0, float b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    public static double greater(double b0, double b1) {
+        return b0 > b1 ? b0 : b1;
+    }
+
+    public static double lesser(double b0, double b1) {
+        return b0 > b1 ? b1 : b0;
+    }
+
+    /** Helper for implementing MAX. Somewhat similar to GREATEST operator. */
+    public static <T extends Comparable<T>> T greater(T b0, T b1) {
+        return b0 == null || b0.compareTo(b1) < 0 ? b1 : b0;
+    }
+
+    /** GREATEST operator. */
+    public static <T extends Comparable<T>> T greatest(T b0, T b1) {
+        return b0 == null || b1 != null && b0.compareTo(b1) < 0 ? b1 : b0;
+    }
+
+    /** Boolean comparison. */
+    public static int compare(boolean x, boolean y) {
+        return x == y ? 0 : x ? 1 : -1;
+    }
+
+    /** CAST(FLOAT AS VARCHAR). */
+    public static String toString(float x) {
+        if (x == 0) {
+            return "0E0";
+        }
+        BigDecimal bigDecimal = new BigDecimal(x, MathContext.DECIMAL32).stripTrailingZeros();
+        final String s = bigDecimal.toString();
+        return s.replaceAll("0*E", "E").replace("E+", "E");
+    }
+
+    /** CAST(DOUBLE AS VARCHAR). */
+    public static String toString(double x) {
+        if (x == 0) {
+            return "0E0";
+        }
+        BigDecimal bigDecimal = new BigDecimal(x, MathContext.DECIMAL64).stripTrailingZeros();
+        final String s = bigDecimal.toString();
+        return s.replaceAll("0*E", "E").replace("E+", "E");
+    }
+
+    /** CAST(DECIMAL AS VARCHAR). */
+    public static String toString(BigDecimal x) {
+        final String s = x.toString();
+        if (s.startsWith("0")) {
+            // we want ".1" not "0.1"
+            return s.substring(1);
+        } else if (s.startsWith("-0")) {
+            // we want "-.1" not "-0.1"
+            return "-" + s.substring(2);
+        } else {
+            return s;
+        }
+    }
+
+    /** CAST(BOOLEAN AS VARCHAR). */
+    public static String toString(boolean x) {
+        // Boolean.toString returns lower case -- no good.
+        return x ? "TRUE" : "FALSE";
+    }
+
+    @NonDeterministic
+    private static Object cannotConvert(Object o, Class toType) {
+        throw new RuntimeException("Cannot convert " + o + " to " + toType);
+    }
+
+    /** CAST(VARCHAR AS BOOLEAN). */
+    public static boolean toBoolean(String s) {
+        s = trim_(s, true, true, ' ');
+        if (s.equalsIgnoreCase("TRUE")) {
+            return true;
+        } else if (s.equalsIgnoreCase("FALSE")) {
+            return false;
+        } else {
+            throw new RuntimeException("Invalid character for cast");
+        }
+    }
+
+    public static boolean toBoolean(Number number) {
+        return !number.equals(0);
+    }
+
+    public static boolean toBoolean(Object o) {
+        return o instanceof Boolean ? (Boolean) o : o instanceof Number ? toBoolean((Number) o) : o instanceof String ? toBoolean((String) o) : (Boolean) cannotConvert(o, boolean.class);
+    }
+
+    // Don't need parseByte etc. - Byte.parseByte is sufficient.
+
+    public static byte toByte(Object o) {
+        return o instanceof Byte ? (Byte) o : o instanceof Number ? toByte((Number) o) : Byte.parseByte(o.toString());
+    }
+
+    public static byte toByte(Number number) {
+        return number.byteValue();
+    }
+
+    public static char toChar(String s) {
+        return s.charAt(0);
+    }
+
+    public static Character toCharBoxed(String s) {
+        return s.charAt(0);
+    }
+
+    public static short toShort(String s) {
+        return Short.parseShort(s.trim());
+    }
+
+    public static short toShort(Number number) {
+        return number.shortValue();
+    }
+
+    public static short toShort(Object o) {
+        return o instanceof Short ? (Short) o : o instanceof Number ? toShort((Number) o) : o instanceof String ? toShort((String) o) : (Short) cannotConvert(o, short.class);
+    }
+
+    public static int toInt(java.util.Date v) {
+        return toInt(v, LOCAL_TZ);
+    }
+
+    public static int toInt(java.util.Date v, TimeZone timeZone) {
+        return (int) (toLong(v, timeZone) / DateTimeUtils.MILLIS_PER_DAY);
+    }
+
+    public static Integer toIntOptional(java.util.Date v) {
+        return v == null ? null : toInt(v);
+    }
+
+    public static Integer toIntOptional(java.util.Date v, TimeZone timeZone) {
+        return v == null ? null : toInt(v, timeZone);
+    }
+
+    public static long toLong(Date v) {
+        return toLong(v, LOCAL_TZ);
+    }
+
+    public static int toInt(java.sql.Time v) {
+        return (int) (toLong(v) % DateTimeUtils.MILLIS_PER_DAY);
+    }
+
+    public static Integer toIntOptional(java.sql.Time v) {
+        return v == null ? null : toInt(v);
+    }
+
+    public static int toInt(String s) {
+        return Integer.parseInt(s.trim());
+    }
+
+    public static int toInt(Number number) {
+        return number.intValue();
+    }
+
+    public static int toInt(Object o) {
+        return o instanceof Integer ? (Integer) o : o instanceof Number ? toInt((Number) o) : o instanceof String ? toInt((String) o) : (Integer) cannotConvert(o, int.class);
+    }
+
+    public static long toLong(Timestamp v) {
+        return toLong(v, LOCAL_TZ);
+    }
+
+    // mainly intended for java.sql.Timestamp but works for other dates also
+    public static long toLong(java.util.Date v, TimeZone timeZone) {
+        final long time = v.getTime();
+        return time + timeZone.getOffset(time);
+    }
+
+    // mainly intended for java.sql.Timestamp but works for other dates also
+    public static Long toLongOptional(java.util.Date v) {
+        return v == null ? null : toLong(v, LOCAL_TZ);
+    }
+
+    public static Long toLongOptional(Timestamp v, TimeZone timeZone) {
+        if (v == null) {
+            return null;
+        }
+        return toLong(v, LOCAL_TZ);
+    }
+
+    public static long toLong(String s) {
+        if (s.startsWith("199") && s.contains(":")) {
+            return Timestamp.valueOf(s).getTime();
+        }
+        return Long.parseLong(s.trim());
+    }
+
+    public static long toLong(Number number) {
+        return number.longValue();
+    }
+
+    public static long toLong(Object o) {
+        return o instanceof Long ? (Long) o : o instanceof Number ? toLong((Number) o) : o instanceof String ? toLong((String) o) : (Long) cannotConvert(o, long.class);
+    }
+
+    public static float toFloat(String s) {
+        return Float.parseFloat(s.trim());
+    }
+
+    public static float toFloat(Number number) {
+        return number.floatValue();
+    }
+
+    public static float toFloat(Object o) {
+        return o instanceof Float ? (Float) o : o instanceof Number ? toFloat((Number) o) : o instanceof String ? toFloat((String) o) : (Float) cannotConvert(o, float.class);
+    }
+
+    public static double toDouble(String s) {
+        return Double.parseDouble(s.trim());
+    }
+
+    public static double toDouble(Number number) {
+        return number.doubleValue();
+    }
+
+    public static double toDouble(Object o) {
+        return o instanceof Double ? (Double) o : o instanceof Number ? toDouble((Number) o) : o instanceof String ? toDouble((String) o) : (Double) cannotConvert(o, double.class);
+    }
+
+    public static BigDecimal toBigDecimal(String s) {
+        return new BigDecimal(s.trim());
+    }
+
+    public static BigDecimal toBigDecimal(Number number) {
+        // There are some values of "long" that cannot be represented as "double".
+        // Not so "int". If it isn't a long, go straight to double.
+        return number instanceof BigDecimal ? (BigDecimal) number : number instanceof BigInteger ? new BigDecimal((BigInteger) number) : number instanceof Long ? new BigDecimal(number.longValue()) : new BigDecimal(number.doubleValue());
+    }
+
+    public static BigDecimal toBigDecimal(Object o) {
+        return o instanceof Number ? toBigDecimal((Number) o) : toBigDecimal(o.toString());
+    }
+
+    // Don't need shortValueOf etc. - Short.valueOf is sufficient.
+
+    /** Helper for CAST(... AS VARCHAR(maxLength)). */
+    public static String truncate(String s, int maxLength) {
+        return s == null ? null : s.length() > maxLength ? s.substring(0, maxLength) : s;
+    }
+
+    /** Helper for CAST(... AS VARBINARY(maxLength)). */
+    public static ByteString truncate(ByteString s, int maxLength) {
+        return s == null ? null : s.length() > maxLength ? s.substring(0, maxLength) : s;
+    }
+
+    /** SQL {@code POSITION(seek IN string)} function. */
+    public static int position(String seek, String s) {
+        return s.indexOf(seek) + 1;
+    }
+
+    /** SQL {@code POSITION(seek IN string)} function. */
+    public static int position(ByteString seek, ByteString s) {
+        return s.indexOf(seek) + 1;
+    }
+
+    /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+    public static long round(long v, long x) {
+        return truncate(v + x / 2, x);
+    }
+
+    /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+    public static long truncate(long v, long x) {
+        long remainder = v % x;
+        if (remainder < 0) {
+            remainder += x;
+        }
+        return v - remainder;
+    }
+
+    /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+    public static int round(int v, int x) {
+        return truncate(v + x / 2, x);
+    }
+
+    /** Helper for rounding. Truncate(12345, 1000) returns 12000. */
+    public static int truncate(int v, int x) {
+        int remainder = v % x;
+        if (remainder < 0) {
+            remainder += x;
+        }
+        return v - remainder;
+    }
+
+    /** SQL {@code CURRENT_TIMESTAMP} function. */
+    @NonDeterministic
+    public static long currentTimestamp(DataContext root) {
+        // Cast required for JDK 1.6.
+        return (Long) DataContext.Variable.CURRENT_TIMESTAMP.get(root);
+    }
+
+    /** SQL {@code CURRENT_TIME} function. */
+    @NonDeterministic
+    public static int currentTime(DataContext root) {
+        int time = (int) (currentTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
+        if (time < 0) {
+            time += DateTimeUtils.MILLIS_PER_DAY;
+        }
+        return time;
+    }
+
+    /** SQL {@code CURRENT_DATE} function. */
+    @NonDeterministic
+    public static int currentDate(DataContext root) {
+        final long timestamp = currentTimestamp(root);
+        int date = (int) (timestamp / DateTimeUtils.MILLIS_PER_DAY);
+        final int time = (int) (timestamp % DateTimeUtils.MILLIS_PER_DAY);
+        if (time < 0) {
+            --date;
+        }
+        return date;
+    }
+
+    /** SQL {@code LOCAL_TIMESTAMP} function. */
+    @NonDeterministic
+    public static long localTimestamp(DataContext root) {
+        // Cast required for JDK 1.6.
+        return (Long) DataContext.Variable.LOCAL_TIMESTAMP.get(root);
+    }
+
+    /** SQL {@code LOCAL_TIME} function. */
+    @NonDeterministic
+    public static int localTime(DataContext root) {
+        return (int) (localTimestamp(root) % DateTimeUtils.MILLIS_PER_DAY);
+    }
+
+    /** Helper for "array element reference". Caller has already ensured that
+     * array and index are not null. Index is 1-based, per SQL. */
+    public static Object arrayItem(List list, int item) {
+        if (item < 1 || item > list.size()) {
+            return null;
+        }
+        return list.get(item - 1);
+    }
+
+    /** Helper for "map element reference". Caller has already ensured that
+     * array and index are not null. Index is 1-based, per SQL. */
+    public static Object mapItem(Map map, Object item) {
+        return map.get(item);
+    }
+
+    /** Implements the {@code [ ... ]} operator on an object whose type is not
+     * known until runtime.
+     */
+    public static Object item(Object object, Object index) {
+        if (object instanceof Map) {
+            return ((Map) object).get(index);
+        }
+        if (object instanceof List && index instanceof Number) {
+            List list = (List) object;
+            return list.get(((Number) index).intValue());
+        }
+        return null;
+    }
+
+    /** NULL &rarr; FALSE, FALSE &rarr; FALSE, TRUE &rarr; TRUE. */
+    public static boolean isTrue(Boolean b) {
+        return b != null && b;
+    }
+
+    /** NULL &rarr; TRUE, FALSE &rarr; FALSE, TRUE &rarr; TRUE. */
+    public static boolean isNotFalse(Boolean b) {
+        return b == null || b;
+    }
+
+    /** NULL &rarr; NULL, FALSE &rarr; TRUE, TRUE &rarr; FALSE. */
+    public static Boolean not(Boolean b) {
+        return (b == null) ? null : !b;
+    }
+
+    /** Converts a JDBC array to a list. */
+    public static List arrayToList(final java.sql.Array a) {
+        if (a == null) {
+            return null;
+        }
+        try {
+            return Primitive.asList(a.getArray());
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /** Support the {@code CURRENT VALUE OF sequence} operator. */
+    @NonDeterministic
+    public static long sequenceCurrentValue(String key) {
+        return getAtomicLong(key).get();
+    }
+
+    /** Support the {@code NEXT VALUE OF sequence} operator. */
+    @NonDeterministic
+    public static long sequenceNextValue(String key) {
+        return getAtomicLong(key).incrementAndGet();
+    }
+
+    private static AtomicLong getAtomicLong(String key) {
+        final Map<String, AtomicLong> map = THREAD_SEQUENCES.get();
+        AtomicLong atomic = map.get(key);
+        if (atomic == null) {
+            atomic = new AtomicLong();
+            map.put(key, atomic);
+        }
+        return atomic;
+    }
+
+    /** Support the SLICE function. */
+    public static List slice(List list) {
+        return list;
+    }
+
+    /** Support the ELEMENT function. */
+    public static Object element(List list) {
+        switch (list.size()) {
+        case 0:
+            return null;
+        case 1:
+            return list.get(0);
+        default:
+            throw new RuntimeException("more than one value");
+        }
+    }
+
+    /** Returns a lambda that converts a list to an enumerable. */
+    public static <E> Function1<List<E>, Enumerable<E>> listToEnumerable() {
+        //noinspection unchecked
+        return (Function1<List<E>, Enumerable<E>>) (Function1) LIST_AS_ENUMERABLE;
+    }
 
 }
 


[10/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index cb656c0..d6aa492 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -18,7 +18,17 @@
 
 package org.apache.kylin.common;
 
-import com.google.common.collect.Sets;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.SortedSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.commons.io.IOUtils;
@@ -28,10 +38,7 @@ import org.apache.kylin.common.util.CliCommandExecutor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.*;
-import java.util.SortedSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import com.google.common.collect.Sets;
 
 /**
  * @author yangli9
@@ -426,15 +433,15 @@ public class KylinConfig {
     public int getDictionaryMaxCardinality() {
         return Integer.parseInt(getOptional("kylin.dictionary.max.cardinality", "5000000"));
     }
-    
+
     public int getTableSnapshotMaxMB() {
         return Integer.parseInt(getOptional("kylin.table.snapshot.max_mb", "300"));
     }
-    
+
     public int getScanThreshold() {
         return Integer.parseInt(getOptional("kylin.query.scan.threshold", "10000000"));
     }
-    
+
     public boolean getQueryRunLocalCoprocessor() {
         return Boolean.parseBoolean(getOptional("kylin.query.run.local.coprocessor", "false"));
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
index 3802b18..ee708e2 100644
--- a/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
+++ b/common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
@@ -32,15 +32,15 @@ public class BackdoorToggles {
     public static String getObserverBehavior() {
         return getString(DEBUG_TOGGLE_OBSERVER_BEHAVIOR);
     }
-    
+
     public static boolean getDisableFuzzyKey() {
         return getBoolean(DEBUG_TOGGLE_DISABLE_FUZZY_KEY);
     }
-    
+
     public static boolean getRunLocalCoprocessor() {
         return getBoolean(DEBUG_TOGGLE_LOCAL_COPROCESSOR);
     }
-    
+
     private static String getString(String key) {
         Map<String, String> toggles = _backdoorToggles.get();
         if (toggles == null) {
@@ -49,7 +49,7 @@ public class BackdoorToggles {
             return toggles.get(key);
         }
     }
-    
+
     private static boolean getBoolean(String key) {
         return "true".equals(getString(key));
     }
@@ -83,7 +83,7 @@ public class BackdoorToggles {
 
      */
     public final static String DEBUG_TOGGLE_OBSERVER_BEHAVIOR = "DEBUG_TOGGLE_OBSERVER_BEHAVIOR";
-    
+
     /**
      * set DEBUG_TOGGLE_LOCAL_COPROCESSOR=true to run coprocessor at client side (not in HBase region server)
      *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java b/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
index 14c4718..93d4a13 100644
--- a/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
+++ b/common/src/main/java/org/apache/kylin/common/lock/ZookeeperJobLock.java
@@ -17,6 +17,8 @@
 */
 package org.apache.kylin.common.lock;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.curator.RetryPolicy;
 import org.apache.curator.framework.CuratorFramework;
@@ -31,8 +33,6 @@ import org.apache.kylin.common.util.HadoopUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.concurrent.TimeUnit;
-
 /**
  */
 public class ZookeeperJobLock implements JobLock {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java b/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
index c23b27f..5335a65 100644
--- a/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
+++ b/common/src/main/java/org/apache/kylin/common/mr/KylinMapper.java
@@ -18,10 +18,9 @@
 
 package org.apache.kylin.common.mr;
 
-
-import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.mapreduce.Mapper;
+import org.apache.kylin.common.util.HadoopUtil;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 1/19/15.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java b/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
index df12f7a..1276c64 100644
--- a/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
+++ b/common/src/main/java/org/apache/kylin/common/mr/KylinReducer.java
@@ -18,9 +18,9 @@
 
 package org.apache.kylin.common.mr;
 
-import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.mapreduce.Reducer;
+import org.apache.kylin.common.util.HadoopUtil;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 1/19/15.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
index 38c6d9d..fef0a14 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/FileResourceStore.java
@@ -18,16 +18,21 @@
 
 package org.apache.kylin.common.persistence;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import com.google.common.collect.Lists;
 import org.apache.commons.io.IOUtils;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 
+import com.google.common.collect.Lists;
+
 public class FileResourceStore extends ResourceStore {
 
     File root;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java b/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
index 145cada..b84ddd9 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/HBaseConnection.java
@@ -30,11 +30,10 @@ import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HConnection;
 import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.kylin.common.util.HadoopUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.common.util.HadoopUtil;
-
 /**
  * @author yangli9
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
index 6c5847e..1073617 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/HBaseResourceStore.java
@@ -18,21 +18,35 @@
 
 package org.apache.kylin.common.persistence;
 
-import com.google.common.collect.Lists;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.client.*;
+import org.apache.hadoop.hbase.client.Delete;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.HadoopUtil;
 
-import java.io.*;
-import java.util.*;
+import com.google.common.collect.Lists;
 
 public class HBaseResourceStore extends ResourceStore {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java b/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
index a49706d..58872ec 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/ResourceStore.java
@@ -53,7 +53,6 @@ abstract public class ResourceStore {
     public static final String TABLE_RESOURCE_ROOT = "/table";
     public static final String HYBRID_RESOURCE_ROOT = "/hybrid";
 
-
     private static ConcurrentHashMap<KylinConfig, ResourceStore> CACHE = new ConcurrentHashMap<KylinConfig, ResourceStore>();
 
     public static final ArrayList<Class<? extends ResourceStore>> knownImpl = new ArrayList<Class<? extends ResourceStore>>();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java b/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
index 6c575bd..cfde05c 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java
@@ -46,26 +46,26 @@ public class ResourceTool {
 
         String cmd = args[0];
         switch (cmd) {
-            case "reset":
-                reset(args.length == 1 ? KylinConfig.getInstanceFromEnv() : KylinConfig.createInstanceFromUri(args[1]));
-                break;
-            case "copy":
-                copy(args[1], args[2]);
-                break;
-            case "list":
-                list(args[1], args[2]);
-                break;
-            case "download":
-                copy(KylinConfig.getInstanceFromEnv(), KylinConfig.createInstanceFromUri(args[1]));
-                break;
-            case "upload":
-                copy(KylinConfig.createInstanceFromUri(args[1]), KylinConfig.getInstanceFromEnv());
-                break;
-            case "remove":
-                remove(KylinConfig.getInstanceFromEnv(), args[1]);
-                break;
-            default:
-                System.out.println("Unknown cmd: " + cmd);
+        case "reset":
+            reset(args.length == 1 ? KylinConfig.getInstanceFromEnv() : KylinConfig.createInstanceFromUri(args[1]));
+            break;
+        case "copy":
+            copy(args[1], args[2]);
+            break;
+        case "list":
+            list(args[1], args[2]);
+            break;
+        case "download":
+            copy(KylinConfig.getInstanceFromEnv(), KylinConfig.createInstanceFromUri(args[1]));
+            break;
+        case "upload":
+            copy(KylinConfig.createInstanceFromUri(args[1]), KylinConfig.getInstanceFromEnv());
+            break;
+        case "remove":
+            remove(KylinConfig.getInstanceFromEnv(), args[1]);
+            break;
+        default:
+            System.out.println("Unknown cmd: " + cmd);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java b/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
index 0a6b5c2..e03707d 100644
--- a/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
+++ b/common/src/main/java/org/apache/kylin/common/persistence/RootPersistentEntity.java
@@ -45,13 +45,13 @@ abstract public class RootPersistentEntity implements AclEntity {
     static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss z";
     static FastDateFormat format = FastDateFormat.getInstance(DATE_PATTERN);
     static DateFormat df = new SimpleDateFormat(DATE_PATTERN);
-  
+
     public static String formatTime(long millis) {
         return format.format(millis);
     }
-    
+
     public static long parseTime(String timeString) {
-        if(timeString == null)
+        if (timeString == null)
             return 0;
         try {
             Date dt = df.parse(timeString);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java b/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
index 68e68c3..a58cb97 100644
--- a/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
+++ b/common/src/main/java/org/apache/kylin/common/restclient/Broadcaster.java
@@ -18,13 +18,6 @@
 
 package org.apache.kylin.common.restclient;
 
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
@@ -34,6 +27,14 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Lists;
+
 /**
  * Broadcast kylin event out
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java b/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
index 14bc517..859cedf 100644
--- a/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
+++ b/common/src/main/java/org/apache/kylin/common/restclient/CaseInsensitiveStringCache.java
@@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentSkipListMap;
 /**
  * Created by qianzhou on 1/15/15.
  */
-public class CaseInsensitiveStringCache<V> extends SingleValueCache<String, V>{
+public class CaseInsensitiveStringCache<V> extends SingleValueCache<String, V> {
 
     public CaseInsensitiveStringCache(Broadcaster.TYPE syncType) {
         super(syncType, new ConcurrentSkipListMap<String, V>(String.CASE_INSENSITIVE_ORDER));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ByteArray.java b/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
index e14780a..d4f7b84 100644
--- a/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
+++ b/common/src/main/java/org/apache/kylin/common/util/ByteArray.java
@@ -20,8 +20,6 @@ package org.apache.kylin.common.util;
 
 import java.util.Arrays;
 
-import org.apache.kylin.common.util.Bytes;
-
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/Bytes.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/Bytes.java b/common/src/main/java/org/apache/kylin/common/util/Bytes.java
index 31319ae..e710964 100644
--- a/common/src/main/java/org/apache/kylin/common/util/Bytes.java
+++ b/common/src/main/java/org/apache/kylin/common/util/Bytes.java
@@ -17,12 +17,9 @@
 */
 package org.apache.kylin.common.util;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.io.RawComparator;
-import org.apache.hadoop.io.WritableComparator;
-import org.apache.hadoop.io.WritableUtils;
-import sun.misc.Unsafe;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkPositionIndex;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -41,7 +38,13 @@ import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 
-import static com.google.common.base.Preconditions.*;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.io.RawComparator;
+import org.apache.hadoop.io.WritableComparator;
+import org.apache.hadoop.io.WritableUtils;
+
+import sun.misc.Unsafe;
 
 /**
  * Utility class that handles byte arrays, conversions to/from other types,
@@ -108,7 +111,6 @@ public class Bytes {
      */
     public static final int SIZEOF_SHORT = Short.SIZE / Byte.SIZE;
 
-
     /**
      * Estimate of size cost to pay beyond payload in jvm for instance of byte [].
      * Estimate based on study of jhat and jprofiler numbers.
@@ -117,7 +119,6 @@ public class Bytes {
     // SizeOf which uses java.lang.instrument says 24 bytes. (3 longs?)
     public static final int ESTIMATED_HEAP_TAX = 16;
 
-
     /**
      * Returns length of the byte array, returning 0 if the array is null.
      * Useful for calculating sizes.
@@ -147,8 +148,7 @@ public class Bytes {
 
         @Override
         public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
-            return LexicographicalComparerHolder.BEST_COMPARER.
-                    compareTo(b1, s1, l1, b2, s2, l2);
+            return LexicographicalComparerHolder.BEST_COMPARER.compareTo(b1, s1, l1, b2, s2, l2);
         }
     }
 
@@ -198,8 +198,7 @@ public class Bytes {
      * @return byte array read off <code>in</code>
      * @throws java.io.IOException e
      */
-    public static byte[] readByteArray(final DataInput in)
-            throws IOException {
+    public static byte[] readByteArray(final DataInput in) throws IOException {
         int len = WritableUtils.readVInt(in);
         if (len < 0) {
             throw new NegativeArraySizeException(Integer.toString(len));
@@ -231,8 +230,7 @@ public class Bytes {
      * @param b   array to write
      * @throws IOException e
      */
-    public static void writeByteArray(final DataOutput out, final byte[] b)
-            throws IOException {
+    public static void writeByteArray(final DataOutput out, final byte[] b) throws IOException {
         if (b == null) {
             WritableUtils.writeVInt(out, 0);
         } else {
@@ -249,9 +247,7 @@ public class Bytes {
      * @param length length past offset
      * @throws IOException e
      */
-    public static void writeByteArray(final DataOutput out, final byte[] b,
-                                      final int offset, final int length)
-            throws IOException {
+    public static void writeByteArray(final DataOutput out, final byte[] b, final int offset, final int length) throws IOException {
         WritableUtils.writeVInt(out, length);
         out.write(b, offset, length);
     }
@@ -266,8 +262,7 @@ public class Bytes {
      * @param srcLength source length
      * @return New offset in src array.
      */
-    public static int writeByteArray(final byte[] tgt, final int tgtOffset,
-                                     final byte[] src, final int srcOffset, final int srcLength) {
+    public static int writeByteArray(final byte[] tgt, final int tgtOffset, final byte[] src, final int srcOffset, final int srcLength) {
         byte[] vint = vintToBytes(srcLength);
         System.arraycopy(vint, 0, tgt, tgtOffset, vint.length);
         int offset = tgtOffset + vint.length;
@@ -285,8 +280,7 @@ public class Bytes {
      * @param srcLength source length
      * @return incremented offset
      */
-    public static int putBytes(byte[] tgtBytes, int tgtOffset, byte[] srcBytes,
-                               int srcOffset, int srcLength) {
+    public static int putBytes(byte[] tgtBytes, int tgtOffset, byte[] srcBytes, int srcOffset, int srcLength) {
         System.arraycopy(srcBytes, srcOffset, tgtBytes, tgtOffset, srcLength);
         return tgtOffset + srcLength;
     }
@@ -358,9 +352,7 @@ public class Bytes {
      * @param sep The separator to use.
      * @param b2  The second byte array.
      */
-    public static String toString(final byte[] b1,
-                                  String sep,
-                                  final byte[] b2) {
+    public static String toString(final byte[] b1, String sep, final byte[] b2) {
         return toString(b1, 0, b1.length) + sep + toString(b2, 0, b2.length);
     }
 
@@ -429,14 +421,13 @@ public class Bytes {
     public static String toStringBinary(final byte[] b, int off, int len) {
         StringBuilder result = new StringBuilder();
         // Just in case we are passed a 'len' that is > buffer length...
-        if (off >= b.length) return result.toString();
-        if (off + len > b.length) len = b.length - off;
+        if (off >= b.length)
+            return result.toString();
+        if (off + len > b.length)
+            len = b.length - off;
         for (int i = off; i < off + len; ++i) {
             int ch = b[i] & 0xFF;
-            if ((ch >= '0' && ch <= '9')
-                    || (ch >= 'A' && ch <= 'Z')
-                    || (ch >= 'a' && ch <= 'z')
-                    || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0) {
+            if ((ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || " `~!@#$%^&*()-_=+[]{}|;:'\",.<>/?".indexOf(ch) >= 0) {
                 result.append((char) ch);
             } else {
                 result.append(String.format("\\x%02X", ch));
@@ -446,9 +437,7 @@ public class Bytes {
     }
 
     private static boolean isHexDigit(char c) {
-        return
-                (c >= 'A' && c <= 'F') ||
-                        (c >= '0' && c <= '9');
+        return (c >= 'A' && c <= 'F') || (c >= '0' && c <= '9');
     }
 
     /**
@@ -477,8 +466,7 @@ public class Bytes {
                 char hd2 = in.charAt(i + 3);
 
                 // they need to be A-F0-9:
-                if (!isHexDigit(hd1) ||
-                        !isHexDigit(hd2)) {
+                if (!isHexDigit(hd1) || !isHexDigit(hd2)) {
                     // bogus escape code, ignore:
                     continue;
                 }
@@ -515,7 +503,7 @@ public class Bytes {
      * @return <code>b</code> encoded in a byte array.
      */
     public static byte[] toBytes(final boolean b) {
-        return new byte[]{b ? (byte) -1 : (byte) 0};
+        return new byte[] { b ? (byte) -1 : (byte) 0 };
     }
 
     /**
@@ -596,17 +584,12 @@ public class Bytes {
         }
     }
 
-    private static IllegalArgumentException
-    explainWrongLengthOrOffset(final byte[] bytes,
-                               final int offset,
-                               final int length,
-                               final int expectedLength) {
+    private static IllegalArgumentException explainWrongLengthOrOffset(final byte[] bytes, final int offset, final int length, final int expectedLength) {
         String reason;
         if (length != expectedLength) {
             reason = "Wrong length: " + length + ", expected " + expectedLength;
         } else {
-            reason = "offset (" + offset + ") + length (" + length + ") exceed the"
-                    + " capacity of the array: " + bytes.length;
+            reason = "offset (" + offset + ") + length (" + length + ") exceed the" + " capacity of the array: " + bytes.length;
         }
         return new IllegalArgumentException(reason);
     }
@@ -623,8 +606,7 @@ public class Bytes {
      */
     public static int putLong(byte[] bytes, int offset, long val) {
         if (bytes.length - offset < SIZEOF_LONG) {
-            throw new IllegalArgumentException("Not enough room to put a long at"
-                    + " offset " + offset + " in a " + bytes.length + " byte array");
+            throw new IllegalArgumentException("Not enough room to put a long at" + " offset " + offset + " in a " + bytes.length + " byte array");
         }
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
             return putLongUnsafe(bytes, offset, val);
@@ -650,8 +632,7 @@ public class Bytes {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
             val = Long.reverseBytes(val);
         }
-        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putLong(bytes, (long) offset +
-                org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
         return offset + SIZEOF_LONG;
     }
 
@@ -807,11 +788,9 @@ public class Bytes {
      */
     public static int toIntUnsafe(byte[] bytes, int offset) {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
-            return Integer.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+            return Integer.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
         } else {
-            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
         }
     }
 
@@ -824,11 +803,9 @@ public class Bytes {
      */
     public static short toShortUnsafe(byte[] bytes, int offset) {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
-            return Short.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+            return Short.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
         } else {
-            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
         }
     }
 
@@ -841,11 +818,9 @@ public class Bytes {
      */
     public static long toLongUnsafe(byte[] bytes, int offset) {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
-            return Long.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
+            return Long.reverseBytes(org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET));
         } else {
-            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes,
-                    (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
+            return org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.getLong(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET);
         }
     }
 
@@ -861,8 +836,7 @@ public class Bytes {
      */
     public static int readAsInt(byte[] bytes, int offset, final int length) {
         if (offset + length > bytes.length) {
-            throw new IllegalArgumentException("offset (" + offset + ") + length (" + length
-                    + ") exceed the" + " capacity of the array: " + bytes.length);
+            throw new IllegalArgumentException("offset (" + offset + ") + length (" + length + ") exceed the" + " capacity of the array: " + bytes.length);
         }
         int n = 0;
         for (int i = offset; i < (offset + length); i++) {
@@ -884,8 +858,7 @@ public class Bytes {
      */
     public static int putInt(byte[] bytes, int offset, int val) {
         if (bytes.length - offset < SIZEOF_INT) {
-            throw new IllegalArgumentException("Not enough room to put an int at"
-                    + " offset " + offset + " in a " + bytes.length + " byte array");
+            throw new IllegalArgumentException("Not enough room to put an int at" + " offset " + offset + " in a " + bytes.length + " byte array");
         }
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
             return putIntUnsafe(bytes, offset, val);
@@ -911,8 +884,7 @@ public class Bytes {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
             val = Integer.reverseBytes(val);
         }
-        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putInt(bytes, (long) offset +
-                org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putInt(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
         return offset + SIZEOF_INT;
     }
 
@@ -1001,8 +973,7 @@ public class Bytes {
      */
     public static int putShort(byte[] bytes, int offset, short val) {
         if (bytes.length - offset < SIZEOF_SHORT) {
-            throw new IllegalArgumentException("Not enough room to put a short at"
-                    + " offset " + offset + " in a " + bytes.length + " byte array");
+            throw new IllegalArgumentException("Not enough room to put a short at" + " offset " + offset + " in a " + bytes.length + " byte array");
         }
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.isAvailable()) {
             return putShortUnsafe(bytes, offset, val);
@@ -1026,8 +997,7 @@ public class Bytes {
         if (org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.littleEndian) {
             val = Short.reverseBytes(val);
         }
-        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putShort(bytes, (long) offset +
-                org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
+        org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.theUnsafe.putShort(bytes, (long) offset + org.apache.kylin.common.util.Bytes.LexicographicalComparerHolder.UnsafeComparer.BYTE_ARRAY_BASE_OFFSET, val);
         return offset + SIZEOF_SHORT;
     }
 
@@ -1046,8 +1016,7 @@ public class Bytes {
      */
     public static int putAsShort(byte[] bytes, int offset, int val) {
         if (bytes.length - offset < SIZEOF_SHORT) {
-            throw new IllegalArgumentException("Not enough room to put a short at"
-                    + " offset " + offset + " in a " + bytes.length + " byte array");
+            throw new IllegalArgumentException("Not enough room to put a short at" + " offset " + offset + " in a " + bytes.length + " byte array");
         }
         bytes[offset + 1] = (byte) val;
         val >>= 8;
@@ -1069,7 +1038,6 @@ public class Bytes {
         return result;
     }
 
-
     /**
      * Converts a byte array to a BigDecimal
      *
@@ -1089,8 +1057,7 @@ public class Bytes {
      * @return the char value
      */
     public static BigDecimal toBigDecimal(byte[] bytes, int offset, final int length) {
-        if (bytes == null || length < SIZEOF_INT + 1 ||
-                (offset + length > bytes.length)) {
+        if (bytes == null || length < SIZEOF_INT + 1 || (offset + length > bytes.length)) {
             return null;
         }
 
@@ -1185,8 +1152,7 @@ public class Bytes {
      * @return deserialized long from stream.
      * @throws java.io.IOException e
      */
-    public static long readVLong(final byte[] buffer, final int offset)
-            throws IOException {
+    public static long readVLong(final byte[] buffer, final int offset) throws IOException {
         byte firstByte = buffer[offset];
         int len = WritableUtils.decodeVIntSize(firstByte);
         if (len == 1) {
@@ -1207,8 +1173,7 @@ public class Bytes {
      * @return 0 if equal, < 0 if left is less than right, etc.
      */
     public static int compareTo(final byte[] left, final byte[] right) {
-        return LexicographicalComparerHolder.BEST_COMPARER.
-                compareTo(left, 0, left.length, right, 0, right.length);
+        return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, 0, left.length, right, 0, right.length);
     }
 
     /**
@@ -1222,16 +1187,12 @@ public class Bytes {
      * @param length2 How much to compare from the right buffer
      * @return 0 if equal, < 0 if left is less than right, etc.
      */
-    public static int compareTo(byte[] buffer1, int offset1, int length1,
-                                byte[] buffer2, int offset2, int length2) {
-        return LexicographicalComparerHolder.BEST_COMPARER.
-                compareTo(buffer1, offset1, length1, buffer2, offset2, length2);
+    public static int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
+        return LexicographicalComparerHolder.BEST_COMPARER.compareTo(buffer1, offset1, length1, buffer2, offset2, length2);
     }
 
     interface Comparer<T> {
-        int compareTo(
-                T buffer1, int offset1, int length1, T buffer2, int offset2, int length2
-        );
+        int compareTo(T buffer1, int offset1, int length1, T buffer2, int offset2, int length2);
     }
 
     static Comparer<byte[]> lexicographicalComparerJavaImpl() {
@@ -1246,8 +1207,7 @@ public class Bytes {
      * {@code Unsafe} isn't available.
      */
     static class LexicographicalComparerHolder {
-        static final String UNSAFE_COMPARER_NAME =
-                LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";
+        static final String UNSAFE_COMPARER_NAME = LexicographicalComparerHolder.class.getName() + "$UnsafeComparer";
 
         static final Comparer<byte[]> BEST_COMPARER = getBestComparer();
 
@@ -1261,8 +1221,7 @@ public class Bytes {
 
                 // yes, UnsafeComparer does implement Comparer<byte[]>
                 @SuppressWarnings("unchecked")
-                Comparer<byte[]> comparer =
-                        (Comparer<byte[]>) theClass.getEnumConstants()[0];
+                Comparer<byte[]> comparer = (Comparer<byte[]>) theClass.getEnumConstants()[0];
                 return comparer;
             } catch (Throwable t) { // ensure we really catch *everything*
                 return lexicographicalComparerJavaImpl();
@@ -1273,12 +1232,9 @@ public class Bytes {
             INSTANCE;
 
             @Override
-            public int compareTo(byte[] buffer1, int offset1, int length1,
-                                 byte[] buffer2, int offset2, int length2) {
+            public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
                 // Short circuit equal case
-                if (buffer1 == buffer2 &&
-                        offset1 == offset2 &&
-                        length1 == length2) {
+                if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {
                     return 0;
                 }
                 // Bring WritableComparator code local
@@ -1306,23 +1262,22 @@ public class Bytes {
             static final int BYTE_ARRAY_BASE_OFFSET;
 
             static {
-                theUnsafe = (Unsafe) AccessController.doPrivileged(
-                        new PrivilegedAction<Object>() {
-                            @Override
-                            public Object run() {
-                                try {
-                                    Field f = Unsafe.class.getDeclaredField("theUnsafe");
-                                    f.setAccessible(true);
-                                    return f.get(null);
-                                } catch (NoSuchFieldException e) {
-                                    // It doesn't matter what we throw;
-                                    // it's swallowed in getBestComparer().
-                                    throw new Error();
-                                } catch (IllegalAccessException e) {
-                                    throw new Error();
-                                }
-                            }
-                        });
+                theUnsafe = (Unsafe) AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                    @Override
+                    public Object run() {
+                        try {
+                            Field f = Unsafe.class.getDeclaredField("theUnsafe");
+                            f.setAccessible(true);
+                            return f.get(null);
+                        } catch (NoSuchFieldException e) {
+                            // It doesn't matter what we throw;
+                            // it's swallowed in getBestComparer().
+                            throw new Error();
+                        } catch (IllegalAccessException e) {
+                            throw new Error();
+                        }
+                    }
+                });
 
                 BYTE_ARRAY_BASE_OFFSET = theUnsafe.arrayBaseOffset(byte[].class);
 
@@ -1332,8 +1287,7 @@ public class Bytes {
                 }
             }
 
-            static final boolean littleEndian =
-                    ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN);
+            static final boolean littleEndian = ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN);
 
             /**
              * Returns true if x1 is less than x2, when both values are treated as
@@ -1380,13 +1334,10 @@ public class Bytes {
              * @return 0 if equal, < 0 if left is less than right, etc.
              */
             @Override
-            public int compareTo(byte[] buffer1, int offset1, int length1,
-                                 byte[] buffer2, int offset2, int length2) {
+            public int compareTo(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) {
 
                 // Short circuit equal case
-                if (buffer1 == buffer2 &&
-                        offset1 == offset2 &&
-                        length1 == length2) {
+                if (buffer1 == buffer2 && offset1 == offset2 && length1 == length2) {
                     return 0;
                 }
                 final int minLength = Math.min(length1, length2);
@@ -1394,11 +1345,11 @@ public class Bytes {
                 final long offset1Adj = offset1 + BYTE_ARRAY_BASE_OFFSET;
                 final long offset2Adj = offset2 + BYTE_ARRAY_BASE_OFFSET;
 
-        /*
-         * Compare 8 bytes at a time. Benchmarking shows comparing 8 bytes at a
-         * time is no slower than comparing 4 bytes at a time even on 32-bit.
-         * On the other hand, it is substantially faster on 64-bit.
-         */
+                /*
+                 * Compare 8 bytes at a time. Benchmarking shows comparing 8 bytes at a
+                 * time is no slower than comparing 4 bytes at a time even on 32-bit.
+                 * On the other hand, it is substantially faster on 64-bit.
+                 */
                 for (int i = 0; i < minWords * SIZEOF_LONG; i += SIZEOF_LONG) {
                     long lw = theUnsafe.getLong(buffer1, offset1Adj + (long) i);
                     long rw = theUnsafe.getLong(buffer2, offset2Adj + (long) i);
@@ -1457,25 +1408,27 @@ public class Bytes {
     public static boolean equals(final byte[] left, final byte[] right) {
         // Could use Arrays.equals?
         //noinspection SimplifiableConditionalExpression
-        if (left == right) return true;
-        if (left == null || right == null) return false;
-        if (left.length != right.length) return false;
-        if (left.length == 0) return true;
+        if (left == right)
+            return true;
+        if (left == null || right == null)
+            return false;
+        if (left.length != right.length)
+            return false;
+        if (left.length == 0)
+            return true;
 
         // Since we're often comparing adjacent sorted data,
         // it's usual to have equal arrays except for the very last byte
         // so check that first
-        if (left[left.length - 1] != right[right.length - 1]) return false;
+        if (left[left.length - 1] != right[right.length - 1])
+            return false;
 
         return compareTo(left, right) == 0;
     }
 
-    public static boolean equals(final byte[] left, int leftOffset, int leftLen,
-                                 final byte[] right, int rightOffset, int rightLen) {
+    public static boolean equals(final byte[] left, int leftOffset, int leftLen, final byte[] right, int rightOffset, int rightLen) {
         // short circuit case
-        if (left == right &&
-                leftOffset == rightOffset &&
-                leftLen == rightLen) {
+        if (left == right && leftOffset == rightOffset && leftLen == rightLen) {
             return true;
         }
         // different lengths fast check
@@ -1489,22 +1442,24 @@ public class Bytes {
         // Since we're often comparing adjacent sorted data,
         // it's usual to have equal arrays except for the very last byte
         // so check that first
-        if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1]) return false;
+        if (left[leftOffset + leftLen - 1] != right[rightOffset + rightLen - 1])
+            return false;
 
-        return LexicographicalComparerHolder.BEST_COMPARER.
-                compareTo(left, leftOffset, leftLen, right, rightOffset, rightLen) == 0;
+        return LexicographicalComparerHolder.BEST_COMPARER.compareTo(left, leftOffset, leftLen, right, rightOffset, rightLen) == 0;
     }
 
-
     /**
      * @param a   left operand
      * @param buf right operand
      * @return True if equal
      */
     public static boolean equals(byte[] a, ByteBuffer buf) {
-        if (a == null) return buf == null;
-        if (buf == null) return false;
-        if (a.length != buf.remaining()) return false;
+        if (a == null)
+            return buf == null;
+        if (buf == null)
+            return false;
+        if (a.length != buf.remaining())
+            return false;
 
         // Thou shalt not modify the original byte buffer in what should be read only operations.
         ByteBuffer b = buf.duplicate();
@@ -1516,16 +1471,12 @@ public class Bytes {
         return true;
     }
 
-
     /**
      * Return true if the byte array on the right is a prefix of the byte
      * array on the left.
      */
     public static boolean startsWith(byte[] bytes, byte[] prefix) {
-        return bytes != null && prefix != null &&
-                bytes.length >= prefix.length &&
-                LexicographicalComparerHolder.BEST_COMPARER.
-                        compareTo(bytes, 0, prefix.length, prefix, 0, prefix.length) == 0;
+        return bytes != null && prefix != null && bytes.length >= prefix.length && LexicographicalComparerHolder.BEST_COMPARER.compareTo(bytes, 0, prefix.length, prefix, 0, prefix.length) == 0;
     }
 
     /**
@@ -1672,8 +1623,7 @@ public class Bytes {
      *                  the range in two; i.e. one split.
      * @return Array of dividing values
      */
-    public static byte[][] split(final byte[] a, final byte[] b,
-                                 boolean inclusive, final int num) {
+    public static byte[][] split(final byte[] a, final byte[] b, boolean inclusive, final int num) {
         byte[][] ret = new byte[num + 2][];
         int i = 0;
         Iterable<byte[]> iter = iterateOnSplits(a, b, inclusive, num);
@@ -1688,16 +1638,14 @@ public class Bytes {
     /**
      * Iterate over keys within the passed range, splitting at an [a,b) boundary.
      */
-    public static Iterable<byte[]> iterateOnSplits(final byte[] a,
-                                                   final byte[] b, final int num) {
+    public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, final int num) {
         return iterateOnSplits(a, b, false, num);
     }
 
     /**
      * Iterate over keys within the passed range.
      */
-    public static Iterable<byte[]> iterateOnSplits(
-            final byte[] a, final byte[] b, boolean inclusive, final int num) {
+    public static Iterable<byte[]> iterateOnSplits(final byte[] a, final byte[] b, boolean inclusive, final int num) {
         byte[] aPadded;
         byte[] bPadded;
         if (a.length < b.length) {
@@ -1716,7 +1664,7 @@ public class Bytes {
         if (num <= 0) {
             throw new IllegalArgumentException("num cannot be <= 0");
         }
-        byte[] prependHeader = {1, 0};
+        byte[] prependHeader = { 1, 0 };
         final BigInteger startBI = new BigInteger(add(prependHeader, aPadded));
         final BigInteger stopBI = new BigInteger(add(prependHeader, bPadded));
         BigInteger diffBI = stopBI.subtract(startBI);
@@ -1746,8 +1694,10 @@ public class Bytes {
             @Override
             public byte[] next() {
                 i++;
-                if (i == 0) return a;
-                if (i == num + 1) return b;
+                if (i == 0)
+                    return a;
+                if (i == num + 1)
+                    return b;
 
                 BigInteger curBI = startBI.add(intervalBI.multiply(BigInteger.valueOf(i)));
                 byte[] padded = curBI.toByteArray();
@@ -1832,8 +1782,7 @@ public class Bytes {
      * means that this function can return 2N + 1 different values
      * ranging from -(N + 1) to N - 1.
      */
-    public static int binarySearch(byte[][] arr, byte[] key, int offset,
-                                   int length, RawComparator<?> comparator) {
+    public static int binarySearch(byte[][] arr, byte[] key, int offset, int length, RawComparator<?> comparator) {
         int low = 0;
         int high = arr.length - 1;
 
@@ -1841,15 +1790,14 @@ public class Bytes {
             int mid = (low + high) >>> 1;
             // we have to compare in this order, because the comparator order
             // has special logic when the 'left side' is a special key.
-            int cmp = comparator.compare(key, offset, length,
-                    arr[mid], 0, arr[mid].length);
+            int cmp = comparator.compare(key, offset, length, arr[mid], 0, arr[mid].length);
             // key lives above the midpoint
             if (cmp > 0)
                 low = mid + 1;
-                // key lives below the midpoint
+            // key lives below the midpoint
             else if (cmp < 0)
                 high = mid - 1;
-                // BAM. how often does this really happen?
+            // BAM. how often does this really happen?
             else
                 return mid;
         }
@@ -1870,18 +1818,17 @@ public class Bytes {
             // Hopefully this doesn't happen too often.
             byte[] newvalue;
             if (val[0] < 0) {
-                newvalue = new byte[]{-1, -1, -1, -1, -1, -1, -1, -1};
+                newvalue = new byte[] { -1, -1, -1, -1, -1, -1, -1, -1 };
             } else {
                 newvalue = new byte[SIZEOF_LONG];
             }
-            System.arraycopy(val, 0, newvalue, newvalue.length - val.length,
-                    val.length);
+            System.arraycopy(val, 0, newvalue, newvalue.length - val.length, val.length);
             val = newvalue;
         } else if (val.length > SIZEOF_LONG) {
-            throw new IllegalArgumentException("Increment Bytes - value too big: " +
-                    val.length);
+            throw new IllegalArgumentException("Increment Bytes - value too big: " + val.length);
         }
-        if (amount == 0) return val;
+        if (amount == 0)
+            return val;
         if (val[0] < 0) {
             return binaryIncrementNeg(val, amount);
         }
@@ -1908,7 +1855,8 @@ public class Bytes {
                 amo -= sign;
             }
             value[value.length - i - 1] = (byte) total;
-            if (amo == 0) return value;
+            if (amo == 0)
+                return value;
         }
         return value;
     }
@@ -1933,7 +1881,8 @@ public class Bytes {
                 total %= 256;
             }
             value[value.length - i - 1] = (byte) total;
-            if (amo == 0) return value;
+            if (amo == 0)
+                return value;
         }
         return value;
     }
@@ -1941,12 +1890,10 @@ public class Bytes {
     /**
      * Writes a string as a fixed-size field, padded with zeros.
      */
-    public static void writeStringFixedSize(final DataOutput out, String s,
-                                            int size) throws IOException {
+    public static void writeStringFixedSize(final DataOutput out, String s, int size) throws IOException {
         byte[] b = toBytes(s);
         if (b.length > size) {
-            throw new IOException("Trying to write " + b.length + " bytes (" +
-                    toStringBinary(b) + ") into a field of length " + size);
+            throw new IOException("Trying to write " + b.length + " bytes (" + toStringBinary(b) + ") into a field of length " + size);
         }
 
         out.writeBytes(s);
@@ -1957,8 +1904,7 @@ public class Bytes {
     /**
      * Reads a fixed-size field and interprets it as a string padded with zeros.
      */
-    public static String readStringFixedSize(final DataInput in, int size)
-            throws IOException {
+    public static String readStringFixedSize(final DataInput in, int size) throws IOException {
         byte[] b = new byte[size];
         in.readFully(b);
         int n = b.length;
@@ -1976,7 +1922,8 @@ public class Bytes {
      * @return a copy of the given byte array
      */
     public static byte[] copy(byte[] bytes) {
-        if (bytes == null) return null;
+        if (bytes == null)
+            return null;
         byte[] result = new byte[bytes.length];
         System.arraycopy(bytes, 0, result, 0, bytes.length);
         return result;
@@ -1992,7 +1939,8 @@ public class Bytes {
      * @return a copy of the given designated byte array
      */
     public static byte[] copy(byte[] bytes, final int offset, final int length) {
-        if (bytes == null) return null;
+        if (bytes == null)
+            return null;
         byte[] result = new byte[length];
         System.arraycopy(bytes, offset, result, 0, length);
         return result;
@@ -2077,7 +2025,6 @@ public class Bytes {
         return true;
     }
 
-
     /**
      * Returns the index of the first appearance of the value {@code target} in
      * {@code array}.
@@ -2114,8 +2061,7 @@ public class Bytes {
             return 0;
         }
 
-        outer:
-        for (int i = 0; i < array.length - target.length + 1; i++) {
+        outer: for (int i = 0; i < array.length - target.length + 1; i++) {
             for (int j = 0; j < target.length; j++) {
                 if (array[i + j] != target[j]) {
                     continue outer;
@@ -2221,8 +2167,7 @@ public class Bytes {
         }
         byte[] result = new byte[srcBytes.length * multiNum];
         for (int i = 0; i < multiNum; i++) {
-            System.arraycopy(srcBytes, 0, result, i * srcBytes.length,
-                    srcBytes.length);
+            System.arraycopy(srcBytes, 0, result, i * srcBytes.length, srcBytes.length);
         }
         return result;
     }
@@ -2250,11 +2195,9 @@ public class Bytes {
         hex = hex.toUpperCase();
         byte[] b = new byte[hex.length() / 2];
         for (int i = 0; i < b.length; i++) {
-            b[i] = (byte) ((toBinaryFromHex((byte) hex.charAt(2 * i)) << 4) +
-                    toBinaryFromHex((byte) hex.charAt((2 * i + 1))));
+            b[i] = (byte) ((toBinaryFromHex((byte) hex.charAt(2 * i)) << 4) + toBinaryFromHex((byte) hex.charAt((2 * i + 1))));
         }
         return b;
     }
 
 }
-

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
index bd16246..f5b63a3 100644
--- a/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
+++ b/common/src/main/java/org/apache/kylin/common/util/BytesSplitter.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -129,7 +128,7 @@ public class BytesSplitter {
         for (int i = 0; i < bufferSize; i++) {
             if (i > 0)
                 buf.append(", ");
-            
+
             buf.append(Bytes.toString(splitBuffers[i].value, 0, splitBuffers[i].length));
         }
         return buf.toString();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java b/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
index decdc3a..e858d69 100644
--- a/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/BytesUtil.java
@@ -18,15 +18,15 @@
 
 package org.apache.kylin.common.util;
 
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.io.Writable;
-
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.io.Writable;
+
 public class BytesUtil {
 
     public static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
@@ -370,7 +370,6 @@ public class BytesUtil {
         return toHex(array);
     }
 
-
     /**
      * this method only works for hex strings
      */
@@ -402,7 +401,6 @@ public class BytesUtil {
         return sb.toString();
     }
 
-
     public static void main(String[] args) throws Exception {
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java b/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
index 336b206..c5bddec 100644
--- a/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
+++ b/common/src/main/java/org/apache/kylin/common/util/CliCommandExecutor.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.kylin.common.util.Pair;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java b/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
index 12b0c40..205796e 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HBaseRegionSizeCalculator.java
@@ -36,7 +36,6 @@ import org.apache.hadoop.hbase.ServerLoad;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.hadoop.hbase.client.HTable;
-import org.apache.kylin.common.util.Bytes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java b/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
index 37f5adf..cb0bc9a 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
@@ -128,7 +128,7 @@ public class HadoopUtil {
         int cut = table.indexOf('.');
         String database = cut >= 0 ? table.substring(0, cut).trim() : "DEFAULT";
         String tableName = cut >= 0 ? table.substring(cut + 1).trim() : table.trim();
-        
-        return new String[] {database, tableName};
+
+        return new String[] { database, tableName };
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
index 69e16b3..672883d 100644
--- a/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
+++ b/common/src/main/java/org/apache/kylin/common/util/HiveClient.java
@@ -27,9 +27,9 @@ import org.apache.hadoop.hive.cli.CliSessionState;
 import org.apache.hadoop.hive.common.StatsSetupConst;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
+import org.apache.hadoop.hive.metastore.MetaStoreUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Table;
-import org.apache.hadoop.hive.metastore.MetaStoreUtils;
 import org.apache.hadoop.hive.ql.CommandNeedRetryException;
 import org.apache.hadoop.hive.ql.Driver;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
@@ -112,7 +112,6 @@ public class HiveClient {
         return metaStoreClient;
     }
 
-
     public Table getHiveTable(String database, String tableName) throws Exception {
         return getMetaStoreClient().getTable(database, tableName);
     }
@@ -158,7 +157,7 @@ public class HiveClient {
         return result;
     }
 
-    public boolean isNativeTable(String database, String tableName)  throws Exception{
+    public boolean isNativeTable(String database, String tableName) throws Exception {
         return !MetaStoreUtils.isNonNativeTable(getMetaStoreClient().getTable(database, tableName));
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/MailService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/MailService.java b/common/src/main/java/org/apache/kylin/common/util/MailService.java
index fae3c80..d3eedfa 100644
--- a/common/src/main/java/org/apache/kylin/common/util/MailService.java
+++ b/common/src/main/java/org/apache/kylin/common/util/MailService.java
@@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.commons.mail.Email;
 import org.apache.commons.mail.EmailException;
 import org.apache.commons.mail.HtmlEmail;
-
 import org.apache.kylin.common.KylinConfig;
 
 /**
@@ -94,7 +93,7 @@ public class MailService {
             email.getMailSession();
 
         } catch (EmailException e) {
-            logger.error(e.getLocalizedMessage(),e);
+            logger.error(e.getLocalizedMessage(), e);
             return false;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/Pair.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/Pair.java b/common/src/main/java/org/apache/kylin/common/util/Pair.java
index 142b1b1..b759ac4 100644
--- a/common/src/main/java/org/apache/kylin/common/util/Pair.java
+++ b/common/src/main/java/org/apache/kylin/common/util/Pair.java
@@ -20,14 +20,12 @@ package org.apache.kylin.common.util;
 
 import java.io.Serializable;
 
-
 /**
  * A generic class for pairs. Copied from org.apache.hadoop.hbase.util.Pair
  * @param <T1>
  * @param <T2>
  */
-public class Pair<T1, T2> implements Serializable
-{
+public class Pair<T1, T2> implements Serializable {
     private static final long serialVersionUID = -3986244606585552569L;
     protected T1 first = null;
     protected T2 second = null;
@@ -35,8 +33,7 @@ public class Pair<T1, T2> implements Serializable
     /**
      * Default constructor.
      */
-    public Pair()
-    {
+    public Pair() {
     }
 
     /**
@@ -44,8 +41,7 @@ public class Pair<T1, T2> implements Serializable
      * @param a operand
      * @param b operand
      */
-    public Pair(T1 a, T2 b)
-    {
+    public Pair(T1 a, T2 b) {
         this.first = a;
         this.second = b;
     }
@@ -58,16 +54,15 @@ public class Pair<T1, T2> implements Serializable
      * @param b second element
      * @return a new pair containing the passed arguments
      */
-    public static <T1,T2> Pair<T1,T2> newPair(T1 a, T2 b) {
-        return new Pair<T1,T2>(a, b);
+    public static <T1, T2> Pair<T1, T2> newPair(T1 a, T2 b) {
+        return new Pair<T1, T2>(a, b);
     }
 
     /**
      * Replace the first element of the pair.
      * @param a operand
      */
-    public void setFirst(T1 a)
-    {
+    public void setFirst(T1 a) {
         this.first = a;
     }
 
@@ -75,8 +70,7 @@ public class Pair<T1, T2> implements Serializable
      * Replace the second element of the pair.
      * @param b operand
      */
-    public void setSecond(T2 b)
-    {
+    public void setSecond(T2 b) {
         this.second = b;
     }
 
@@ -84,8 +78,7 @@ public class Pair<T1, T2> implements Serializable
      * Return the first element stored in the pair.
      * @return T1
      */
-    public T1 getFirst()
-    {
+    public T1 getFirst() {
         return first;
     }
 
@@ -93,27 +86,22 @@ public class Pair<T1, T2> implements Serializable
      * Return the second element stored in the pair.
      * @return T2
      */
-    public T2 getSecond()
-    {
+    public T2 getSecond() {
         return second;
     }
 
-    private static boolean equals(Object x, Object y)
-    {
+    private static boolean equals(Object x, Object y) {
         return (x == null && y == null) || (x != null && x.equals(y));
     }
 
     @Override
     @SuppressWarnings("unchecked")
-    public boolean equals(Object other)
-    {
-        return other instanceof Pair && equals(first, ((Pair)other).first) &&
-                equals(second, ((Pair)other).second);
+    public boolean equals(Object other) {
+        return other instanceof Pair && equals(first, ((Pair) other).first) && equals(second, ((Pair) other).second);
     }
 
     @Override
-    public int hashCode()
-    {
+    public int hashCode() {
         if (first == null)
             return (second == null) ? 0 : second.hashCode() + 1;
         else if (second == null)
@@ -123,9 +111,7 @@ public class Pair<T1, T2> implements Serializable
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         return "{" + getFirst() + "," + getSecond() + "}";
     }
 }
-

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java b/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
index 6d0723c..1bafb55 100644
--- a/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
+++ b/common/src/main/java/org/apache/kylin/common/util/PartialSorter.java
@@ -18,12 +18,12 @@
 
 package org.apache.kylin.common.util;
 
-import com.google.common.collect.Lists;
-
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
+import com.google.common.collect.Lists;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 1/5/15.
  *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/SSHClient.java b/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
index 03cef9b..da56e59 100644
--- a/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
+++ b/common/src/main/java/org/apache/kylin/common/util/SSHClient.java
@@ -22,6 +22,7 @@ package org.apache.kylin.common.util;
  * @author George Song (ysong1)
  * 
  */
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java b/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
index 2c19665..514eb92 100644
--- a/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
+++ b/common/src/main/java/org/apache/kylin/common/util/ThreadUtil.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.common.util;
 
-
 import java.util.concurrent.Future;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java b/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
index f4788f4..a629d88 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/HBaseResourceStoreTest.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;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java b/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
index d687465..a62a578 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/LocalFileResourceStoreTest.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;
@@ -26,13 +29,12 @@ import java.io.IOException;
 import java.util.ArrayList;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.LocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-
 public class LocalFileResourceStoreTest extends LocalFileMetadataTestCase {
 
     @Before

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
index 8a72cdf..7437191 100644
--- a/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
+++ b/common/src/test/java/org/apache/kylin/common/persistence/ResourceToolTest.java
@@ -22,12 +22,11 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.ClassUtil;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.kylin.common.util.ClassUtil;
-
 /**
  * Created by honma on 9/18/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java b/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
index 81e21cc..82435b7 100644
--- a/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
+++ b/common/src/test/java/org/apache/kylin/common/restclient/RestClientTest.java
@@ -18,10 +18,10 @@
 
 package org.apache.kylin.common.restclient;
 
-import org.junit.Test;
-
 import java.io.IOException;
 
+import org.junit.Test;
+
 public class RestClientTest {
 
     @SuppressWarnings("unused")

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
index 8278939..1d08ff8 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicHadoopTest.java
@@ -18,6 +18,9 @@
 
 package org.apache.kylin.common.util;
 
+import java.io.File;
+import java.io.IOException;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HColumnDescriptor;
@@ -28,9 +31,6 @@ import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.IOException;
-
 /**
  * Created by honma on 11/11/14.
  *

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
index 7a8cf1c..1b205e6 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BasicTest.java
@@ -18,20 +18,19 @@
 
 package org.apache.kylin.common.util;
 
-import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
 import org.apache.commons.configuration.ConfigurationException;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+
 /**
 * Created by honma on 10/17/14.
 * <p/>
@@ -68,7 +67,7 @@ public class BasicTest {
         ListenableFuture futureTask = MoreExecutors.listeningDecorator(executorService).submit(new Runnable() {
             @Override
             public void run() {
-                
+
             }
         });
         futureTask.addListener(new Runnable() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java b/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
index 2a3f0ef..a19476e 100644
--- a/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/BytesUtilTest.java
@@ -18,10 +18,11 @@
 
 package org.apache.kylin.common.util;
 
+import java.nio.ByteBuffer;
+
 import junit.framework.TestCase;
-import org.junit.Test;
 
-import java.nio.ByteBuffer;
+import org.junit.Test;
 
 /**
  * by honma
@@ -54,12 +55,11 @@ public class BytesUtilTest extends TestCase {
     }
 
     @Test
-    public void testReadable()
-    {
+    public void testReadable() {
         String x = "\\x00\\x00\\x00\\x00\\x00\\x01\\xFC\\xA8";
         byte[] bytes = BytesUtil.fromReadableText(x);
         String y = BytesUtil.toHex(bytes);
-        assertEquals(x,y);
+        assertEquals(x, y);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
index 90970e5..6cbd9b0 100644
--- a/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/HBaseMetadataTestCase.java
@@ -59,5 +59,5 @@ public class HBaseMetadataTestCase extends AbstractKylinTestCase {
         String useSandbox = System.getProperty("useSandbox");
         return Boolean.parseBoolean(useSandbox);
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java b/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
index b39a724..e7ce0f1 100644
--- a/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/HyperLogLogCounterTest.java
@@ -24,7 +24,6 @@ import java.util.HashSet;
 import java.util.Random;
 import java.util.Set;
 
-import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.hll.HyperLogLogPlusCounter;
 import org.junit.Assert;
 import org.junit.Test;
@@ -213,7 +212,7 @@ public class HyperLogLogCounterTest {
         ha.add(a, 1, 3);
         hb.add(b);
 
-        Assert.assertTrue(ha.getCountEstimate()==hb.getCountEstimate());
+        Assert.assertTrue(ha.getCountEstimate() == hb.getCountEstimate());
     }
 
     private HyperLogLogPlusCounter newHLLC() {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
index 60db6eb..4fe4e7a 100644
--- a/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
+++ b/common/src/test/java/org/apache/kylin/common/util/LocalFileMetadataTestCase.java
@@ -22,7 +22,6 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 
@@ -35,7 +34,7 @@ public class LocalFileMetadataTestCase extends AbstractKylinTestCase {
     public void createTestMetadata() {
         createTestMetadata(LOCALMETA_TEST_DATA);
     }
-    
+
     public static void createTestMetadata(String testDataFolder) {
         KylinConfig.destoryInstance();
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java b/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
index 728186b..c381a3a 100644
--- a/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/PartialSorterTest.java
@@ -18,12 +18,15 @@
 
 package org.apache.kylin.common.util;
 
-import com.google.common.collect.Lists;
-import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+
 import java.util.Comparator;
 import java.util.List;
 
+import org.junit.Test;
+
+import com.google.common.collect.Lists;
+
 /**
  * Created by Hongbin Ma(Binmahone) on 1/5/15.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java b/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
index 89d5701..802b6ff 100644
--- a/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/RandomSamplerTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.common.util;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java b/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
index 8a56282..f459c7b 100644
--- a/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
+++ b/common/src/test/java/org/apache/kylin/common/util/SSHClientTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.common.util;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.io.IOException;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java b/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
index bd95d6e..69dcdea 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeCapabilityChecker.java
@@ -24,13 +24,12 @@ import java.util.List;
 
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.cube.model.DimensionDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.SQLDigest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 1/8/15.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java b/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
index 5806378..5e87bf7 100644
--- a/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
+++ b/cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java
@@ -22,21 +22,21 @@ import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.cube.cuboid.Cuboid;
-import org.apache.kylin.cube.model.CubeDesc;
-import org.apache.kylin.cube.model.validation.CubeMetadataValidator;
-import org.apache.kylin.cube.model.validation.ValidateContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
 import org.apache.kylin.common.restclient.Broadcaster;
+import org.apache.kylin.common.restclient.CaseInsensitiveStringCache;
+import org.apache.kylin.cube.cuboid.Cuboid;
+import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.validation.CubeMetadataValidator;
+import org.apache.kylin.cube.model.validation.ValidateContext;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Manager class for CubeDesc; extracted from #CubeManager
@@ -121,7 +121,7 @@ public class CubeDescManager {
     private CubeDesc loadCubeDesc(String path) throws IOException {
         ResourceStore store = getStore();
         CubeDesc ndesc = store.getResource(path, CubeDesc.class, CUBE_DESC_SERIALIZER);
-        
+
         if (StringUtils.isBlank(ndesc.getName())) {
             throw new IllegalStateException("CubeDesc name must not be blank");
         }
@@ -131,7 +131,7 @@ public class CubeDescManager {
         if (ndesc.getError().isEmpty() == false) {
             throw new IllegalStateException("Cube desc at " + path + " has issues: " + ndesc.getError());
         }
-        
+
         return ndesc;
     }
 



[07/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
index 8ca9c60..fc08025 100644
--- a/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
+++ b/invertedindex/src/test/java/org/apache/kylin/invertedindex/invertedindex/InvertedIndexLocalTest.java
@@ -18,222 +18,215 @@
 
 package org.apache.kylin.invertedindex.invertedindex;
 
-import com.google.common.collect.Lists;
+import static org.junit.Assert.assertEquals;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.invertedindex.IIInstance;
 import org.apache.kylin.invertedindex.IIManager;
-import org.apache.kylin.invertedindex.index.*;
+import org.apache.kylin.invertedindex.index.BitMapContainer;
+import org.apache.kylin.invertedindex.index.CompressedValueContainer;
+import org.apache.kylin.invertedindex.index.RawTableRecord;
+import org.apache.kylin.invertedindex.index.ShardingSliceBuilder;
+import org.apache.kylin.invertedindex.index.Slice;
+import org.apache.kylin.invertedindex.index.TableRecord;
+import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
-import org.apache.commons.io.IOUtils;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.kylin.common.util.Pair;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
+import com.google.common.collect.Lists;
 
 public class InvertedIndexLocalTest extends LocalFileMetadataTestCase {
 
-	IIInstance ii;
-	TableRecordInfo info;
-
-	@Before
-	public void setUp() throws Exception {
-		this.createTestMetadata();
-		this.ii = IIManager.getInstance(getTestConfig()).getII("test_kylin_ii");
-		this.info = new TableRecordInfo(ii.getFirstSegment());
-	}
-
-	@After
-	public void after() throws Exception {
-		this.cleanupTestMetadata();
-	}
-
-	@Test
-	@Ignore
-	public void testBitMapContainer() {
-		// create container
-		BitMapContainer container = new BitMapContainer(info.getDigest(), 0);
-		Dictionary<String> dict = info.dict(0);
-		for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
-			container.append(v);
-		}
-		container.append(Dictionary.NULL_ID[dict.getSizeOfId()]);
-		container.closeForChange();
-
-		// copy by serialization
-		List<ImmutableBytesWritable> bytes = container.toBytes();
-		BitMapContainer container2 = new BitMapContainer(info.getDigest(), 0);
-		container2.fromBytes(bytes);
-
-		// check the copy
-		int i = 0;
-		for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
-			int value = container2.getValueIntAt(i++);
-			assertEquals(v, value);
-		}
-		assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()],
-				container2.getValueIntAt(i++));
-		assertEquals(container, container2);
-	}
-
-	@Test
-	public void testCompressedValueContainer() {
-		// create container
-		CompressedValueContainer container = new CompressedValueContainer(
-				info.getDigest(), 0, 500);
-		Dictionary<String> dict = info.dict(0);
-
-		byte[] buf = new byte[dict.getSizeOfId()];
-		ImmutableBytesWritable bytes = new ImmutableBytesWritable(buf);
-
-		for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
-			BytesUtil.writeUnsigned(v, buf, 0, dict.getSizeOfId());
-			container.append(bytes);
-		}
-		BytesUtil.writeUnsigned(Dictionary.NULL_ID[dict.getSizeOfId()], buf, 0,
-				dict.getSizeOfId());
-		container.append(bytes);
-		container.closeForChange();
-
-		// copy by serialization
-		ImmutableBytesWritable copy = container.toBytes();
-		CompressedValueContainer container2 = new CompressedValueContainer(
-				info.getDigest(), 0, 500);
-		container2.fromBytes(copy);
-
-		// check the copy
-		int i = 0;
-		for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
-			container2.getValueAt(i++, bytes);
-			int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(),
-					bytes.getLength());
-			assertEquals(v, value);
-		}
-		container2.getValueAt(i++, bytes);
-		int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(),
-				bytes.getLength());
-		assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], value);
-		assertEquals(container, container2);
-	}
-
-	@Test
-	public void testCodec() throws IOException {
-		List<TableRecord> records = loadRecordsSorted();
-		System.out.println(records.size() + " records");
-		List<Slice> slices = buildTimeSlices(records);
-		System.out.println(slices.size() + " slices");
-
-		IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
-		List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = encodeKVs(
-				codec, slices);
-		System.out.println(kvs.size() + " KV pairs");
-
-		List<Slice> slicesCopy = decodeKVs(codec, kvs);
-		assertEquals(slices, slicesCopy);
-
-		List<TableRecord> recordsCopy = iterateRecords(slicesCopy);
-		assertEquals(new HashSet<TableRecord>(records),
-				new HashSet<TableRecord>(recordsCopy));
-		dump(recordsCopy);
-	}
-
-	private List<TableRecord> loadRecordsSorted() throws IOException {
-		File file = new File(LOCALMETA_TEST_DATA,
-				"data/flatten_data_for_ii.csv");
-		FileInputStream in = new FileInputStream(file);
-		List<String> lines = IOUtils.readLines(in, "UTF-8");
-		in.close();
-
-		List<TableRecord> records = Lists.newArrayList();
-		for (String line : lines) {
-			String[] fields = line.split(",");
-			TableRecord rec = info.createTableRecord();
-			for (int col = 0; col < fields.length; col++) {
-				rec.setValueString(col, fields[col]);
-			}
-			records.add(rec);
-		}
-
-		Collections.sort(records, new Comparator<TableRecord>() {
-			@Override
-			public int compare(TableRecord a, TableRecord b) {
-				long x = a.getTimestamp() - b.getTimestamp();
-				if (x > 0)
-					return 1;
-				else if (x == 0)
-					return 0;
-				else
-					return -1;
-			}
-		});
-
-		return records;
-	}
-
-	private List<Slice> buildTimeSlices(List<TableRecord> records)
-			throws IOException {
-		ShardingSliceBuilder builder = new ShardingSliceBuilder(info);
-		List<Slice> slices = Lists.newArrayList();
-		for (TableRecord rec : records) {
-			Slice slice = builder.append(rec);
-			if (slice != null)
-				slices.add(slice);
-		}
-		List<Slice> finals = builder.close();
-		slices.addAll(finals);
-
-		Collections.sort(slices);
-		return slices;
-	}
-
-	private List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKVs(
-			IIKeyValueCodec codec, List<Slice> slices) {
-
-		List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = Lists
-				.newArrayList();
-		for (Slice slice : slices) {
-			kvs.addAll(codec.encodeKeyValue(slice));
-		}
-		return kvs;
-	}
-
-	private List<Slice> decodeKVs(IIKeyValueCodec codec,
-			List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
-		List<Slice> slices = Lists.newArrayList();
-		for (Slice slice : codec.decodeKeyValue(kvs)) {
-			slices.add(slice);
-		}
-		return slices;
-	}
-
-	private List<TableRecord> iterateRecords(List<Slice> slices) {
-		List<TableRecord> records = Lists.newArrayList();
-		for (Slice slice : slices) {
-			for (RawTableRecord rec : slice) {
-				records.add(new TableRecord((RawTableRecord) rec.clone(), info));
-			}
-		}
-		return records;
-	}
-
-	private void dump(Iterable<TableRecord> records) {
-		for (TableRecord rec : records) {
-			System.out.println(rec.toString());
-		}
-	}
+    IIInstance ii;
+    TableRecordInfo info;
+
+    @Before
+    public void setUp() throws Exception {
+        this.createTestMetadata();
+        this.ii = IIManager.getInstance(getTestConfig()).getII("test_kylin_ii");
+        this.info = new TableRecordInfo(ii.getFirstSegment());
+    }
+
+    @After
+    public void after() throws Exception {
+        this.cleanupTestMetadata();
+    }
+
+    @Test
+    @Ignore
+    public void testBitMapContainer() {
+        // create container
+        BitMapContainer container = new BitMapContainer(info.getDigest(), 0);
+        Dictionary<String> dict = info.dict(0);
+        for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+            container.append(v);
+        }
+        container.append(Dictionary.NULL_ID[dict.getSizeOfId()]);
+        container.closeForChange();
+
+        // copy by serialization
+        List<ImmutableBytesWritable> bytes = container.toBytes();
+        BitMapContainer container2 = new BitMapContainer(info.getDigest(), 0);
+        container2.fromBytes(bytes);
+
+        // check the copy
+        int i = 0;
+        for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+            int value = container2.getValueIntAt(i++);
+            assertEquals(v, value);
+        }
+        assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], container2.getValueIntAt(i++));
+        assertEquals(container, container2);
+    }
+
+    @Test
+    public void testCompressedValueContainer() {
+        // create container
+        CompressedValueContainer container = new CompressedValueContainer(info.getDigest(), 0, 500);
+        Dictionary<String> dict = info.dict(0);
+
+        byte[] buf = new byte[dict.getSizeOfId()];
+        ImmutableBytesWritable bytes = new ImmutableBytesWritable(buf);
+
+        for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+            BytesUtil.writeUnsigned(v, buf, 0, dict.getSizeOfId());
+            container.append(bytes);
+        }
+        BytesUtil.writeUnsigned(Dictionary.NULL_ID[dict.getSizeOfId()], buf, 0, dict.getSizeOfId());
+        container.append(bytes);
+        container.closeForChange();
+
+        // copy by serialization
+        ImmutableBytesWritable copy = container.toBytes();
+        CompressedValueContainer container2 = new CompressedValueContainer(info.getDigest(), 0, 500);
+        container2.fromBytes(copy);
+
+        // check the copy
+        int i = 0;
+        for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) {
+            container2.getValueAt(i++, bytes);
+            int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(), bytes.getLength());
+            assertEquals(v, value);
+        }
+        container2.getValueAt(i++, bytes);
+        int value = BytesUtil.readUnsigned(bytes.get(), bytes.getOffset(), bytes.getLength());
+        assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], value);
+        assertEquals(container, container2);
+    }
+
+    @Test
+    public void testCodec() throws IOException {
+        List<TableRecord> records = loadRecordsSorted();
+        System.out.println(records.size() + " records");
+        List<Slice> slices = buildTimeSlices(records);
+        System.out.println(slices.size() + " slices");
+
+        IIKeyValueCodec codec = new IIKeyValueCodec(info.getDigest());
+        List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = encodeKVs(codec, slices);
+        System.out.println(kvs.size() + " KV pairs");
+
+        List<Slice> slicesCopy = decodeKVs(codec, kvs);
+        assertEquals(slices, slicesCopy);
+
+        List<TableRecord> recordsCopy = iterateRecords(slicesCopy);
+        assertEquals(new HashSet<TableRecord>(records), new HashSet<TableRecord>(recordsCopy));
+        dump(recordsCopy);
+    }
+
+    private List<TableRecord> loadRecordsSorted() throws IOException {
+        File file = new File(LOCALMETA_TEST_DATA, "data/flatten_data_for_ii.csv");
+        FileInputStream in = new FileInputStream(file);
+        List<String> lines = IOUtils.readLines(in, "UTF-8");
+        in.close();
+
+        List<TableRecord> records = Lists.newArrayList();
+        for (String line : lines) {
+            String[] fields = line.split(",");
+            TableRecord rec = info.createTableRecord();
+            for (int col = 0; col < fields.length; col++) {
+                rec.setValueString(col, fields[col]);
+            }
+            records.add(rec);
+        }
+
+        Collections.sort(records, new Comparator<TableRecord>() {
+            @Override
+            public int compare(TableRecord a, TableRecord b) {
+                long x = a.getTimestamp() - b.getTimestamp();
+                if (x > 0)
+                    return 1;
+                else if (x == 0)
+                    return 0;
+                else
+                    return -1;
+            }
+        });
+
+        return records;
+    }
+
+    private List<Slice> buildTimeSlices(List<TableRecord> records) throws IOException {
+        ShardingSliceBuilder builder = new ShardingSliceBuilder(info);
+        List<Slice> slices = Lists.newArrayList();
+        for (TableRecord rec : records) {
+            Slice slice = builder.append(rec);
+            if (slice != null)
+                slices.add(slice);
+        }
+        List<Slice> finals = builder.close();
+        slices.addAll(finals);
+
+        Collections.sort(slices);
+        return slices;
+    }
+
+    private List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> encodeKVs(IIKeyValueCodec codec, List<Slice> slices) {
+
+        List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs = Lists.newArrayList();
+        for (Slice slice : slices) {
+            kvs.addAll(codec.encodeKeyValue(slice));
+        }
+        return kvs;
+    }
+
+    private List<Slice> decodeKVs(IIKeyValueCodec codec, List<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> kvs) {
+        List<Slice> slices = Lists.newArrayList();
+        for (Slice slice : codec.decodeKeyValue(kvs)) {
+            slices.add(slice);
+        }
+        return slices;
+    }
+
+    private List<TableRecord> iterateRecords(List<Slice> slices) {
+        List<TableRecord> records = Lists.newArrayList();
+        for (Slice slice : slices) {
+            for (RawTableRecord rec : slice) {
+                records.add(new TableRecord((RawTableRecord) rec.clone(), info));
+            }
+        }
+        return records;
+    }
+
+    private void dump(Iterable<TableRecord> records) {
+        for (TableRecord rec : records) {
+            System.out.println(rec.toString());
+        }
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
index 4cc0445..f9d840a 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
@@ -77,7 +77,7 @@ public class Driver extends UnregisteredDriver {
             throw new RuntimeException("Error occurred while registering JDBC driver " + Driver.class.getName() + ": " + e.toString());
         }
     }
-    
+
     @Override
     protected String getConnectStringPrefix() {
         return CONNECT_STRING_PREFIX;
@@ -106,35 +106,35 @@ public class Driver extends UnregisteredDriver {
         return new KylinMeta((KylinConnection) connection);
     }
 
-//    @Override
-//    protected Handler createHandler() {
-//        return new HandlerImpl() {
-//            @Override
-//            public void onConnectionInit(AvaticaConnection connection) throws SQLException {
-//                KylinConnection conn = (KylinConnection) connection;
-//                RemoteClient runner = ((KylinJdbcFactory) factory).newRemoteClient(conn);
-//                try {
-//                    runner.connect();
-//                    conn.setMetaProject(runner.getMetadata(conn.getProject()));
-//                    logger.debug("Connection inited.");
-//                } catch (ConnectionException e) {
-//                    logger.error(e.getLocalizedMessage(), e);
-//                    throw new SQLException(e.getLocalizedMessage());
-//                }
-//            }
-//
-//            public void onConnectionClose(AvaticaConnection connection) {
-//                logger.debug("Connection closed.");
-//            }
-//
-//            public void onStatementExecute(AvaticaStatement statement, ResultSink resultSink) {
-//                logger.debug("statement executed.");
-//            }
-//
-//            public void onStatementClose(AvaticaStatement statement) {
-//                logger.debug("statement closed.");
-//            }
-//        };
-//    }
+    //    @Override
+    //    protected Handler createHandler() {
+    //        return new HandlerImpl() {
+    //            @Override
+    //            public void onConnectionInit(AvaticaConnection connection) throws SQLException {
+    //                KylinConnection conn = (KylinConnection) connection;
+    //                RemoteClient runner = ((KylinJdbcFactory) factory).newRemoteClient(conn);
+    //                try {
+    //                    runner.connect();
+    //                    conn.setMetaProject(runner.getMetadata(conn.getProject()));
+    //                    logger.debug("Connection inited.");
+    //                } catch (ConnectionException e) {
+    //                    logger.error(e.getLocalizedMessage(), e);
+    //                    throw new SQLException(e.getLocalizedMessage());
+    //                }
+    //            }
+    //
+    //            public void onConnectionClose(AvaticaConnection connection) {
+    //                logger.debug("Connection closed.");
+    //            }
+    //
+    //            public void onStatementExecute(AvaticaStatement statement, ResultSink resultSink) {
+    //                logger.debug("statement executed.");
+    //            }
+    //
+    //            public void onStatementClose(AvaticaStatement statement) {
+    //                logger.debug("statement closed.");
+    //            }
+    //        };
+    //    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
index 8f6c42f..9e74f14 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
@@ -146,7 +146,7 @@ public class KylinClient implements IRemoteClient {
             }
             list.add(schema);
         }
-        
+
         List<KMetaCatalog> result = new ArrayList<KMetaCatalog>();
         for (List<KMetaSchema> catSchemas : catalogMap.values()) {
             String catalog = catSchemas.get(0).tableCatalog;
@@ -166,7 +166,7 @@ public class KylinClient implements IRemoteClient {
             }
             list.add(table);
         }
-        
+
         List<KMetaSchema> result = new ArrayList<KMetaSchema>();
         for (List<KMetaTable> schemaTables : schemaMap.values()) {
             String catalog = schemaTables.get(0).tableCat;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
----------------------------------------------------------------------
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 86b2ff8..a9762da 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
@@ -48,7 +48,7 @@ public class KylinConnection extends AvaticaConnection {
 
     protected KylinConnection(UnregisteredDriver driver, KylinJdbcFactory factory, String url, Properties info) throws SQLException {
         super(driver, factory, url, info);
-        
+
         String odbcUrl = url;
         odbcUrl = odbcUrl.replace(Driver.CONNECT_STRING_PREFIX + "//", "");
         String[] temps = odbcUrl.split("/");
@@ -59,7 +59,7 @@ public class KylinConnection extends AvaticaConnection {
         this.project = temps[1];
 
         logger.debug("Kylin base url " + this.baseUrl + ", project name " + this.project);
-        
+
         this.remoteClient = factory.newRemoteClient(this);
 
         try {
@@ -68,19 +68,19 @@ public class KylinConnection extends AvaticaConnection {
             throw new SQLException(e);
         }
     }
-    
+
     String getBaseUrl() {
         return baseUrl;
     }
-    
+
     String getProject() {
         return project;
     }
-    
+
     Properties getConnectionProperties() {
         return info;
     }
-    
+
     @Override
     public AvaticaStatement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
         return super.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
@@ -91,7 +91,7 @@ public class KylinConnection extends AvaticaConnection {
         Meta.Signature sig = mockPreparedSignature(sql);
         return factory().newPreparedStatement(this, null, sig, resultSetType, resultSetConcurrency, resultSetHoldability);
     }
-    
+
     // TODO add restful API to prepare SQL, get back expected ResultSetMetaData
     Signature mockPreparedSignature(String sql) {
         List<AvaticaParameter> params = new ArrayList<AvaticaParameter>();
@@ -103,8 +103,8 @@ public class KylinConnection extends AvaticaConnection {
         }
 
         ArrayList<ColumnMetaData> columns = new ArrayList<ColumnMetaData>();
-        Map<String, Object> internalParams = Collections.<String, Object>emptyMap();
-        
+        Map<String, Object> internalParams = Collections.<String, Object> emptyMap();
+
         return new Meta.Signature(columns, sql, params, internalParams, CursorFactory.ARRAY);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
index 433262f..368fe96 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinMeta.java
@@ -73,7 +73,7 @@ public class KylinMeta extends MetaImpl {
             throw new RuntimeException(e);
         }
     }
-    
+
     @Override
     public void closeStatement(StatementHandle h) {
         // nothing to do

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
index 3320415..b6ac261 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinResultSet.java
@@ -40,19 +40,19 @@ public class KylinResultSet extends AvaticaResultSet {
 
     @Override
     protected AvaticaResultSet execute() throws SQLException {
-        
+
         // skip execution if result is already there (case of meta data lookup)
         if (this.firstFrame != null) {
             return super.execute();
         }
-        
+
         String sql = signature.sql;
         List<AvaticaParameter> params = signature.parameters;
         List<Object> paramValues = null;
         if (params != null && params.size() > 0) {
             paramValues = ((KylinPreparedStatement) statement).getParameterValues2();
         }
-        
+
         IRemoteClient client = ((KylinConnection) statement.connection).getRemoteClient();
         QueryResult result;
         try {
@@ -60,14 +60,12 @@ public class KylinResultSet extends AvaticaResultSet {
         } catch (IOException e) {
             throw new SQLException(e);
         }
-        
+
         columnMetaDataList.clear();
         columnMetaDataList.addAll(result.columnMeta);
-        
+
         cursor = MetaImpl.createCursor(signature.cursorFactory, result.iterable);
         return super.execute2(cursor, columnMetaDataList);
     }
-    
-    
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
index 3a2ef75..9d1c29b 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.jdbc;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -28,7 +28,6 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Properties;
 
-import org.apache.kylin.jdbc.Driver;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -130,7 +129,7 @@ public class DriverTest {
         info.put("user", "ADMIN");
         info.put("password", "KYLIN");
         Connection conn = driver.connect("jdbc:kylin://localhost:7070/default", info);
-        
+
         PreparedStatement state = conn.prepareStatement("select cal_dt, count(*) from test_kylin_fact where seller_id=? group by cal_dt");
         state.setLong(1, 10000001);
         ResultSet resultSet = state.executeQuery();
@@ -142,7 +141,7 @@ public class DriverTest {
     private void printResultSet(ResultSet rs) throws SQLException {
         ResultSetMetaData meta = rs.getMetaData();
         System.out.println("Data:");
-        
+
         while (rs.next()) {
             StringBuilder buf = new StringBuilder();
             buf.append("[");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
index 0dcd624..d85ccae 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyClient.java
@@ -26,8 +26,6 @@ import java.util.List;
 import org.apache.calcite.avatica.AvaticaParameter;
 import org.apache.calcite.avatica.ColumnMetaData;
 import org.apache.calcite.avatica.ColumnMetaData.Rep;
-import org.apache.kylin.jdbc.IRemoteClient;
-import org.apache.kylin.jdbc.KylinConnection;
 import org.apache.kylin.jdbc.KylinMeta.KMetaCatalog;
 import org.apache.kylin.jdbc.KylinMeta.KMetaColumn;
 import org.apache.kylin.jdbc.KylinMeta.KMetaProject;
@@ -48,7 +46,7 @@ public class DummyClient implements IRemoteClient {
     @Override
     public KMetaProject retrieveMetaData(String project) throws IOException {
         List<KMetaColumn> columns = new ArrayList<KMetaColumn>();
-        
+
         KMetaTable table = new KMetaTable("dummy", "dummy", "dummy", "dummy", columns);
         List<KMetaTable> tables = new ArrayList<KMetaTable>();
         tables.add(table);
@@ -56,11 +54,11 @@ public class DummyClient implements IRemoteClient {
         KMetaSchema schema = new KMetaSchema("dummy", "dummy", tables);
         List<KMetaSchema> schemas = new ArrayList<KMetaSchema>();
         schemas.add(schema);
-        
+
         KMetaCatalog catalog = new KMetaCatalog("dummay", schemas);
         List<KMetaCatalog> catalogs = new ArrayList<KMetaCatalog>();
         catalogs.add(catalog);
-        
+
         return new KMetaProject(project, catalogs);
     }
 
@@ -69,7 +67,7 @@ public class DummyClient implements IRemoteClient {
         List<Object> data = new ArrayList<Object>();
         Object[] row = new Object[] { "foo", "bar", "tool" };
         data.add(row);
-        
+
         List<ColumnMetaData> meta = new ArrayList<ColumnMetaData>();
         meta.add(ColumnMetaData.dummy(ColumnMetaData.scalar(Types.VARCHAR, "varchar", Rep.STRING), true));
         meta.add(ColumnMetaData.dummy(ColumnMetaData.scalar(Types.VARCHAR, "varchar", Rep.STRING), true));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
index 43c7b75..35e82d5 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyDriver.java
@@ -18,8 +18,6 @@
 
 package org.apache.kylin.jdbc;
 
-import org.apache.kylin.jdbc.Driver;
-
 /**
  */
 public class DummyDriver extends Driver {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
----------------------------------------------------------------------
diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
index 578e594..e5f24b8 100644
--- a/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
+++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DummyJdbcFactory.java
@@ -18,14 +18,10 @@
 
 package org.apache.kylin.jdbc;
 
-import org.apache.kylin.jdbc.IRemoteClient;
-import org.apache.kylin.jdbc.KylinConnection;
-import org.apache.kylin.jdbc.KylinJdbcFactory;
-
 /**
  */
 public class DummyJdbcFactory extends KylinJdbcFactory {
-    
+
     public DummyJdbcFactory() {
         super(4, 1);
     }
@@ -35,5 +31,4 @@ public class DummyJdbcFactory extends KylinJdbcFactory {
         return new DummyClient(conn);
     }
 
-    
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java b/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
index 2ebc012..4f7a60d 100644
--- a/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/AbstractJobBuilder.java
@@ -23,8 +23,8 @@ import java.io.IOException;
 import org.apache.kylin.job.common.ShellExecutable;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.engine.JobEngineConfig;
-import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
 import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.hadoop.hive.IJoinedFlatTableDesc;
 
 public abstract class AbstractJobBuilder {
 
@@ -32,7 +32,7 @@ public abstract class AbstractJobBuilder {
 
     protected JobEngineConfig engineConfig;
     protected String submitter;
-    
+
     public AbstractJobBuilder(JobEngineConfig engineConfig) {
         this.engineConfig = engineConfig;
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
index 317e41c..28c9ded 100644
--- a/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
+++ b/job/src/main/java/org/apache/kylin/job/CubeMetadataUpgrade.java
@@ -18,9 +18,16 @@
 
 package org.apache.kylin.job;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
@@ -48,25 +55,32 @@ import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.apache.kylin.job.cube.CubingJob;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableState;
-import org.apache.kylin.job.hadoop.cube.*;
+import org.apache.kylin.job.hadoop.cube.BaseCuboidJob;
+import org.apache.kylin.job.hadoop.cube.CubeHFileJob;
+import org.apache.kylin.job.hadoop.cube.FactDistinctColumnsJob;
+import org.apache.kylin.job.hadoop.cube.MergeCuboidJob;
+import org.apache.kylin.job.hadoop.cube.NDCuboidJob;
+import org.apache.kylin.job.hadoop.cube.RangeKeyDistributionJob;
 import org.apache.kylin.job.hadoop.dict.CreateDictionaryJob;
 import org.apache.kylin.job.hadoop.hbase.BulkLoadJob;
 import org.apache.kylin.job.hadoop.hbase.CreateHTableJob;
 import org.apache.kylin.job.manager.ExecutableManager;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.*;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.JoinDesc;
+import org.apache.kylin.metadata.model.LookupDesc;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.metadata.project.RealizationEntry;
 import org.apache.kylin.metadata.realization.RealizationStatusEnum;
 import org.apache.kylin.metadata.realization.RealizationType;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 /**
  * This is the utility class to migrate the Kylin metadata format from v1 to v2;
@@ -88,7 +102,6 @@ public class CubeMetadataUpgrade {
         System.setProperty(KylinConfig.KYLIN_CONF, newMetadataUrl);
         KylinConfig.getInstanceFromEnv().setMetadataUrl(newMetadataUrl);
 
-
         config = KylinConfig.getInstanceFromEnv();
         store = getStore();
     }
@@ -161,7 +174,6 @@ public class CubeMetadataUpgrade {
             e.printStackTrace();
         }
 
-
         if (toDeleteResource.size() > 0) {
             logger.info("The following resources is never needed, will be dropped, number :" + toDeleteResource.size());
 
@@ -322,7 +334,7 @@ public class CubeMetadataUpgrade {
         if (count == 0) {
             errorMsgs.add("No table definition for '" + table + "'; any project, cube refers it should remove the reference;");
         }
-        
+
         return null;
     }
 
@@ -398,7 +410,6 @@ public class CubeMetadataUpgrade {
                     newInstance.setStatus(RealizationStatusEnum.READY);
                 }
 
-
                 List<org.apache.kylin.cube.CubeSegment> newSegments = Lists.newArrayList();
                 // segment
                 for (CubeSegment segment : cubeInstance.getSegments()) {
@@ -510,12 +521,10 @@ public class CubeMetadataUpgrade {
         return MetadataManager.getInstance(config);
     }
 
-
     private CubeDescManager getCubeDescManager() {
         return CubeDescManager.getInstance(config);
     }
 
-
     private ResourceStore getStore() {
         return ResourceStore.getStore(config);
     }
@@ -531,7 +540,7 @@ public class CubeMetadataUpgrade {
                 upgradeJobInstance(path);
             }
 
-            for (String folder : new String[]{ResourceStore.JOB_PATH_ROOT, ResourceStore.JOB_OUTPUT_PATH_ROOT}) {
+            for (String folder : new String[] { ResourceStore.JOB_PATH_ROOT, ResourceStore.JOB_OUTPUT_PATH_ROOT }) {
                 for (String res : getStore().listResources(folder)) {
                     getStore().deleteResource(res);
                 }
@@ -546,38 +555,38 @@ public class CubeMetadataUpgrade {
 
     private ExecutableState parseState(JobStatusEnum state) {
         switch (state) {
-            case NEW:
-            case PENDING:
-                return ExecutableState.READY;
-            case RUNNING:
-                return ExecutableState.RUNNING;
-            case FINISHED:
-                return ExecutableState.SUCCEED;
-            case ERROR:
-                return ExecutableState.ERROR;
-            case DISCARDED:
-                return ExecutableState.DISCARDED;
-            default:
-                return ExecutableState.DISCARDED;
+        case NEW:
+        case PENDING:
+            return ExecutableState.READY;
+        case RUNNING:
+            return ExecutableState.RUNNING;
+        case FINISHED:
+            return ExecutableState.SUCCEED;
+        case ERROR:
+            return ExecutableState.ERROR;
+        case DISCARDED:
+            return ExecutableState.DISCARDED;
+        default:
+            return ExecutableState.DISCARDED;
         }
     }
 
     private ExecutableState parseState(JobStepStatusEnum state) {
         switch (state) {
-            case NEW:
-            case PENDING:
-            case WAITING:
-                return ExecutableState.READY;
-            case RUNNING:
-                return ExecutableState.RUNNING;
-            case FINISHED:
-                return ExecutableState.SUCCEED;
-            case ERROR:
-                return ExecutableState.ERROR;
-            case DISCARDED:
-                return ExecutableState.DISCARDED;
-            default:
-                return ExecutableState.DISCARDED;
+        case NEW:
+        case PENDING:
+        case WAITING:
+            return ExecutableState.READY;
+        case RUNNING:
+            return ExecutableState.RUNNING;
+        case FINISHED:
+            return ExecutableState.SUCCEED;
+        case ERROR:
+            return ExecutableState.ERROR;
+        case DISCARDED:
+            return ExecutableState.DISCARDED;
+        default:
+            return ExecutableState.DISCARDED;
         }
 
     }
@@ -635,84 +644,83 @@ public class CubeMetadataUpgrade {
     private AbstractExecutable parseToExecutable(JobInstance.JobStep step) {
         AbstractExecutable result;
         switch (step.getCmdType()) {
-            case SHELL_CMD_HADOOP: {
-                ShellExecutable executable = new ShellExecutable();
-                executable.setCmd(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_FACTDISTINCT: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(FactDistinctColumnsJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_BASECUBOID: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(BaseCuboidJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_NDCUBOID: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(NDCuboidJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_RANGEKEYDISTRIBUTION: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(RangeKeyDistributionJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_CONVERTHFILE: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(CubeHFileJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_MERGECUBOID: {
-                MapReduceExecutable executable = new MapReduceExecutable();
-                executable.setMapReduceJobClass(MergeCuboidJob.class);
-                executable.setMapReduceParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_NO_MR_DICTIONARY: {
-                HadoopShellExecutable executable = new HadoopShellExecutable();
-                executable.setName(ExecutableConstants.STEP_NAME_BUILD_DICTIONARY);
-                executable.setJobClass(CreateDictionaryJob.class);
-                executable.setJobParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADDOP_NO_MR_CREATEHTABLE: {
-                HadoopShellExecutable executable = new HadoopShellExecutable();
-                executable.setJobClass(CreateHTableJob.class);
-                executable.setJobParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            case JAVA_CMD_HADOOP_NO_MR_BULKLOAD: {
-                HadoopShellExecutable executable = new HadoopShellExecutable();
-                executable.setJobClass(BulkLoadJob.class);
-                executable.setJobParams(step.getExecCmd());
-                result = executable;
-                break;
-            }
-            default:
-                throw new RuntimeException("invalid step type:" + step.getCmdType());
+        case SHELL_CMD_HADOOP: {
+            ShellExecutable executable = new ShellExecutable();
+            executable.setCmd(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_FACTDISTINCT: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(FactDistinctColumnsJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_BASECUBOID: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(BaseCuboidJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_NDCUBOID: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(NDCuboidJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_RANGEKEYDISTRIBUTION: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(RangeKeyDistributionJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_CONVERTHFILE: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(CubeHFileJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_MERGECUBOID: {
+            MapReduceExecutable executable = new MapReduceExecutable();
+            executable.setMapReduceJobClass(MergeCuboidJob.class);
+            executable.setMapReduceParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_NO_MR_DICTIONARY: {
+            HadoopShellExecutable executable = new HadoopShellExecutable();
+            executable.setName(ExecutableConstants.STEP_NAME_BUILD_DICTIONARY);
+            executable.setJobClass(CreateDictionaryJob.class);
+            executable.setJobParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADDOP_NO_MR_CREATEHTABLE: {
+            HadoopShellExecutable executable = new HadoopShellExecutable();
+            executable.setJobClass(CreateHTableJob.class);
+            executable.setJobParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        case JAVA_CMD_HADOOP_NO_MR_BULKLOAD: {
+            HadoopShellExecutable executable = new HadoopShellExecutable();
+            executable.setJobClass(BulkLoadJob.class);
+            executable.setJobParams(step.getExecCmd());
+            result = executable;
+            break;
+        }
+        default:
+            throw new RuntimeException("invalid step type:" + step.getCmdType());
         }
         result.setName(step.getName());
         return result;
     }
 
-
     public static void main(String[] args) {
 
         if (!(args != null && (args.length == 1 || args.length == 2))) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/JobInstance.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/JobInstance.java b/job/src/main/java/org/apache/kylin/job/JobInstance.java
index e7f5772..80a5d78 100644
--- a/job/src/main/java/org/apache/kylin/job/JobInstance.java
+++ b/job/src/main/java/org/apache/kylin/job/JobInstance.java
@@ -22,6 +22,13 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+import org.apache.kylin.cube.model.CubeBuildTypeEnum;
+import org.apache.kylin.job.constant.JobStatusEnum;
+import org.apache.kylin.job.constant.JobStepCmdTypeEnum;
+import org.apache.kylin.job.constant.JobStepStatusEnum;
+import org.apache.kylin.job.engine.JobEngineConfig;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonBackReference;
@@ -29,12 +36,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonManagedReference;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Lists;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
-import org.apache.kylin.cube.model.CubeBuildTypeEnum;
-import org.apache.kylin.job.constant.JobStatusEnum;
-import org.apache.kylin.job.constant.JobStepCmdTypeEnum;
-import org.apache.kylin.job.constant.JobStepStatusEnum;
-import org.apache.kylin.job.engine.JobEngineConfig;
 
 @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
 public class JobInstance extends RootPersistentEntity implements Comparable<JobInstance> {
@@ -122,48 +123,48 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
         this.status = status;
     }
 
-//    @JsonProperty("job_status")
-//    public JobStatusEnum getStatus() {
-//
-//        // JobStatusEnum finalJobStatus;
-//        int compositResult = 0;
-//
-//        // if steps status are all NEW, then job status is NEW
-//        // if steps status are all FINISHED, then job status is FINISHED
-//        // if steps status are all PENDING, then job status is PENDING
-//        // if steps status are FINISHED and PENDING, the job status is PENDING
-//        // if one of steps status is RUNNING, then job status is RUNNING
-//        // if one of steps status is ERROR, then job status is ERROR
-//        // if one of steps status is KILLED, then job status is KILLED
-//        // default status is RUNNING
-//
-//        System.out.println(this.getName());
-//
-//        for (JobStep step : this.getSteps()) {
-//            //System.out.println("step: " + step.getSequenceID() + "'s status:" + step.getStatus());
-//            compositResult = compositResult | step.getStatus().getCode();
-//        }
-//
-//        System.out.println();
-//
-//        if (compositResult == JobStatusEnum.FINISHED.getCode()) {
-//            return JobStatusEnum.FINISHED;
-//        } else if (compositResult == JobStatusEnum.NEW.getCode()) {
-//            return JobStatusEnum.NEW;
-//        } else if (compositResult == JobStatusEnum.PENDING.getCode()) {
-//            return JobStatusEnum.PENDING;
-//        } else if (compositResult == (JobStatusEnum.FINISHED.getCode() | JobStatusEnum.PENDING.getCode())) {
-//            return JobStatusEnum.PENDING;
-//        } else if ((compositResult & JobStatusEnum.ERROR.getCode()) == JobStatusEnum.ERROR.getCode()) {
-//            return JobStatusEnum.ERROR;
-//        } else if ((compositResult & JobStatusEnum.DISCARDED.getCode()) == JobStatusEnum.DISCARDED.getCode()) {
-//            return JobStatusEnum.DISCARDED;
-//        } else if ((compositResult & JobStatusEnum.RUNNING.getCode()) == JobStatusEnum.RUNNING.getCode()) {
-//            return JobStatusEnum.RUNNING;
-//        }
-//
-//        return JobStatusEnum.RUNNING;
-//    }
+    //    @JsonProperty("job_status")
+    //    public JobStatusEnum getStatus() {
+    //
+    //        // JobStatusEnum finalJobStatus;
+    //        int compositResult = 0;
+    //
+    //        // if steps status are all NEW, then job status is NEW
+    //        // if steps status are all FINISHED, then job status is FINISHED
+    //        // if steps status are all PENDING, then job status is PENDING
+    //        // if steps status are FINISHED and PENDING, the job status is PENDING
+    //        // if one of steps status is RUNNING, then job status is RUNNING
+    //        // if one of steps status is ERROR, then job status is ERROR
+    //        // if one of steps status is KILLED, then job status is KILLED
+    //        // default status is RUNNING
+    //
+    //        System.out.println(this.getName());
+    //
+    //        for (JobStep step : this.getSteps()) {
+    //            //System.out.println("step: " + step.getSequenceID() + "'s status:" + step.getStatus());
+    //            compositResult = compositResult | step.getStatus().getCode();
+    //        }
+    //
+    //        System.out.println();
+    //
+    //        if (compositResult == JobStatusEnum.FINISHED.getCode()) {
+    //            return JobStatusEnum.FINISHED;
+    //        } else if (compositResult == JobStatusEnum.NEW.getCode()) {
+    //            return JobStatusEnum.NEW;
+    //        } else if (compositResult == JobStatusEnum.PENDING.getCode()) {
+    //            return JobStatusEnum.PENDING;
+    //        } else if (compositResult == (JobStatusEnum.FINISHED.getCode() | JobStatusEnum.PENDING.getCode())) {
+    //            return JobStatusEnum.PENDING;
+    //        } else if ((compositResult & JobStatusEnum.ERROR.getCode()) == JobStatusEnum.ERROR.getCode()) {
+    //            return JobStatusEnum.ERROR;
+    //        } else if ((compositResult & JobStatusEnum.DISCARDED.getCode()) == JobStatusEnum.DISCARDED.getCode()) {
+    //            return JobStatusEnum.DISCARDED;
+    //        } else if ((compositResult & JobStatusEnum.RUNNING.getCode()) == JobStatusEnum.RUNNING.getCode()) {
+    //            return JobStatusEnum.RUNNING;
+    //        }
+    //
+    //        return JobStatusEnum.RUNNING;
+    //    }
 
     public String getName() {
         return name;
@@ -273,7 +274,6 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
         return null;
     }
 
-        
     public String getSubmitter() {
         return submitter;
     }
@@ -282,15 +282,12 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
         this.submitter = submitter;
     }
 
-
-
-
     @JsonIgnoreProperties(ignoreUnknown = true)
     public static class JobStep implements Comparable<JobStep> {
 
         @JsonBackReference
         private JobInstance jobInstance;
-        
+
         @JsonProperty("id")
         private String id;
 
@@ -372,8 +369,6 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
         public void setStatus(JobStepStatusEnum status) {
             this.status = status;
         }
-        
-        
 
         public String getId() {
             return id;
@@ -498,7 +493,7 @@ public class JobInstance extends RootPersistentEntity implements Comparable<JobI
 
     @Override
     public int compareTo(JobInstance o) {
-        return o.lastModified<this.lastModified?-1:o.lastModified>this.lastModified?1:0;
+        return o.lastModified < this.lastModified ? -1 : o.lastModified > this.lastModified ? 1 : 0;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java b/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
index db6dd0e..d08e046 100644
--- a/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
+++ b/job/src/main/java/org/apache/kylin/job/JoinedFlatTable.java
@@ -150,7 +150,7 @@ public class JoinedFlatTable {
         tableAliasMap.put(dataModelDesc.getFactTable().toUpperCase(), FACT_TABLE_ALIAS);
 
         int i = 1;
-        for (LookupDesc lookupDesc: dataModelDesc.getLookups()) {
+        for (LookupDesc lookupDesc : dataModelDesc.getLookups()) {
             JoinDesc join = lookupDesc.getJoin();
             if (join != null) {
                 tableAliasMap.put(lookupDesc.getTable().toUpperCase(), LOOKUP_TABLE_ALAIS_PREFIX + i);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
index 9f46f39..cc9bde5 100644
--- a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
+++ b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmd.java
@@ -18,15 +18,19 @@
 
 package org.apache.kylin.job.cmd;
 
+import java.io.IOException;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.FutureTask;
+
 import org.apache.kylin.common.util.CliCommandExecutor;
 import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.apache.kylin.job.exception.JobException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.concurrent.*;
-
 /**
  * @author xjiang
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
index ebcad47..aaf1ba8 100644
--- a/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/cmd/ShellCmdOutput.java
@@ -18,11 +18,10 @@
 
 package org.apache.kylin.job.cmd;
 
+import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.kylin.job.constant.JobStepStatusEnum;
-
 /**
  * @author xjiang
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java b/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
index 0db71a6..83ada37 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HadoopCmdOutput.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.job.common;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.hadoop.mapreduce.Counters;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.TaskCounter;
@@ -25,10 +29,6 @@ import org.apache.kylin.job.constant.ExecutableConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
index 371e078..c6e6f28 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HadoopShellExecutable.java
@@ -23,15 +23,14 @@ import java.io.StringWriter;
 import java.lang.reflect.Constructor;
 
 import org.apache.hadoop.util.ToolRunner;
-
-import com.google.common.base.Preconditions;
-
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.job.exception.ExecuteException;
+import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
 import org.apache.kylin.job.hadoop.AbstractHadoopJob;
-import org.apache.kylin.job.execution.AbstractExecutable;
+
+import com.google.common.base.Preconditions;
 
 /**
  * Created by qianzhou on 12/26/14.
@@ -69,7 +68,7 @@ public class HadoopShellExecutable extends AbstractExecutable {
                 result = 2;
             }
             log.append("result code:").append(result);
-            return result == 0 ? new ExecuteResult(ExecuteResult.State.SUCCEED, log.toString()):new ExecuteResult(ExecuteResult.State.FAILED, log.toString());
+            return result == 0 ? new ExecuteResult(ExecuteResult.State.SUCCEED, log.toString()) : new ExecuteResult(ExecuteResult.State.FAILED, log.toString());
         } catch (ReflectiveOperationException e) {
             logger.error("error getMapReduceJobClass, class name:" + getParam(KEY_MR_JOB), e);
             return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java b/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
index 9cad096..860956d 100644
--- a/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/HqlExecutable.java
@@ -23,6 +23,8 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.kylin.common.util.HiveClient;
+import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
@@ -31,8 +33,6 @@ import org.datanucleus.store.types.backed.HashMap;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.Lists;
-import org.apache.kylin.common.util.HiveClient;
-import org.apache.kylin.common.util.JsonUtil;
 
 /**
  * Created by qianzhou on 1/15/15.
@@ -51,8 +51,8 @@ public class HqlExecutable extends AbstractExecutable {
         try {
             Map<String, String> configMap = getConfiguration();
             HiveClient hiveClient = new HiveClient(configMap);
-            
-            for (String hql: getHqls()) {
+
+            for (String hql : getHqls()) {
                 hiveClient.executeHQL(hql);
             }
             return new ExecuteResult(ExecuteResult.State.SUCCEED);
@@ -61,9 +61,9 @@ public class HqlExecutable extends AbstractExecutable {
             return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
         }
     }
-    
+
     public void setConfiguration(Map<String, String> configMap) {
-        if(configMap != null) {
+        if (configMap != null) {
             String configStr = "";
             try {
                 configStr = JsonUtil.writeValueAsString(configMap);
@@ -74,22 +74,21 @@ public class HqlExecutable extends AbstractExecutable {
         }
     }
 
-
     @SuppressWarnings("unchecked")
     private Map<String, String> getConfiguration() {
         String configStr = getParam(HIVE_CONFIG);
         Map<String, String> result = null;
-        if(configStr != null) {
+        if (configStr != null) {
             try {
                 result = JsonUtil.readValue(configStr, HashMap.class);
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
-        
+
         return result;
     }
-    
+
     public void setHqls(List<String> hqls) {
         setParam(HQL, StringUtils.join(hqls, ";"));
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java b/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
index 4bc8dac..34a9524 100644
--- a/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/ShellExecutable.java
@@ -23,16 +23,16 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Maps;
 import org.apache.kylin.common.util.Logger;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
 
+import com.google.common.collect.Maps;
+
 /**
  * Created by qianzhou on 12/26/14.
  */
@@ -51,7 +51,7 @@ public class ShellExecutable extends AbstractExecutable {
             final ShellExecutableLogger logger = new ShellExecutableLogger();
             final Pair<Integer, String> result = context.getConfig().getCliCommandExecutor().execute(getCmd(), logger);
             executableManager.addJobInfo(getId(), logger.getInfo());
-            return new ExecuteResult(result.getFirst() == 0? ExecuteResult.State.SUCCEED: ExecuteResult.State.FAILED, result.getSecond());
+            return new ExecuteResult(result.getFirst() == 0 ? ExecuteResult.State.SUCCEED : ExecuteResult.State.FAILED, result.getSecond());
         } catch (IOException e) {
             logger.error("job:" + getId() + " execute finished with exception", e);
             return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java b/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
index 86a2e40..a9abc78 100644
--- a/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
+++ b/job/src/main/java/org/apache/kylin/job/constant/ExecutableConstants.java
@@ -23,7 +23,8 @@ package org.apache.kylin.job.constant;
  */
 public final class ExecutableConstants {
 
-    private ExecutableConstants(){}
+    private ExecutableConstants() {
+    }
 
     public static final String YARN_APP_ID = "yarn_application_id";
 
@@ -34,9 +35,6 @@ public final class ExecutableConstants {
     public static final String SOURCE_RECORDS_SIZE = "source_records_size";
     public static final String GLOBAL_LISTENER_NAME = "ChainListener";
 
-
-
-
     public static final int DEFAULT_SCHEDULER_INTERVAL_SECONDS = 60;
 
     public static final String CUBE_JOB_GROUP_NAME = "cube_job_group";
@@ -56,7 +54,7 @@ public final class ExecutableConstants {
     public static final String STEP_NAME_MERGE_CUBOID = "Merge Cuboid Data";
     public static final String STEP_NAME_UPDATE_CUBE_INFO = "Update Cube Info";
     public static final String STEP_NAME_GARBAGE_COLLECTION = "Garbage Collection";
-    
+
     public static final String STEP_NAME_BUILD_II = "Build Inverted Index";
     public static final String STEP_NAME_CONVERT_II_TO_HFILE = "Convert Inverted Index Data to HFile";
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
index eeaab0f..758f53b 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
@@ -23,10 +23,8 @@ import java.net.UnknownHostException;
 import java.util.Date;
 import java.util.List;
 
-import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
-
 import org.apache.kylin.job.common.MapReduceExecutable;
 import org.apache.kylin.job.constant.ExecutableConstants;
 import org.apache.kylin.job.execution.AbstractExecutable;
@@ -49,7 +47,6 @@ public class CubingJob extends DefaultChainedExecutable {
     private static final String SEGMENT_ID = "segmentId";
     public static final String MAP_REDUCE_WAIT_TIME = "mapReduceWaitTime";
 
-
     public void setCubeName(String name) {
         setParam(CUBE_INSTANCE_NAME, name);
     }
@@ -65,7 +62,7 @@ public class CubingJob extends DefaultChainedExecutable {
     void setSegmentId(String segmentId) {
         setParam(SEGMENT_ID, segmentId);
     }
-    
+
     public String getSegmentIds() {
         return getParam(SEGMENT_ID);
     }
@@ -75,17 +72,17 @@ public class CubingJob extends DefaultChainedExecutable {
         final Output output = jobService.getOutput(getId());
         String logMsg;
         switch (output.getState()) {
-            case ERROR:
-                logMsg = output.getVerboseMsg();
-                break;
-            case DISCARDED:
-                logMsg = "";
-                break;
-            case SUCCEED:
-                logMsg = "";
-                break;
-            default:
-                return null;
+        case ERROR:
+            logMsg = output.getVerboseMsg();
+            break;
+        case DISCARDED:
+            logMsg = "";
+            break;
+        case SUCCEED:
+            logMsg = "";
+            break;
+        default:
+            return null;
         }
         String content = ExecutableConstants.NOTIFY_EMAIL_TEMPLATE;
         content = content.replaceAll("\\$\\{job_name\\}", getName());
@@ -105,14 +102,14 @@ public class CubingJob extends DefaultChainedExecutable {
             logger.warn(e.getLocalizedMessage(), e);
         }
 
-        String title = "["+ state.toString() + "] - [Kylin Cube Build Job]-" + getCubeName();
+        String title = "[" + state.toString() + "] - [Kylin Cube Build Job]-" + getCubeName();
         return Pair.of(title, content);
     }
 
     @Override
     protected void onExecuteFinished(ExecuteResult result, ExecutableContext executableContext) {
         long time = 0L;
-        for (AbstractExecutable task: getTasks()) {
+        for (AbstractExecutable task : getTasks()) {
             final ExecutableState status = task.getStatus();
             if (status != ExecutableState.SUCCEED) {
                 break;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
index d583c34..234f7e7 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
@@ -26,9 +26,6 @@ import java.util.TimeZone;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.Pair;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.job.AbstractJobBuilder;
 import org.apache.kylin.job.common.HadoopShellExecutable;
@@ -47,6 +44,9 @@ import org.apache.kylin.job.hadoop.hbase.BulkLoadJob;
 import org.apache.kylin.job.hadoop.hbase.CreateHTableJob;
 import org.apache.kylin.job.hadoop.hive.CubeJoinedFlatTableDesc;
 
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+
 /**
  * Created by qianzhou on 12/25/14.
  */
@@ -58,16 +58,16 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
 
     public CubingJob buildJob(CubeSegment seg) {
         checkPreconditions(seg);
-        
+
         final CubingJob result = initialJob(seg, "BUILD");
         final String jobId = result.getId();
         final String cuboidRootPath = getJobWorkingDir(jobId) + "/" + seg.getCubeInstance().getName() + "/cuboid/";
-        
+
         // cubing
         Pair<AbstractExecutable, AbstractExecutable> twoSteps = addCubingSteps(seg, cuboidRootPath, result);
         String intermediateHiveTableStepId = twoSteps.getFirst().getId();
         String baseCuboidStepId = twoSteps.getSecond().getId();
-        
+
         // convert htable
         AbstractExecutable convertCuboidToHfileStep = addHTableSteps(seg, cuboidRootPath, result);
 
@@ -77,7 +77,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
         final CubeJoinedFlatTableDesc intermediateTableDesc = new CubeJoinedFlatTableDesc(seg.getCubeDesc(), seg);
         final String hiveIntermediateTable = this.getIntermediateHiveTableName(intermediateTableDesc, jobId);
         result.addTask(createGarbageCollectionStep(seg, null, hiveIntermediateTable, null));
-        
+
         return result;
     }
 
@@ -85,19 +85,19 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
         checkPreconditions(appendSegment, mergeSegment);
 
         CubingJob result = initialJob(mergeSegment, "BUILD");
-        result.setSegmentIds(Lists.newArrayList(new String[]{appendSegment.getUuid(), mergeSegment.getUuid()}));
+        result.setSegmentIds(Lists.newArrayList(new String[] { appendSegment.getUuid(), mergeSegment.getUuid() }));
         final String jobId = result.getId();
         final String appendRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/append_cuboid/";
         final String mergedRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/cuboid/";
-        
+
         // cubing the incremental segment
         Pair<AbstractExecutable, AbstractExecutable> twoSteps = addCubingSteps(appendSegment, appendRootPath, result);
         final String intermediateHiveTableStepId = twoSteps.getFirst().getId();
         final String baseCuboidStepId = twoSteps.getSecond().getId();
-        
+
         // update the append segment info
         result.addTask(createUpdateCubeInfoAfterBuildStep(appendSegment, intermediateHiveTableStepId, baseCuboidStepId, null, jobId));
-        
+
         List<CubeSegment> mergingSegments = mergeSegment.getCubeInstance().getMergingSegments(mergeSegment);
         Preconditions.checkState(mergingSegments.size() > 1, "there should be more than 2 segments to merge");
         List<String> mergingSegmentIds = Lists.newArrayList();
@@ -117,24 +117,24 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
 
         // merge cuboid
         addMergeSteps(mergeSegment, mergingSegmentIds, mergingCuboidPaths, mergedRootPath, result);
-        
+
         // convert htable
         AbstractExecutable convertCuboidToHfileStep = addHTableSteps(mergeSegment, mergedRootPath, result);
 
         // update cube info
         result.addTask(createUpdateCubeInfoAfterMergeStep(mergeSegment, mergingSegmentIds, convertCuboidToHfileStep.getId(), jobId));
         result.addTask(createGarbageCollectionStep(mergeSegment, mergingHTables, null, toDeletePaths));
-        
+
         return result;
     }
 
     public CubingJob mergeJob(CubeSegment seg) {
         checkPreconditions(seg);
-        
+
         CubingJob result = initialJob(seg, "MERGE");
         final String jobId = result.getId();
         final String mergedCuboidPath = getJobWorkingDir(jobId) + "/" + seg.getCubeInstance().getName() + "/cuboid/";
-        
+
         List<CubeSegment> mergingSegments = seg.getCubeInstance().getMergingSegments(seg);
         Preconditions.checkState(mergingSegments.size() > 1, "there should be more than 2 segments to merge");
         List<String> mergingSegmentIds = Lists.newArrayList();
@@ -150,7 +150,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
 
         // merge cuboid
         addMergeSteps(seg, mergingSegmentIds, mergingCuboidPaths, mergedCuboidPath, result);
-        
+
         // convert htable
         AbstractExecutable convertCuboidToHfileStep = addHTableSteps(seg, mergedCuboidPath, result);
 
@@ -198,11 +198,11 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
 
         return new Pair<AbstractExecutable, AbstractExecutable>(intermediateHiveTableStep, baseCuboidStep);
     }
-    
+
     AbstractExecutable addHTableSteps(CubeSegment seg, String cuboidRootPath, CubingJob result) {
         final String jobId = result.getId();
         final String cuboidPath = cuboidRootPath + "*";
-        
+
         result.addTask(createRangeRowkeyDistributionStep(seg, cuboidPath));
         // create htable step
         result.addTask(createCreateHTableStep(seg));
@@ -211,7 +211,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
         result.addTask(convertCuboidToHfileStep);
         // bulk load step
         result.addTask(createBulkLoadStep(seg, jobId));
-        
+
         return convertCuboidToHfileStep;
     }
 
@@ -466,5 +466,4 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
         return result;
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java b/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
index d015f51..985d0c0 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/GarbageCollectionStep.java
@@ -18,7 +18,11 @@
 
 package org.apache.kylin.job.cube;
 
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
@@ -38,10 +42,7 @@ import org.apache.kylin.metadata.realization.IRealizationConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import com.google.common.collect.Lists;
 
 /**
  * Drop the resources that is no longer needed, including intermediate hive table (after cube build) and hbase tables (after cube merge)
@@ -82,8 +83,7 @@ public class GarbageCollectionStep extends AbstractExecutable {
     private void dropHiveTable(ExecutableContext context) throws IOException {
         final String hiveTable = this.getOldHiveTable();
         if (StringUtils.isNotEmpty(hiveTable)) {
-            final String dropSQL = "USE " + KylinConfig.getInstanceFromEnv().getHiveDatabaseForIntermediateTable() + ";"
-                    + " DROP TABLE IF EXISTS  " + hiveTable + ";";
+            final String dropSQL = "USE " + KylinConfig.getInstanceFromEnv().getHiveDatabaseForIntermediateTable() + ";" + " DROP TABLE IF EXISTS  " + hiveTable + ";";
             final String dropHiveCMD = "hive -e \"" + dropSQL + "\"";
             ShellCmdOutput shellCmdOutput = new ShellCmdOutput();
             context.getConfig().getCliCommandExecutor().execute(dropHiveCMD, shellCmdOutput);
@@ -138,7 +138,7 @@ public class GarbageCollectionStep extends AbstractExecutable {
             for (String path : oldHdfsPaths) {
                 if (path.endsWith("*"))
                     path = path.substring(0, path.length() - 1);
-                
+
                 Path oldPath = new Path(path);
                 if (fileSystem.exists(oldPath)) {
                     fileSystem.delete(oldPath, true);
@@ -161,7 +161,6 @@ public class GarbageCollectionStep extends AbstractExecutable {
         return getArrayParam(OLD_HTABLES);
     }
 
-
     public void setOldHdsfPaths(List<String> paths) {
         setArrayParam(OLD_HDFS_PATHS, paths);
     }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java b/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
index 9563347..7984fcb 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/MergeDictionaryStep.java
@@ -26,8 +26,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
-
-import com.google.common.collect.Lists;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -42,6 +40,8 @@ import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.google.common.collect.Lists;
+
 public class MergeDictionaryStep extends AbstractExecutable {
 
     private static final String CUBE_NAME = "cubeName";
@@ -59,15 +59,15 @@ public class MergeDictionaryStep extends AbstractExecutable {
         final CubeInstance cube = mgr.getCube(getCubeName());
         final CubeSegment newSegment = cube.getSegmentById(getSegmentId());
         final List<CubeSegment> mergingSegments = getMergingSegments(cube);
-        
+
         Collections.sort(mergingSegments);
-        
+
         try {
             checkLookupSnapshotsMustIncremental(mergingSegments);
-            
+
             makeDictForNewSegment(conf, cube, newSegment, mergingSegments);
             makeSnapshotForNewSegment(cube, newSegment, mergingSegments);
-            
+
             mgr.updateCube(cube);
             return new ExecuteResult(ExecuteResult.State.SUCCEED, "succeed");
         } catch (IOException e) {
@@ -75,7 +75,7 @@ public class MergeDictionaryStep extends AbstractExecutable {
             return new ExecuteResult(ExecuteResult.State.ERROR, e.getLocalizedMessage());
         }
     }
-    
+
     private List<CubeSegment> getMergingSegments(CubeInstance cube) {
         List<String> mergingSegmentIds = getMergingSegmentIds();
         List<CubeSegment> result = Lists.newArrayListWithCapacity(mergingSegmentIds.size());
@@ -186,7 +186,7 @@ public class MergeDictionaryStep extends AbstractExecutable {
         if (ids != null) {
             final String[] splitted = StringUtils.split(ids, ",");
             ArrayList<String> result = Lists.newArrayListWithExpectedSize(splitted.length);
-            for (String id: splitted) {
+            for (String id : splitted) {
                 result.add(id);
             }
             return result;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
index 5aa6570..6994dcc 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterBuildStep.java
@@ -21,8 +21,6 @@ package org.apache.kylin.job.cube;
 import java.io.IOException;
 
 import org.apache.commons.lang.StringUtils;
-
-import com.google.common.base.Preconditions;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
@@ -33,6 +31,8 @@ import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
 import org.apache.kylin.job.execution.Output;
 
+import com.google.common.base.Preconditions;
+
 /**
  * Created by qianzhou on 1/4/15.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
index bb5abdc..e4c152e 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/UpdateCubeInfoAfterMergeStep.java
@@ -24,9 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
@@ -37,6 +34,9 @@ import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecuteResult;
 
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+
 /**
  * Created by qianzhou on 1/7/15.
  */
@@ -57,7 +57,7 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
     @Override
     protected ExecuteResult doWork(ExecutableContext context) throws ExecuteException {
         final CubeInstance cube = cubeManager.getCube(getCubeName());
-        
+
         CubeSegment mergedSegment = cube.getSegmentById(getSegmentId());
         if (mergedSegment == null) {
             return new ExecuteResult(ExecuteResult.State.FAILED, "there is no segment with id:" + getSegmentId());
@@ -78,14 +78,14 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
             sourceCount += segment.getInputRecords();
             sourceSize += segment.getInputRecordsSize();
         }
-        
+
         // update segment info
         mergedSegment.setSizeKB(cubeSize);
         mergedSegment.setInputRecords(sourceCount);
         mergedSegment.setInputRecordsSize(sourceSize);
         mergedSegment.setLastBuildJobID(getCubingJobId());
         mergedSegment.setLastBuildTime(System.currentTimeMillis());
-        
+
         try {
             cubeManager.promoteNewlyBuiltSegments(cube, mergedSegment);
             return new ExecuteResult(ExecuteResult.State.SUCCEED);
@@ -120,7 +120,7 @@ public class UpdateCubeInfoAfterMergeStep extends AbstractExecutable {
         if (ids != null) {
             final String[] splitted = StringUtils.split(ids, ",");
             ArrayList<String> result = Lists.newArrayListWithExpectedSize(splitted.length);
-            for (String id: splitted) {
+            for (String id : splitted) {
                 result.add(id);
             }
             return result;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
index 635c73e..2f43037 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
@@ -18,11 +18,14 @@
 
 package org.apache.kylin.job.dao;
 
-import com.google.common.collect.Lists;
-import org.apache.commons.io.IOUtils;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
-import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
 import org.apache.kylin.job.exception.PersistentException;
@@ -30,12 +33,7 @@ import org.apache.kylin.metadata.MetadataManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.collect.Lists;
 
 /**
  */
@@ -71,6 +69,7 @@ public class ExecutableDao {
     private String pathOfJob(ExecutablePO job) {
         return pathOfJob(job.getUuid());
     }
+
     private String pathOfJob(String uuid) {
         return JOB_PATH_ROOT + "/" + uuid;
     }
@@ -114,7 +113,7 @@ public class ExecutableDao {
     public List<ExecutablePO> getJobs() throws PersistentException {
         try {
             final List<String> jobIds = store.listResources(JOB_PATH_ROOT);
-            if (jobIds== null || jobIds.isEmpty()) {
+            if (jobIds == null || jobIds.isEmpty()) {
                 return Collections.emptyList();
             }
             Collections.sort(jobIds);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java b/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
index 73436db..77badbb 100644
--- a/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
+++ b/job/src/main/java/org/apache/kylin/job/dao/ExecutableOutputPO.java
@@ -20,10 +20,11 @@ package org.apache.kylin.job.dao;
 
 import java.util.Map;
 
+import org.apache.kylin.common.persistence.RootPersistentEntity;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.collect.Maps;
-import org.apache.kylin.common.persistence.RootPersistentEntity;
 
 /**
  * Created by qianzhou on 12/15/14.



[15/15] incubator-kylin git commit: KYLIN-922 add doc

Posted by ma...@apache.org.
KYLIN-922 add doc


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

Branch: refs/heads/0.7-staging
Commit: 3deec0d821fb34a85b40e3ec740eb9dac069dec0
Parents: 40a744b
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 17:52:02 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:55 2015 +0800

----------------------------------------------------------------------
 website/_docs/development/dev_env.md            |  19 +++++++++++++++++++
 .../develop/disable_import_on_the_fly.png       | Bin 0 -> 128510 bytes
 .../develop/eclipse_code_formatter_config.png   | Bin 0 -> 121789 bytes
 3 files changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/_docs/development/dev_env.md
----------------------------------------------------------------------
diff --git a/website/_docs/development/dev_env.md b/website/_docs/development/dev_env.md
index 27d533f..1cdc17a 100644
--- a/website/_docs/development/dev_env.md
+++ b/website/_docs/development/dev_env.md
@@ -104,3 +104,22 @@ In IDE, launch `org.apache.kylin.rest.DebugTomcat` with working directory set to
 Check Kylin Web available at http://localhost:7070/kylin (user:ADMIN,password:KYLIN)
 
 For IntelliJ IDEA users, need modify "server/kylin-server.iml" file, replace all "PROVIDED" to "COMPILE", otherwise an "java.lang.NoClassDefFoundError: org/apache/catalina/LifecycleListener" error may be thrown;
+
+
+## Setup IDE code formatter
+
+In case you're writting code for Kylin, you should make sure that your code in expected formats.
+
+For Eclipse users, just format the code before committing the code.
+
+For intellij IDEA users, you have to do a few more steps:
+
+1. Install "Eclipse Code Formatter" and configure it as follows:
+
+	![Eclipse_Code_Formatter_Config](/images/develop/eclipse_code_formatter_config.png)
+
+2. Disable intellij IDEA's "Optimize imports on the fly"
+
+	![Disable_Optimize_On_The_Fly](/images/develop/disable_import_on_the_fly.png)
+
+3. Format the code before committing the code.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/images/develop/disable_import_on_the_fly.png
----------------------------------------------------------------------
diff --git a/website/images/develop/disable_import_on_the_fly.png b/website/images/develop/disable_import_on_the_fly.png
new file mode 100644
index 0000000..7b2412d
Binary files /dev/null and b/website/images/develop/disable_import_on_the_fly.png differ

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/3deec0d8/website/images/develop/eclipse_code_formatter_config.png
----------------------------------------------------------------------
diff --git a/website/images/develop/eclipse_code_formatter_config.png b/website/images/develop/eclipse_code_formatter_config.png
new file mode 100644
index 0000000..32d8952
Binary files /dev/null and b/website/images/develop/eclipse_code_formatter_config.png differ


[14/15] incubator-kylin git commit: KYLIN-921 take care of situations where no dict dim exist on fact table

Posted by ma...@apache.org.
KYLIN-921 take care of situations where no dict dim exist on fact table


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/07db2253
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/07db2253
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/07db2253

Branch: refs/heads/0.7-staging
Commit: 07db22536657dfb278dfd29f616789560b208948
Parents: 388488b
Author: honma <ho...@ebay.com>
Authored: Mon Aug 3 22:21:37 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Tue Aug 4 11:45:54 2015 +0800

----------------------------------------------------------------------
 .../job/hadoop/cube/FactDistinctColumnsMapper.java    | 14 ++++++++++----
 .../job/hadoop/cube/FactDistinctColumnsReducer.java   |  4 +++-
 2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/07db2253/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
index 9345171..8636717 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsMapper.java
@@ -20,6 +20,7 @@ package org.apache.kylin.job.hadoop.cube;
 
 import java.io.IOException;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.io.ShortWritable;
@@ -64,10 +65,15 @@ public class FactDistinctColumnsMapper<KEYIN> extends KylinMapper<KEYIN, HCatRec
         CubeDesc cubeDesc = cube.getDescriptor();
         intermediateTableDesc = new CubeJoinedFlatTableDesc(cubeDesc, null);
 
-        String[] rowKeyIndexes = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES).split(",");
-        factDictColRowKeyIndexes = new int[rowKeyIndexes.length];
-        for (int i = 0; i < rowKeyIndexes.length; i++) {
-            factDictColRowKeyIndexes[i] = Integer.parseInt(rowKeyIndexes[i]);
+        String rowKeyIndexesStr = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_ROWKEY_INDEXES);
+        if (!StringUtils.isEmpty(rowKeyIndexesStr)) {
+            String[] rowKeyIndexes = rowKeyIndexesStr.split(",");
+            factDictColRowKeyIndexes = new int[rowKeyIndexes.length];
+            for (int i = 0; i < rowKeyIndexes.length; i++) {
+                factDictColRowKeyIndexes[i] = Integer.parseInt(rowKeyIndexes[i]);
+            }
+        } else {
+            factDictColRowKeyIndexes = new int[0];
         }
 
         schema = HCatInputFormat.getTableSchema(context.getConfiguration());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/07db2253/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
index ba212e6..e6fd3f1 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/FactDistinctColumnsReducer.java
@@ -21,6 +21,7 @@ package org.apache.kylin.job.hadoop.cube;
 import java.io.IOException;
 import java.util.*;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
@@ -72,7 +73,8 @@ public class FactDistinctColumnsReducer extends KylinReducer<ShortWritable, Text
         outputPath = conf.get(BatchConstants.OUTPUT_PATH);
         fs = FileSystem.get(conf);
 
-        String[] factDictColNames = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES).split(",");
+        String factDictColNamesStr = conf.get(BatchConstants.CFG_FACT_DICT_COLUMN_NAMES);
+        String[] factDictColNames = StringUtils.isEmpty(factDictColNamesStr) ? new String[0] : factDictColNamesStr.split(",");
         toBeExtractedColumns.addAll(Arrays.asList(factDictColNames));
     }
 


[02/15] incubator-kylin git commit: KYLIN-922 Enforce same code style for both intellij and eclipse user

Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/AdminService.java b/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
index e5ab1f0..9df417a 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/AdminService.java
@@ -26,16 +26,15 @@ import java.util.Properties;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
+import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.exception.InternalErrorException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.job.hadoop.cube.StorageCleanupJob;
-import org.apache.kylin.rest.constant.Constant;
-
 /**
  * @author jianliu
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
index d124cf0..85664c0 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/BasicService.java
@@ -18,33 +18,43 @@
 
 package org.apache.kylin.rest.service;
 
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
+import javax.sql.DataSource;
+
+import org.apache.calcite.jdbc.Driver;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.invertedindex.IIDescManager;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.job.cube.CubingJob;
-import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.AbstractExecutable;
+import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.Output;
 import org.apache.kylin.job.manager.ExecutableManager;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.metadata.realization.RealizationRegistry;
 import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.query.enumerator.OLAPQuery;
 import org.apache.kylin.query.relnode.OLAPContext;
 import org.apache.kylin.query.schema.OLAPSchemaFactory;
 import org.apache.kylin.rest.controller.QueryController;
-import org.apache.calcite.jdbc.Driver;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.storage.hybrid.HybridManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,18 +62,11 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Caching;
 import org.springframework.jdbc.datasource.DriverManagerDataSource;
 
-import javax.sql.DataSource;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
 
 public abstract class BasicService {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/CacheService.java b/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
index 393e9e4..188f422 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/CacheService.java
@@ -18,10 +18,12 @@
 
 package org.apache.kylin.rest.service;
 
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeManager;
-import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.invertedindex.IIDescManager;
 import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.metadata.MetadataManager;
@@ -33,9 +35,6 @@ import org.apache.kylin.storage.hybrid.HybridManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.io.IOException;
-import java.util.List;
-
 /**
  * Created by qianzhou on 1/19/15.
  */
@@ -44,7 +43,7 @@ public class CacheService extends BasicService {
 
     @Autowired
     private CubeService cubeService;
-    
+
     public void rebuildCache(Broadcaster.TYPE cacheType, String cacheKey) {
         final String log = "rebuild cache type: " + cacheType + " name:" + cacheKey;
         try {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
index cb81c2a..63f8930 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -18,11 +18,18 @@
 
 package org.apache.kylin.rest.service;
 
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.client.HTable;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HBaseRegionSizeCalculator;
@@ -68,9 +75,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Component;
 
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.util.*;
+import com.google.common.collect.Lists;
 
 /**
  * Stateless & lightweight service facade of cube management functions.
@@ -162,7 +167,6 @@ public class CubeService extends BasicService {
             createdDesc = getCubeDescManager().updateCubeDesc(desc);
         }
 
-
         if (!createdDesc.getError().isEmpty()) {
             if (isNew) {
                 getCubeDescManager().removeCubeDesc(createdDesc);
@@ -313,7 +317,7 @@ public class CubeService extends BasicService {
      * @throws JobException
      */
     @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
-    @Caching(evict = {@CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true)})
+    @Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
     public CubeInstance purgeCube(CubeInstance cube) throws IOException, JobException {
         String cubeName = cube.getName();
 
@@ -340,7 +344,7 @@ public class CubeService extends BasicService {
      * @throws JobException
      */
     @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
-    @Caching(evict = {@CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true)})
+    @Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
     public CubeInstance disableCube(CubeInstance cube) throws IOException, JobException {
         String cubeName = cube.getName();
 
@@ -503,7 +507,6 @@ public class CubeService extends BasicService {
         getExecutableManager().addJob(job);
     }
 
-
     @PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION')  or hasPermission(#cube, 'MANAGEMENT')")
     public void updateCubeNotifyList(CubeInstance cube, List<String> notifyList) throws IOException {
         CubeDesc desc = cube.getDescriptor();
@@ -550,7 +553,6 @@ public class CubeService extends BasicService {
         getProjectManager().addTableDescToProject(tables, project);
     }
 
-
     @PreAuthorize(Constant.ACCESS_HAS_ROLE_MODELER + " or " + Constant.ACCESS_HAS_ROLE_ADMIN)
     public void calculateCardinalityIfNotPresent(String[] tables, String submitter) throws IOException {
         MetadataManager metaMgr = getMetadataManager();
@@ -562,7 +564,6 @@ public class CubeService extends BasicService {
         }
     }
 
-
     public void updateOnNewSegmentReady(String cubeName) {
         logger.debug("on updateOnNewSegmentReady: " + cubeName);
         final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/JobService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/JobService.java b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
index a0b3407..8a6b757 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -18,11 +18,13 @@
 
 package org.apache.kylin.rest.service;
 
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.CubeInstance;
@@ -49,8 +51,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 
-import java.io.IOException;
-import java.util.*;
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 
 /**
  * @author ysong1
@@ -106,20 +111,20 @@ public class JobService extends BasicService {
 
     private ExecutableState parseToExecutableState(JobStatusEnum status) {
         switch (status) {
-            case DISCARDED:
-                return ExecutableState.DISCARDED;
-            case ERROR:
-                return ExecutableState.ERROR;
-            case FINISHED:
-                return ExecutableState.SUCCEED;
-            case NEW:
-                return ExecutableState.READY;
-            case PENDING:
-                return ExecutableState.READY;
-            case RUNNING:
-                return ExecutableState.RUNNING;
-            default:
-                throw new RuntimeException("illegal status:" + status);
+        case DISCARDED:
+            return ExecutableState.DISCARDED;
+        case ERROR:
+            return ExecutableState.ERROR;
+        case FINISHED:
+            return ExecutableState.SUCCEED;
+        case NEW:
+            return ExecutableState.READY;
+        case PENDING:
+            return ExecutableState.READY;
+        case RUNNING:
+            return ExecutableState.RUNNING;
+        default:
+            throw new RuntimeException("illegal status:" + status);
         }
     }
 
@@ -250,37 +255,37 @@ public class JobService extends BasicService {
 
     private JobStatusEnum parseToJobStatus(ExecutableState state) {
         switch (state) {
-            case READY:
-                return JobStatusEnum.PENDING;
-            case RUNNING:
-                return JobStatusEnum.RUNNING;
-            case ERROR:
-                return JobStatusEnum.ERROR;
-            case DISCARDED:
-                return JobStatusEnum.DISCARDED;
-            case SUCCEED:
-                return JobStatusEnum.FINISHED;
-            case STOPPED:
-            default:
-                throw new RuntimeException("invalid state:" + state);
+        case READY:
+            return JobStatusEnum.PENDING;
+        case RUNNING:
+            return JobStatusEnum.RUNNING;
+        case ERROR:
+            return JobStatusEnum.ERROR;
+        case DISCARDED:
+            return JobStatusEnum.DISCARDED;
+        case SUCCEED:
+            return JobStatusEnum.FINISHED;
+        case STOPPED:
+        default:
+            throw new RuntimeException("invalid state:" + state);
         }
     }
 
     private JobStepStatusEnum parseToJobStepStatus(ExecutableState state) {
         switch (state) {
-            case READY:
-                return JobStepStatusEnum.PENDING;
-            case RUNNING:
-                return JobStepStatusEnum.RUNNING;
-            case ERROR:
-                return JobStepStatusEnum.ERROR;
-            case DISCARDED:
-                return JobStepStatusEnum.DISCARDED;
-            case SUCCEED:
-                return JobStepStatusEnum.FINISHED;
-            case STOPPED:
-            default:
-                throw new RuntimeException("invalid state:" + state);
+        case READY:
+            return JobStepStatusEnum.PENDING;
+        case RUNNING:
+            return JobStepStatusEnum.RUNNING;
+        case ERROR:
+            return JobStepStatusEnum.ERROR;
+        case DISCARDED:
+            return JobStepStatusEnum.DISCARDED;
+        case SUCCEED:
+            return JobStepStatusEnum.FINISHED;
+        case STOPPED:
+        default:
+            throw new RuntimeException("invalid state:" + state);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/PerformService.java b/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
index 35b1207..059de77 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/PerformService.java
@@ -18,7 +18,10 @@
 
 package org.apache.kylin.rest.service;
 
-import au.com.bytecode.opencsv.CSVReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.List;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
@@ -28,9 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.*;
+import au.com.bytecode.opencsv.CSVReader;
 
 /**
  * @author jiazhong
@@ -43,37 +44,37 @@ public class PerformService extends BasicService {
     /*
      * @return all query user
      */
-    public  List<String[]> getTotalQueryUser() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/total_query_user.csv";
+    public List<String[]> getTotalQueryUser() throws IOException {
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/total_query_user.csv";
         List<String[]> res = readHdfsFile(filePath);
-        logger.info("Total Query User:"+res.get(0)[0]);
-       return  res;
+        logger.info("Total Query User:" + res.get(0)[0]);
+        return res;
     }
 
-     /*
-     * @return last 30 daily query num
-     */
-    public  List<String[]> dailyQueryCount() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/last_30_daily_query_count.csv";
+    /*
+    * @return last 30 daily query num
+    */
+    public List<String[]> dailyQueryCount() throws IOException {
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/last_30_daily_query_count.csv";
         List<String[]> res = readHdfsFile(filePath);
-       return  res;
+        return res;
     }
 
     /*
      * @return average query count every day
      */
-    public  List<String[]> avgDayQuery() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/avg_day_query.csv";
+    public List<String[]> avgDayQuery() throws IOException {
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/avg_day_query.csv";
         List<String[]> res = readHdfsFile(filePath);
-        logger.info("Avg Day Query:"+res.get(0)[0]);
-        return  res;
+        logger.info("Avg Day Query:" + res.get(0)[0]);
+        return res;
     }
 
     /*
      *@return average latency every day
      */
     public List<String[]> last30DayPercentile() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/last_30_day_90_percentile_latency.csv";
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/last_30_day_90_percentile_latency.csv";
         List<String[]> res = readHdfsFile(filePath);
         return res;
     }
@@ -82,7 +83,7 @@ public class PerformService extends BasicService {
      *@return average latency for every cube
      */
     public List<String[]> eachDayPercentile() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/each_day_90_95_percentile_latency.csv";
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/each_day_90_95_percentile_latency.csv";
         List<String[]> res = readHdfsFile(filePath);
         return res;
     }
@@ -91,12 +92,11 @@ public class PerformService extends BasicService {
      *@return average latency for every cube
      */
     public List<String[]> projectPercentile() throws IOException {
-        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()+"/performance/metadata/project_90_95_percentile_latency.csv";
+        String filePath = KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory() + "/performance/metadata/project_90_95_percentile_latency.csv";
         List<String[]> res = readHdfsFile(filePath);
         return res;
     }
 
-
     private List<String[]> readHdfsFile(String filePath) throws IOException {
         List<String[]> allRows = null;
         CSVReader reader = null;
@@ -106,16 +106,14 @@ public class PerformService extends BasicService {
         try {
             fs = FileSystem.newInstance(conf);
             FSDataInputStream inputStream = fs.open(new Path(filePath));
-            reader = new CSVReader(new InputStreamReader (inputStream),'|');
+            reader = new CSVReader(new InputStreamReader(inputStream), '|');
 
             //Read all rows at once
             allRows = reader.readAll();
 
-
         } catch (IOException e) {
-            logger.info("failed to read hdfs file:",e);
-        }
-        finally {
+            logger.info("failed to read hdfs file:", e);
+        } finally {
             fs.close();
         }
         return allRows;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java b/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
index 9b6464c..1b51d2e 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/ProjectService.java
@@ -22,8 +22,13 @@ import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.kylin.metadata.project.ProjectInstance;
+import org.apache.kylin.metadata.project.ProjectManager;
+import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.request.CreateProjectRequest;
 import org.apache.kylin.rest.request.UpdateProjectRequest;
+import org.apache.kylin.rest.security.AclPermission;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,12 +36,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Component;
 
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.project.ProjectManager;
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.CreateProjectRequest;
-import org.apache.kylin.rest.security.AclPermission;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/service/UserService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/UserService.java b/server/src/main/java/org/apache/kylin/rest/service/UserService.java
index b5d366a..7203030 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/UserService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/UserService.java
@@ -32,8 +32,12 @@ import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
+import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.rest.security.UserManager;
+import org.apache.kylin.rest.util.Serializer;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -41,10 +45,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.persistence.HBaseConnection;
-import org.apache.kylin.common.util.JsonUtil;
-import org.apache.kylin.rest.util.Serializer;
 
 /**
  * @author xduo

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java b/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
index 994fe03..46b4e5a 100644
--- a/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
+++ b/server/src/main/java/org/apache/kylin/rest/util/QueryUtil.java
@@ -151,7 +151,7 @@ public class QueryUtil {
 
     public static String makeErrorMsgUserFriendly(Throwable e) {
         String msg = e.getMessage();
-        
+
         // pick ParseException error message if possible
         Throwable cause = e;
         while (cause != null) {
@@ -161,7 +161,7 @@ public class QueryUtil {
             }
             cause = cause.getCause();
         }
-        
+
         return makeErrorMsgUserFriendly(msg);
     }
 
@@ -169,7 +169,7 @@ public class QueryUtil {
         try {
             // make one line
             errorMsg = errorMsg.replaceAll("\\s", " ");
-            
+
             // move cause to be ahead of sql, calcite creates the message pattern below
             Pattern pattern = Pattern.compile("error while executing SQL \"(.*)\":(.*)");
             Matcher matcher = pattern.matcher(errorMsg);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/util/Serializer.java b/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
index d662d49..d726e06 100644
--- a/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
+++ b/server/src/main/java/org/apache/kylin/rest/util/Serializer.java
@@ -20,10 +20,11 @@ package org.apache.kylin.rest.util;
 
 import java.io.IOException;
 
+import org.apache.kylin.common.util.JsonUtil;
+
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonMappingException;
-import org.apache.kylin.common.util.JsonUtil;
 
 public class Serializer<T> {
     private final Class<T> type;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
index 23cb7ea..59d4f16 100644
--- a/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
+++ b/server/src/test/java/org/apache/kylin/jdbc/JDBCDriverTest.java
@@ -16,20 +16,27 @@
  * limitations under the License.
 */
 
-
 package org.apache.kylin.jdbc;
 
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.List;
+import java.util.Properties;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.webapp.WebAppContext;
-import org.junit.*;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
-import java.io.File;
-import java.sql.*;
-import java.util.List;
-import java.util.Properties;
+import com.google.common.collect.Lists;
 
 /**
  * Created by shaoshi on 2/5/15.
@@ -66,7 +73,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
             server.stop();
 
         File workFolder = new File("work");
-        if(workFolder.isDirectory() && workFolder.exists()) {
+        if (workFolder.isDirectory() && workFolder.exists()) {
             FileUtils.deleteDirectory(workFolder);
         }
     }
@@ -160,7 +167,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
 
         List<String> tableList = Lists.newArrayList();
         DatabaseMetaData dbMetadata = conn.getMetaData();
-        ResultSet resultSet = dbMetadata.getTables(null, "%", "%", new String[]{"TABLE"});
+        ResultSet resultSet = dbMetadata.getTables(null, "%", "%", new String[] { "TABLE" });
         while (resultSet.next()) {
             String schema = resultSet.getString("TABLE_SCHEM");
             String name = resultSet.getString("TABLE_NAME");
@@ -210,13 +217,11 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
 
     }
 
-
     @Test
     public void testPreparedStatement() throws Exception {
         Connection conn = getConnection();
 
-        PreparedStatement statement = conn.prepareStatement("select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact " +
-                "where LSTG_FORMAT_NAME = ? group by LSTG_FORMAT_NAME");
+        PreparedStatement statement = conn.prepareStatement("select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact " + "where LSTG_FORMAT_NAME = ? group by LSTG_FORMAT_NAME");
 
         statement.setString(1, "FP-GTC");
 
@@ -236,8 +241,7 @@ public class JDBCDriverTest extends HBaseMetadataTestCase {
 
     @Test
     public void testResultSet() throws Exception {
-        String sql = "select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact \n" +
-                " group by LSTG_FORMAT_NAME ";
+        String sql = "select LSTG_FORMAT_NAME, sum(price) as GMV, count(1) as TRANS_CNT from test_kylin_fact \n" + " group by LSTG_FORMAT_NAME ";
 
         Connection conn = getConnection();
         Statement statement = conn.createStatement();

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java b/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
index e5a6fdb..03d4dad 100644
--- a/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/bean/BeanTest.java
@@ -20,10 +20,12 @@ package org.apache.kylin.rest.bean;
 
 import java.beans.IntrospectionException;
 
+import org.apache.kylin.rest.constant.Constant;
 import org.apache.kylin.rest.model.ColumnMeta;
 import org.apache.kylin.rest.model.SelectedColumnMeta;
 import org.apache.kylin.rest.model.TableMeta;
 import org.apache.kylin.rest.request.AccessRequest;
+import org.apache.kylin.rest.request.CubeRequest;
 import org.apache.kylin.rest.request.JobListRequest;
 import org.apache.kylin.rest.request.SQLRequest;
 import org.apache.kylin.rest.response.AccessEntryResponse;
@@ -31,9 +33,6 @@ import org.apache.kylin.rest.response.SQLResponse;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.kylin.rest.constant.Constant;
-import org.apache.kylin.rest.request.CubeRequest;
-
 /**
  * @author xduo
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java b/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
index 2c7e068..26a0c80 100644
--- a/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
+++ b/server/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterReceiveServlet.java
@@ -46,6 +46,7 @@ public class BroadcasterReceiveServlet extends HttpServlet {
     }
 
     private static final Pattern PATTERN = Pattern.compile("/(.+)/(.+)/(.+)");
+
     @Override
     protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         handle(req, resp);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
index 9dffc74..7ce521e 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/AccessControllerTest.java
@@ -21,16 +21,15 @@ package org.apache.kylin.rest.controller;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.kylin.rest.request.AccessRequest;
 import org.apache.kylin.rest.response.AccessEntryResponse;
 import org.apache.kylin.rest.service.AccessService;
+import org.apache.kylin.rest.service.ServiceTestBase;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.rest.request.AccessRequest;
-import org.apache.kylin.rest.service.ServiceTestBase;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
index 4f07253..4e767c5 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/AdminControllerTest.java
@@ -21,14 +21,13 @@ package org.apache.kylin.rest.controller;
 import java.io.IOException;
 
 import org.apache.kylin.rest.service.AdminService;
+import org.apache.kylin.rest.service.CubeService;
+import org.apache.kylin.rest.service.ServiceTestBase;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.rest.service.CubeService;
-import org.apache.kylin.rest.service.ServiceTestBase;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
index e6b1a32..d396985 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/BaseControllerTest.java
@@ -20,8 +20,10 @@ package org.apache.kylin.rest.controller;
 
 import java.io.IOException;
 
+import org.apache.kylin.rest.exception.BadRequestException;
 import org.apache.kylin.rest.exception.ForbiddenException;
 import org.apache.kylin.rest.exception.InternalErrorException;
+import org.apache.kylin.rest.exception.NotFoundException;
 import org.apache.kylin.rest.response.ErrorResponse;
 import org.apache.kylin.rest.service.ServiceTestBase;
 import org.junit.Assert;
@@ -29,9 +31,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.mock.web.MockHttpServletRequest;
 
-import org.apache.kylin.rest.exception.BadRequestException;
-import org.apache.kylin.rest.exception.NotFoundException;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
index d75c5ca..0f8c16b 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/CacheControllerTest.java
@@ -18,19 +18,14 @@
 
 package org.apache.kylin.rest.controller;
 
-import org.apache.kylin.metadata.model.TableDesc;
+import java.io.IOException;
+
 import org.apache.kylin.rest.service.CacheService;
-import org.apache.kylin.rest.service.CubeService;
 import org.apache.kylin.rest.service.ServiceTestBase;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author shaoshi
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
index ee57cd3..5630b3d 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/CubeControllerTest.java
@@ -18,8 +18,10 @@
 
 package org.apache.kylin.rest.controller;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.Lists;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.List;
+
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.model.CubeDesc;
 import org.apache.kylin.metadata.model.DataModelDesc;
@@ -32,9 +34,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.List;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.collect.Lists;
 
 /**
  * @author xduo
@@ -107,7 +108,6 @@ public class CubeControllerTest extends ServiceTestBase {
         cubeRequest.setModelDescData(modelDescWriter.toString());
         cubeRequest = cubeController.saveCubeDesc(cubeRequest);
 
-
         DataModelDesc model = modelController.getModel(newModelName);
         Assert.assertNotNull(model);
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
index 30e8520..0b686b1 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/JobControllerTest.java
@@ -18,17 +18,11 @@
 
 package org.apache.kylin.rest.controller;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
 import java.util.Date;
 
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeInstance;
@@ -42,6 +36,11 @@ import org.apache.kylin.rest.request.JobListRequest;
 import org.apache.kylin.rest.service.CubeService;
 import org.apache.kylin.rest.service.JobService;
 import org.apache.kylin.rest.service.ServiceTestBase;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * @author xduo

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
index 9fe6069..bb96be6 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/ProjectControllerTest.java
@@ -21,6 +21,8 @@ package org.apache.kylin.rest.controller;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.kylin.metadata.project.ProjectInstance;
+import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.rest.exception.InternalErrorException;
 import org.apache.kylin.rest.request.CreateProjectRequest;
 import org.apache.kylin.rest.request.UpdateProjectRequest;
@@ -31,9 +33,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.metadata.project.ProjectManager;
-
 /**
  * Created by honma on 8/7/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
index cf84417..eeb64d5 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/QueryControllerTest.java
@@ -20,17 +20,16 @@ package org.apache.kylin.rest.controller;
 
 import net.sf.ehcache.CacheManager;
 
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.rest.request.MetaRequest;
 import org.apache.kylin.rest.request.SQLRequest;
+import org.apache.kylin.rest.service.QueryService;
 import org.apache.kylin.rest.service.ServiceTestBase;
 import org.apache.kylin.rest.util.QueryUtil;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.rest.service.QueryService;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java b/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
index 37e184f..bf2e535 100644
--- a/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/controller/TableControllerTest.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.rest.controller;
 
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.rest.service.CubeService;
 import org.apache.kylin.rest.service.ServiceTestBase;
@@ -26,10 +30,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author shaoshi
  */
@@ -65,10 +65,9 @@ public class TableControllerTest extends ServiceTestBase {
 
         Assert.assertNotNull(factTable);
 
-
         Map<String, String[]> loadResult = tableController.loadHiveTable("test_kylin_fact,TEST_CATEGORY_GROUPINGS", "default");
         Assert.assertNotNull(loadResult);
 
-        Assert.assertTrue(loadResult.get("result.loaded").length ==2);
+        Assert.assertTrue(loadResult.get("result.loaded").length == 2);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
index 402440a..7cf5dc2 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/AccessServiceTest.java
@@ -18,6 +18,10 @@
 
 package org.apache.kylin.rest.service;
 
+import org.apache.kylin.common.persistence.AclEntity;
+import org.apache.kylin.rest.response.AccessEntryResponse;
+import org.apache.kylin.rest.security.AclPermission;
+import org.apache.kylin.rest.security.AclPermissionFactory;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,10 +31,6 @@ import org.springframework.security.acls.model.Acl;
 import org.springframework.security.acls.model.Sid;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.common.persistence.AclEntity;
-import org.apache.kylin.rest.response.AccessEntryResponse;
-import org.apache.kylin.rest.security.AclPermission;
-import org.apache.kylin.rest.security.AclPermissionFactory;
 
 /**
  * @author xduo

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
index 195b9ca..fff6110 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/CacheServiceTest.java
@@ -18,6 +18,15 @@
 
 package org.apache.kylin.rest.service;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
@@ -38,16 +47,13 @@ import org.apache.kylin.rest.broadcaster.BroadcasterReceiveServlet;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 import org.slf4j.Logger;
 
-import java.util.Arrays;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.junit.Assert.*;
-
 /**
  * Created by qianzhou on 1/16/15.
  */
@@ -90,15 +96,15 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
                 logger.info(log);
                 counter.incrementAndGet();
                 switch (wipeEvent) {
-                    case CREATE:
-                    case UPDATE:
-                        cacheService.rebuildCache(wipeType, name);
-                        break;
-                    case DROP:
-                        cacheService.removeCache(wipeType, name);
-                        break;
-                    default:
-                        throw new RuntimeException("invalid type:" + wipeEvent);
+                case CREATE:
+                case UPDATE:
+                    cacheService.rebuildCache(wipeType, name);
+                    break;
+                case DROP:
+                    cacheService.removeCache(wipeType, name);
+                    break;
+                default:
+                    throw new RuntimeException("invalid type:" + wipeEvent);
                 }
             }
         })), "/");
@@ -148,12 +154,15 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
     private static CubeManager getCubeManager(KylinConfig config) throws Exception {
         return CubeManager.getInstance(config);
     }
+
     private static ProjectManager getProjectManager(KylinConfig config) throws Exception {
         return ProjectManager.getInstance(config);
     }
+
     private static CubeDescManager getCubeDescManager(KylinConfig config) throws Exception {
         return CubeDescManager.getInstance(config);
     }
+
     private static MetadataManager getMetadataManager(KylinConfig config) throws Exception {
         return MetadataManager.getInstance(config);
     }
@@ -234,7 +243,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
         assertTrue(cubeManagerB.getCube(cubeName) == null);
         assertTrue(!containsRealization(projectManagerB.listAllRealizations(ProjectInstance.DEFAULT_PROJECT_NAME), RealizationType.CUBE, cubeName));
 
-
         final String cubeDescName = "test_cube_desc";
         cubeDesc.setName(cubeDescName);
         cubeDesc.setLastModified(0);
@@ -247,7 +255,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
         assertNotNull(cubeDescManager.getCubeDesc(cubeDescName));
         assertNotNull(cubeDescManagerB.getCubeDesc(cubeDescName));
 
-
         cubeDesc.setNotifyList(Arrays.asList("test@email", "test@email", "test@email"));
         cubeDescManager.updateCubeDesc(cubeDesc);
         assertEquals(1, broadcaster.getCounterAndClear());
@@ -261,8 +268,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
         assertTrue(cubeDescManager.getCubeDesc(cubeDescName) == null);
         assertTrue(cubeDescManagerB.getCubeDesc(cubeDescName) == null);
 
-
-
         getStore().deleteResource("/cube/a_whole_new_cube.json");
     }
 
@@ -275,7 +280,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
         return tableDesc;
     }
 
-
     @Test
     public void testMetaCRUD() throws Exception {
         final MetadataManager metadataManager = MetadataManager.getInstance(configA);
@@ -293,9 +297,6 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
         assertNotNull(metadataManager.getTableDesc(tableDesc.getIdentity()));
         assertNotNull(metadataManagerB.getTableDesc(tableDesc.getIdentity()));
 
-
-
-
         final String dataModelName = "test_data_model";
         DataModelDesc dataModelDesc = metadataManager.getDataModelDesc("test_kylin_ii_model_desc");
         dataModelDesc.setName(dataModelName);
@@ -312,7 +313,7 @@ public class CacheServiceTest extends LocalFileMetadataTestCase {
 
         final LookupDesc[] lookups = dataModelDesc.getLookups();
         assertTrue(lookups.length > 0);
-        dataModelDesc.setLookups(new LookupDesc[]{lookups[0]});
+        dataModelDesc.setLookups(new LookupDesc[] { lookups[0] });
         metadataManager.updateDataModelDesc(dataModelDesc);
         //only one for data model update
         assertEquals(1, broadcaster.getCounterAndClear());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
index 7bf2516..08bd99d 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/CubeServiceTest.java
@@ -21,14 +21,14 @@ package org.apache.kylin.rest.service;
 import java.net.UnknownHostException;
 import java.util.List;
 
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.kylin.cube.CubeInstance;
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
 
 /**
  * @author xduo

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
index dd89a22..a53dd3c 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
@@ -20,13 +20,12 @@ package org.apache.kylin.rest.service;
 
 import java.io.IOException;
 
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java b/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
index 15add6c..2077e31 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/QueryServiceTest.java
@@ -22,15 +22,14 @@ import java.io.IOException;
 import java.sql.SQLException;
 import java.util.Date;
 
+import org.apache.kylin.job.exception.JobException;
+import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.rest.request.SQLRequest;
 import org.apache.kylin.rest.response.SQLResponse;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import org.apache.kylin.job.exception.JobException;
-import org.apache.kylin.metadata.project.ProjectInstance;
-
 /**
  * @author xduo
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
----------------------------------------------------------------------
diff --git a/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java b/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
index 7865ac0..cb73702 100644
--- a/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
+++ b/server/src/test/java/org/apache/kylin/rest/service/ServiceTestBase.java
@@ -27,7 +27,11 @@ import org.apache.kylin.invertedindex.IIManager;
 import org.apache.kylin.metadata.MetadataManager;
 import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.metadata.realization.RealizationRegistry;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.security.authentication.TestingAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -40,7 +44,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  * @author xduo
  */
 @RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {"classpath:applicationContext.xml", "classpath:kylinSecurity.xml"})
+@ContextConfiguration(locations = { "classpath:applicationContext.xml", "classpath:kylinSecurity.xml" })
 @ActiveProfiles("testing")
 public class ServiceTestBase extends HBaseMetadataTestCase {
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
index b81bad2..b2e82a8 100644
--- a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
+++ b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
@@ -20,8 +20,8 @@ package org.apache.kylin.storage;
 
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.invertedindex.IIInstance;
-import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.metadata.realization.IRealization;
+import org.apache.kylin.metadata.realization.RealizationType;
 import org.apache.kylin.storage.hbase.CubeStorageEngine;
 import org.apache.kylin.storage.hbase.InvertedIndexStorageEngine;
 import org.apache.kylin.storage.hybrid.HybridInstance;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java b/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
index d5224c5..479b77e 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/ColumnValueRange.java
@@ -23,12 +23,12 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
-import com.google.common.collect.Sets;
-
 import org.apache.kylin.cube.kv.RowKeyColumnOrder;
 import org.apache.kylin.dict.Dictionary;
-import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.TblColRef;
+
+import com.google.common.collect.Sets;
 
 /**
  */
@@ -167,7 +167,7 @@ public class ColumnValueRange {
     public void preEvaluateWithDict(Dictionary<String> dict) {
         if (dict == null)
             return;
-        
+
         if (equalValues != null) {
             Iterator<String> it = equalValues.iterator();
             while (it.hasNext()) {
@@ -181,7 +181,7 @@ public class ColumnValueRange {
             }
             refreshBeginEndFromEquals();
         }
-        
+
         if (beginValue != null) {
             try {
                 beginValue = dict.getValueFromId(dict.getIdFromValue(beginValue, -1));
@@ -190,7 +190,7 @@ public class ColumnValueRange {
                 beginValue = null;
             }
         }
-        
+
         if (endValue != null) {
             try {
                 endValue = dict.getValueFromId(dict.getIdFromValue(endValue, 1));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
index ad35972..f6060fc 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeSegmentTupleIterator.java
@@ -28,9 +28,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import com.google.common.collect.Lists;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
-
 import org.apache.hadoop.hbase.client.HConnection;
 import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Result;
@@ -41,29 +38,31 @@ import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.FilterList;
 import org.apache.hadoop.hbase.filter.FuzzyRowFilter;
 import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
-import org.apache.kylin.common.util.Bytes;
-import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.storage.StorageContext;
-import org.apache.kylin.storage.tuple.TupleInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.kylin.common.persistence.StorageException;
 import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Bytes;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.RowKeyDecoder;
 import org.apache.kylin.cube.kv.RowValueDecoder;
+import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.cube.model.HBaseColumnDesc;
+import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
 import org.apache.kylin.storage.tuple.Tuple;
 import org.apache.kylin.storage.tuple.Tuple.IDerivedColumnFiller;
+import org.apache.kylin.storage.tuple.TupleInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
 
 /**
  * @author xjiang
@@ -278,7 +277,7 @@ public class CubeSegmentTupleIterator implements ITupleIterator {
 
     private List<org.apache.hadoop.hbase.util.Pair<byte[], byte[]>> convertToHBasePair(List<org.apache.kylin.common.util.Pair<byte[], byte[]>> pairList) {
         List<org.apache.hadoop.hbase.util.Pair<byte[], byte[]>> result = Lists.newArrayList();
-        for(org.apache.kylin.common.util.Pair pair : pairList) {
+        for (org.apache.kylin.common.util.Pair pair : pairList) {
             org.apache.hadoop.hbase.util.Pair element = new org.apache.hadoop.hbase.util.Pair(pair.getFirst(), pair.getSecond());
             result.add(element);
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
index 9b11756..9285f27 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
@@ -18,44 +18,53 @@
 
 package org.apache.kylin.storage.hbase;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.BitSet;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
-import org.apache.kylin.metadata.model.FunctionDesc;
-import org.apache.kylin.metadata.model.MeasureDesc;
-import org.apache.kylin.metadata.model.SegmentStatusEnum;
-import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.realization.SQLDigest;
-import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
 import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.Pair;
-import org.apache.kylin.storage.StorageContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
-import org.apache.kylin.common.persistence.HBaseConnection;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.RowValueDecoder;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.cube.model.HBaseMappingDesc;
-import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.dict.lookup.LookupStringTable;
-import org.apache.kylin.storage.IStorageEngine;
 import org.apache.kylin.metadata.filter.ColumnTupleFilter;
 import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.FunctionDesc;
+import org.apache.kylin.metadata.model.MeasureDesc;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.apache.kylin.metadata.model.TblColRef;
+import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.StorageContext;
+import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 /**
  * @author xjiang, yangli9
@@ -474,7 +483,7 @@ public class CubeStorageEngine implements IStorageEngine {
             ColumnValueRange range = new ColumnValueRange(comp.getColumn(), comp.getValues(), comp.getOperator());
             andMerge(range, rangeMap);
         }
-        
+
         // a little pre-evaluation to remove invalid EQ/IN values and round start/end according to dictionary
         Iterator<ColumnValueRange> it = rangeMap.values().iterator();
         while (it.hasNext()) {
@@ -485,7 +494,7 @@ public class CubeStorageEngine implements IStorageEngine {
             else if (range.satisfyNone())
                 return null;
         }
-        
+
         return rangeMap.values();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
index d2e9402..cd34892 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/DerivedFilterTranslator.java
@@ -21,24 +21,24 @@ package org.apache.kylin.storage.hbase;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.kylin.common.util.Pair;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
 import org.apache.kylin.common.util.Array;
+import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.kv.RowKeyColumnOrder;
 import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.cube.model.CubeDesc.DeriveType;
 import org.apache.kylin.dict.lookup.LookupStringTable;
-import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.filter.ColumnTupleFilter;
 import org.apache.kylin.metadata.filter.CompareTupleFilter;
 import org.apache.kylin.metadata.filter.ConstantTupleFilter;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
 /**
  * @author yangli9
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
index 3857573..3081e1f 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/FuzzyValueCombination.java
@@ -28,10 +28,11 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import org.apache.kylin.metadata.model.TblColRef;
+
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import org.apache.kylin.metadata.model.TblColRef;
 
 /**
  * @author yangli9

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java b/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
index 9b05dc7..1f8aa07 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/HBaseKeyRange.java
@@ -18,8 +18,12 @@
 
 package org.apache.kylin.storage.hbase;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.kylin.common.debug.BackdoorToggles;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
@@ -36,7 +40,8 @@ import org.apache.kylin.metadata.model.TblColRef;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.*;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  * 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java b/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
index 1d4ec68..dc527b9 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/PingHBaseCLI.java
@@ -29,9 +29,8 @@ import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.security.User;
 import org.apache.hadoop.hbase.security.token.TokenUtil;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.hadoop.security.UserGroupInformation;
-
+import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.HadoopUtil;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
index 97ba981..ca53957 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/SerializedHBaseTupleIterator.java
@@ -25,17 +25,17 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.hadoop.hbase.client.HConnection;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.kv.RowValueDecoder;
-import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.storage.StorageContext;
 import org.apache.kylin.metadata.filter.TupleFilter;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
 import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.storage.StorageContext;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 
 /**
  * @author xjiang

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
index d1dc4d3..f1624ea 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggrKey.java
@@ -17,12 +17,13 @@
 */
 package org.apache.kylin.storage.hbase.coprocessor;
 
-import com.google.common.collect.Lists;
+import java.util.Arrays;
+import java.util.LinkedList;
+
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.cube.kv.RowConstants;
 
-import java.util.Arrays;
-import java.util.LinkedList;
+import com.google.common.collect.Lists;
 
 /**
  * Created by qianzhou on 4/20/15.
@@ -57,12 +58,11 @@ public class AggrKey implements Comparable<AggrKey> {
         this.hashcode = hashcode;
     }
 
-    private int calculateHash()
-    {
+    private int calculateHash() {
         int hash = 1;
         for (int i = 0; i < groupByMaskSet.length; i++) {
             byte t = data[offset + groupByMaskSet[i]];
-            if(t!= RowConstants.ROWKEY_PLACE_HOLDER_BYTE) {
+            if (t != RowConstants.ROWKEY_PLACE_HOLDER_BYTE) {
                 hash = (31 * hash) + t;
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
index 483c72c..4b29ab0 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/AggregationCache.java
@@ -18,10 +18,11 @@
 
 package org.apache.kylin.storage.hbase.coprocessor;
 
-import com.google.common.collect.Maps;
+import java.util.SortedMap;
+
 import org.apache.kylin.metadata.measure.MeasureAggregator;
 
-import java.util.SortedMap;
+import com.google.common.collect.Maps;
 
 /**
  * Created by Hongbin Ma(Binmahone) on 11/27/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
index d1290e3..3f7050c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorFilter.java
@@ -22,18 +22,22 @@ import java.util.Collection;
 import java.util.Set;
 
 import org.apache.kylin.common.util.Bytes;
-
-import com.google.common.collect.Sets;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.cube.kv.RowKeyColumnIO;
 import org.apache.kylin.dict.Dictionary;
 import org.apache.kylin.dict.ISegment;
-import org.apache.kylin.metadata.filter.*;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
+import org.apache.kylin.metadata.filter.CompareTupleFilter;
+import org.apache.kylin.metadata.filter.ConstantTupleFilter;
+import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.filter.TupleFilterSerializer;
 import org.apache.kylin.metadata.filter.TupleFilterSerializer.Decorator;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.tuple.ITuple;
 
+import com.google.common.collect.Sets;
+
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
index 1f0a920..4b69743 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorProjector.java
@@ -18,6 +18,11 @@
 
 package org.apache.kylin.storage.hbase.coprocessor;
 
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
 import org.apache.hadoop.hbase.Cell;
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
@@ -27,11 +32,6 @@ import org.apache.kylin.cube.kv.RowKeyEncoder;
 import org.apache.kylin.invertedindex.index.TableRecordInfo;
 import org.apache.kylin.metadata.model.TblColRef;
 
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
index 619be84..33eb9a0 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/CoprocessorRowType.java
@@ -23,8 +23,6 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
-import com.google.common.collect.Maps;
-
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.cube.CubeSegment;
@@ -36,6 +34,8 @@ import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.model.TblColRef;
 
+import com.google.common.collect.Maps;
+
 /**
  * @author yangli9
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
index ac6fa70..3815b1c 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointAggregationCache.java
@@ -18,13 +18,13 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.kylin.metadata.measure.MeasureAggregator;
 import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
 import org.apache.kylin.storage.hbase.coprocessor.AggregationCache;
 
-import java.util.Map;
-import java.util.Set;
-
 /**
  * Created by Hongbin Ma(Binmahone) on 11/27/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
index 9e5c804..6ab2429 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/EndpointTupleIterator.java
@@ -55,7 +55,6 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.protobuf.ByteString;
 
-
 /**
  * Created by Hongbin Ma(Binmahone) on 12/2/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
index d587d1a..1643e3a 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/HbaseServerKVIterator.java
@@ -18,18 +18,18 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.hadoop.hbase.regionserver.RegionScanner;
-import org.apache.kylin.common.util.Pair;
-
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.kylin.common.util.Pair;
+
 /**
  * Created by honma on 11/10/14.
  */

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
index 2e85eac..0102380 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/IIEndpoint.java
@@ -18,11 +18,10 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.endpoint;
 
-import com.google.protobuf.ByteString;
-import com.google.protobuf.RpcCallback;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.Service;
-import it.uniroma3.mat.extendedset.intset.ConciseSet;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -41,12 +40,18 @@ import org.apache.kylin.invertedindex.model.IIDesc;
 import org.apache.kylin.invertedindex.model.IIKeyValueCodec;
 import org.apache.kylin.metadata.measure.MeasureAggregator;
 import org.apache.kylin.storage.filter.BitMapFilterEvaluator;
-import org.apache.kylin.storage.hbase.coprocessor.*;
+import org.apache.kylin.storage.hbase.coprocessor.AggrKey;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorConstants;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
+import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 import org.apache.kylin.storage.hbase.coprocessor.endpoint.generated.IIProtos;
 
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Service;
+import it.uniroma3.mat.extendedset.intset.ConciseSet;
 
 /**
  * Created by honma on 11/7/14.

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
index 0691560..a45772d 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/endpoint/SliceBitMapProvider.java
@@ -40,10 +40,9 @@ public class SliceBitMapProvider implements BitMapFilterEvaluator.BitMapProvider
         this.type = type;
     }
 
-
     @Override
     public ConciseSet getBitMap(TblColRef col, Integer startId, Integer endId) {
-        return slice.getColumnValueContainer(type.getColIndexByTblColRef(col)).getBitMap(startId,endId);
+        return slice.getColumnValueContainer(type.getColIndexByTblColRef(col)).getBitMap(startId, endId);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/40a744be/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
index 8771bf4..f9cfee6 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/coprocessor/observer/AggregateRegionObserver.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.storage.hbase.coprocessor.observer;
 
+import java.io.IOException;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.client.Scan;
@@ -31,8 +33,6 @@ import org.apache.kylin.storage.hbase.coprocessor.CoprocessorFilter;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorProjector;
 import org.apache.kylin.storage.hbase.coprocessor.CoprocessorRowType;
 
-import java.io.IOException;
-
 /**
  * @author yangli9
  */