From c2e64b8975ed28c9734a04657f7815f8465d7297 Mon Sep 17 00:00:00 2001 From: Ian Eure Date: Mon, 1 Oct 2012 14:54:13 -0700 Subject: [PATCH 1/2] Support Joda-Time types. --- pom.xml | 12 +++++++++++- src/main/scala/com/codahale/jerkson/Json.scala | 2 ++ .../jerkson/tests/FancyTypeSupportSpec.scala | 13 +++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bbf5c42..462bc5d 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 2.9.1 - 2.0.2 + 2.0.4 @@ -68,6 +68,16 @@ jackson-databind ${jackson.version} + + com.fasterxml.jackson.datatype + jackson-datatype-joda + ${jackson.version} + + + org.joda + joda-convert + 1.2 + com.codahale simplespec_${scala.version} diff --git a/src/main/scala/com/codahale/jerkson/Json.scala b/src/main/scala/com/codahale/jerkson/Json.scala index 1448f36..128185b 100644 --- a/src/main/scala/com/codahale/jerkson/Json.scala +++ b/src/main/scala/com/codahale/jerkson/Json.scala @@ -2,6 +2,7 @@ package com.codahale.jerkson import com.fasterxml.jackson.databind.{MappingJsonFactory, ObjectMapper} import com.fasterxml.jackson.core.{JsonGenerator, JsonParser => JacksonParser} +import com.fasterxml.jackson.datatype.joda.JodaModule object Json extends Json @@ -10,6 +11,7 @@ trait Json extends Parser with Generator { protected val mapper = new ObjectMapper mapper.registerModule(new ScalaModule(classLoader)) + mapper.registerModule(new JodaModule) protected val factory = new MappingJsonFactory(mapper) factory.enable(JsonGenerator.Feature.AUTO_CLOSE_JSON_CONTENT) diff --git a/src/test/scala/com/codahale/jerkson/tests/FancyTypeSupportSpec.scala b/src/test/scala/com/codahale/jerkson/tests/FancyTypeSupportSpec.scala index 9d94e74..46892f9 100644 --- a/src/test/scala/com/codahale/jerkson/tests/FancyTypeSupportSpec.scala +++ b/src/test/scala/com/codahale/jerkson/tests/FancyTypeSupportSpec.scala @@ -3,6 +3,7 @@ package com.codahale.jerkson.tests import java.net.URI import com.codahale.simplespec.Spec import org.junit.Test +import org.joda.time.DateTime import com.codahale.jerkson.Json._ import java.util.UUID @@ -28,4 +29,16 @@ class FancyTypeSupportSpec extends Spec { parse[UUID]("\"a62047e4-bfb5-4d71-aad7-1a6b338eee63\"").must(be(uuid)) } } + + class `A Joda DateTime` { + val ts = new DateTime("1883-07-03") + + @Test def `Generates a JSON int` { + generate(ts).must(be("-2729606822000")) + } + + @Test def `Is parsable from a JSON string` = { + parse[DateTime]("-2729606822000").compareTo(ts).must(be(0)) + } + } } From 2c9574ea6fe19759ce391222112a001d3515e35f Mon Sep 17 00:00:00 2001 From: Ian Eure Date: Tue, 2 Oct 2012 14:59:36 -0700 Subject: [PATCH 2/2] No `-SNAPSHOT`. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 462bc5d..863ac8c 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.codahale jerkson_2.9.1 - 0.6.0-SNAPSHOT + 0.6.0 Jerkson for Scala