Repository: kylin Updated Branches: refs/heads/yang21 020686034 -> 076c77ae2
org.apache.kylin.metadata.model.FunctionDesc#configuration should use default linkedhashmap to keep order Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/076c77ae Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/076c77ae Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/076c77ae Branch: refs/heads/yang21 Commit: 076c77ae217ceb320e06e534b7149f1fc60075ee Parents: 0206860 Author: Hongbin Ma <mahong...@apache.org> Authored: Thu Dec 1 11:20:53 2016 +0800 Committer: Hongbin Ma <mahong...@apache.org> Committed: Thu Dec 1 11:20:53 2016 +0800 ---------------------------------------------------------------------- .../org/apache/kylin/common/util/BasicTest.java | 24 ++++++++++------ .../apache/kylin/common/util/JacksonBean.java | 16 +++++++++++ .../apache/kylin/common/util/JacksonTest.java | 19 ++++++++++--- .../kylin/metadata/model/FunctionDesc.java | 29 ++++++++++---------- 4 files changed, 61 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/076c77ae/core-common/src/test/java/org/apache/kylin/common/util/BasicTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/BasicTest.java b/core-common/src/test/java/org/apache/kylin/common/util/BasicTest.java index ee15832..ffdbd25 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/BasicTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/BasicTest.java @@ -18,6 +18,12 @@ package org.apache.kylin.common.util; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.nio.ByteBuffer; import java.text.DateFormat; @@ -26,6 +32,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -33,13 +40,6 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.junit.Ignore; -import org.junit.Test; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - /** * <p/> * Keep this test case to test basic java functionality @@ -79,7 +79,15 @@ public class BasicTest { @Test public void testxx() throws InterruptedException { - System.out.println( 0x8fL); + Map<String, String> a = Maps.newLinkedHashMap(); + a.put("1", "1"); + a.put("3", "3"); + a.put("2", "2"); + for (Map.Entry<String, String> e : a.entrySet()) { + System.out.println(e.getKey()); + } + + System.out.println(0x8fL); byte[] space = new byte[100]; ByteBuffer buffer = ByteBuffer.wrap(space, 10, 20); buffer.put((byte) 1); http://git-wip-us.apache.org/repos/asf/kylin/blob/076c77ae/core-common/src/test/java/org/apache/kylin/common/util/JacksonBean.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/JacksonBean.java b/core-common/src/test/java/org/apache/kylin/common/util/JacksonBean.java index 42357f2..ffff6d1 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/JacksonBean.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/JacksonBean.java @@ -23,6 +23,10 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) public class JacksonBean { @@ -32,6 +36,10 @@ public class JacksonBean { @JsonInclude(JsonInclude.Include.NON_NULL) private int b; + @JsonProperty("configuration") + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map<String, String> configuration = new HashMap<String, String>(); + public String getA() { return a; } @@ -48,6 +56,14 @@ public class JacksonBean { this.b = b; } + public Map<String, String> getConfiguration() { + return configuration; + } + + public void setConfiguration(Map<String, String> configuration) { + this.configuration = configuration; + } + @Override public String toString() { return "JacksonBean{" + "a='" + a + '\'' + ", b=" + b + '}'; http://git-wip-us.apache.org/repos/asf/kylin/blob/076c77ae/core-common/src/test/java/org/apache/kylin/common/util/JacksonTest.java ---------------------------------------------------------------------- diff --git a/core-common/src/test/java/org/apache/kylin/common/util/JacksonTest.java b/core-common/src/test/java/org/apache/kylin/common/util/JacksonTest.java index 81be7eb..0d7097a 100644 --- a/core-common/src/test/java/org/apache/kylin/common/util/JacksonTest.java +++ b/core-common/src/test/java/org/apache/kylin/common/util/JacksonTest.java @@ -18,22 +18,33 @@ package org.apache.kylin.common.util; -import java.io.IOException; - import org.junit.Test; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + public class JacksonTest { @Test public void foo() throws IOException { + HashMap a = new HashMap<String, String>(); + a.put("1", "1"); + a.put("3", "3"); + a.put("2", "2"); + + JacksonBean bean = new JacksonBean(); bean.setA("valuea"); + bean.setConfiguration(a); String s = JsonUtil.writeValueAsString(bean); System.out.println(s); - JacksonBean desBean = (JacksonBean) JsonUtil.readValue("{\"a\":\"valuea\"}", JacksonBean.class); + JacksonBean desBean = (JacksonBean) JsonUtil.readValue("{\"a\":\"valuea\",\"b\":0,\"configuration\":{\"2\":\"2\",\"3\":\"3\",\"1\":\"1\"}}", JacksonBean.class); + String x2 = JsonUtil.writeValueAsString(desBean); - System.out.println(desBean); System.out.println(x2); + + System.out.println(desBean); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/076c77ae/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java index 36fff5c..0946703 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/FunctionDesc.java @@ -18,24 +18,23 @@ package org.apache.kylin.metadata.model; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Set; - -import org.apache.kylin.measure.MeasureType; -import org.apache.kylin.measure.MeasureTypeFactory; -import org.apache.kylin.measure.basic.BasicMeasureType; -import org.apache.kylin.metadata.datatype.DataType; - import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import org.apache.kylin.measure.MeasureType; +import org.apache.kylin.measure.MeasureTypeFactory; +import org.apache.kylin.measure.basic.BasicMeasureType; +import org.apache.kylin.metadata.datatype.DataType; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; /** */ @@ -69,7 +68,7 @@ public class FunctionDesc { @JsonProperty("configuration") @JsonInclude(JsonInclude.Include.NON_EMPTY) - private HashMap<String, String> configuration = new LinkedHashMap<String, String>(); + private Map<String, String> configuration = new LinkedHashMap<String, String>(); private DataType returnDataType; private MeasureType<?> measureType; @@ -272,11 +271,11 @@ public class FunctionDesc { return null; } - public HashMap<String, String> getConfiguration() { + public Map<String, String> getConfiguration() { return configuration; } - public void setConfiguration(HashMap<String, String> configurations) { + public void setConfiguration(Map<String, String> configurations) { this.configuration = configurations; }