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>"<h1>$L{MyLocalizedPageTitle}</h1>"</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>"<h1>$L{MyLocalizedPageTitle}</h1>"</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;