This is an automated email from the ASF dual-hosted git repository.

zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 8d1680d2f0 [Fix-16279] Support Java 8 date/time type 
`java.time.OffsetDateTime` (#16304)
8d1680d2f0 is described below

commit 8d1680d2f0d68fec1aa25c0ec60ddc5e45a60507
Author: zuo <[email protected]>
AuthorDate: Mon Jul 15 21:14:51 2024 +0800

    [Fix-16279] Support Java 8 date/time type `java.time.OffsetDateTime` 
(#16304)
    
    * [Fix-16279] Support Java 8 date/time type `java.time.OffsetDateTime`
---
 dolphinscheduler-bom/pom.xml                           |  6 +++++-
 .../dolphinscheduler/common/utils/JSONUtils.java       |  2 ++
 dolphinscheduler-dist/release-docs/LICENSE             |  2 +-
 .../plugin/task/api/model/JSONUtilsTest.java           | 18 ++++++++++++++++++
 tools/dependencies/known-dependencies.txt              |  2 +-
 5 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/dolphinscheduler-bom/pom.xml b/dolphinscheduler-bom/pom.xml
index 0635239f8c..4e02c347a3 100644
--- a/dolphinscheduler-bom/pom.xml
+++ b/dolphinscheduler-bom/pom.xml
@@ -360,7 +360,11 @@
                 <artifactId>jackson-core</artifactId>
                 <version>${jackson.version}</version>
             </dependency>
-
+            <dependency>
+                <groupId>com.fasterxml.jackson.datatype</groupId>
+                <artifactId>jackson-datatype-jsr310</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
             <!--protostuff-->
             <dependency>
                 <groupId>io.protostuff</groupId>
diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
index bfc3af2c58..bae7cb880c 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
@@ -60,6 +60,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.TextNode;
 import com.fasterxml.jackson.databind.type.CollectionType;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import com.google.common.base.Strings;
 
 /**
@@ -78,6 +79,7 @@ public final class JSONUtils {
             .configure(READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
             .configure(REQUIRE_SETTERS_FOR_GETTERS, true)
             .configure(FAIL_ON_EMPTY_BEANS, false)
+            .addModule(new JavaTimeModule())
             .addModule(new SimpleModule()
                     .addSerializer(LocalDateTime.class, new 
LocalDateTimeSerializer())
                     .addDeserializer(LocalDateTime.class, new 
LocalDateTimeDeserializer()))
diff --git a/dolphinscheduler-dist/release-docs/LICENSE 
b/dolphinscheduler-dist/release-docs/LICENSE
index 1fbd3e6e52..10e22e9b3f 100644
--- a/dolphinscheduler-dist/release-docs/LICENSE
+++ b/dolphinscheduler-dist/release-docs/LICENSE
@@ -294,7 +294,7 @@ The text of each license is also included at 
licenses/LICENSE-[project].txt.
     jackson-core-asl 1.9.13: 
https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl/1.9.13,
 Apache 2.0
     jackson-databind 2.13.4: https://github.com/FasterXML/jackson-databind, 
Apache 2.0
     jackson-datatype-jdk8 2.13.0: 
https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.13.0,
 Apache 2.0
-    jackson-datatype-jsr310 2.13.0: 
https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.0,
 Apache 2.0
+    jackson-datatype-jsr310 2.13.4: 
https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.13.4,
 Apache 2.0
     jackson-mapper-asl 1.9.13: 
https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl/1.9.13,
 Apache 2.0
     jackson-module-parameter-names 2.13.0: 
https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-parameter-names/2.13.0,
 Apache 2.0
     javax.jdo-3.2.0-m3: 
https://mvnrepository.com/artifact/org.datanucleus/javax.jdo/3.2.0-m3, Apache 
2.0
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/model/JSONUtilsTest.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/model/JSONUtilsTest.java
index c17902f568..9ee4a2c0b6 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/model/JSONUtilsTest.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/model/JSONUtilsTest.java
@@ -22,6 +22,9 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils;
 import org.apache.dolphinscheduler.plugin.task.api.enums.DataType;
 import org.apache.dolphinscheduler.plugin.task.api.enums.Direct;
 
+import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
+import java.time.ZoneOffset;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -270,4 +273,19 @@ public class JSONUtilsTest {
 
     }
 
+    @Test
+    public void toOffsetDateTimeNodeTest() {
+        TimeZone timeZone = TimeZone.getTimeZone("UTC");
+        JSONUtils.setTimeZone(timeZone);
+        LocalDateTime localDateTime = LocalDateTime.of(2024, 7, 10, 15, 0, 0);
+        OffsetDateTime offsetDateTime = OffsetDateTime.of(localDateTime, 
ZoneOffset.ofHours(0));
+        Map<String, OffsetDateTime> map = new HashMap<>();
+        map.put("time", offsetDateTime);
+        JsonNode jsonNodes = JSONUtils.toJsonNode(map);
+        String s = JSONUtils.toJsonString(jsonNodes);
+
+        String json = "{\"time\":\"2024-07-10T15:00:00Z\"}";
+        Assertions.assertEquals(json, s);
+    }
+
 }
diff --git a/tools/dependencies/known-dependencies.txt 
b/tools/dependencies/known-dependencies.txt
index 49b2f1367d..7a58095079 100644
--- a/tools/dependencies/known-dependencies.txt
+++ b/tools/dependencies/known-dependencies.txt
@@ -115,7 +115,7 @@ jackson-databind-2.13.4.jar
 jackson-dataformat-cbor-2.13.3.jar
 jackson-dataformat-yaml-2.13.3.jar
 jackson-datatype-jdk8-2.13.3.jar
-jackson-datatype-jsr310-2.13.3.jar
+jackson-datatype-jsr310-2.13.4.jar
 jackson-jaxrs-base-2.13.3.jar
 jackson-jaxrs-json-provider-2.13.3.jar
 jackson-mapper-asl-1.9.13.jar

Reply via email to