diff --git a/framework/fel/java/maven-plugins/tool-maven-plugin/src/main/java/modelengine/fel/maven/complie/plugin/UrlClassLoaderInitializer.java b/framework/fel/java/maven-plugins/tool-maven-plugin/src/main/java/modelengine/fel/maven/complie/plugin/UrlClassLoaderInitializer.java index ea3866b3..60be6dbf 100644 --- a/framework/fel/java/maven-plugins/tool-maven-plugin/src/main/java/modelengine/fel/maven/complie/plugin/UrlClassLoaderInitializer.java +++ b/framework/fel/java/maven-plugins/tool-maven-plugin/src/main/java/modelengine/fel/maven/complie/plugin/UrlClassLoaderInitializer.java @@ -9,9 +9,9 @@ import static modelengine.fit.serialization.json.jackson.JacksonObjectSerializer.DEFAULT_DATE_FORMAT; import static modelengine.fit.serialization.json.jackson.JacksonObjectSerializer.DEFAULT_DATE_TIME_FORMAT; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; -import modelengine.fel.maven.complie.util.JsonUtils; import modelengine.fel.tool.ToolSchema; import modelengine.fel.tool.info.entity.ToolJsonEntity; import modelengine.fit.serialization.json.jackson.JacksonObjectSerializer; @@ -28,7 +28,6 @@ import java.nio.file.Paths; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.stream.Stream; /** @@ -80,7 +79,9 @@ public void outputToolManifest(String outputDirectory, ToolJsonEntity toolJsonEn DEFAULT_DATE_FORMAT, "Asia/Shanghai" ); - serializer.getMapper().writerWithDefaultPrettyPrinter().writeValue(jsonFile, toolJsonEntity); + ObjectMapper objectMapper = serializer.getMapper().copy(); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + objectMapper.writerWithDefaultPrettyPrinter().writeValue(jsonFile, toolJsonEntity); log.info("Write tool json successfully. [file={}]", jsonFile.getName()); } } diff --git a/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/main/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializer.java b/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/main/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializer.java index e5efcf4c..c9c4fa7c 100644 --- a/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/main/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializer.java +++ b/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/main/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializer.java @@ -9,7 +9,6 @@ import static modelengine.fitframework.inspection.Validation.notNull; import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactoryBuilder; import com.fasterxml.jackson.core.JsonGenerator; @@ -84,8 +83,7 @@ public JacksonObjectSerializer(@Value("${date-time-format}") String dateTimeForm .maxStringLength(Integer.MAX_VALUE) .build()).build()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .setAnnotationIntrospector(new FitAnnotationIntrospector()) - .setVisibility(visibilityChecker) - .setSerializationInclusion(JsonInclude.Include.NON_NULL); + .setVisibility(visibilityChecker); SimpleModule module = new SimpleModule(); module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormat)); module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormat)); diff --git a/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/test/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializerTest.java b/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/test/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializerTest.java index 74032c3b..a3f1c155 100644 --- a/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/test/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializerTest.java +++ b/framework/fit/java/fit-builtin/plugins/fit-message-serializer-json-jackson/src/test/java/modelengine/fit/serialization/json/jackson/JacksonObjectSerializerTest.java @@ -212,7 +212,7 @@ void givenAliasJsonThenDeserializeOk() { @Test @DisplayName("当存在别名时,序列化成功") void givenAliasObjectThenSerializeOk() { - String expect = "{\"first_name\":\"foo\"}"; + String expect = "{\"lastName\":null,\"first_name\":\"foo\",\"person_name\":null}"; PersonAlias personAlias = new PersonAlias(); personAlias.firstName("foo"); assertThat(this.jsonSerializer.serialize(personAlias)).isEqualTo(expect); @@ -229,7 +229,7 @@ void givenJsonPropertyThenDeserializeOriginOk() { @Test @DisplayName("当使用原生注解,存在别名时,序列化成功") void givenJsonPropertyThenSerializeOriginOk() { - String expect = "{\"lastName\":\"bar\"}"; + String expect = "{\"lastName\":\"bar\",\"first_name\":null,\"person_name\":null}"; PersonAlias personAlias = new PersonAlias(); personAlias.lastName("bar"); assertThat(this.jsonSerializer.serialize(personAlias)).isEqualTo(expect);