diff --git a/pom.xml b/pom.xml
index 09d04af..f8b58d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,11 @@
jackson-jaxrs-json-provider
2.12.2
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.12.2
+
org.slf4j
slf4j-api
diff --git a/src/main/java/com/inteligr8/rs/Client.java b/src/main/java/com/inteligr8/rs/Client.java
index 5483c72..03d93d9 100644
--- a/src/main/java/com/inteligr8/rs/Client.java
+++ b/src/main/java/com/inteligr8/rs/Client.java
@@ -3,7 +3,10 @@ package com.inteligr8.rs;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
/**
* A class that provides pre-configured JAX-RS Client & WebTarget objects.
@@ -26,8 +29,15 @@ public abstract class Client {
* @return A pre-configured JAX-RS client (no URL) with the specified authorization.
*/
public javax.ws.rs.client.Client getClient(AuthorizationFilter authFilter) {
+ JacksonJsonProvider provider = new JacksonJaxbJsonProvider();
+
+ if (this.getConfig().isWrapRootValueEnabled())
+ provider.enable(SerializationFeature.WRAP_ROOT_VALUE);
+ if (this.getConfig().isUnwrapRootValueEnabled())
+ provider.enable(DeserializationFeature.UNWRAP_ROOT_VALUE);
+
ClientBuilder clientBuilder = ClientBuilder.newBuilder()
- .register(new JacksonJaxbJsonProvider());
+ .register(provider);
if (authFilter == null)
authFilter = this.getConfig().createAuthorizationFilter();
diff --git a/src/main/java/com/inteligr8/rs/ClientConfiguration.java b/src/main/java/com/inteligr8/rs/ClientConfiguration.java
index 5a02d5f..37f4e21 100644
--- a/src/main/java/com/inteligr8/rs/ClientConfiguration.java
+++ b/src/main/java/com/inteligr8/rs/ClientConfiguration.java
@@ -98,6 +98,24 @@ public interface ClientConfiguration {
default String getOAuthPassword() {
return null;
}
+
+
+
+ /**
+ * @return true to enable Jackson UNWRAP_ROOT_VALUE feature; false otherwise.
+ */
+ default boolean isUnwrapRootValueEnabled() {
+ return false;
+ }
+
+ /**
+ * @return true to enable Jackson WRAP_ROOT_VALUE feature; false otherwise.
+ */
+ default boolean isWrapRootValueEnabled() {
+ return false;
+ }
+
+
/**
* This method creates an authorization filter based on the configuration