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) {}
