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 7cd763e  JUNEAU-102 Expanded REST annotations
7cd763e is described below

commit 7cd763ec67a69b491d4527414e14368965c8dd7d
Author: JamesBognar <[email protected]>
AuthorDate: Sun May 12 15:37:40 2019 -0400

    JUNEAU-102 Expanded REST annotations
---
 .../juneau/html/HtmlDocSerializerSession.java      |  4 +-
 .../java/org/apache/juneau/rest/BasicRest.java     | 20 ++---
 .../org/apache/juneau/rest/BasicRestConfig.java    | 99 ++++++++++------------
 .../org/apache/juneau/rest/BasicRestServlet.java   | 22 +++--
 .../org/apache/juneau/rest/HtmlDocBuilder.java     |  4 +
 .../java/org/apache/juneau/rest/RestContext.java   | 38 +++++----
 .../org/apache/juneau/rest/RestContextBuilder.java | 21 +++++
 .../apache/juneau/rest/RestMethodProperties.java   |  1 -
 .../java/org/apache/juneau/rest/RestResponse.java  |  5 ++
 .../org/apache/juneau/rest/annotation/HtmlDoc.java |  4 +
 .../apache/juneau/rest/annotation/RestMethod.java  |  4 +
 .../juneau/rest/annotation/RestResource.java       |  4 +
 .../org/apache/juneau/rest/remote/RrpcServlet.java | 35 ++++----
 .../java/org/apache/juneau/rest/vars/UrlVar.java   |  4 -
 .../org/apache/juneau/rest/vars/WidgetVar.java     | 10 ++-
 15 files changed, 158 insertions(+), 117 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
index c05035d..f552e30 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerSession.java
@@ -36,6 +36,7 @@ public class HtmlDocSerializerSession extends 
HtmlStrippedDocSerializerSession {
        private final HtmlDocSerializer ctx;
        private final String[] navlinks, head, header, nav, aside, footer;
        private final Set<String> style, stylesheet, script;
+       private final boolean nowrap;
 
        /**
         * Create a new session using properties specified in the context.
@@ -62,6 +63,7 @@ public class HtmlDocSerializerSession extends 
HtmlStrippedDocSerializerSession {
                script = new 
LinkedHashSet<>(Arrays.asList(getProperty(HTMLDOC_script, String[].class, 
ctx.getScript())));
 
                head = getProperty(HTMLDOC_head, String[].class, ctx.getHead());
+               nowrap = getProperty(HTMLDOC_nowrap, boolean.class, 
ctx.isNowrap());
 
                varSessionObject(HtmlWidgetVar.SESSION_htmlWidgets, 
ctx.getWidgets());
        }
@@ -209,7 +211,7 @@ public class HtmlDocSerializerSession extends 
HtmlStrippedDocSerializerSession {
         *      <jk>true</jk> if <js>"* {white-space:nowrap}"</js> shoudl be 
added to the CSS instructions on the page to prevent word wrapping.
         */
        protected final boolean isNowrap() {
-               return ctx.isNowrap();
+               return nowrap;
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
index 7b28d07..bc89e7a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
@@ -15,6 +15,7 @@ package org.apache.juneau.rest;
 import javax.servlet.http.*;
 
 import org.apache.juneau.dto.swagger.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.annotation.*;
 
 /**
@@ -26,18 +27,15 @@ import org.apache.juneau.rest.annotation.*;
  * </ul>
  */
 @RestResource(
-
        // Allow OPTIONS requests to be simulated using ?method=OPTIONS query 
parameter.
-       allowedMethodParams="OPTIONS",
-
-       // HTML-page specific settings.
-       htmldoc=@HtmlDoc(
-               // Basic page navigation links.
-               navlinks={
-                       "up: request:/..",
-                       "options: servlet:/?method=OPTIONS"
-               }
-       )
+       allowedMethodParams="OPTIONS"
+)
+@HtmlDocConfig(
+       // Basic page navigation links.
+       navlinks={
+               "up: request:/..",
+               "options: servlet:/?method=OPTIONS"
+       }
 )
 public abstract class BasicRest implements BasicRestConfig {
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestConfig.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestConfig.java
index d489dc4..222899b 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestConfig.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestConfig.java
@@ -13,18 +13,19 @@
 package org.apache.juneau.rest;
 
 import static org.apache.juneau.http.HttpMethodName.*;
-import static org.apache.juneau.serializer.Serializer.*;
 
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.dto.swagger.ui.*;
 import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.jsonschema.annotation.*;
 import org.apache.juneau.msgpack.*;
 import org.apache.juneau.oapi.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.uon.*;
 import org.apache.juneau.urlencoding.*;
@@ -71,45 +72,6 @@ import org.apache.juneau.xmlschema.XmlSchemaDocSerializer;
                PlainTextParser.class
        },
 
-       // Properties to apply to all serializers/parsers and REST-specific API 
objects.
-       properties={
-               // Enable automatic resolution of URI objects to root-relative 
values.
-               @Property(name=SERIALIZER_uriResolution, value="ROOT_RELATIVE")
-       },
-
-       // HTML-page specific settings
-       htmldoc=@HtmlDoc(
-
-               // Default page header contents.
-               header={
-                       "<h1>$R{resourceTitle}</h1>",  // Use 
@RestResource(title)
-                       "<h2>$R{methodSummary,resourceDescription}</h2>", // 
Use either @RestMethod(summary) or @RestResource(description)
-                       "$C{REST/header}"  // Extra header HTML defined in 
external config file.
-               },
-
-               // Basic page navigation links.
-               navlinks={
-                       "up: request:/..",
-                       "options: servlet:/?method=OPTIONS"
-               },
-
-               // Default stylesheet to use for the page.
-               // Can be overridden from external config file.
-               // Default is DevOps look-and-feel (aka Depression 
look-and-feel).
-               stylesheet="$C{REST/theme,servlet:/htdocs/themes/devops.css}",
-
-               // Default contents to add to the <head> section of the HTML 
page.
-               // Use it to add a favicon link to the page.
-               head="$C{REST/head}",
-
-               // No default page footer contents.
-               // Can be overridden from external config file.
-               footer="$C{REST/footer}",
-
-               // By default, table cell contents should not wrap.
-               nowrap="true"
-       ),
-
        // Optional external configuration file.
        config="$S{juneau.configFile,SYSTEM_DEFAULT}",
 
@@ -118,6 +80,41 @@ import org.apache.juneau.xmlschema.XmlSchemaDocSerializer;
        // By default, we define static files through the external 
configuration file.
        staticFiles="$C{REST/staticFiles,htdocs:htdocs}"
 )
