From 1dd990c2e4334de578fed03a174e74bfb4b3dbd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=AD=E6=BD=87?= <1576730710@qq.com> Date: Wed, 30 Apr 2025 14:46:51 +0800 Subject: [PATCH] =?UTF-8?q?[fit]=20=E4=BC=98=E5=8C=96=E5=BA=8F=E5=88=97?= =?UTF-8?q?=E5=8C=96=E5=99=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maven/complie/plugin/UrlClassLoaderInitializer.java | 7 ++++--- .../json/jackson/JacksonObjectSerializer.java | 4 +--- .../json/jackson/JacksonObjectSerializerTest.java | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) 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);