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

commit 8e39a23d1e3336522be9acfd764b8fd746aaeb6b
Author: JamesBognar <[email protected]>
AuthorDate: Fri Sep 3 10:50:39 2021 -0400

    Context API refactoring.
---
 .../java/org/apache/juneau/rest/RestContext.java   | 87 ++--------------------
 .../org/apache/juneau/rest/RestContextBuilder.java | 70 +++++++++--------
 .../org/apache/juneau/rest/annotation/Rest.java    | 27 ++++++-
 .../juneau/rest/annotation/RestAnnotation.java     |  2 +-
 .../apache/juneau/rest/annotation/RestDelete.java  | 24 ++++--
 .../org/apache/juneau/rest/annotation/RestGet.java | 24 ++++--
 .../org/apache/juneau/rest/annotation/RestOp.java  | 24 ++++--
 .../apache/juneau/rest/annotation/RestPost.java    | 24 ++++--
 .../org/apache/juneau/rest/annotation/RestPut.java | 24 ++++--
 9 files changed, 162 insertions(+), 144 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 862fca7..f981ab6 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
@@ -149,78 +149,6 @@ public class RestContext extends BeanContext {
        public static final String REST_beanStore = PREFIX + ".beanStore.o";
 
        /**
-        * Configuration property:  Default request attributes.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.rest.RestContext#REST_defaultRequestAttributes 
REST_defaultRequestAttributes}
-        *      <li><b>Name:</b>  
<js>"RestContext.defaultRequestAttributes.lo"</js>
-        *      <li><b>Data type:</b>  <c>{@link 
org.apache.juneau.rest.NamedAttribute}[]</c>
-        *      <li><b>System property:</b>  
<c>RestContext.defaultRequestAttributes</c>
-        *      <li><b>Environment variable:</b>  
<c>RESTCONTEXT_DEFAULTREQUESTATTRIBUTES</c>
-        *      <li><b>Default:</b>  empty list
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Rest#defaultRequestAttributes()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.rest.annotation.RestOp#defaultRequestAttributes()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#defaultRequestAttribute(String,Object)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#defaultRequestAttribute(String,Supplier)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.rest.RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * Specifies default values for request attributes if they're not 
already set on the request.
-        *
-        * <ul class='notes'>
-        *      <li>
-        *              Affects values returned by the following methods:
-        *              <ul>
-        *                      <li class='jm'>{@link 
RestRequest#getAttribute(String)}.
-        *                      <li class='jm'>{@link 
RestRequest#getAttributes()}.
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Option #1 - Defined via annotation resolving to a config 
file setting with default value.</jc>
-        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
-        *      <jk>public class</jk> MyResource {
-        *
-        *              <jc>// Option #2 - Defined 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>
-        *                              .defaultRequestAttributes(
-        *                                      
BasicNamedAttribute.<jsm>of</jsm>(<js>"Foo"</js>, <js>"bar"</js>),
-        *                                      
BasicNamedAttribute.<jsm>of</jsm>(<js>"Baz"</js>, <jk>true</jk>)
-        *                              );
-        *
-        *                      <jc>// Same, but using property.</jc>
-        *                      
<jv>builder</jv>.appendTo(<jsf>REST_defaultRequestAttributes</jsf>, 
BasicNamedAttribute.<jsm>of</jsm>(<js>"Foo"</js>, <js>"bar"</js>));
-        *              }
-        *
-        *              <jc>// Option #3 - Defined 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>.defaultRequestAttribute(<js>"Foo"</js>, <js>"bar"</js>);
-        *              }
-        *
-        *              <jc>// Override at the method level.</jc>
-        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
-        *              <jk>public</jk> Object myMethod() {...}
-        *      }
-        * </p>
-        */
-       public static final String REST_defaultRequestAttributes = PREFIX + 
".defaultRequestAttributes.lo";
-
-       /**
         * Configuration property:  Default request headers.
         *
         * <h5 class='section'>Property:</h5>
@@ -1406,7 +1334,7 @@ public class RestContext extends BeanContext {
 
                        defaultRequestHeaders = createDefaultRequestHeaders(r, 
cp, bf).build();
                        defaultResponseHeaders = 
createDefaultResponseHeaders(r, cp, bf).build();
-                       defaultRequestAttributes = 
createDefaultRequestAttributes(r, cp, bf);
+                       defaultRequestAttributes = 
createDefaultRequestAttributes(r, builder, bf);
 
                        opArgs = createOpArgs(r, builder, bf).asArray();
                        hookMethodArgs = createHookMethodArgs(r, cp, 
bf).asArray();
@@ -2857,20 +2785,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 beanStore
         *      The factory used for creating beans and retrieving injected 
beans.
         *      <br>Created by {@link 
#createBeanStore(Object,ContextProperties,RestContext)}.
         * @return The default response headers for this REST object.
         * @throws Exception If stack trace store could not be instantiated.
         */
-       protected NamedAttributeList createDefaultRequestAttributes(Object 
resource, ContextProperties properties, BeanStore beanStore) throws Exception {
-
-               NamedAttributeList x = NamedAttributeList.create();
+       protected NamedAttributeList createDefaultRequestAttributes(Object 
resource, RestContextBuilder builder, BeanStore beanStore) throws Exception {
 
-               
x.appendUnique(properties.getInstanceArray(REST_defaultRequestAttributes, 
NamedAttribute.class, beanStore).orElse(new NamedAttribute[0]));
+               NamedAttributeList x = builder.defaultRequestAttributes;
 
                x = BeanStore
                        .of(beanStore, resource)
@@ -3971,7 +3896,7 @@ public class RestContext extends BeanContext {
         * Returns the default request attributes for this resource.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
         * </ul>
         *
         * @return
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 7092d52..b930672 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
@@ -137,6 +137,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
        BeanRef<RestLogger> callLoggerDefault = BeanRef.of(RestLogger.class);
        BeanRef<RestLogger> callLogger = BeanRef.of(RestLogger.class);
        BeanRef<DebugEnablement> debugEnablement = 
BeanRef.of(DebugEnablement.class);
+       NamedAttributeList defaultRequestAttributes = 
NamedAttributeList.create();
 
        Enablement debugDefault, debug;
 
@@ -1258,51 +1259,48 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        /**
-        * <i><l>RestContext</l> configuration property:&emsp;</i>  Default 
request attribute.
+        * Default request attributes.
         *
         * <p>
-        * Adds a single default request attribute.
+        * Specifies default values for request attributes if they're not 
already set on the request.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        * Affects values returned by the following methods:
+        * <ul>
+        *      <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *      <li class='jm'>{@link RestRequest#getAttributes()}.
         * </ul>
         *
-        * @param name The attribute name.
-        * @param value The attribute value.
-        * @return This object (for method chaining).
-        */
-       @FluentSetter
-       public RestContextBuilder defaultRequestAttribute(String name, Object 
value) {
-               return defaultRequestAttributes(BasicNamedAttribute.of(name, 
value));
-       }
-
-       /**
-        * <i><l>RestContext</l> configuration property:&emsp;</i>  Default 
request attribute.
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <jc>// Option #1 - Defined via annotation resolving to a config 
file setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
         *
-        * <p>
-        * Adds a single default request attribute.
+        *              <jc>// Option #2 - Defined via builder passed in 
through resource constructor.</jc>
+        *              <jk>public</jk> MyResource(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
-        * </ul>
+        *                      <jc>// Using method on builder.</jc>
+        *                      <jv>builder</jv>
+        *                              .defaultRequestAttributes(
+        *                                      
BasicNamedAttribute.<jsm>of</jsm>(<js>"Foo"</js>, <js>"bar"</js>),
+        *                                      
BasicNamedAttribute.<jsm>of</jsm>(<js>"Baz"</js>, <jk>true</jk>)
+        *                              );
+        *              }
         *
-        * @param name The attribute name.
-        * @param value The attribute value supplier.
-        * @return This object (for method chaining).
-        */
-       @FluentSetter
-       public RestContextBuilder defaultRequestAttribute(String name, 
Supplier<?> value) {
-               return defaultRequestAttributes(BasicNamedAttribute.of(name, 
value));
-       }
-
-       /**
-        * <i><l>RestContext</l> configuration property:&emsp;</i>  Default 
request attributes.
+        *              <jc>// Option #3 - Defined 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>.defaultRequestAttribute(<js>"Foo"</js>, <js>"bar"</js>);
+        *              }
         *
-        * <p>
-        * Adds multiple default request attributes.
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
+        * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        * <ul class='notes'>
+        *      <li>Use {@link BasicNamedAttribute#of(String, Supplier)} to 
provide a dynamically changeable attribute value.
         * </ul>
         *
         * @param values The attributes.
@@ -1310,7 +1308,7 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         */
        @FluentSetter
        public RestContextBuilder 
defaultRequestAttributes(NamedAttribute...values) {
-               asList(values).stream().forEach(x -> 
appendTo(REST_defaultRequestAttributes, x));
+               defaultRequestAttributes.appendUnique(values);
                return this;
        }
 
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 bcb8f8a..ae9819f 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
@@ -524,6 +524,26 @@ public @interface Rest {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
+        * </p>
+        *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
@@ -531,7 +551,12 @@ public @interface Rest {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link RestOp#defaultRequestAttributes()}
+        *      <li class='ja'>{@link RestGet#defaultRequestAttributes()}
+        *      <li class='ja'>{@link RestPut#defaultRequestAttributes()}
+        *      <li class='ja'>{@link RestPost#defaultRequestAttributes()}
+        *      <li class='ja'>{@link RestDelete#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};
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 8c5e27a..d50e2af 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
@@ -1045,7 +1045,7 @@ public class RestAnnotation {
                        b.setIf(a.partParser() != HttpPartParser.Null.class, 
REST_partParser, a.partParser());
                        stringStream(a.produces()).map(MediaType::of).forEach(x 
-> b.produces(x));
                        stringStream(a.consumes()).map(MediaType::of).forEach(x 
-> b.consumes(x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(REST_defaultRequestAttributes, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes(x));
                        stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(REST_defaultRequestHeaders, x));
                        stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(REST_defaultResponseHeaders, x));
                        b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
index 7abb5f1..1f230c1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
@@ -207,21 +207,35 @@ public @interface RestDelete {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
-        *      <jc>// Assume "text/json" Accept value when Accept not 
specified</jc>
-        *      <ja>@RestDelete</ja>(path=<js>"/*"</js>, 
defaultRequestAttributes={<js>"Foo: bar"</js>})
-        *      <jk>public</jk> String doDelete()  {...}
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
         * </p>
         *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
-        *              (e.g. <js>"$S{mySystemProperty}"</js>).
+        *              (e.g. <js>"$L{my.localized.variable}"</js>).
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link Rest#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
index ffa3f2a..6c87023 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
@@ -222,21 +222,35 @@ public @interface RestGet {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
-        *      <jc>// Assume "text/json" Accept value when Accept not 
specified</jc>
-        *      <ja>@RestGet</ja>(path=<js>"/*"</js>, 
defaultRequestAttributes={<js>"Foo: bar"</js>})
-        *      <jk>public</jk> String doGet()  {...}
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
         * </p>
         *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
-        *              (e.g. <js>"$S{mySystemProperty}"</js>).
+        *              (e.g. <js>"$L{my.localized.variable}"</js>).
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link Rest#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
index 9d04e3d..be19d0b 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
@@ -277,21 +277,35 @@ public @interface RestOp {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
-        *      <jc>// Assume "text/json" Accept value when Accept not 
specified</jc>
-        *      <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>, 
defaultRequestAttributes={<js>"Foo: bar"</js>})
-        *      <jk>public</jk> String doGet()  {...}
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
         * </p>
         *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
-        *              (e.g. <js>"$S{mySystemProperty}"</js>).
+        *              (e.g. <js>"$L{my.localized.variable}"</js>).
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link Rest#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
index 8a2d8ea..aa53e3c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
@@ -279,21 +279,35 @@ public @interface RestPost {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
-        *      <jc>// Assume "text/json" Accept value when Accept not 
specified</jc>
-        *      <ja>@RestPost</ja>(path=<js>"/*"</js>, 
defaultRequestAttributes={<js>"Foo: bar"</js>})
-        *      <jk>public</jk> String doPost()  {...}
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
         * </p>
         *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
-        *              (e.g. <js>"$S{mySystemProperty}"</js>).
+        *              (e.g. <js>"$L{my.localized.variable}"</js>).
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link Rest#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
index ee284df..f799e79 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
@@ -279,21 +279,35 @@ public @interface RestPut {
         * <p>
         * Specifies default values for request attributes if they're not 
already set on the request.
         *
+        * <p>
+        * Affects values returned by the following methods:
+        *      <ul>
+        *              <li class='jm'>{@link RestRequest#getAttribute(String)}.
+        *              <li class='jm'>{@link RestRequest#getAttributes()}.
+        *      </ul>
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
-        *      <jc>// Assume "text/json" Accept value when Accept not 
specified</jc>
-        *      <ja>@RestPut</ja>(path=<js>"/*"</js>, 
defaultRequestAttributes={<js>"Foo: bar"</js>})
-        *      <jk>public</jk> String doPut()  {...}
+        *      <jc>// Defined via annotation resolving to a config file 
setting with default value.</jc>
+        *      <ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, 
<js>"Baz: $C{REST/myAttributeValue}"</js>})
+        *      <jk>public class</jk> MyResource {
+        *
+        *              <jc>// Override at the method level.</jc>
+        *              <ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: 
bar"</js>})
+        *              <jk>public</jk> Object myMethod() {...}
+        *      }
         * </p>
         *
+        * </ul>
         * <ul class='notes'>
         *      <li>
         *              Supports {@doc RestSvlVariables}
-        *              (e.g. <js>"$S{mySystemProperty}"</js>).
+        *              (e.g. <js>"$L{my.localized.variable}"</js>).
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link RestContext#REST_defaultRequestAttributes}
+        *      <li class='jm'>{@link 
RestContextBuilder#defaultRequestAttributes(NamedAttribute...)}
+        *      <li class='ja'>{@link Rest#defaultRequestAttributes()}
         * </ul>
         */
        String[] defaultRequestAttributes() default {};

Reply via email to