+@SerializerConfig(
+       // Enable automatic resolution of URI objects to root-relative values.
+       uriResolution="ROOT_RELATIVE"
+)
+@HtmlDocConfig(
+
+       // Default page header contents.
+       header={
+               "<h1>$R{resourceTitle}</h1>",  // Use @RestResource(title)
+               "<h2>$R{methodSummary,resourceDescription}</h2>", // Use either 
@RestMethod(summary) or @RestResource(description)
+               "$C{REST/header}"  // Extra header HTML defined in external 
config file.
+       },
+
+       // Basic page navigation links.
+       navlinks={
+               "up: request:/..",
+               "options: servlet:/?method=OPTIONS"
+       },
+
+       // Default stylesheet to use for the page.
+       // Can be overridden from external config file.
+       // Default is DevOps look-and-feel (aka Depression look-and-feel).
+       stylesheet="$C{REST/theme,servlet:/htdocs/themes/devops.css}",
+
+       // Default contents to add to the <head> section of the HTML page.
+       // Use it to add a favicon link to the page.
+       head="$C{REST/head}",
+
+       // No default page footer contents.
+       // Can be overridden from external config file.
+       footer="$C{REST/footer}",
+
+       // By default, table cell contents should not wrap.
+       nowrap="true"
+)
 public interface BasicRestConfig {
 
        /**
@@ -127,19 +124,8 @@ public interface BasicRestConfig {
         * @return A bean containing the contents for the OPTIONS page.
         */
        @RestMethod(name=OPTIONS, path="/*",
-
                summary="Swagger documentation",
-               description="Swagger documentation for this resource.",
-
-               htmldoc=@HtmlDoc(
-                       // Override the nav links for the swagger page.
-                       navlinks={
-                               "back: servlet:/",
-                               "json: 
servlet:/?method=OPTIONS&Accept=text/json&plainText=true"
-                       },
-                       // Never show aside contents of page inherited from 
class.
-                       aside="NONE"
-               )
+               description="Swagger documentation for this resource."
        )
        @JsonSchemaConfig(
                // Add descriptions to the following types when not specified:
@@ -161,5 +147,14 @@ public interface BasicRestConfig {
                        SwaggerUI.class
                }
        )
+       @HtmlDocConfig(
+               // Override the nav links for the swagger page.
+               navlinks={
+                       "back: servlet:/",
+                       "json: 
servlet:/?method=OPTIONS&Accept=text/json&plainText=true"
+               },
+               // Never show aside contents of page inherited from class.
+               aside="NONE"
+       )
        public Swagger getOptions(RestRequest req);
 }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
