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;
        }
 
        /**

Reply via email to