Loading src/main/java/com/inteligr8/rs/Client.java +5 −11 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 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. Loading Loading @@ -70,8 +69,10 @@ public abstract class Client { public final javax.ws.rs.client.Client buildClient(AuthorizationFilter authFilter) { ObjectMapper om = new ObjectMapper(); om.registerModules(new JavaTimeModule()); this.getConfig().configureJacksonMapper(om); JacksonJsonProvider provider = new JacksonJaxbJsonProvider(om, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider(om, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); this.getConfig().configureJacksonProvider(provider); if (this.getConfig().isWrapRootValueEnabled()) provider.enable(SerializationFeature.WRAP_ROOT_VALUE); Loading @@ -86,18 +87,11 @@ public abstract class Client { authFilter = this.getConfig().createAuthorizationFilter(); if (authFilter != null) clientBuilder.register(authFilter); this.buildClient(clientBuilder); this.getConfig().configureClient(clientBuilder); return clientBuilder.build(); } /** * @param clientBuilder A client builder */ public void buildClient(ClientBuilder clientBuilder) { // for extension purposes } /** * @return A pre-configured JAX-RS target (client w/ base URL) with configured authorization. */ Loading src/main/java/com/inteligr8/rs/ClientConfiguration.java +25 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.inteligr8.rs; import java.net.URI; import javax.ws.rs.client.ClientBuilder; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; /** * This interface defines the configurable parameters of the clients; primarily * their default authentication and authorization. Loading Loading @@ -129,6 +134,18 @@ public interface ClientConfiguration { return false; } /** * @param mapper A Jackson object mapper to configure. */ default void configureJacksonMapper(ObjectMapper mapper) { } /** * @param provider A Jackson JAX-RS provider to configure. */ default void configureJacksonProvider(JacksonJaxbJsonProvider provider) { } /** Loading Loading @@ -170,4 +187,12 @@ public interface ClientConfiguration { } } /** * A Jackson provider, logging filter, and authentication filter are already registered. * * @param clientBuilder A JAX-RS client builder to configure. */ default void configureClient(ClientBuilder clientBuilder) { } } Loading
src/main/java/com/inteligr8/rs/Client.java +5 −11 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 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. Loading Loading @@ -70,8 +69,10 @@ public abstract class Client { public final javax.ws.rs.client.Client buildClient(AuthorizationFilter authFilter) { ObjectMapper om = new ObjectMapper(); om.registerModules(new JavaTimeModule()); this.getConfig().configureJacksonMapper(om); JacksonJsonProvider provider = new JacksonJaxbJsonProvider(om, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider(om, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS); this.getConfig().configureJacksonProvider(provider); if (this.getConfig().isWrapRootValueEnabled()) provider.enable(SerializationFeature.WRAP_ROOT_VALUE); Loading @@ -86,18 +87,11 @@ public abstract class Client { authFilter = this.getConfig().createAuthorizationFilter(); if (authFilter != null) clientBuilder.register(authFilter); this.buildClient(clientBuilder); this.getConfig().configureClient(clientBuilder); return clientBuilder.build(); } /** * @param clientBuilder A client builder */ public void buildClient(ClientBuilder clientBuilder) { // for extension purposes } /** * @return A pre-configured JAX-RS target (client w/ base URL) with configured authorization. */ Loading
src/main/java/com/inteligr8/rs/ClientConfiguration.java +25 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.inteligr8.rs; import java.net.URI; import javax.ws.rs.client.ClientBuilder; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; /** * This interface defines the configurable parameters of the clients; primarily * their default authentication and authorization. Loading Loading @@ -129,6 +134,18 @@ public interface ClientConfiguration { return false; } /** * @param mapper A Jackson object mapper to configure. */ default void configureJacksonMapper(ObjectMapper mapper) { } /** * @param provider A Jackson JAX-RS provider to configure. */ default void configureJacksonProvider(JacksonJaxbJsonProvider provider) { } /** Loading Loading @@ -170,4 +187,12 @@ public interface ClientConfiguration { } } /** * A Jackson provider, logging filter, and authentication filter are already registered. * * @param clientBuilder A JAX-RS client builder to configure. */ default void configureClient(ClientBuilder clientBuilder) { } }