index fe3298d..20d624e 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
@@ -14,6 +14,7 @@ package org.apache.juneau.rest;
 
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.jso.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.plaintext.*;
@@ -144,7 +145,7 @@ import org.apache.juneau.xml.*;
  * <h5 class='section'>Notes:</h5>
  * <ul class='spaced-list'>
  *     <li>
- *             Provides a default HTML stylesheet by setting {@link 
HtmlDoc#stylesheet() @HtmlDoc(stylesheet)}
+ *             Provides a default HTML stylesheet by setting {@link 
HtmlDocConfig#stylesheet() HtmlDocConfig(stylesheet)}
  *             to <js>"styles/juneau.css"</js>.
  *     <li>
  *             Provides a default classpath entry "htdocs" by setting
@@ -159,18 +160,15 @@ import org.apache.juneau.xml.*;
  * </ul>
  */
 @RestResource(
-
        // Allow OPTIONS requests to be simulated using ?method=OPTIONS query 
parameter.
-       allowedMethodParams="OPTIONS",
-
-       // HTML-page specific settings.
-       htmldoc=@HtmlDoc(
-               // Basic page navigation links.
-               navlinks={
-                       "up: request:/..",
-                       "options: servlet:/?method=OPTIONS"
-               }
-       )
+       allowedMethodParams="OPTIONS"
+)
+@HtmlDocConfig(
+       // Basic page navigation links.
+       navlinks={
+               "up: request:/..",
+               "options: servlet:/?method=OPTIONS"
+       }
 )
 public abstract class BasicRestServlet extends RestServlet implements 
BasicRestConfig {
        private static final long serialVersionUID = 1L;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
index a7426fa..f870eff 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
@@ -20,6 +20,7 @@ import java.util.regex.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.utils.*;
 
@@ -41,7 +42,10 @@ import org.apache.juneau.utils.*;
  * <ul>
  *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
  * </ul>
+ *
+ * @deprecated Use {@link HtmlDocConfig}
  */
+@Deprecated
 public class HtmlDocBuilder {
 
        private final ObjectMap properties;
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 48801e5..7ecb99a 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
@@ -36,6 +36,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.config.*;
 import org.apache.juneau.encoders.*;
 import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.http.StreamResource;
 import org.apache.juneau.http.annotation.*;
@@ -2970,7 +2971,10 @@ public final class RestContext extends BeanContext {
         * <ul>
         *      <li class='link'>{@doc 
juneau-rest-server.HtmlDocAnnotation.Widgets}
         * </ul>
+        *
+        * @deprecated Use {@link HtmlDocSerializer#HTMLDOC_widgets}
         */
+       @Deprecated
        public static final String REST_widgets = PREFIX + "widgets.lo";
 
 
@@ -2997,7 +3001,9 @@ public final class RestContext extends BeanContext {
 
        final String fullPath;
 
+       // >>> DEPRECATED - Remove in 9.0 >>>
        private final Map<String,Widget> widgets;
+       // <<<<<<
 
        private final Set<String> allowedMethodParams;
 
@@ -3239,10 +3245,12 @@ public final class RestContext extends BeanContext {
 
                        this.childResources = Collections.synchronizedMap(new 
LinkedHashMap<String,RestContext>());  // Not unmodifiable on purpose so that 
children can be replaced.
 
+                       // >>> DEPRECATED - Remove in 9.0 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        Map<String,Widget> _widgets = new LinkedHashMap<>();
                        for (Widget w : getInstanceArrayProperty(REST_widgets, 
resource, Widget.class, new Widget[0], resourceResolver, ps))
                                _widgets.put(w.getName(), w);
                        this.widgets = unmodifiableMap(_widgets);
+                       // 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
                        
//----------------------------------------------------------------------------------------------------
                        // Initialize the child resources.
@@ -3543,23 +3551,23 @@ public final class RestContext extends BeanContext {
         * </p>
         *
         * <p>
-        * A typical usage pattern involves using variables inside the {@link 
HtmlDoc @HtmlDoc} annotation:
+        * A typical usage pattern involves using variables inside the {@link 
HtmlDocConfig @HtmlDocConfig} annotation:
         * <p class='bcode w800'>
         *      <ja>@RestMethod</ja>(
-        *              name=<jsf>GET</jsf>, path=<js>"/{name}/*"</js>,
-        *              htmldoc=@HtmlDoc(
-        *                      navlinks={
-        *                              <js>"up: $R{requestParentURI}"</js>,
-        *                              <js>"options: 
servlet:/?method=OPTIONS"</js>,
-        *                              <js>"editLevel: 
servlet:/editLevel?logger=$A{attribute.name, OFF}"</js>
-        *                      }
-        *                      header={
-        *                              
<js>"&lt;h1&gt;$L{MyLocalizedPageTitle}&lt;/h1&gt;"</js>
-        *                      },
-        *                      aside={
-        *                              <js>"$F{resources/AsideText.html}"</js>
-        *                      }
-        *              )
+        *              name=<jsf>GET</jsf>, path=<js>"/{name}/*"</js>
+        *      )
+        *      <ja>@HtmlDocConfig</ja>(
+        *              navlinks={
+        *                      <js>"up: $R{requestParentURI}"</js>,
+        *                      <js>"options: servlet:/?method=OPTIONS"</js>,
+        *                      <js>"editLevel: 
servlet:/editLevel?logger=$A{attribute.name, OFF}"</js>
+        *              }
+        *              header={
+        *                      
<js>"&lt;h1&gt;$L{MyLocalizedPageTitle}&lt;/h1&gt;"</js>
+        *              },
+        *              aside={
+        *                      <js>"$F{resources/AsideText.html}"</js>
+        *              }
         *      )
         *      <jk>public</jk> LoggerEntry getLogger(RestRequest req, 
<ja>@Path</ja> String name) <jk>throws</jk> Exception {
         * </p>
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 28c07c1..8950e44 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
@@ -30,6 +30,8 @@ import org.apache.juneau.*;
 import org.apache.juneau.config.*;
 import org.apache.juneau.config.vars.*;
 import org.apache.juneau.encoders.*;
+import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
@@ -108,6 +110,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
        Config config;
        VarResolverBuilder varResolverBuilder;
        String path;
+       @SuppressWarnings("deprecation")
        HtmlDocBuilder htmlDocBuilder;
 
        @SuppressWarnings("deprecation")
@@ -280,10 +283,12 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        /*
         * Calls all @RestHook(INIT) methods on the specified resource object.
         */
+       @SuppressWarnings("deprecation")
        RestContextBuilder init(Object resource) throws ServletException {
                this.resource = resource;
                ClassInfo rci = getClassInfo(resourceClass);
 
+               // >>> DEPRECATED - Remove in 9.0 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                // Once we have the resource object, we can construct the 
Widgets.
                // We want to do that here so that we can update the 
script/style properties while they're still modifiable.
                HtmlDocBuilder hdb = getHtmlDocBuilder();
@@ -294,6 +299,7 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
                        hdb.style("INHERIT", "$W{"+w.getName()+".style}");
                }
                widgetsReplace(widgets);
+               // 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
                Map<String,MethodInfo> map = new LinkedHashMap<>();
                for (MethodInfo m : rci.getAllMethodsParentFirst()) {
@@ -396,7 +402,10 @@ public class RestContextBuilder extends BeanContextBuilder 
implements ServletCon
         * Returns an instance of an HTMLDOC builder for setting 
HTMLDOC-related properties.
         *
         * @return An instance of an HTMLDOC builder for setting 
HTMLDOC-related properties.
+        *
+        * @deprecated Use {@link HtmlDocConfig}
         */
+       @Deprecated
        public HtmlDocBuilder getHtmlDocBuilder() {
                return htmlDocBuilder;
        }
@@ -2128,8 +2137,11 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *
         * @param values The values to add to this setting.
         * @return This object (for method chaining).
+        *
+        * @deprecated Use {@link HtmlDocSerializerBuilder#widgets(Class[])}
         */
        @SuppressWarnings("unchecked")
+       @Deprecated
        public RestContextBuilder widgets(Class<? extends Widget>...values) {
                return addTo(REST_widgets, values);
        }
@@ -2147,8 +2159,11 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *
         * @param values The values to set on this setting.
         * @return This object (for method chaining).
+        *
+        * @deprecated Use {@link 
HtmlDocSerializerBuilder#widgetsReplace(Class[])}
         */
        @SuppressWarnings("unchecked")
+       @Deprecated
        public RestContextBuilder widgetsReplace(Class<? extends 
Widget>...values) {
                return set(REST_widgets, values);
        }
@@ -2166,7 +2181,10 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *
         * @param values The values to add to this setting.
         * @return This object (for method chaining).
+        *
+        * @deprecated Use {@link HtmlDocSerializerBuilder#widgets(Widget[])}
         */
+       @Deprecated
        public RestContextBuilder widgets(Widget...values) {
                return addTo(REST_widgets, values);
        }
@@ -2184,7 +2202,10 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
         *
         * @param values The values to add to this setting.
         * @return This object (for method chaining).
+        *
+        * @deprecated Use {@link 
HtmlDocSerializerBuilder#widgetsReplace(Widget[])}
         */
+       @Deprecated
        public RestContextBuilder widgetsReplace(Widget...values) {
                return set(REST_widgets, values);
        }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
index 075fb81..0207c77 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
@@ -23,7 +23,6 @@ import org.apache.juneau.rest.annotation.*;
  * and adds the following:
  * <ul>
  *     <li class='ja'>{@link RestMethod#properties()}
- *     <li class='ja'>{@link HtmlDoc}
  * </ul>
  *
  * <h5 class='section'>See Also:</h5>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index def364a..97ea9a2 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -26,6 +26,7 @@ import javax.servlet.http.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.encoders.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.httppart.bean.*;
@@ -67,6 +68,7 @@ public final class RestResponse extends 
HttpServletResponseWrapper {
        private ServletOutputStream sos;
        private FinishableServletOutputStream os;
        private FinishablePrintWriter w;
+       @SuppressWarnings("deprecation")
        private HtmlDocBuilder htmlDocBuilder;
 
        private ResponseBeanMeta responseMeta;
@@ -236,7 +238,10 @@ public final class RestResponse extends 
HttpServletResponseWrapper {
         * </ul>
         *
         * @return A new programmatic interface for setting properties for the 
HTML doc view.
+        *
+        * @deprecated Use {@link HtmlDocConfig}
         */
+       @Deprecated
        public HtmlDocBuilder getHtmlDocBuilder() {
                if (htmlDocBuilder == null)
                        htmlDocBuilder = new HtmlDocBuilder(properties);
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
index 52dda82..536920d 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.annotation;
 
 import org.apache.juneau.html.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.widget.*;
 
@@ -82,7 +83,10 @@ import org.apache.juneau.rest.widget.*;
  * <ul>
  *     <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
  * </ul>
+ *
+ * @deprecated Use {@link HtmlDocConfig}
  */
+@Deprecated
 public @interface HtmlDoc {
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
index e809fc6..4b96aa9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
@@ -21,6 +21,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.remote.*;
+import org.apache.juneau.html.annotation.*;
 
 /**
  * Identifies a REST Java method on a {@link RestServlet} implementation class.
@@ -464,7 +465,10 @@ public @interface RestMethod {
         * <ul>
         *      <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
         * </ul>
+        *
+        * @deprecated Use {@link HtmlDocConfig}
         */
+       @Deprecated
        HtmlDoc htmldoc() default @HtmlDoc;
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
index 59f7425..f09d0c8 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
@@ -23,6 +23,7 @@ import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.config.*;
 import org.apache.juneau.encoders.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.*;
@@ -448,7 +449,10 @@ public @interface RestResource {
         * <ul>
         *      <li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
         * </ul>
+        *
+        * @deprecated Use {@link HtmlDocConfig}
         */
+       @Deprecated
        HtmlDoc htmldoc() default @HtmlDoc;
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
index f3f0883..5ad8728 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
@@ -24,6 +24,7 @@ import java.util.concurrent.*;
 
 import org.apache.juneau.dto.*;
 import org.apache.juneau.dto.html5.*;
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.http.annotation.Header;
 import org.apache.juneau.http.annotation.Path;
@@ -90,10 +91,10 @@ public abstract class RrpcServlet extends BasicRestServlet {
                name=GET,
                path="/{javaInterface}",
                summary="List of available methods on interface",
-               description="Shows a list of all the exposed methods on an 
interface.",
-               htmldoc=@HtmlDoc(
-                       nav="<h5>Interface:  $RP{javaInterface}</h5>"
-               )
+               description="Shows a list of all the exposed methods on an 
interface."
+       )
+       @HtmlDocConfig(
+               nav="<h5>Interface:  $RP{javaInterface}</h5>"
        )
        public Collection<LinkString> listMethods(
                        @Path(name="javaInterface", description="Java interface 
name", example="com.foo.MyInterface") String javaInterface
@@ -109,13 +110,13 @@ public abstract class RrpcServlet extends 
BasicRestServlet {
                name=GET,
                path="/{javaInterface}/{javaMethod}",
                summary="Form entry for interface method call",
-               description="Shows a form entry page for executing a remote 
interface method.",
-               htmldoc=@HtmlDoc(
-                       nav={
-                               "<h5>Interface:  $RP{javaInterface}</h5>",
-                               "<h5>Method:  $RP{javaMethod}</h5>"
-                       }
-               )
+               description="Shows a form entry page for executing a remote 
interface method."
+       )
+       @HtmlDocConfig(
+               nav={
+                       "<h5>Interface:  $RP{javaInterface}</h5>",
+                       "<h5>Method:  $RP{javaMethod}</h5>"
+               }
        )
        public Div showEntryForm(
                        @Path(name="javaInterface", description="Java interface 
name", example="com.foo.MyInterface") String javaInterface,
@@ -158,12 +159,6 @@ public abstract class RrpcServlet extends BasicRestServlet 
{
                path="/{javaInterface}/{javaMethod}",
                summary="Invoke an interface method",
                description="Invoke a Java method by passing in the arguments 
as an array of serialized objects.\nThe returned object is then serialized to 
the response.",
-               htmldoc=@HtmlDoc(
-                       nav= {
-                               "<h5>Interface:  $RP{javaInterface}</h5>",
-                               "<h5>Method:  $RP{javaMethod}</h5>"
-                       }
-               ),
                swagger=@MethodSwagger(
                        parameters= {
                                "{",
@@ -182,6 +177,12 @@ public abstract class RrpcServlet extends BasicRestServlet 
{
                        }
                )
        )
+       @HtmlDocConfig(
+               nav= {
+                       "<h5>Interface:  $RP{javaInterface}</h5>",
+                       "<h5>Method:  $RP{javaMethod}</h5>"
+               }
+       )
        public Object invoke(
                        Reader r,
                        ReaderParser p,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
index a1b5581..bf5c9de 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/UrlVar.java
@@ -14,7 +14,6 @@ package org.apache.juneau.rest.vars;
 
 import org.apache.juneau.*;
 import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.svl.*;
 
 /**
@@ -29,9 +28,6 @@ import org.apache.juneau.svl.*;
  *
  * <p>
  * See {@link UriResolver} for the kinds of URIs that can be resolved.
- * <ul>
- *     <li>{@link HtmlDoc#widgets() @HtmlDoc(widgets)}
- * </ul>
  *
  * <p>
  * Uses the URI resolver returned by {@link RestRequest#getUriResolver()}.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
index b404677..1eb76b0 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
@@ -12,8 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.vars;
 
+import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.svl.*;
 
@@ -29,7 +29,7 @@ import org.apache.juneau.svl.*;
  * <p>
  * They're registered via the following mechanisms:
  * <ul>
- *     <li>{@link HtmlDoc#widgets() @HtmlDoc(widgets)}
+ *     <li>{@link HtmlDocConfig#widgets() @HtmlDocConfig(widgets)}
  * </ul>
  *
  * <h5 class='section'>See Also:</h5>
@@ -58,9 +58,10 @@ public class WidgetVar extends SimpleVar {
        public String resolve(VarResolverSession session, String key) throws 
Exception {
                RestRequest req = session.getSessionObject(RestRequest.class, 
SESSION_req, true);
                RestResponse res = session.getSessionObject(RestResponse.class, 
SESSION_res, true);
+
+               // >>> Deprecated - Remove in 9.0 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                boolean isScript = false, isStyle = false;
 
-               // TODO - The following lines are deprecated.
                if (key.endsWith(".script")) {
                        key = key.substring(0, key.length() - 7);
                        isScript = true;
@@ -70,7 +71,8 @@ public class WidgetVar extends SimpleVar {
                        key = key.substring(0, key.length() - 6);
                        isStyle = true;
                }
-
+               // 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+               
                Widget w = req.getWidgets().get(key);
                if (w == null)
                        return "unknown-widget-"+key;

Reply via email to