# HG changeset patch # User Mario Torre # Date 1508420940 -7200 # Node ID 701a5b3037dd37313c6e9e21810525ab4d65abf2 # Parent b7ec1ed8117bbd9a1067270dc9c282065d9cec23 Order jcmd mapping by insertion review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-October/025451.html reviewed-by: stooke diff -r b7ec1ed8117b -r 701a5b3037dd pom.xml --- a/pom.xml Mon Oct 09 12:29:22 2017 +0200 +++ b/pom.xml Thu Oct 19 15:49:00 2017 +0200 @@ -60,7 +60,7 @@ - 0.1.0 + 0.1.1 UTF-8 UTF-8 diff -r b7ec1ed8117b -r 701a5b3037dd services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverter.java --- a/services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverter.java Mon Oct 09 12:29:22 2017 +0200 +++ b/services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverter.java Thu Oct 19 15:49:00 2017 +0200 @@ -43,7 +43,7 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -60,11 +60,11 @@ builder = new GsonBuilder(); // leave commented out for debugging //builder.setPrettyPrinting(); - builder.registerTypeAdapter(HashMap.class, new ModelAdapter()); + builder.registerTypeAdapter(LinkedHashMap.class, new ModelAdapter()); } public String convert(Model model) { - Map> jsonMapping = new HashMap<>(); + Map> jsonMapping = new LinkedHashMap<>(); for (String key : model.data.keySet()) { List objectData = model.data.get(key); int i = 0; diff -r b7ec1ed8117b -r 701a5b3037dd services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/Model.java --- a/services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/Model.java Mon Oct 09 12:29:22 2017 +0200 +++ b/services/jcmd/src/main/java/com/redhat/thermostat/gateway/service/jvm/jcmd/Model.java Thu Oct 19 15:49:00 2017 +0200 @@ -36,7 +36,7 @@ package com.redhat.thermostat.gateway.service.jvm.jcmd; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -48,6 +48,6 @@ long timestamp; public Model() { - data = new HashMap<>(); + data = new LinkedHashMap<>(); } } diff -r b7ec1ed8117b -r 701a5b3037dd services/jcmd/src/test/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverterTest.java --- a/services/jcmd/src/test/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverterTest.java Mon Oct 09 12:29:22 2017 +0200 +++ b/services/jcmd/src/test/java/com/redhat/thermostat/gateway/service/jvm/jcmd/JSONConverterTest.java Thu Oct 19 15:49:00 2017 +0200 @@ -58,7 +58,7 @@ "CpAll MethodCount Bytecodes MethodAll ROAll RWAll " + "Total ClassName,ClassLoader\\n\"}"; - private static final String EXPECTED = "[{\"Index\":{\"$numberLong\":\"3\"},\"Super\":{\"$numberLong\":\"-1\"},\"InstCount\":{\"$numberLong\":\"471\"},\"InstBytes\":{\"$numberLong\":\"154720\"},\"KlassBytes\":{\"$numberLong\":\"464\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"0\"},\"MethodCount\":{\"$numberLong\":\"0\"},\"Bytecodes\":{\"$numberLong\":\"0\"},\"MethodAll\":{\"$numberLong\":\"0\"},\"ROAll\":{\"$numberLong\":\"24\"},\"RWAll\":{\"$numberLong\":\"568\"},\"Total\":{\"$numberLong\":\"592\"},\"ClassName\":\"[B\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}},{\"Index\":{\"$numberLong\":\"1\"},\"Super\":{\"$numberLong\":\"-1\"},\"InstCount\":{\"$numberLong\":\"6126\"},\"InstBytes\":{\"$numberLong\":\"398176\"},\"KlassBytes\":{\"$numberLong\":\"464\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"0\"},\"MethodCount\":{\"$numberLong\":\"0\"},\"Bytecodes\":{\"$numberLong\":\"0\"},\"MethodAll\":{\"$numberLong\":\"0\"},\"ROAll\":{\"$numberLong\":\"24\"},\"RWAll\":{\"$numberLong\":\"568\"},\"Total\":{\"$numberLong\":\"592\"},\"ClassName\":\"[C\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}},{\"Index\":{\"$numberLong\":\"2\"},\"Super\":{\"$numberLong\":\"48\"},\"InstCount\":{\"$numberLong\":\"1614\"},\"InstBytes\":{\"$numberLong\":\"182816\"},\"KlassBytes\":{\"$numberLong\":\"632\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"20824\"},\"MethodCount\":{\"$numberLong\":\"130\"},\"Bytecodes\":{\"$numberLong\":\"4973\"},\"MethodAll\":{\"$numberLong\":\"37080\"},\"ROAll\":{\"$numberLong\":\"20768\"},\"RWAll\":{\"$numberLong\":\"39544\"},\"Total\":{\"$numberLong\":\"60312\"},\"ClassName\":\"java.lang.Class\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}}]"; + private static final String EXPECTED = "[{\"Index\":{\"$numberLong\":\"1\"},\"Super\":{\"$numberLong\":\"-1\"},\"InstCount\":{\"$numberLong\":\"6126\"},\"InstBytes\":{\"$numberLong\":\"398176\"},\"KlassBytes\":{\"$numberLong\":\"464\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"0\"},\"MethodCount\":{\"$numberLong\":\"0\"},\"Bytecodes\":{\"$numberLong\":\"0\"},\"MethodAll\":{\"$numberLong\":\"0\"},\"ROAll\":{\"$numberLong\":\"24\"},\"RWAll\":{\"$numberLong\":\"568\"},\"Total\":{\"$numberLong\":\"592\"},\"ClassName\":\"[C\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}},{\"Index\":{\"$numberLong\":\"2\"},\"Super\":{\"$numberLong\":\"48\"},\"InstCount\":{\"$numberLong\":\"1614\"},\"InstBytes\":{\"$numberLong\":\"182816\"},\"KlassBytes\":{\"$numberLong\":\"632\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"20824\"},\"MethodCount\":{\"$numberLong\":\"130\"},\"Bytecodes\":{\"$numberLong\":\"4973\"},\"MethodAll\":{\"$numberLong\":\"37080\"},\"ROAll\":{\"$numberLong\":\"20768\"},\"RWAll\":{\"$numberLong\":\"39544\"},\"Total\":{\"$numberLong\":\"60312\"},\"ClassName\":\"java.lang.Class\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}},{\"Index\":{\"$numberLong\":\"3\"},\"Super\":{\"$numberLong\":\"-1\"},\"InstCount\":{\"$numberLong\":\"471\"},\"InstBytes\":{\"$numberLong\":\"154720\"},\"KlassBytes\":{\"$numberLong\":\"464\"},\"annotations\":{\"$numberLong\":\"0\"},\"CpAll\":{\"$numberLong\":\"0\"},\"MethodCount\":{\"$numberLong\":\"0\"},\"Bytecodes\":{\"$numberLong\":\"0\"},\"MethodAll\":{\"$numberLong\":\"0\"},\"ROAll\":{\"$numberLong\":\"24\"},\"RWAll\":{\"$numberLong\":\"568\"},\"Total\":{\"$numberLong\":\"592\"},\"ClassName\":\"[B\",\"ClassLoader\":\"NULL class_loader\",\"systemId\":\"0x4A\",\"jvmId\":{\"$numberLong\":\"42\"},\"timeStamp\":{\"$numberLong\":\"1505992968442\"}}]"; private static Model MODEL = JCMDModelConverter.createModel(RAW_PAYLOAD, "0x4A", "42");