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 85a6796 Context API refactoring.
85a6796 is described below
commit 85a6796a091efc95ee066455a89904b77620c94a
Author: JamesBognar <[email protected]>
AuthorDate: Sun Aug 29 18:08:35 2021 -0400
Context API refactoring.
---
.../java/org/apache/juneau/rest/RestContext.java | 55 +++++++---------------
.../org/apache/juneau/rest/RestContextBuilder.java | 13 +++--
2 files changed, 27 insertions(+), 41 deletions(-)
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 2922099..e7201fd 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -158,7 +158,7 @@ public class RestContext extends BeanContext {
* <li><b>Data type:</b> {@link org.apache.juneau.Enablement}
* <li><b>System property:</b> <c>RestContext.debug</c>
* <li><b>Environment variable:</b> <c>RESTCONTEXT_DEBUG</c>
- * <li><b>Default:</b> {@link #REST_debugDefault}
+ * <li><b>Default:</b>
* <li><b>Session property:</b> <jk>false</jk>
* <li><b>Annotations:</b>
* <ul>
@@ -179,38 +179,12 @@ public class RestContext extends BeanContext {
* <li>
* Request/response messages are automatically logged
always or per request.
* <li>
- * The default can be overwritten by {@link
#REST_debugDefault}.
+ * The default can be overwritten by {@link
RestContextBuilder#debugDefault(Enablement)}.
* </ul>
*/
public static final String REST_debug = PREFIX + ".debug.s";
/**
- * Configuration property: Default debug mode.
- *
- * <h5 class='section'>Property:</h5>
- * <ul class='spaced-list'>
- * <li><b>ID:</b> {@link
org.apache.juneau.rest.RestContext#REST_debugDefault REST_debugDefault}
- * <li><b>Name:</b> <js>"RestContext.debug.s"</js>
- * <li><b>Data type:</b> {@link org.apache.juneau.Enablement}
- * <li><b>System property:</b> <c>RestContext.debugDefault</c>
- * <li><b>Environment variable:</b>
<c>RESTCONTEXT_DEBUGDEFAULT</c>
- * <li><b>Default:</b> {@link org.apache.juneau.Enablement#NEVER}
- * <li><b>Session property:</b> <jk>false</jk>
- * <li><b>Methods:</b>
- * <ul>
- * <li class='jm'>{@link
org.apache.juneau.rest.RestContextBuilder#debugDefault(Enablement)}
- * </ul>
- * </ul>
- *
- * <h5 class='section'>Description:</h5>
- * <p>
- * The default value for the {@link #REST_debug} setting.
- * <p>
- * This setting is inherited from parent contexts.
- */
- public static final String REST_debugDefault = PREFIX +
".debugDefault.s";
-
- /**
* Configuration property: Debug enablement bean.
*
* <h5 class='section'>Property:</h5>
@@ -1490,6 +1464,8 @@ public class RestContext extends BeanContext {
final RestLogger callLoggerDefault;
final Class<? extends RestLogger> callLoggerDefaultClass;
+ final Enablement debugDefault;
+
// Lifecycle methods
private final MethodInvoker[]
postInitMethods,
@@ -1597,6 +1573,7 @@ public class RestContext extends BeanContext {
callLoggerDefault = builder.callLoggerDefault;
callLoggerDefaultClass = builder.callLoggerDefaultClass;
+ debugDefault = builder.debugDefault;
callLogger = createCallLogger(r, builder, bf, l, ts);
bf.addBean(RestLogger.class, callLogger);
@@ -1637,7 +1614,7 @@ public class RestContext extends BeanContext {
defaultCharset = builder.defaultCharset;
maxInput = builder.maxInput;
- debugEnablement = createDebugEnablement(r, cp, bf);
+ debugEnablement = createDebugEnablement(r, builder, bf);
path = ofNullable(builder.path).orElse("");
fullPath = (builder.parentContext == null ? "" :
(builder.parentContext.fullPath + '/')) + path;
@@ -3149,18 +3126,19 @@ public class RestContext extends BeanContext {
*
* @param resource
* The REST servlet or bean that this context defines.
- * @param properties
- * The properties of this bean.
- * <br>Consists of all properties gathered through the builder and
annotations on this class and all parent classes.
+ * @param builder
+ * The builder for this object.
* @param beanStore
* The factory used for creating beans and retrieving injected
beans.
* <br>Created by {@link
#createBeanStore(Object,ContextProperties,RestContext)}.
* @return The debug enablement bean for this REST object.
* @throws Exception If bean could not be created.
*/
- protected DebugEnablement createDebugEnablement(Object resource,
ContextProperties properties, BeanStore beanStore) throws Exception {
+ protected DebugEnablement createDebugEnablement(Object resource,
RestContextBuilder builder, BeanStore beanStore) throws Exception {
DebugEnablement x = null;
+ ContextProperties properties = builder.getContextProperties();
+
if (resource instanceof DebugEnablement)
x = (DebugEnablement)resource;
@@ -3171,7 +3149,7 @@ public class RestContext extends BeanContext {
x =
beanStore.getBean(DebugEnablement.class).orElse(null);
if (x == null)
- x = createDebugEnablementBuilder(resource, properties,
beanStore).build();
+ x = createDebugEnablementBuilder(resource, builder,
beanStore).build();
x = BeanStore
.of(beanStore, resource)
@@ -3189,8 +3167,8 @@ public class RestContext extends BeanContext {
*
* @param resource
* The REST servlet or bean that this context defines.
- * @param properties
- * The properties of this bean.
+ * @param builder
+ * The builder for this object.
* <br>Consists of all properties gathered through the builder and
annotations on this class and all parent classes.
* @param beanStore
* The factory used for creating beans and retrieving injected
beans.
@@ -3198,8 +3176,9 @@ public class RestContext extends BeanContext {
* @return The debug enablement bean builder for this REST object.
* @throws Exception If bean builder could not be created.
*/
- protected DebugEnablementBuilder createDebugEnablementBuilder(Object
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
+ protected DebugEnablementBuilder createDebugEnablementBuilder(Object
resource, RestContextBuilder builder, BeanStore beanStore) throws Exception {
+ ContextProperties properties = builder.getContextProperties();
Class<? extends DebugEnablement> c =
properties.getIfClass(REST_debugEnablement, DebugEnablement.class).orElse(null);
DebugEnablementBuilder x = DebugEnablement
@@ -3218,7 +3197,7 @@ public class RestContext extends BeanContext {
Enablement defaultDebug = properties.getInstance(REST_debug,
Enablement.class).orElse(null);
if (defaultDebug == null)
- defaultDebug =
properties.getInstance(REST_debugDefault, Enablement.class).orElse(null);
+ defaultDebug = builder.debugDefault;
if (defaultDebug == null)
defaultDebug = isDebug() ? Enablement.ALWAYS :
Enablement.NEVER;
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 03fef47..f283aea 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -138,6 +138,8 @@ public class RestContextBuilder extends BeanContextBuilder
implements ServletCon
RestLogger callLogger;
Class<? extends RestLogger> callLoggerClass;
+ Enablement debugDefault;
+
@SuppressWarnings("unchecked")
ResponseProcessorList.Builder responseProcessors =
ResponseProcessorList.create().append(
ReaderProcessor.class,
@@ -173,6 +175,7 @@ public class RestContextBuilder extends BeanContextBuilder
implements ServletCon
RestContext pc = parentContext.get();
callLoggerDefault = pc.callLoggerDefault;
callLoggerDefaultClass =
pc.callLoggerDefaultClass;
+ debugDefault = pc.debugDefault;
ContextProperties pcp =
pc.getContextProperties();
set(REST_staticFilesDefault,
pcp.get(REST_staticFilesDefault).orElse(null));
set(REST_fileFinderDefault,
pcp.get(REST_fileFinderDefault).orElse(null));
@@ -1055,17 +1058,21 @@ public class RestContextBuilder extends
BeanContextBuilder implements ServletCon
}
/**
- * Configuration property: Default debug mode.
+ * Default debug mode.
+ *
+ * <p>
+ * The default value for the {@link #debug(Enablement)} setting.
*
* <p>
- * The default value for the {@link RestContext#REST_debug} setting.
+ * This setting is inherited from parent contexts.
*
* @param value The new value for this setting.
* @return This object (for method chaining).
*/
@FluentSetter
public RestContextBuilder debugDefault(Enablement value) {
- return set(REST_debugDefault, value);
+ debugDefault = value;
+ return this;
}
/**