[SYNCOPE-749] Using ISO dates for JSON
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c3b1c7e6 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c3b1c7e6 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c3b1c7e6 Branch: refs/heads/master Commit: c3b1c7e66d061d99cb47c5d0e7f67591e97da7a9 Parents: 907be4a Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Fri Dec 18 16:34:47 2015 +0100 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Fri Dec 18 16:34:47 2015 +0100 ---------------------------------------------------------------------- client/lib/pom.xml | 9 +++++++++ .../syncope/client/lib/SyncopeClientFactoryBean.java | 7 ++++++- core/rest-cxf/pom.xml | 9 +++++++++ .../syncope/core/rest/cxf/UnwrappedObjectMapper.java | 8 ++++++++ .../syncope/fit/core/reference/SchedTaskITCase.java | 1 - pom.xml | 11 +++++++++++ 6 files changed, 43 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/client/lib/pom.xml ---------------------------------------------------------------------- diff --git a/client/lib/pom.xml b/client/lib/pom.xml index a119827..18b71c0 100644 --- a/client/lib/pom.xml +++ b/client/lib/pom.xml @@ -53,11 +53,20 @@ under the License. </dependency> <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-joda</artifactId> + </dependency> + <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> </dependency> <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time</artifactId> + </dependency> + + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java ---------------------------------------------------------------------- diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java index 85eeac6..6ea7b4f 100644 --- a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java +++ b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java @@ -18,6 +18,8 @@ */ package org.apache.syncope.client.lib; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.joda.JodaModule; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import java.util.ArrayList; import java.util.Collections; @@ -80,7 +82,10 @@ public class SyncopeClientFactoryBean { private RestClientFactoryBean restClientFactoryBean; protected JacksonJaxbJsonProvider defaultJsonProvider() { - return new JacksonJaxbJsonProvider(); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JodaModule()); + objectMapper.configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + return new JacksonJaxbJsonProvider(objectMapper, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); } @SuppressWarnings({ "rawtypes" }) http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/core/rest-cxf/pom.xml ---------------------------------------------------------------------- diff --git a/core/rest-cxf/pom.xml b/core/rest-cxf/pom.xml index 7316921..b5874ff 100644 --- a/core/rest-cxf/pom.xml +++ b/core/rest-cxf/pom.xml @@ -71,6 +71,10 @@ under the License. </dependency> <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-joda</artifactId> + </dependency> + <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> </dependency> @@ -80,6 +84,11 @@ under the License. </dependency> <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time</artifactId> + </dependency> + + <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java ---------------------------------------------------------------------- diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java index 661f3b0..31b1dfd 100644 --- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java +++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/UnwrappedObjectMapper.java @@ -21,6 +21,7 @@ package org.apache.syncope.core.rest.cxf; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.joda.JodaModule; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -35,6 +36,13 @@ public class UnwrappedObjectMapper extends ObjectMapper { private static final long serialVersionUID = -317191546835195103L; + public UnwrappedObjectMapper() { + super(); + + registerModule(new JodaModule()); + configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + } + /** * Unwraps the given value if it implements the Map interface and contains only a single entry, otherwise the * value is returned unmodified. http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SchedTaskITCase.java ---------------------------------------------------------------------- diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SchedTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SchedTaskITCase.java index 108c192..327abe8 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SchedTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/SchedTaskITCase.java @@ -125,7 +125,6 @@ public class SchedTaskITCase extends AbstractTaskITCase { assertTrue(execs.getResult().get(0).getStart().after(initial)); // round 1 sec for safety assertTrue(DateUtils.addSeconds(execs.getResult().get(0).getStart(), 1).after(later)); - } @Test http://git-wip-us.apache.org/repos/asf/syncope/blob/c3b1c7e6/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index aab0e0e..081c91c 100644 --- a/pom.xml +++ b/pom.xml @@ -585,6 +585,11 @@ under the License. <version>${jackson.version}</version> </dependency> <dependency> + <groupId>com.fasterxml.jackson.datatype</groupId> + <artifactId>jackson-datatype-joda</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> @@ -601,6 +606,12 @@ under the License. </dependency> <dependency> + <groupId>joda-time</groupId> + <artifactId>joda-time</artifactId> + <version>2.9.1</version> + </dependency> + + <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version>