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();
 	}