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 e896360  Context API refactoring.
e896360 is described below

commit e89636083066b1e801298faf07ddf2a0244cff15
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Fri Sep 24 15:33:09 2021 -0400

    Context API refactoring.
---
 .../org/apache/juneau/rest/client/RestClient.java  | 93 +---------------------
 .../juneau/rest/client/RestClientBuilder.java      | 12 +--
 2 files changed, 6 insertions(+), 99 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 068941f..77d2938 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
@@ -1022,94 +1022,6 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
        private static final String PREFIX = "RestClient.";
 
        /**
-        * Configuration property:  Executor service.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorService 
RESTCLIENT_executorService}
-        *      <li><b>Name:</b>  <js>"RestClient.executorService.o"</js>
-        *      <li><b>Data type:</b>
-        *              <ul>
-        *                      <li><c>Class&lt;? <jk>extends</jk> {@link 
java.util.concurrent.ExecutorService}&gt;</c>
-        *                      <li>{@link java.util.concurrent.ExecutorService}
-        *              </ul>
-        *      <li><b>Default:</b>  <jk>null</jk>.
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.client.RestClientBuilder#executorService(ExecutorService,
 boolean)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * Defines the executor service to use when calling future methods on 
the {@link RestRequest} class.
-        *
-        * <p>
-        * This executor service is used to create {@link Future} objects on 
the following methods:
-        * <ul>
-        *      <li class='jm'>{@link RestRequest#runFuture()}
-        *      <li class='jm'>{@link RestRequest#completeFuture()}
-        *      <li class='jm'>{@link ResponseBody#asFuture(Class)} (and 
similar methods)
-        * </ul>
-        *
-        * <p>
-        * The default executor service is a single-threaded {@link 
ThreadPoolExecutor} with a 30 second timeout
-        * and a queue size of 10.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Create a client with a customized executor service.</jc>
-        *      RestClient <jv>client</jv> = RestClient
-        *              .<jsm>create</jsm>()
-        *              .executorService(<jk>new</jk> ThreadPoolExecutor(1, 1, 
30, TimeUnit.<jsf>SECONDS</jsf>, <jk>new</jk> 
ArrayBlockingQueue&lt;Runnable&gt;(10)), <jk>true</jk>)
-        *              .build();
-        *
-        *      <jc>// Use it to asynchronously run a request.</jc>
-        *      Future&lt;RestResponse&gt; <jv>responseFuture</jv> = 
<jv>client</jv>.get(<jsf>URI</jsf>).runFuture();
-        *
-        *      <jc>// Do some other stuff.</jc>
-        *
-        *      <jc>// Now read the response.</jc>
-        *      String <jv>body</jv> = 
<jv>responseFuture</jv>.get().getBody().asString();
-        *
-        *      <jc>// Use it to asynchronously retrieve a response.</jc>
-        *      Future&lt;MyBean&gt; <jv>myBeanFuture</jv> = <jv>client</jv>
-        *              .get(<jsf>URI</jsf>)
-        *              .run()
-        *              .getBody().asFuture(MyBean.<jk>class</jk>);
-        *
-        *      <jc>// Do some other stuff.</jc>
-        *
-        *      <jc>// Now read the response.</jc>
-        *      MyBean <jv>bean</jv> = <jv>myBeanFuture</jv>.get();
-        * </p>
-        */
-       public static final String RESTCLIENT_executorService = PREFIX + 
"executorService.o";
-
-       /**
-        * Configuration property:  Shut down executor service on close.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorServiceShutdownOnClose
 RESTCLIENT_executorServiceShutdownOnClose}
-        *      <li><b>Name:</b>  
<js>"RestClient.executorServiceShutdownOnClose.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>RestClient.executorServiceShutdownOnClose</c>
-        *      <li><b>Environment variable:</b>  
<c>RESTCLIENT_EXECUTORSERVICESHUTDOWNONCLOSE</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.client.RestClientBuilder#executorService(ExecutorService,
 boolean)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * Call {@link ExecutorService#shutdown()} when {@link 
RestClient#close()} is called.
-        */
-       public static final String RESTCLIENT_executorServiceShutdownOnClose = 
PREFIX + "executorServiceShutdownOnClose.b";
-
-       /**
         * Configuration property:  Ignore errors.
         *
         * <h5 class='section'>Property:</h5>
@@ -1560,13 +1472,14 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
                errorCodes = builder.errorCodes;
                connectionManager = builder.connectionManager;
                console = ofNullable(builder.console).orElse(System.err);
+               executorService = builder.executorService;
+               executorServiceShutdownOnClose = 
builder.executorServiceShutdownOnClose;
 
                ContextProperties cp = 
getContextProperties().copy().apply(getBeanContext().getContextProperties()).build();
 
                beanStore.addBean(ContextProperties.class, cp);
 
                this.keepHttpClientOpen = 
cp.getBoolean(RESTCLIENT_keepHttpClientOpen).orElse(false);
-               this.executorServiceShutdownOnClose = 
cp.getBoolean(RESTCLIENT_executorServiceShutdownOnClose).orElse(false);
                this.leakDetection = 
cp.getBoolean(RESTCLIENT_leakDetection).orElse(isDebug());
                this.ignoreErrors = 
cp.getBoolean(RESTCLIENT_ignoreErrors).orElse(false);
                this.logger = cp.getInstance(RESTCLIENT_logger, 
Logger.class).orElseGet(()->Logger.getLogger(RestClient.class.getName()));
@@ -1584,8 +1497,6 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
 
                this.partParser = builder.simplePartParser != null ? 
builder.simplePartParser : (HttpPartParser) builder.partParserBuilder.build();
 
-               this.executorService = 
cp.getInstance(RESTCLIENT_executorService, ExecutorService.class).orElse(null);
-
                this.interceptors = 
cp.getInstanceArray(RESTCLIENT_interceptors, 
RestCallInterceptor.class).orElse(new RestCallInterceptor[0]);
 
                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 fb02940..3224bf7 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,10 +102,11 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
        private boolean pooled;
 
        String rootUri;
-       boolean skipEmptyHeaderData, skipEmptyFormData, skipEmptyQueryData;
+       boolean skipEmptyHeaderData, skipEmptyFormData, skipEmptyQueryData, 
executorServiceShutdownOnClose;
        Predicate<Integer> errorCodes = x ->  x<=0 || x>=400;
        HttpClientConnectionManager connectionManager;
        PrintStream console;
+       ExecutorService executorService;
 
        SerializerGroup.Builder serializerGroupBuilder;
        ParserGroup.Builder parserGroupBuilder;
@@ -2334,19 +2335,14 @@ public class RestClientBuilder extends 
BeanContextableBuilder {
         *      MyBean <jv>bean</jv> = <jv>myBeanFuture</jv>.get();
         * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestClient#RESTCLIENT_executorService}
-        *      <li class='jf'>{@link 
RestClient#RESTCLIENT_executorServiceShutdownOnClose}
-        * </ul>
-        *
         * @param executorService The executor service.
         * @param shutdownOnClose Call {@link ExecutorService#shutdown()} when 
{@link RestClient#close()} is called.
         * @return This object (for method chaining).
         */
        @FluentSetter
        public RestClientBuilder executorService(ExecutorService 
executorService, boolean shutdownOnClose) {
-               set(RESTCLIENT_executorService, executorService);
-               set(RESTCLIENT_executorServiceShutdownOnClose, shutdownOnClose);
+               this.executorService = executorService;
+               this.executorServiceShutdownOnClose = shutdownOnClose;
                return this;
        }
 

Reply via email to