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

commit 257000f3aa2a8baafbd9b487ffb19871c1390411
Author: JamesBognar <[email protected]>
AuthorDate: Thu Sep 9 19:34:39 2021 -0400

    Context API refactoring.
---
 .../java/org/apache/juneau/rest/RestContext.java   | 187 +++------------------
 .../org/apache/juneau/rest/RestContextBuilder.java | 103 +++++++++---
 .../java/org/apache/juneau/rest/RestRequest.java   |   4 -
 .../org/apache/juneau/rest/annotation/Rest.java    |   4 -
 .../juneau/rest/annotation/RestAnnotation.java     |   2 +-
 5 files changed, 108 insertions(+), 192 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 36ee0c9..adf7c27 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
@@ -140,138 +140,6 @@ public class RestContext extends BeanContext {
        public static final String REST_beanStore = PREFIX + ".beanStore.o";
 
        /**
-        * Configuration property:  File finder.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.RestContext#REST_fileFinder REST_fileFinder}
-        *      <li><b>Name:</b>  <js>"RestContext.fileFinder.o"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.cp.FileFinder}
-        *      <li><b>Default:</b>  {@link #REST_fileFinderDefault}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Rest#fileFinder()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#fileFinder(Class)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#fileFinder(FileFinder)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContext#createFileFinder(Object,ContextProperties,BeanStore)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * Used to retrieve localized files from the classpath for a variety of 
purposes including:
-        * <ul>
-        *      <li>Resolution of {@link FileVar $F} variable contents.
-        * </ul>
-        *
-        * <p>
-        * The file finder can be accessed through the following methods:
-        * <ul class='javatree'>
-        *      <li class='jm'>{@link RestContext#getFileFinder()}
-        *      <li class='jm'>{@link RestRequest#getFileFinder()}
-        * </ul>
-        *
-        * <p>
-        * The file finder is instantiated via the {@link 
RestContext#createFileFinder(Object,ContextProperties,BeanStore)} method which 
in turn instantiates
-        * based on the following logic:
-        * <ul>
-        *      <li>Returns the resource class itself if it's an instance of 
{@link FileFinder}.
-        *      <li>Looks for {@link #REST_fileFinder} setting.
-        *      <li>Looks for a public <c>createFileFinder()</> method on the 
resource class with an optional {@link RestContext} argument.
-        *      <li>Instantiates the default file finder as specified via 
{@link #REST_fileFinderDefault}.
-        *      <li>Instantiates a {@link BasicFileFinder} which provides basic 
support for finding localized
-        *              resources on the classpath and JVM working directory.
-        * </ul>
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Create a file finder that looks for files in the /files 
working subdirectory, but overrides the find()
-        *      // method for special handling of special cases.</jc>
-        *      <jk>public class</jk> MyFileFinder <jk>extends</jk> 
BasicFileFinder {
-        *
-        *              <jk>public</jk> MyFileFinder() {
-        *                      <jk>super</jk>(
-        *                              <jk>new</jk> FileFinderBuilder()
-        *                                      .dir(<js>"/files"</js>)
-        *                      );
-        *              }
-        *
-        *              <ja>@Override</ja> <jc>// FileFinder</jc>
-        *              <jk>protected</jk> Optional&lt;InputStream&gt; 
find(String <jv>name</jv>, Locale <jv>locale</jv>) <jk>throws</jk> IOException {
-        *                      <jc>// Do special handling or just call 
super.find().</jc>
-        *                      <jk>return super</jk>.find(<jv>name</jv>, 
<jv>locale</jv>);
-        *              }
-        *      }
-        * </p>
-        *
-        *      <jc>// Option #1 - Registered via annotation.</jc>
-        *      <ja>@Rest</ja>(fileFinder=MyFileFinder.<jk>class</jk>)
-        *      <jk>public class</jk> MyResource {
-        *
-        *              <jc>// Option #2 - Created via createFileFinder() 
method.</jc>
-        *              <jk>public</jk> FileFinder createFileFinder(RestContext 
<jv>context</jv>) <jk>throws</jk> Exception {
-        *                      <jk>return new</jk> MyFileFinder();
-        *              }
-        *
-        *              <jc>// Option #3 - Registered via builder passed in 
through resource constructor.</jc>
-        *              <jk>public</jk> MyResource(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
-        *
-        *                      <jc>// Using method on builder.</jc>
-        *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
-        *
-        *                      <jc>// Same, but using property.</jc>
-        *                      
<jv>builder</jv>.set(<jsf>REST_fileFinder</jsf>, MyFileFinder.<jk>class</jk>));
-        *
-        *                      <jc>// Use a pre-instantiated object 
instead.</jc>
-        *                      <jv>builder</jv>.fileFinder(<jk>new</jk> 
MyFileFinder());
-        *              }
-        *
-        *              <jc>// Option #4 - Registered via builder passed in 
through init method.</jc>
-        *              <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-        *              <jk>public void</jk> init(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
-        *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
-        *              }
-        *
-        *              <jc>// Create a REST method that uses the file 
finder.</jc>
-        *              <ja>@RestGet</ja>
-        *              <jk>public</jk> InputStream foo(RestRequest 
<jv>req</jv>) {
-        *                      <jk>return</jk> 
<jv>req</jv>.getFileFinder().getStream(<js>"foo.json"</js>).orElseThrow(NotFound::<jk>new</jk>);
-        *              }
-        *      }
-        * </p>
-        */
-       public static final String REST_fileFinder = PREFIX + ".fileFinder.o";
-
-       /**
-        * Configuration property:  Default file finder.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.RestContext#REST_fileFinderDefault 
REST_fileFinderDefault}
-        *      <li><b>Name:</b>  <js>"RestContext.fileFinderDefault.o"</js>
-        *      <li><b>Data type:</b>  {@link org.apache.juneau.cp.FileFinder}
-        *      <li><b>Default:</b>  {@link 
org.apache.juneau.cp.BasicFileFinder}
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#fileFinderDefault(Class)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#fileFinderDefault(FileFinder)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * The default file finder to use if not specified.
-        * <p>
-        * This setting is inherited from the parent context.
-        */
-       public static final String REST_fileFinderDefault = PREFIX + 
".fileFinderDefault.o";
-
-       /**
         * Configuration property:  Messages.
         *
         * <h5 class='section'>Property:</h5>
@@ -526,6 +394,7 @@ public class RestContext extends BeanContext {
        private final AtomicBoolean initialized = new AtomicBoolean(false);
 
        final StaticFiles staticFilesDefault;
+       final FileFinder fileFinderDefault;
 
        /**
         * Constructor.
@@ -625,12 +494,12 @@ public class RestContext extends BeanContext {
                        jsonSchemaGenerator = createJsonSchemaGenerator(r, cp, 
bf);
                        bf.addBean(JsonSchemaGenerator.class, 
jsonSchemaGenerator);
 
-                       FileFinder ff = fileFinder = createFileFinder(r, cp, 
bf);
-                       bf.addBean(FileFinder.class, ff);
+                       fileFinder = createFileFinder(r, builder, bf);
+                       bf.addBean(FileFinder.class, fileFinder);
+                       fileFinderDefault = 
builder.fileFinderDefault.value().orElse(fileFinder);
 
                        staticFiles = createStaticFiles(r, builder, bf);
                        bf.addBean(StaticFiles.class, staticFiles);
-
                        staticFilesDefault = 
builder.staticFilesDefault.value().orElse(staticFiles);
 
                        defaultRequestHeaders = createDefaultRequestHeaders(r, 
builder, bf).build();
@@ -695,7 +564,7 @@ public class RestContext extends BeanContext {
 
                        restChildren = createRestChildren(r, builder, bf, 
builder.inner);
 
-                       swaggerProvider = createSwaggerProvider(r, builder, bf, 
ff, m, vr);
+                       swaggerProvider = createSwaggerProvider(r, builder, bf, 
fileFinder, m, vr);
 
                } catch (BasicHttpException e) {
                        _initException = e;
@@ -859,14 +728,14 @@ public class RestContext extends BeanContext {
         * Instantiates based on the following logic:
         * <ul>
         *      <li>Returns the resource class itself is an instance of {@link 
FileFinder}.
-        *      <li>Looks for {@link #REST_fileFinder} value set via any of the 
following:
+        *      <li>Looks for file finder value set via any of the following:
         *              <ul>
         *                      <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>Looks for value in {@link #REST_fileFinderDefault} setting.
-        *      <li>Instantiates via {@link 
#createFileFinderBuilder(Object,ContextProperties,BeanStore)}.
+        *      <li>Looks for file finder default setting.
+        *      <li>Instantiates via {@link 
#createFileFinderBuilder(Object,RestContextBuilder,BeanStore)}.
         * </ul>
         *
         * <p>
@@ -888,28 +757,23 @@ public class RestContext extends BeanContext {
         * The <c>createFileFinder()</c> method can be static or non-static can 
contain any of the following arguments:
         * <ul>
         *      <li>{@link FileFinder} - The file finder that would have been 
returned by this method.
-        *      <li>{@link FileFinderBuilder} - The file finder returned by 
{@link #createFileFinderBuilder(Object,ContextProperties,BeanStore)}.
+        *      <li>{@link FileFinderBuilder} - The file finder returned by 
{@link #createFileFinderBuilder(Object,RestContextBuilder,BeanStore)}.
         *      <li>{@link RestContext} - This REST context.
         *      <li>{@link BeanStore} - The bean store of this REST context.
         *      <li>Any {@doc RestInjection injected bean} types.  Use {@link 
Optional} arguments for beans that may not exist.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link #REST_fileFinder}
-        * </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 beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
         *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
         * @return The file finder for this REST resource.
         * @throws Exception If file finder could not be instantiated.
         */
-       protected FileFinder createFileFinder(Object resource, 
ContextProperties properties, BeanStore beanStore) throws Exception {
+       protected FileFinder createFileFinder(Object resource, 
RestContextBuilder builder, BeanStore beanStore) throws Exception {
 
                FileFinder x = null;
 
@@ -917,16 +781,16 @@ public class RestContext extends BeanContext {
                        x = (FileFinder)resource;
 
                if (x == null)
-                       x = properties.getIfType(REST_fileFinder, 
FileFinder.class).orElse(null);
+                       x = builder.fileFinder.value().orElse(null);
 
                if (x == null)
                        x = beanStore.getBean(FileFinder.class).orElse(null);
 
                if (x == null)
-                       x = properties.getIfType(REST_fileFinderDefault, 
FileFinder.class).orElse(null);
+                       x = builder.fileFinderDefault.value().orElse(null);
 
                if (x == null)
-                       x = createFileFinderBuilder(resource, properties, 
beanStore).build();
+                       x = createFileFinderBuilder(resource, builder, 
beanStore).build();
 
                x = BeanStore
                        .of(beanStore, resource)
@@ -943,25 +807,24 @@ public class RestContext extends BeanContext {
         * Instantiates the file finder builder for this REST resource.
         *
         * <p>
-        * Allows subclasses to intercept and modify the builder used by the 
{@link #createFileFinder(Object,ContextProperties,BeanStore)} method.
+        * Allows subclasses to intercept and modify the builder used by the 
{@link #createFileFinder(Object,RestContextBuilder,BeanStore)} method.
         *
         * @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 file finder builder for this REST resource.
         * @throws Exception If file finder builder could not be instantiated.
         */
-       protected FileFinderBuilder createFileFinderBuilder(Object resource, 
ContextProperties properties, BeanStore beanStore) throws Exception {
+       protected FileFinderBuilder createFileFinderBuilder(Object resource, 
RestContextBuilder builder, BeanStore beanStore) throws Exception {
 
-               Class<? extends FileFinder> c = 
properties.getIfClass(REST_fileFinder, FileFinder.class).orElse(null);
+               Class<? extends FileFinder> c = 
builder.fileFinder.type().orElse(null);
 
                if (c == null)
-                       c = properties.getIfClass(REST_fileFinderDefault, 
FileFinder.class).orElse(null);
+                       c = builder.fileFinderDefault.type().orElse(null);
 
                FileFinderBuilder x = FileFinder
                        .create()
@@ -1640,7 +1503,7 @@ public class RestContext extends BeanContext {
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
         *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
-        * @param fileFinder The file finder configured on this bean created by 
{@link #createFileFinder(Object,ContextProperties,BeanStore)}.
+        * @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,ContextProperties)}.
         * @param varResolver The variable resolver configured on this bean 
created by {@link 
#createVarResolver(Object,ContextProperties,BeanStore,Messages)}.
         * @return The info provider for this REST resource.
@@ -1684,7 +1547,7 @@ public class RestContext extends BeanContext {
         * @param beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
         *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
-        * @param fileFinder The file finder configured on this bean created by 
{@link #createFileFinder(Object,ContextProperties,BeanStore)}.
+        * @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,ContextProperties)}.
         * @param varResolver The variable resolver configured on this bean 
created by {@link 
#createVarResolver(Object,ContextProperties,BeanStore,Messages)}.
         * @return The REST API builder for this REST resource.
@@ -3013,10 +2876,6 @@ public class RestContext extends BeanContext {
        /**
         * Returns the file finder associated with this context.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinder}
-        * </ul>
-        *
         * @return
         *      The file finder for this resource.
         *      <br>Never <jk>null</jk>.
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 c4f488d..12552cf 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
@@ -141,6 +141,8 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
        BeanRef<DebugEnablement> debugEnablement = 
BeanRef.of(DebugEnablement.class);
        BeanRef<StaticFiles> staticFiles = BeanRef.of(StaticFiles.class);
        BeanRef<StaticFiles> staticFilesDefault = BeanRef.of(StaticFiles.class);
+       BeanRef<FileFinder> fileFinder = BeanRef.of(FileFinder.class);
+       BeanRef<FileFinder> fileFinderDefault = BeanRef.of(FileFinder.class);
        NamedAttributeList defaultRequestAttributes = 
NamedAttributeList.create();
        HeaderListBuilder defaultRequestHeaders = HeaderList.create();
        HeaderListBuilder defaultResponseHeaders = HeaderList.create();
@@ -226,8 +228,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
                                callLoggerDefault = pc.callLoggerDefault;
                                debugDefault = pc.debugDefault;
                                staticFilesDefault.value(pc.staticFilesDefault);
-                               ContextProperties pcp = 
pc.getContextProperties();
-                               set(REST_fileFinderDefault, 
pcp.get(REST_fileFinderDefault).orElse(null));
+                               fileFinderDefault.value(pc.fileFinderDefault);
                        }
 
                        beanStore = createBeanStore(parentContext, resource);
@@ -1621,10 +1622,79 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *      <li>Resolution of {@link FileVar $F} variable contents.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinder}
+        * <p>
+        * The file finder can be accessed through the following methods:
+        * <ul class='javatree'>
+        *      <li class='jm'>{@link RestContext#getFileFinder()}
+        *      <li class='jm'>{@link RestRequest#getFileFinder()}
+        * </ul>
+        *
+        * <p>
+        * The file finder is instantiated via the {@link 
RestContext#createFileFinder(Object,RestContextBuilder,BeanStore)} method which 
in turn instantiates
+        * based on the following logic:
+        * <ul>
+        *      <li>Returns the resource class itself if it's an instance of 
{@link FileFinder}.
+        *      <li>Looks for file finder setting.
+        *      <li>Looks for a public <c>createFileFinder()</> method on the 
resource class with an optional {@link RestContext} argument.
+        *      <li>Instantiates the default file finder as specified via file 
finder default setting.
+        *      <li>Instantiates a {@link BasicFileFinder} which provides basic 
support for finding localized
+        *              resources on the classpath and JVM working directory.
         * </ul>
         *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <jc>// Create a file finder that looks for files in the /files 
working subdirectory, but overrides the find()
+        *      // method for special handling of special cases.</jc>
+        *      <jk>public class</jk> MyFileFinder <jk>extends</jk> 
BasicFileFinder {
+        *
+        *              <jk>public</jk> MyFileFinder() {
+        *                      <jk>super</jk>(
+        *                              <jk>new</jk> FileFinderBuilder()
+        *                                      .dir(<js>"/files"</js>)
+        *                      );
+        *              }
+        *
+        *              <ja>@Override</ja> <jc>// FileFinder</jc>
+        *              <jk>protected</jk> Optional&lt;InputStream&gt; 
find(String <jv>name</jv>, Locale <jv>locale</jv>) <jk>throws</jk> IOException {
+        *                      <jc>// Do special handling or just call 
super.find().</jc>
+        *                      <jk>return super</jk>.find(<jv>name</jv>, 
<jv>locale</jv>);
+        *              }
+        *      }
+        * </p>
+        *
+        *      <jc>// Option #1 - Registered via annotation.</jc>
+        *      <ja>@Rest</ja>(fileFinder=MyFileFinder.<jk>class</jk>)
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Option #2 - Created via createFileFinder() 
method.</jc>
+        *              <jk>public</jk> FileFinder createFileFinder(RestContext 
<jv>context</jv>) <jk>throws</jk> Exception {
+        *                      <jk>return new</jk> MyFileFinder();
+        *              }
+        *
+        *              <jc>// Option #3 - Registered via builder passed in 
through resource constructor.</jc>
+        *              <jk>public</jk> MyResource(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+        *
+        *                      <jc>// Using method on builder.</jc>
+        *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
+        *
+        *                      <jc>// Use a pre-instantiated object 
instead.</jc>
+        *                      <jv>builder</jv>.fileFinder(<jk>new</jk> 
MyFileFinder());
+        *              }
+        *
+        *              <jc>// Option #4 - Registered via builder passed in 
through init method.</jc>
+        *              <ja>@RestHook</ja>(<jsf>INIT</jsf>)
+        *              <jk>public void</jk> init(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+        *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
+        *              }
+        *
+        *              <jc>// Create a REST method that uses the file 
finder.</jc>
+        *              <ja>@RestGet</ja>
+        *              <jk>public</jk> InputStream foo(RestRequest 
<jv>req</jv>) {
+        *                      <jk>return</jk> 
<jv>req</jv>.getFileFinder().getStream(<js>"foo.json"</js>).orElseThrow(NotFound::<jk>new</jk>);
+        *              }
+        *      }
+        * </p>
+        *
         * @param value
         *      The new value for this setting.
         *      <br>The default is {@link BasicFileFinder}.
@@ -1632,7 +1702,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         */
        @FluentSetter
        public RestContextBuilder fileFinder(Class<? extends FileFinder> value) 
{
-               return set(REST_fileFinder, value);
+               fileFinder.type(value);
+               return this;
        }
 
        /**
@@ -1644,9 +1715,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *      <li>Resolution of {@link FileVar $F} variable contents.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinder}
-        * </ul>
+        * <p>
+        * Same as {@link #fileFinder(Class)} but takes in a pre-instantiated 
object.
         *
         * @param value
         *      The new value for this setting.
@@ -1655,7 +1725,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         */
        @FluentSetter
        public RestContextBuilder fileFinder(FileFinder value) {
-               return set(REST_fileFinder, value);
+               fileFinder.value(value);
+               return this;
        }
 
        /**
@@ -1664,17 +1735,14 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         * <p>
         * The default file finder.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinderDefault}
-        * </ul>
-        *
         * @param value
         *      The new value for this setting.
         * @return This object (for method chaining).
         */
        @FluentSetter
        public RestContextBuilder fileFinderDefault(Class<? extends FileFinder> 
value) {
-               return set(REST_fileFinderDefault, value);
+               fileFinderDefault.type(value);
+               return this;
        }
 
        /**
@@ -1683,17 +1751,14 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         * <p>
         * The default file finder.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinderDefault}
-        * </ul>
-        *
         * @param value
         *      The new value for this setting.
         * @return This object (for method chaining).
         */
        @FluentSetter
        public RestContextBuilder fileFinderDefault(FileFinder value) {
-               return set(REST_fileFinderDefault, value);
+               fileFinderDefault.value(value);
+               return this;
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index 59d00b7..e4b5bff 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1795,10 +1795,6 @@ public final class RestRequest {
         * <p>
         * Used to retrieve localized files from the classpath for a variety of 
purposes.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_fileFinder}
-        * </ul>
-        *
         * @return The file finder associated with the REST resource object.
         */
        public FileFinder getFileFinder() {
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 d5e0372..21cf019 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
@@ -672,10 +672,6 @@ public @interface Rest {
         *      <li class='jm'>{@link RestContext#getFileFinder()}
         *      <li class='jm'>{@link RestRequest#getFileFinder()}
         * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='jm'>{@link RestContext#REST_fileFinder}
-        * </ul>
         */
        Class<? extends FileFinder> fileFinder() default FileFinder.Null.class;
 
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 fa99c44..6fdd1f1 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
@@ -1062,7 +1062,7 @@ public class RestAnnotation {
                        
string(a.uriRelativity()).map(UriRelativity::valueOf).ifPresent(x -> 
b.uriRelativity(x));
                        
string(a.uriResolution()).map(UriResolution::valueOf).ifPresent(x -> 
b.uriResolution(x));
                        b.prependTo(REST_messages, Tuple2.of(c.inner(), 
string(a.messages()).orElse(null)));
-                       type(a.fileFinder()).ifPresent(x -> 
b.set(REST_fileFinder, x));
+                       type(a.fileFinder()).ifPresent(x -> b.fileFinder(x));
                        type(a.staticFiles()).ifPresent(x -> b.staticFiles(x));
                        string(a.path()).ifPresent(x -> b.path(x));
                        string(a.clientVersionHeader()).ifPresent(x -> 
b.clientVersionHeader(x));

Reply via email to