diff --git a/pom.xml b/pom.xml
index bbf5c42..863ac8c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,12 +10,12 @@
com.codahale
jerkson_2.9.1
- 0.6.0-SNAPSHOT
+ 0.6.0
Jerkson for Scala
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))
+ }
+ }
}