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 ac544d7 Context API refactoring.
ac544d7 is described below
commit ac544d7e087f683e6bc20cf83e304d9a96e1300d
Author: JamesBognar <[email protected]>
AuthorDate: Sat Sep 25 12:42:25 2021 -0400
Context API refactoring.
---
.../org/apache/juneau/rest/client/RestClient.java | 8 +---
.../juneau/rest/client/RestClientBuilder.java | 46 ++++++++++++++++++----
2 files changed, 40 insertions(+), 14 deletions(-)
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 89ad175..8e04b4a 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
@@ -1109,13 +1109,7 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
parsers = builder.parsers().build();
partSerializer = builder.partSerializer().create();
partParser = builder.partParser().create();
-
- ContextProperties cp =
getContextProperties().copy().apply(getBeanContext().getContextProperties()).build();
-
- beanStore.addBean(ContextProperties.class, cp);
-
- this.urlEncodingSerializer =
UrlEncodingSerializer.create().apply(cp).build();
-
+ urlEncodingSerializer = builder.urlEncodingSerializer().build();
creationStack = isDebug() ?
Thread.currentThread().getStackTrace() : null;
}
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 4f9d304..66fd6d8 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
@@ -102,6 +102,7 @@ public class RestClientBuilder extends
BeanContextableBuilder {
private ParserGroup.Builder parsers;
private HttpPartSerializer.Creator partSerializer;
private HttpPartParser.Creator partParser;
+ private UrlEncodingSerializerBuilder urlEncodingSerializer;
private boolean pooled;
@@ -133,23 +134,16 @@ public class RestClientBuilder extends
BeanContextableBuilder {
@Override /* ContextBuilder */
public RestClient build() {
- contextProperties();
return (RestClient)super.build();
}
@SuppressWarnings("unchecked")
@Override /* ContextBuilder */
public <T extends Context> T build(Class<T> c) {
- contextProperties();
type(c);
return (T)super.build();
}
- private ContextProperties contextProperties() {
- set("RestClient.random", new Random().nextInt()); // TODO -
Should be able to get rid of this once context properties go away.
- return getContextProperties();
- }
-
//------------------------------------------------------------------------------------------------------------------
// Convenience marshalling support methods.
//------------------------------------------------------------------------------------------------------------------
@@ -1441,6 +1435,44 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
//------------------------------------------------------------------------------------------------------------------
+ // urlEncodingSerializer
+
//------------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the URL-encoding serializer sub-builder.
+ *
+ * @return The URL-encoding serializer sub-builder.
+ */
+ public final UrlEncodingSerializerBuilder urlEncodingSerializer() {
+ if (urlEncodingSerializer == null)
+ urlEncodingSerializer = createUrlEncodingSerializer();
+ return urlEncodingSerializer;
+ }
+
+ /**
+ * Applies an operation to the URL-encoding serializer sub-builder.
+ *
+ * <p>
+ * Typically used to allow you to execute operations without breaking
the fluent flow of the client builder.
+ *
+ * @param operation The operation to apply.
+ * @return This object.
+ */
+ public final RestClientBuilder
urlEncodingSerializer(Consumer<UrlEncodingSerializerBuilder> operation) {
+ operation.accept(urlEncodingSerializer());
+ return this;
+ }
+
+ /**
+ * Instantiates the URL-encoding serializer sub-builder.
+ *
+ * @return A new URL-encoding serializer sub-builder.
+ */
+ protected UrlEncodingSerializerBuilder createUrlEncodingSerializer() {
+ return
(UrlEncodingSerializerBuilder)UrlEncodingSerializer.create().beanContext(beanContext());
+ }
+
+
//------------------------------------------------------------------------------------------------------------------
// headerData
//------------------------------------------------------------------------------------------------------------------