Compare commits

...

38 Commits

Author SHA1 Message Date
cd278bcc81 v2.0.4 pom 2023-05-30 18:00:33 -04:00
b64c408029 Merge branch 'develop' into stable 2023-05-30 18:00:06 -04:00
9a9a958913 allowing client ext; not just config ext 2023-05-30 17:58:38 -04:00
37e8b63179 added default enum deserialization 2023-05-30 17:54:29 -04:00
255a9c8e85 enabling more extensible configuration 2023-05-30 17:53:10 -04:00
ec6e7cc15d v2.0.3 pom 2023-05-30 12:44:41 -04:00
2451c634b7 Merge branch 'develop' into stable 2023-05-30 12:44:21 -04:00
bcb7d4a7ed adding JavaTimeModule 2023-05-30 12:43:50 -04:00
ed00346e71 v2.0.2 pom 2023-05-29 10:15:38 -04:00
c001576b65 Merge branch 'develop' into stable 2023-05-29 10:11:16 -04:00
6cb7afd9f1 Merge branch 'develop' into stable 2022-10-02 17:56:01 -04:00
5df5388bd2 Merge branch 'develop' into stable 2022-10-02 17:52:21 -04:00
5cda622082 v2.0.1 poms 2022-10-01 21:26:18 -04:00
e1191abaaa Merge branch 'develop' into stable 2022-10-01 21:25:26 -04:00
67ea4b72b3 POM release to v2.0.0 2022-10-01 00:53:17 -04:00
a574154c20 Merge branch 'develop' into stable 2022-10-01 00:52:53 -04:00
b1b19d8cb0 Merge branch 'develop' into stable 2022-05-02 18:33:27 -04:00
160766e0ef v1.1.6 pom 2022-04-07 23:36:39 -04:00
e167ac43cc Merge branch 'develop' into stable 2022-04-07 23:36:09 -04:00
a28fc13161 v1.1.5 pom 2022-03-08 13:32:45 -05:00
52c7e3cf6d Merge branch 'develop' into stable 2022-03-08 13:29:28 -05:00
bd7413bb48 v1.1.4 pom 2022-02-02 13:34:16 -05:00
75c518801f Merge branch 'develop' into stable 2022-02-02 13:33:47 -05:00
b3bc04467b v1.1.3 pom 2021-12-21 17:13:26 -05:00
88c8657a34 Merge branch 'develop' into stable 2021-12-21 17:12:58 -05:00
28b2478a08 v1.1.2 pom 2021-12-02 16:25:05 -05:00
dc63abc272 Merge branch 'develop' into stable 2021-12-02 16:20:39 -05:00
dd5d0f504a Merge branch 'develop' into stable 2021-10-27 14:54:54 -04:00
34d03a91e5 Merge branch 'develop' into stable 2021-09-03 12:42:25 -04:00
2584b8d668 v1.1.1 pom 2021-09-03 11:38:52 -04:00
a756b05f6c Merge branch 'develop' into stable 2021-09-03 11:38:22 -04:00
853b4e66cf Merge branch 'develop' into stable 2021-09-01 14:43:43 -04:00
f2032df0f3 Merge branch 'develop' into stable 2021-08-31 13:22:01 -04:00
8d3f4559bd v1.0.2 pom 2021-07-22 15:23:15 -04:00
3f476bba5c Merge branch 'develop' into stable 2021-07-22 15:22:49 -04:00
6292dde23b v1.0.1 pom 2021-07-07 11:07:04 -04:00
659f71c72c Merge branch 'develop' into stable 2021-07-07 11:06:35 -04:00
52f77dddbb v1.0.0 pom 2021-06-16 15:59:04 -04:00
3 changed files with 47 additions and 11 deletions

View File

@@ -6,7 +6,7 @@
<groupId>com.inteligr8</groupId>
<artifactId>common-rest-client</artifactId>
<version>2.0-SNAPSHOT</version>
<version>2.0.4</version>
<packaging>jar</packaging>
<name>ReST API Client for Java</name>

View File

@@ -18,9 +18,10 @@ import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import com.fasterxml.jackson.databind.DeserializationFeature;
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 &amp; WebTarget objects.
@@ -66,7 +67,15 @@ public abstract class Client {
* @return A pre-configured JAX-RS client (no URL) with the specified authorization.
*/
public final javax.ws.rs.client.Client buildClient(AuthorizationFilter authFilter) {
JacksonJsonProvider provider = new JacksonJaxbJsonProvider();
ObjectMapper om = new ObjectMapper();
om.registerModules(new JavaTimeModule());
this.getConfig().configureJacksonMapper(om);
JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider(om, JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
provider.enable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL);
provider.disable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE);
this.getConfig().configureJacksonProvider(provider);
if (this.getConfig().isWrapRootValueEnabled())
provider.enable(SerializationFeature.WRAP_ROOT_VALUE);
@@ -83,15 +92,17 @@ public abstract class Client {
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
}
/**
* @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.

View File

@@ -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.
@@ -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) {
}
/**
@@ -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) {
}
}