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 <[email protected]>
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();
        }

Reply via email to