You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/07/26 00:24:32 UTC
[juneau] branch master updated: JUNEAU-83 Cannot subclass
RestClient and RestClientBuilder
This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new d0e2f01 JUNEAU-83 Cannot subclass RestClient and RestClientBuilder
d0e2f01 is described below
commit d0e2f018b719b0d37c2e8641293035c028e48011
Author: JamesBognar <ja...@apache.org>
AuthorDate: Wed Jul 25 20:24:18 2018 -0400
JUNEAU-83 Cannot subclass RestClient and RestClientBuilder
---
.../src/main/java/org/apache/juneau/BeanContext.java | 3 +++
.../src/main/java/org/apache/juneau/ContextBuilder.java | 2 ++
.../java/org/apache/juneau/rest/client/RestClient.java | 17 ++++++++++++++++-
.../apache/juneau/rest/client/RestClientBuilder.java | 10 ++++++++--
4 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 9ced02f..f62fbc0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -1958,6 +1958,9 @@ public class BeanContext extends Context {
public BeanContext(PropertyStore ps) {
super(ps);
+ if (ps == null)
+ ps = PropertyStore.DEFAULT;
+
beanHashCode = ps.hashCode("BeanContext");
beansRequireDefaultConstructor = getBooleanProperty(BEAN_beansRequireDefaultConstructor, false);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
index f07b851..5273677 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
@@ -36,6 +36,8 @@ public abstract class ContextBuilder {
* @param ps The initial configuration settings for this builder.
*/
public ContextBuilder(PropertyStore ps) {
+ if (ps == null)
+ ps = PropertyStore.DEFAULT;
this.psb = ps.builder();
}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index d9f06c6..e524e81 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -467,12 +467,27 @@ public class RestClient extends BeanContext implements Closeable {
return new RestClientBuilder(getPropertyStore(), httpClientBuilder);
}
+ /**
+ * Constructor.
+ *
+ * @param ps
+ * Configuration properties for this client.
+ * <br>Can be <jk>null</jk>.
+ * @param httpClientBuilder
+ * The HTTP client builder to use to create the HTTP client.
+ * <br>Can be <jk>null</jk>.
+ * @param httpClient
+ * The HTTP client.
+ * <br>Must not be <jk>null</jk>.
+ */
@SuppressWarnings("unchecked")
- RestClient(
+ protected RestClient(
PropertyStore ps,
HttpClientBuilder httpClientBuilder,
CloseableHttpClient httpClient) {
super(ps);
+ if (ps == null)
+ ps = PropertyStore.DEFAULT;
this.httpClientBuilder = httpClientBuilder;
this.httpClient = httpClient;
this.keepHttpClientOpen = getBooleanProperty(RESTCLIENT_keepHttpClientOpen, false);
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 543f903..e78e933 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -94,8 +94,14 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* Constructor.
- */
- RestClientBuilder(PropertyStore ps, HttpClientBuilder httpClientBuilder) {
+ * @param ps
+ * Initial configuration properties for this builder.
+ * <br>Can be <jk>null</jk>.
+ * @param httpClientBuilder
+ * The HTTP client builder to use for this REST client builder.
+ * <br>Can be <jk>null</jk> to just call {@link #createHttpClientBuilder()} to instantiate it again.
+ */
+ protected RestClientBuilder(PropertyStore ps, HttpClientBuilder httpClientBuilder) {
super(ps);
this.httpClientBuilder = httpClientBuilder != null ? httpClientBuilder : createHttpClientBuilder();
}