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

commit c2dc6ad71dcd99f394036ec3efb865b3619f769f
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Thu Sep 9 20:13:22 2021 -0400

    Context API refactoring.
---
 .../java/org/apache/juneau/rest/RestContext.java   | 165 +++++++--------------
 .../org/apache/juneau/rest/RestContextBuilder.java |  24 +--
 .../org/apache/juneau/rest/annotation/Rest.java    |   1 -
 .../juneau/rest/annotation/RestAnnotation.java     |   3 +-
 4 files changed, 65 insertions(+), 128 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 5eae1f4..d4151b9 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
@@ -89,57 +89,6 @@ public class RestContext extends BeanContext {
        }
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "RestContext";
-
-       /**
-        * Configuration property:  Bean store.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.RestContext#REST_beanStore REST_beanStore}
-        *      <li><b>Name:</b>  <js>"RestContext.beanStore.o"</js>
-        *      <li><b>Data type:</b>
-        *              <ul>
-        *                      <li>{@link org.apache.juneau.cp.BeanStore}
-        *                      <li><c>Class&lt;{@link 
org.apache.juneau.cp.BeanStore}&gt;</c>
-        *              </ul>
-        *      <li><b>Default:</b>  {@link org.apache.juneau.cp.BeanStore}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Rest#beanStore()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#beanStore(Class)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#beanStore(BeanStore)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * The resolver used for resolving instances of child resources and 
various other beans including:
-        * <ul>
-        *      <li>{@link RestLogger}
-        *      <li>{@link SwaggerProvider}
-        *      <li>{@link FileFinder}
-        *      <li>{@link StaticFiles}
-        * </ul>
-        *
-        * <p>
-        * Note that the <c>SpringRestServlet</c> classes uses the 
<c>SpringBeanStore</c> class to allow for any
-        * Spring beans to be injected into your REST resources.
-        *
-        * <ul class='seealso'>
-        *      <li class='link'>{@doc RestInjection}
-        * </ul>
-        */
-       public static final String REST_beanStore = PREFIX + ".beanStore.o";
-
-       
//-------------------------------------------------------------------------------------------------------------------
        // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
