diff --git a/pom.xml b/pom.xml index d3375ad..ef38d8a 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,11 @@ ${junit.version} test + + javax.enterprise + cdi-api + 2.0.SP1 + diff --git a/src/main/java/io/devcon5/jsonb/jackson/JacksonJsonbBuilder.java b/src/main/java/io/devcon5/jsonb/jackson/JacksonJsonbBuilder.java index 4e8aa64..9eae4f9 100644 --- a/src/main/java/io/devcon5/jsonb/jackson/JacksonJsonbBuilder.java +++ b/src/main/java/io/devcon5/jsonb/jackson/JacksonJsonbBuilder.java @@ -15,7 +15,11 @@ */ package io.devcon5.jsonb.jackson; +import java.util.Optional; +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.inject.Provider; import javax.json.bind.Jsonb; import javax.json.bind.JsonbBuilder; import javax.json.bind.JsonbConfig; @@ -27,6 +31,7 @@ /** * Jackson2 based implmentation of Jsonb API */ +@ApplicationScoped public class JacksonJsonbBuilder implements JsonbBuilder { /** @@ -60,11 +65,13 @@ public JsonbBuilder withProvider(final JsonProvider jsonProvider) { //noop return this; } - + + @Inject + private Provider mapper; + @Override public Jsonb build() { - - final ObjectMapper mapper = new ObjectMapper(); + final ObjectMapper mapper=Optional.ofNullable(this.mapper).map(Provider::get).orElseGet(ObjectMapper::new); if(!includeNulls){ mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); if(!includeEmpty){ diff --git a/src/main/resources/META-INF/beans.xml b/src/main/resources/META-INF/beans.xml new file mode 100644 index 0000000..6661375 --- /dev/null +++ b/src/main/resources/META-INF/beans.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file