From 954b8e6e27f071c81f1027ef913aefd15c6639cd Mon Sep 17 00:00:00 2001 From: "K.S. Yim" Date: Sat, 11 Dec 2021 20:55:15 +0900 Subject: [PATCH] Clean up --- .../armeria/ArmeriaCentralDogmaTest.java | 2 + .../centraldogma/internal/Jackson.java | 47 ++++++++++++------- .../storage/repository/git/GitRepository.java | 1 - 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/client/java-armeria/src/test/java/com/linecorp/centraldogma/client/armeria/ArmeriaCentralDogmaTest.java b/client/java-armeria/src/test/java/com/linecorp/centraldogma/client/armeria/ArmeriaCentralDogmaTest.java index 9e298b1396..b842170544 100644 --- a/client/java-armeria/src/test/java/com/linecorp/centraldogma/client/armeria/ArmeriaCentralDogmaTest.java +++ b/client/java-armeria/src/test/java/com/linecorp/centraldogma/client/armeria/ArmeriaCentralDogmaTest.java @@ -130,6 +130,7 @@ static List json5Queries() { } static class MockEntryDto { + private final String path; private final String type; private final String content; @@ -157,6 +158,7 @@ String content() { } static class MockWatchResultDto { + private final int revision; private final MockEntryDto entry; diff --git a/common/src/main/java/com/linecorp/centraldogma/internal/Jackson.java b/common/src/main/java/com/linecorp/centraldogma/internal/Jackson.java index 679af4cda9..66f800f336 100644 --- a/common/src/main/java/com/linecorp/centraldogma/internal/Jackson.java +++ b/common/src/main/java/com/linecorp/centraldogma/internal/Jackson.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.Writer; import java.time.Instant; +import java.util.Arrays; import java.util.Iterator; import java.util.Set; @@ -36,6 +37,7 @@ import com.fasterxml.jackson.core.TreeNode; import com.fasterxml.jackson.core.io.JsonStringEncoder; import com.fasterxml.jackson.core.io.SegmentedStringWriter; +import com.fasterxml.jackson.core.json.JsonReadFeature; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.util.DefaultIndenter; import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; @@ -75,23 +77,16 @@ public final class Jackson { compactMapper.disable(SerializationFeature.INDENT_OUTPUT); prettyMapper.enable(SerializationFeature.INDENT_OUTPUT); // Sort the attributes when serialized via the mapper. - compactMapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS); - prettyMapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS); - - compactMapper.enable(Feature.ALLOW_SINGLE_QUOTES); - prettyMapper.enable(Feature.ALLOW_SINGLE_QUOTES); - compactMapper.enable(Feature.ALLOW_UNQUOTED_FIELD_NAMES); - prettyMapper.enable(Feature.ALLOW_UNQUOTED_FIELD_NAMES); - compactMapper.enable(Feature.ALLOW_COMMENTS); - prettyMapper.enable(Feature.ALLOW_COMMENTS); - compactMapper.enable(Feature.ALLOW_TRAILING_COMMA); - prettyMapper.enable(Feature.ALLOW_TRAILING_COMMA); - compactMapper.enable(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); - prettyMapper.enable(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER); - compactMapper.enable(Feature.ALLOW_NON_NUMERIC_NUMBERS); - prettyMapper.enable(Feature.ALLOW_NON_NUMERIC_NUMBERS); - compactMapper.enable(Feature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS); - prettyMapper.enable(Feature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS); + enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS); + + // Enable JSON5 features. + enable(JsonReadFeature.ALLOW_SINGLE_QUOTES, + JsonReadFeature.ALLOW_UNQUOTED_FIELD_NAMES, + JsonReadFeature.ALLOW_JAVA_COMMENTS, + JsonReadFeature.ALLOW_TRAILING_COMMA, + JsonReadFeature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, + JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS, + JsonReadFeature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS); registerModules(new SimpleModule().addSerializer(Instant.class, InstantSerializer.INSTANCE) .addDeserializer(Instant.class, InstantDeserializer.INSTANT)); @@ -145,6 +140,24 @@ public static void registerSubtypes(Class... subtypes) { prettyMapper.registerSubtypes(subtypes); } + public static void enable(SerializationFeature... features) { + for (SerializationFeature feature : features) { + compactMapper.enable(feature); + prettyMapper.enable(feature); + } + } + + public static void enable(JsonReadFeature... features) { + enable(Arrays.stream(features).map(JsonReadFeature::mappedFeature).toArray(Feature[]::new)); + } + + public static void enable(Feature... features) { + for (Feature feature : features) { + compactMapper.enable(feature); + prettyMapper.enable(feature); + } + } + public static T readValue(String data, Class type) throws JsonParseException, JsonMappingException { try { return compactMapper.readValue(data, type); diff --git a/server/src/main/java/com/linecorp/centraldogma/server/internal/storage/repository/git/GitRepository.java b/server/src/main/java/com/linecorp/centraldogma/server/internal/storage/repository/git/GitRepository.java index e46d639e39..548290ca11 100644 --- a/server/src/main/java/com/linecorp/centraldogma/server/internal/storage/repository/git/GitRepository.java +++ b/server/src/main/java/com/linecorp/centraldogma/server/internal/storage/repository/git/GitRepository.java @@ -777,7 +777,6 @@ private Map> toChangeMap(List diffEntryList) { Change.ofJsonPatch(newPath, Jackson.valueToTree(patch))); } break; - // TODO(ks.yim): maybe needs Change.ofJson5Patch(...)? case JSON5: case TEXT: final String oldText = sanitizeText(new String(