@@ -287,7 +236,7 @@ public class RestContext extends BeanContext {
 
                        RestContext parent = parentContext = 
builder.parentContext;
 
-                       rootBeanStore = createBeanStore(r, cp, parent);
+                       rootBeanStore = createBeanStore(r, builder, parent);
 
                        BeanStore bf = beanStore = BeanStore.of(rootBeanStore, 
r);
                        bf.addBean(BeanStore.class, bf);
@@ -445,7 +394,7 @@ public class RestContext extends BeanContext {
         * Instantiates based on the following logic:
         * <ul>
         *      <li>Returns the resource class itself if it's an instance of 
{@link BeanStore}.
-        *      <li>Looks for {@link #REST_beanStore} value set via any of the 
following:
+        *      <li>Looks for bean store set via any of the following:
         *              <ul>
         *                      <li>{@link 
RestContextBuilder#beanStore(Class)}/{@link 
RestContextBuilder#beanStore(BeanStore)}
         *                      <li>{@link Rest#beanStore()}.
@@ -475,22 +424,17 @@ public class RestContext extends BeanContext {
         *      <li><c>{@link Optional}&lt;{@link BeanStore}&gt;</c> - The 
parent root bean store if this is a child resource.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link #REST_beanStore}
-        * </ul>
-        *
         * @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 parent
         *      The parent context if the REST bean was registered via {@link 
Rest#children()}.
         *      <br>Will be <jk>null</jk> if the bean is a top-level resource.
         * @return The bean store for this REST resource.
         * @throws Exception If bean store could not be instantiated.
         */
-       protected BeanStore createBeanStore(Object resource, ContextProperties 
properties, RestContext parent) throws Exception {
+       protected BeanStore createBeanStore(Object resource, RestContextBuilder 
builder, RestContext parent) throws Exception {
 
                BeanStore x = null;
 
@@ -498,10 +442,10 @@ public class RestContext extends BeanContext {
                        x = (BeanStore)resource;
 
                if (x == null)
-                       x = properties.getIfType(REST_beanStore, 
BeanStore.class).orElse(null);
+                       x = builder.beanStoreRef.value().orElse(null);
 
                if (x == null)
-                       x = createBeanStoreBuilder(resource, properties, 
parent).build();
+                       x = createBeanStoreBuilder(resource, builder, 
parent).build();
 
                x = BeanStore
                        .of(x, resource)
@@ -519,18 +463,17 @@ 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 parent
         *      The parent context if the REST bean was registered via {@link 
Rest#children()}.
         *      <br>Will be <jk>null</jk> if the bean is a top-level resource.
         * @return The bean store builder for this REST resource.
         * @throws Exception If bean store could not be instantiated.
         */
-       protected BeanStore.Builder createBeanStoreBuilder(Object resource, 
ContextProperties properties, RestContext parent) throws Exception {
+       protected BeanStore.Builder createBeanStoreBuilder(Object resource, 
RestContextBuilder builder, RestContext parent) throws Exception {
 
-               Class<? extends BeanStore> c = 
properties.getIfClass(REST_beanStore, BeanStore.class).orElse(null);
+               Class<? extends BeanStore> c = 
builder.beanStoreRef.type().orElse(null);
 
                BeanStore root = parent == null ? null : parent.rootBeanStore;
 
@@ -569,7 +512,7 @@ public class RestContext extends BeanContext {
         *                      <li>{@link 
RestContextBuilder#fileFinder(Class)}/{@link 
RestContextBuilder#fileFinder(FileFinder)}
         *                      <li>{@link Rest#fileFinder()}.
         *              </ul>
-        *      <li>Resolves it via the {@link 
#createBeanStore(Object,ContextProperties,RestContext) bean store} registered 
in this context (including Spring beans if using SpringRestServlet).
+        *      <li>Resolves it via the {@link 
#createBeanStore(Object,RestContextBuilder,RestContext) bean store} registered 
in this context (including Spring beans if using SpringRestServlet).
         *      <li>Looks for file finder default setting.
         *      <li>Instantiates via {@link 
#createFileFinderBuilder(Object,RestContextBuilder,BeanStore)}.
         * </ul>
@@ -605,7 +548,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The file finder for this REST resource.
         * @throws Exception If file finder could not be instantiated.
         */
@@ -651,7 +594,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The file finder builder for this REST resource.
         * @throws Exception If file finder builder could not be instantiated.
         */
@@ -715,7 +658,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The file finder for this REST resource.
         * @throws Exception If file finder could not be instantiated.
         */
@@ -761,7 +704,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The static files builder for this REST resource.
         * @throws Exception If static files builder could not be instantiated.
         */
@@ -832,7 +775,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param logger
         *      The Java logger to use for logging messages.
         *      <br>Created by {@link 
#createLogger(Object,ContextProperties,BeanStore)}.
@@ -884,7 +827,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param logger
         *      The Java logger to use for logging messages.
         *      <br>Created by {@link 
#createLogger(Object,ContextProperties,BeanStore)}.
@@ -968,7 +911,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The response handlers for this REST resource.
         * @throws Exception If response handlers could not be instantiated.
         */
@@ -1016,7 +959,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The HTTP part serializer for this REST resource.
         * @throws Exception If serializer could not be instantiated.
         */
@@ -1067,7 +1010,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The HTTP part parser for this REST resource.
         * @throws Exception If parser could not be instantiated.
         */
@@ -1111,7 +1054,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The REST method parameter resolvers for this REST resource.
         * @throws Exception If parameter resolvers could not be instantiated.
         */
@@ -1140,7 +1083,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The REST method parameter resolvers for this REST resource.
         * @throws Exception If parameter resolvers could not be instantiated.
         */
@@ -1204,7 +1147,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The logger for this REST resource.
         * @throws Exception If logger could not be instantiated.
         */
@@ -1250,7 +1193,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The JSON schema generator for this REST resource.
         * @throws Exception If JSON schema generator could not be instantiated.
         */
@@ -1284,7 +1227,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The JSON-schema generator builder for this REST resource.
         * @throws Exception If JSON-schema generator builder could not be 
instantiated.
         */
@@ -1338,7 +1281,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param fileFinder The file finder configured on this bean created by 
{@link #createFileFinder(Object,RestContextBuilder,BeanStore)}.
         * @param messages The localized messages configured on this bean 
created by {@link #createMessages(Object,RestContextBuilder)}.
         * @param varResolver The variable resolver configured on this bean 
created by {@link 
#createVarResolver(Object,ContextProperties,BeanStore,Messages)}.
@@ -1382,7 +1325,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param fileFinder The file finder configured on this bean created by 
{@link #createFileFinder(Object,RestContextBuilder,BeanStore)}.
         * @param messages The localized messages configured on this bean 
created by {@link #createMessages(Object,RestContextBuilder)}.
         * @param varResolver The variable resolver configured on this bean 
created by {@link 
#createVarResolver(Object,ContextProperties,BeanStore,Messages)}.
@@ -1438,7 +1381,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param messages The localized messages of this bean.
         * @return The variable resolver for this REST resource.
         * @throws Exception If variable resolver could not be instantiated.
@@ -1488,7 +1431,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The variable resolver variables for this REST resource.
         * @throws Exception If variable resolver variables could not be 
instantiated.
         */
@@ -1554,7 +1497,7 @@ public class RestContext extends BeanContext {
         *      <br>Will be <jk>null</jk> if the bean is a top-level resource.
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The stack trace store for this REST resource.
         * @throws Exception If stack trace store could not be instantiated.
         */
@@ -1589,7 +1532,7 @@ public class RestContext extends BeanContext {
         *      <br>Will be <jk>null</jk> if the bean is a top-level resource.
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The stack trace store for this REST resource.
         * @throws Exception If stack trace store could not be instantiated.
         */
@@ -1623,7 +1566,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param thrownStore
         *      The thrown exception statistics store.
         *      <br>Created by {@link 
#createThrownStore(Object,ContextProperties,RestContext,BeanStore)}.
@@ -1658,7 +1601,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param thrownStore
         *      The thrown exception statistics store.
         *      <br>Created by {@link 
#createThrownStore(Object,ContextProperties,RestContext,BeanStore)}.
@@ -1692,7 +1635,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default request headers for this REST object.
         * @throws Exception If stack trace store could not be instantiated.
         */
@@ -1720,7 +1663,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If stack trace store could not be instantiated.
         */
@@ -1748,7 +1691,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If stack trace store could not be instantiated.
         */
@@ -1776,7 +1719,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The debug enablement bean for this REST object.
         * @throws Exception If bean could not be created.
         */
@@ -1816,7 +1759,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The debug enablement bean builder for this REST object.
         * @throws Exception If bean builder could not be created.
         */
@@ -1947,7 +1890,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The builder for the {@link RestOperations} object.
         * @throws Exception An error occurred.
         */
@@ -1978,7 +1921,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The REST methods builder for this REST resource.
         * @throws Exception If REST methods builder could not be instantiated.
         */
@@ -2060,7 +2003,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param servletConfig
         *      The servlet config passed into the servlet by the servlet 
container.
         * @return The builder for the {@link RestChildren} object.
@@ -2093,7 +2036,7 @@ public class RestContext extends BeanContext {
         *      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)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @param servletConfig
         *      The servlet config passed into the servlet by the servlet 
container.
         * @return The REST children builder for this REST resource.
@@ -2167,7 +2110,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2202,7 +2145,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2237,7 +2180,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2272,7 +2215,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2307,7 +2250,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2342,7 +2285,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2377,7 +2320,7 @@ public class RestContext extends BeanContext {
         *      <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.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If list could not be instantiated.
         */
@@ -2408,10 +2351,6 @@ public class RestContext extends BeanContext {
         * <p>
         * The bean store is used for instantiating child resource classes.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link #REST_beanStore}
-        * </ul>
-        *
         * @return The resource resolver associated with this context.
         */
        protected BeanStore getBeanStore() {
@@ -3039,7 +2978,7 @@ public class RestContext extends BeanContext {
         * @param m The Java method being called.
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The array of resolvers.
         */
        protected RestOpArg[] findRestOperationArgs(Method m, BeanStore 
beanStore) {
@@ -3075,7 +3014,7 @@ public class RestContext extends BeanContext {
         * @param m The Java method being called.
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
-        *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
+        *      <br>Created by {@link 
#createBeanStore(Object,RestContextBuilder,RestContext)}.
         * @return The array of resolvers.
         */
        protected RestOpArg[] findHookMethodArgs(Method m, BeanStore beanStore) 
{
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 1b98c17..14b54f9 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
@@ -17,7 +17,6 @@ import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.parser.Parser.*;
-import static org.apache.juneau.rest.RestContext.*;
 import static org.apache.juneau.rest.HttpRuntimeException.*;
 import static org.apache.juneau.serializer.Serializer.*;
 import static java.util.Arrays.*;
@@ -144,6 +143,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
        BeanRef<StaticFiles> staticFilesDefault = BeanRef.of(StaticFiles.class);
        BeanRef<FileFinder> fileFinder = BeanRef.of(FileFinder.class);
        BeanRef<FileFinder> fileFinderDefault = BeanRef.of(FileFinder.class);
+       BeanRef<BeanStore> beanStoreRef = BeanRef.of(BeanStore.class);
        NamedAttributeList defaultRequestAttributes = 
NamedAttributeList.create();
        HeaderListBuilder defaultRequestHeaders = HeaderList.create();
        HeaderListBuilder defaultResponseHeaders = HeaderList.create();
@@ -826,7 +826,6 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
         * Spring beans to be injected into your REST resources.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_beanStore}
         *      <li class='link'>{@doc RestInjection}
         * </ul>
         *
@@ -837,7 +836,8 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
         */
        @FluentSetter
        public RestContextBuilder beanStore(Class<? extends BeanStore> value) {
-               return set(REST_beanStore, value);
+               beanStoreRef.type(value);
+               return this;
        }
 
        /**
@@ -857,7 +857,6 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
         * Spring beans to be injected into your REST resources.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_beanStore}
         *      <li class='link'>{@doc RestInjection}
         * </ul>
         *
@@ -868,7 +867,8 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
         */
        @FluentSetter
        public RestContextBuilder beanStore(BeanStore value) {
-               return set(REST_beanStore, value);
+               beanStoreRef.value(value);
+               return this;
        }
 
        /**
@@ -1078,7 +1078,7 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *
         * <ul class='notes'>
         *      <li>
-        *              When defined as classes, instances are resolved using 
the registered {@link #REST_beanStore} which
+        *              When defined as classes, instances are resolved using 
the registered bean store which
         *              by default is {@link BeanStore} which requires the 
class have one of the following
         *              constructors:
         *              <ul>
@@ -2169,8 +2169,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         * The subclass must have a public constructor that takes in any of the 
following arguments:
         * <ul>
         *      <li>{@link RestChildrenBuilder} - The builder for the object.
-        *      <li>Any beans found in the specified {@link #REST_beanStore 
bean store}.
-        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified {@link #REST_beanStore bean store}.
+        *      <li>Any beans found in the specified bean store.
+        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified bean store.
         * </ul>
         *
         * <h5 class='section'>Example:</h5>
@@ -2226,8 +2226,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         * The subclass must have a public constructor that takes in any of the 
following arguments:
         * <ul>
         *      <li>{@link RestOpContextBuilder} - The builder for the object.
-        *      <li>Any beans found in the specified {@link #REST_beanStore 
bean store}.
-        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified {@link #REST_beanStore bean store}.
+        *      <li>Any beans found in the specified bean store.
+        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified bean store.
         * </ul>
         *
         * <h5 class='section'>Example:</h5>
@@ -2366,8 +2366,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         * The subclass must have a public constructor that takes in any of the 
following arguments:
         * <ul>
         *      <li>{@link RestOperationsBuilder} - The builder for the object.
-        *      <li>Any beans found in the specified {@link #REST_beanStore 
bean store}.
-        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified {@link #REST_beanStore bean store}.
+        *      <li>Any beans found in the specified bean store.
+        *      <li>Any {@link Optional} beans that may or may not be found in 
the specified bean store.
         * </ul>
         *
         * <h5 class='section'>Example:</h5>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
index c9fe1c7..55c3715 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
@@ -200,7 +200,6 @@ public @interface Rest {
         * Spring beans to be injected into your REST resources.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_beanStore}
         *      <li class='link'>{@doc RestInjection}
         * </ul>
         */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
index 4b34a48..da281c1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
@@ -14,7 +14,6 @@ package org.apache.juneau.rest.annotation;
 
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.internal.ArrayUtils.*;
-import static org.apache.juneau.rest.RestContext.*;
 import java.lang.annotation.*;
 import java.nio.charset.*;
 
@@ -1065,7 +1064,7 @@ public class RestAnnotation {
                        type(a.staticFiles()).ifPresent(x -> b.staticFiles(x));
                        string(a.path()).ifPresent(x -> b.path(x));
                        string(a.clientVersionHeader()).ifPresent(x -> 
b.clientVersionHeader(x));
-                       type(a.beanStore()).ifPresent(x -> 
b.set(REST_beanStore, x));
+                       type(a.beanStore()).ifPresent(x -> b.beanStore(x));
                        type(a.callLogger()).ifPresent(x -> b.callLogger(x));
                        type(a.swaggerProvider()).ifPresent(x -> 
b.swaggerProvider(x));
                        type(a.restOpContextClass()).ifPresent(x -> 
b.restOpContextClass(x));

Reply via email to