diff --git a/src/test/java/com/fasterxml/jackson/module/scala/deser/UserOfValueHolder.java b/src/test/java/com/fasterxml/jackson/module/scala/deser/UserOfValueHolder.java new file mode 100755 index 000000000..47a5c6252 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/module/scala/deser/UserOfValueHolder.java @@ -0,0 +1,17 @@ +package com.fasterxml.jackson.module.scala.deser; + +public class UserOfValueHolder { + + private ValueHolder valueHolder; + + public UserOfValueHolder() { + } + + public ValueHolder getValueHolder() { + return valueHolder; + } + + public void setValueHolder(ValueHolder valueHolder) { + this.valueHolder = valueHolder; + } +} diff --git a/src/test/java/com/fasterxml/jackson/module/scala/deser/ValueHolder.java b/src/test/java/com/fasterxml/jackson/module/scala/deser/ValueHolder.java new file mode 100755 index 000000000..ca4dbe0d6 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/module/scala/deser/ValueHolder.java @@ -0,0 +1,18 @@ +package com.fasterxml.jackson.module.scala.deser; + +import com.fasterxml.jackson.annotation.JsonCreator; + +public class ValueHolder { + + public final long internalValue; + + private ValueHolder(long internalValue) { + this.internalValue = internalValue; + } + + @JsonCreator + public static ValueHolder parse(String value) { + return new ValueHolder(Long.parseLong(value)); + } + +} diff --git a/src/test/scala/com/fasterxml/jackson/module/scala/deser/CreatorTest.scala b/src/test/scala/com/fasterxml/jackson/module/scala/deser/CreatorTest.scala old mode 100644 new mode 100755 index 2f30479b9..4b3df30ed --- a/src/test/scala/com/fasterxml/jackson/module/scala/deser/CreatorTest.scala +++ b/src/test/scala/com/fasterxml/jackson/module/scala/deser/CreatorTest.scala @@ -1,6 +1,9 @@ package com.fasterxml.jackson.module.scala.deser +import java.util.concurrent.TimeUnit + import com.fasterxml.jackson.annotation.JsonCreator +import com.fasterxml.jackson.databind.ObjectMapper import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner import org.scalatest.matchers.ShouldMatchers @@ -43,4 +46,18 @@ class CreatorTest extends DeserializationFixture { val bean = f.readValue[CreatorModeWrapper]("""{"a":"foo"}""") bean.a.s shouldEqual "foo" } + + it should "work with static method creator" in { f => + val json = """{"valueHolder": "2"}""" + + val regularObjectMapper = new ObjectMapper() + + // Using regular objectMapper + val bean1 = regularObjectMapper.readValue(json, classOf[UserOfValueHolder]) + bean1.getValueHolder.internalValue shouldEqual 2L + + // Using objectMapper with DefaultScalaModule + val bean2 = f.readValue[UserOfValueHolder](json) + bean2.getValueHolder.internalValue shouldEqual 2L + } }