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

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit 4a054b6edaa088678c7eb8130c2e17618d396792
Author: Thomas Vandahl <[email protected]>
AuthorDate: Fri Oct 2 15:51:47 2026 +0200

    Allow java.time classes to be serialized
---
 commons-jcs4-core/pom.xml                                    |  6 ++++++
 commons-jcs4-core/src/main/java/module-info.java             |  1 +
 .../commons/jcs4/utils/serialization/JSONSerializer.java     | 12 +++++++++++-
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/commons-jcs4-core/pom.xml b/commons-jcs4-core/pom.xml
index 13512b61..176681e5 100644
--- a/commons-jcs4-core/pom.xml
+++ b/commons-jcs4-core/pom.xml
@@ -107,6 +107,12 @@
       <version>2.22.3</version>
       <optional>true</optional>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-jsr310</artifactId>
+      <version>2.22.3</version>
+      <optional>true</optional>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/commons-jcs4-core/src/main/java/module-info.java 
b/commons-jcs4-core/src/main/java/module-info.java
index a6311d9d..63fc3d70 100644
--- a/commons-jcs4-core/src/main/java/module-info.java
+++ b/commons-jcs4-core/src/main/java/module-info.java
@@ -111,6 +111,7 @@ module org.apache.commons.jcs4.core {
 
     // Optional dependencies for JSON serializer
     requires static com.fasterxml.jackson.databind;
+    requires static com.fasterxml.jackson.datatype.jsr310;
     opens org.apache.commons.jcs4.utils.serialization to 
com.fasterxml.jackson.databind;
     opens org.apache.commons.jcs4.engine to com.fasterxml.jackson.databind;
 
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/serialization/JSONSerializer.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/serialization/JSONSerializer.java
index 85358c1e..66bd6f43 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/serialization/JSONSerializer.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/utils/serialization/JSONSerializer.java
@@ -27,7 +27,9 @@ import com.fasterxml.jackson.core.exc.StreamReadException;
 import com.fasterxml.jackson.databind.DatabindException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.databind.json.JsonMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 
 /**
  * Performs JSON serialization and de-serialization.
@@ -36,7 +38,15 @@ public class JSONSerializer
     implements IElementSerializer
 {
     /** Jackson JSON mapper instance */
-    private static final ObjectMapper mapper = JsonMapper.builder().build();
+    private static final ObjectMapper mapper;
+
+    static
+    {
+        mapper = JsonMapper.builder()
+                .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, 
false)
+                .build();
+        mapper.registerModule(new JavaTimeModule());
+    }
 
     /** Wrapper to save the class name information */
     private record Wrapper<T>(String className, T element) {}

Reply via email to