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
        
//------------------------------------------------------------------------------------------------------------------
 

Reply via email to