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 f58334b Context API refactoring.
f58334b is described below
commit f58334b5ae8916a1ea37822017e5dd63fcebe235
Author: JamesBognar <[email protected]>
AuthorDate: Fri Sep 24 16:40:02 2021 -0400
Context API refactoring.
---
.../org/apache/juneau/rest/client/RestClient.java | 175 +--------------------
.../juneau/rest/client/RestClientBuilder.java | 39 ++---
2 files changed, 21 insertions(+), 193 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 c67fda6..6149e9c 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
@@ -1076,170 +1076,6 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
public static final String RESTCLIENT_interceptors_add = PREFIX +
"interceptors.so/add";
/**
- * Configuration property: Logger.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logger RESTCLIENT_logger}
- * <li><b>Name:</b> <js>"RestClient.logger.o"</js>
- * <li><b>Data type:</b>
- * <ul>
- * <li>{@link java.util.logging.Logger}
- * </ul>
- * <li><b>Default:</b>
<c>Logger.<jsm>getLogger</jsm>(RestClient.<jk>class</jk>.getName())</c>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#logger(Logger)}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * Specifies the logger to use for logging.
- */
- public static final String RESTCLIENT_logger = PREFIX + "logger.o";
-
- /**
- * Configuration property: Log to console.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logToConsole
RESTCLIENT_logToConsole}
- * <li><b>Name:</b> <js>"RestClient.logToConsole.b"</js>
- * <li><b>System property:</b> <c>RestClient.logToConsole</c>
- * <li><b>Environment variable:</b> <c>RESTCLIENT_LOGTOCONSOLE</c>
- * <li><b>Data type:</b>
- * <ul>
- * <li><jk>boolean</jk>
- * </ul>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#logToConsole()}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * When enabled, log messages are sent to the console in addition to
the existing logger.
- */
- public static final String RESTCLIENT_logToConsole = PREFIX +
"logToConsole.b";
-
- /**
- * Configuration property: Log requests.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logRequests
RESTCLIENT_logRequests}
- * <li><b>Name:</b> <js>"RestClient.logRequests.s"</js>
- * <li><b>System property:</b> <c>RestClient.logRequests</c>
- * <li><b>Environment variable:</b> <c>RESTCLIENT_LOGREQUESTS</c>
- * <li><b>Data type:</b>
- * <ul>
- * <li>{@link org.apache.juneau.DetailLevel}
- * </ul>
- * <li><b>Default:</b> {@link org.apache.juneau.DetailLevel#NONE}
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#logRequests(DetailLevel,Level,BiPredicate)}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * Causes requests/responses to be logged at the specified log level at
the end of the request.
- *
- * <p>
- * <jsf>SIMPLE</jsf> detail produces a log message like the following:
- * <p class='bcode w800 console'>
- * POST http://localhost:10000/testUrl, HTTP/1.1 200 OK
- * </p>
- *
- * <p>
- * <jsf>FULL</jsf> detail produces a log message like the following:
- * <p class='bcode w800 console'>
- * === HTTP Call (outgoing)
=======================================================
- * === REQUEST ===
- * POST http://localhost:10000/testUrl
- * ---request headers---
- * Debug: true
- * No-Trace: true
- * Accept: application/json
- * ---request entity---
- * Content-Type: application/json
- * ---request content---
- * {"foo":"bar","baz":123}
- * === RESPONSE ===
- * HTTP/1.1 200 OK
- * ---response headers---
- * Content-Type: application/json;charset=utf-8
- * Content-Length: 21
- * Server: Jetty(8.1.0.v20120127)
- * ---response content---
- * {"message":"OK then"}
- * === END
========================================================================
- * </p>
- *
- * <p>
- * By default, the message is logged to the default logger. It can be
logged to a different logger via the
- * {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_logger}
setting or logged to the console using the
- * {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logToConsole} setting.
- */
- public static final String RESTCLIENT_logRequests = PREFIX +
"logRequests.s";
-
- /**
- * Configuration property: Log requests log level.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logRequestsLevel
RESTCLIENT_logRequestsLevel}
- * <li><b>Name:</b> <js>"RestClient.logRequestsLevel.s"</js>
- * <li><b>System property:</b> <c>RestClient.logRequestsLevel</c>
- * <li><b>Environment variable:</b>
<c>RESTCLIENT_LOGREQUESTLEVEL</c>
- * <li><b>Data type:</b>
- * <ul>
- * <li>{@link java.util.logging.Level}
- * </ul>
- * <li><b>Default:</b> {@link java.util.logging.Level#INFO}
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#logRequests(DetailLevel,Level,BiPredicate)}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * Used in combination with {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logRequests} to specify the
- * level to log request messages to.
- */
- public static final String RESTCLIENT_logRequestsLevel = PREFIX +
"logRequestsLevel.s";
-
- /**
- * Configuration property: Log requests predicate.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logRequestsPredicate
RESTCLIENT_logRequestsPredicate}
- * <li><b>Name:</b> <js>"RestClient.logRequestsPredicate.o"</js>
- * <li><b>Data type:</b>
- * <ul>
- * <li>{@link
java.util.function.BiPredicate}<{@link
org.apache.juneau.rest.client.RestRequest},{@link
org.apache.juneau.rest.client.RestResponse}>
- * </ul>
- * <li><b>Default:</b> <c>(req,res) -> <jk>true</jk></c>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.client.RestClientBuilder#logRequests(DetailLevel,Level,BiPredicate)}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * Used in combination with {@link
org.apache.juneau.rest.client.RestClient#RESTCLIENT_logRequests} to specify the
- * level to log request messages to.
- */
- public static final String RESTCLIENT_logRequestsPredicate = PREFIX +
"logRequestsPredicate.o";
-
- /**
* Configuration property: Part parser.
*
* <h5 class='section'>Property:</h5>
@@ -1361,17 +1197,16 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
ignoreErrors = builder.ignoreErrors;
keepHttpClientOpen = builder.keepHttpClientOpen;
detectLeaks = builder.detectLeaks;
+ logger =
ofNullable(builder.logger).orElseGet(()->Logger.getLogger(RestClient.class.getName()));
+ logToConsole = builder.logToConsole || isDebug();
+ logRequests = ofNullable(builder.logRequests).orElse(isDebug()
? DetailLevel.FULL : DetailLevel.NONE);
+ logRequestsLevel =
ofNullable(builder.logRequestsLevel).orElse(isDebug() ? Level.WARNING :
Level.OFF);
+ logRequestsPredicate =
ofNullable(builder.logRequestsPredicate).orElse(LOG_REQUESTS_PREDICATE_DEFAULT);
ContextProperties cp =
getContextProperties().copy().apply(getBeanContext().getContextProperties()).build();
beanStore.addBean(ContextProperties.class, cp);
- this.logger = cp.getInstance(RESTCLIENT_logger,
Logger.class).orElseGet(()->Logger.getLogger(RestClient.class.getName()));
- this.logRequests = cp.getInstance(RESTCLIENT_logRequests,
DetailLevel.class).orElse(isDebug() ? DetailLevel.FULL : DetailLevel.NONE);
- this.logRequestsLevel =
cp.getInstance(RESTCLIENT_logRequestsLevel, Level.class).orElse(isDebug() ?
Level.WARNING : Level.OFF);
- this.logToConsole =
cp.getBoolean(RESTCLIENT_logToConsole).orElse(isDebug());
- this.logRequestsPredicate =
cp.getInstance(RESTCLIENT_logRequestsPredicate,
BiPredicate.class).orElse(LOG_REQUESTS_PREDICATE_DEFAULT);
-
this.serializers = builder.serializerGroupBuilder.build();
this.parsers = builder.parserGroupBuilder.build();
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 1809eaa..895dff9 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,7 +102,12 @@ public class RestClientBuilder extends
BeanContextableBuilder {
private boolean pooled;
String rootUri;
- boolean skipEmptyHeaderData, skipEmptyFormData, skipEmptyQueryData,
executorServiceShutdownOnClose, ignoreErrors, keepHttpClientOpen, detectLeaks;
+ boolean skipEmptyHeaderData, skipEmptyFormData, skipEmptyQueryData,
executorServiceShutdownOnClose, ignoreErrors, keepHttpClientOpen, detectLeaks,
+ logToConsole;
+ Logger logger;
+ DetailLevel logRequests;
+ Level logRequestsLevel;
+ BiPredicate<RestRequest,RestResponse> logRequestsPredicate;
Predicate<Integer> errorCodes = x -> x<=0 || x>=400;
HttpClientConnectionManager connectionManager;
PrintStream console;
@@ -2034,7 +2039,7 @@ public class RestClientBuilder extends
BeanContextableBuilder {
//------------------------------------------------------------------------------------------------------------------
/**
- * <i><l>RestClient</l> configuration property: </i> Logger.
+ * Logger.
*
* <p>
* Specifies the logger to use for logging.
@@ -2056,20 +2061,17 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* .build();
* </p>
*
- * <ul class='seealso'>
- * <li class='jf'>{@link RestClient#RESTCLIENT_logger}
- * </ul>
- *
* @param value The logger to use for logging.
* @return This object (for method chaining).
*/
@FluentSetter
public RestClientBuilder logger(Logger value) {
- return set(RESTCLIENT_logger, value);
+ logger = value;
+ return this;
}
/**
- * <i><l>RestClient</l> configuration property: </i> Log to
console.
+ * Log to console.
*
* <p>
* Specifies to log messages to the console.
@@ -2084,19 +2086,16 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* .build();
* </p>
*
- * <ul class='seealso'>
- * <li class='jf'>{@link RestClient#RESTCLIENT_logToConsole}
- * </ul>
- *
* @return This object (for method chaining).
*/
@FluentSetter
public RestClientBuilder logToConsole() {
- return set(RESTCLIENT_logToConsole);
+ logToConsole = true;
+ return this;
}
/**
- * <i><i><l>RestClient</l> configuration property: </i></i> Log
requests.
+ * Log requests.
*
* <p>
* Causes requests/responses to be logged at the specified log level at
the end of the request.
@@ -2137,12 +2136,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* {@link #logger(Logger)} method or logged to the console using the
* {@link #logToConsole()} method.
*
- * <ul class='seealso'>
- * <li class='jf'>{@link RestClient#RESTCLIENT_logRequests}
- * <li class='jf'>{@link RestClient#RESTCLIENT_logRequestsLevel}
- * <li class='jf'>{@link
RestClient#RESTCLIENT_logRequestsPredicate}
- * </ul>
- *
* @param detail The detail level of logging.
* @param level The log level.
* @param test A predicate to use per-request to see if the request
should be logged. If <jk>null</jk>, always logs.
@@ -2150,9 +2143,9 @@ public class RestClientBuilder extends
BeanContextableBuilder {
*/
@FluentSetter
public RestClientBuilder logRequests(DetailLevel detail, Level level,
BiPredicate<RestRequest,RestResponse> test) {
- set(RESTCLIENT_logRequests, detail);
- set(RESTCLIENT_logRequestsLevel, level);
- set(RESTCLIENT_logRequestsPredicate, test);
+ logRequests = detail;
+ logRequestsLevel = level;
+ logRequestsPredicate = test;
return this;
}