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 295b497 Javadocs
295b497 is described below
commit 295b4978964f83acb2f4da7f7cc2f6dcf730d45e
Author: JamesBognar <[email protected]>
AuthorDate: Thu Dec 30 10:16:01 2021 -0500
Javadocs
---
.../java/org/apache/juneau/jena/RdfParser.java | 2 -
.../java/org/apache/juneau/jena/RdfSerializer.java | 2 -
.../main/java/org/apache/juneau/BeanContext.java | 1 -
.../org/apache/juneau/BeanTraverseContext.java | 2 -
.../org/apache/juneau/html/HtmlSerializer.java | 2 -
.../java/org/apache/juneau/json/JsonParser.java | 2 -
.../org/apache/juneau/json/JsonSerializer.java | 1 -
.../juneau/jsonschema/JsonSchemaGenerator.java | 1 -
.../apache/juneau/msgpack/MsgPackSerializer.java | 1 -
.../apache/juneau/parser/InputStreamParser.java | 2 -
.../main/java/org/apache/juneau/parser/Parser.java | 2 -
.../org/apache/juneau/parser/ReaderParser.java | 2 -
.../juneau/serializer/OutputStreamSerializer.java | 2 -
.../org/apache/juneau/serializer/Serializer.java | 2 -
.../apache/juneau/serializer/WriterSerializer.java | 1 -
.../main/java/org/apache/juneau/uon/UonParser.java | 2 -
.../java/org/apache/juneau/uon/UonSerializer.java | 2 -
.../juneau/urlencoding/UrlEncodingParser.java | 2 -
.../juneau/urlencoding/UrlEncodingSerializer.java | 2 -
.../main/java/org/apache/juneau/xml/XmlParser.java | 2 -
.../java/org/apache/juneau/xml/XmlSerializer.java | 2 -
.../02.jrs.AnnotatedClasses.html | 14 +-
.../03.jrs.RestOpAnnotatedMethods.html | 2 +-
.../07.jrs.AdditionalInformation.html | 2 +-
.../06.juneau-rest-server/04.jrs.HttpParts.html | 4 +-
.../04.jrs.HttpParts/05.jrs.HttpPartApis.html | 34 +-
.../06.juneau-rest-server/05.jrs.Marshalling.html | 25 +-
.../06.juneau-rest-server/10.jrs.Encoders.html | 14 +-
.../11.jrs.ConfigurationFiles.html | 17 +-
.../06.juneau-rest-server/12.jrs.SvlVariables.html | 83 ++--
.../06.juneau-rest-server/13.jrs.StaticFiles.html | 67 ++-
.../14.jrs.ClientVersioning.html | 6 +-
.../06.juneau-rest-server/15.jrs.InfoProvider.html | 62 ---
.../{16.jrs.Swagger.html => 15.jrs.Swagger.html} | 0
.../01.jrs.BasicRestServletSwagger.html | 0
.../02.jrs.BasicSwaggerInfo.html | 0
.../03.jrs.SwaggerTags.html | 0
.../04.jrs.SwaggerOperations.html | 0
.../05.jrs.SwaggerParameters.html | 0
.../06.jrs.SwaggerParameterExamples.html | 0
.../07.jrs.SwaggerResponses.html | 0
.../08.jrs.SwaggerResponseExamples.html | 0
.../09.jrs.SwaggerModels.html | 0
.../10.jrs.SwaggerStylesheet.html | 0
.../doc-files/jrs.Swagger.Models.1.png | Bin
.../doc-files/jrs.Swagger.Models.2.png | Bin
.../doc-files/jrs.Swagger.Models.3.png | Bin
.../doc-files/jrs.Swagger.Operations.1.png | Bin
.../doc-files/jrs.Swagger.Operations.2.png | Bin
.../doc-files/jrs.Swagger.Operations.3.png | Bin
.../doc-files/jrs.Swagger.Parameters.1.png | Bin
.../doc-files/jrs.Swagger.Parameters.2.png | Bin
.../doc-files/jrs.Swagger.Parameters.3.png | Bin
.../doc-files/jrs.Swagger.Parameters.4.png | Bin
.../doc-files/jrs.Swagger.ResponseExamples.1.png | Bin
.../doc-files/jrs.Swagger.ResponseExamples.2.png | Bin
.../doc-files/jrs.Swagger.ResponseExamples.3.png | Bin
.../doc-files/jrs.Swagger.ResponseExamples.4.png | Bin
...istics.html => 16.jrs.ExecutionStatistics.html} | 0
...notation.html => 17.jrs.HtmlDocAnnotation.html} | 0
.../01.jrs.HtmlUIvsDI.html | 0
.../02.jrs.HtmlWidgets.html | 0
.../03.jrs.HtmlPredefinedWidgets.html | 0
.../04.jrs.HtmlUiCustomization.html | 0
.../05.jrs.HtmlStylesheets.html | 0
.../jrs.HtmlDocAnnotation.PredefinedWidgets.1.png | Bin
.../jrs.HtmlDocAnnotation.PredefinedWidgets.2.png | Bin
.../jrs.HtmlDocAnnotation.PredefinedWidgets.3.png | Bin
.../jrs.HtmlDocAnnotation.PredefinedWidgets.4.png | Bin
...aultHeaders.html => 18.jrs.DefaultHeaders.html} | 0
...ugging.html => 19.jrs.LoggingAndDebugging.html} | 0
...tatusCodes.html => 20.jrs.HttpStatusCodes.html} | 0
...ods.html => 21.jrs.OverloadingHttpMethods.html} | 0
...rameters.html => 22.jrs.BuiltInParameters.html} | 0
...tml => 23.jrs.CustomSerializersAndParsers.html} | 0
...singWithOsgi.html => 24.jrs.UsingWithOsgi.html} | 0
...26.jrs.Injection.html => 25.jrs.Injection.html} | 0
....jrs.OtherNotes.html => 26.jrs.OtherNotes.html} | 0
...rs.RestContext.html => 27.jrs.RestContext.html} | 0
.../{29.jrs.RestRpc.html => 28.jrs.RestRpc.html} | 0
...l => 29.jrs.CustomRestContextsAndBuilders.html} | 0
...rocessors.html => 30.jrs.FluentAssertions.html} | 0
....jrs.UtilityBeans.html => 31.jrs.Overview.html} | 0
...ertions.html => 32.jrs.ResponseProcessors.html} | 0
....jrs.Overview.html => 33.jrs.UtilityBeans.html} | 0
...lizingUris.html => 34.jrs.SerializingUris.html} | 0
juneau-doc/src/main/javadoc/overview.html | 532 +++++++++------------
juneau-doc/src/main/javadoc/resources/docs.txt | 1 -
.../src/main/javadoc/resources/fragments/toc.html | 7 +-
.../java/org/apache/juneau/rest/RestContext.java | 134 +++---
90 files changed, 427 insertions(+), 614 deletions(-)
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index 8ace700..c016a7d 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -13,8 +13,6 @@
package org.apache.juneau.jena;
import static org.apache.juneau.collections.OMap.filteredMap;
-import static org.apache.juneau.internal.SystemEnv.env;
-
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index d9f8f6d..f667d89 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -14,8 +14,6 @@ package org.apache.juneau.jena;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.filteredMap;
-import static org.apache.juneau.internal.SystemEnv.env;
-
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 9793d15..14e8bdb 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -18,7 +18,6 @@ import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.SystemEnv.*;
import static java.util.Optional.*;
import static java.util.Arrays.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
index c7160e7..36b3622 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
@@ -14,8 +14,6 @@ package org.apache.juneau;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 6b3a80e..9aec023 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -13,8 +13,6 @@
package org.apache.juneau.html;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
index 30613af..141a6cf 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -12,8 +12,6 @@
//
***************************************************************************************************************************
package org.apache.juneau.json;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 4ab0900..9385fe9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -12,7 +12,6 @@
//
***************************************************************************************************************************
package org.apache.juneau.json;
-import static org.apache.juneau.internal.SystemEnv.*;
import static org.apache.juneau.collections.OMap.*;
import java.lang.annotation.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index 4fc6926..361a151 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -15,7 +15,6 @@ package org.apache.juneau.jsonschema;
import static org.apache.juneau.collections.OMap.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.SystemEnv.*;
import static java.util.Collections.*;
import java.lang.annotation.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 92148f5..ed10924 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -12,7 +12,6 @@
//
***************************************************************************************************************************
package org.apache.juneau.msgpack;
-import static org.apache.juneau.internal.SystemEnv.*;
import static org.apache.juneau.collections.OMap.*;
import java.lang.annotation.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
index 950c0c7..f161bac 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
@@ -13,8 +13,6 @@
package org.apache.juneau.parser;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
index 1c82398..5e1ad87 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
@@ -14,8 +14,6 @@ package org.apache.juneau.parser;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.io.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
index 9dcb5f9..20ade69 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
@@ -13,8 +13,6 @@
package org.apache.juneau.parser;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
index b379cce..425c59e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
@@ -13,8 +13,6 @@
package org.apache.juneau.serializer;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 4391449..98bae87 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -14,8 +14,6 @@ package org.apache.juneau.serializer;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.io.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index 8a8eb5a..c202fe4 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -13,7 +13,6 @@
package org.apache.juneau.serializer;
import static org.apache.juneau.internal.ThrowableUtils.*;
-import static org.apache.juneau.internal.SystemEnv.*;
import static org.apache.juneau.collections.OMap.*;
import static java.util.Optional.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index 870f9b8..fd2d298 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -13,8 +13,6 @@
package org.apache.juneau.uon;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index 0d23f6d..b6e7729 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -14,8 +14,6 @@ package org.apache.juneau.uon;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 779aab9..5018142 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -13,8 +13,6 @@
package org.apache.juneau.urlencoding;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index be932da..5ef28ac 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -13,8 +13,6 @@
package org.apache.juneau.urlencoding;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index 9fd0cba..ee04580 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -15,8 +15,6 @@ package org.apache.juneau.xml;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index 84aeb94..f165229 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -14,8 +14,6 @@ package org.apache.juneau.xml;
import static java.util.Optional.*;
import static org.apache.juneau.collections.OMap.*;
-import static org.apache.juneau.internal.SystemEnv.*;
-
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses.html
index e561e7a..6293f7a 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses.html
@@ -151,7 +151,7 @@
<p>
In a Spring Boot environment, child classes will typically
extend from these latter two when
implementing REST resources as <ja>@Bean</ja>-annotated Spring
Beans.
- If you extend from one of the servlet classses, Spring Boot
will automatically
+ If you extend from one of the servlet classes, Spring Boot will
automatically
register them as top-level servlets which typically is not the
desired behavior.
</p>
<p>
@@ -160,6 +160,7 @@
<ul class='javatree'>
<li class='jic'>{@link oajr.config.BasicUniversalRest} -
Support for all languages.
<li class='jic'>{@link oajr.config.BasicJsonRest} - Support for
JSON.
+ <li class='jic'>{@link oajr.config.BasicJsonHtmlRest} - Support
for JSON and HTML.
<li class='jic'>{@link oajr.config.BasicSimpleJsonRest} -
Support for simplified JSON.
<li class='jic'>{@link oajr.config.BasicOpenApiRest} - Support
for OpenAPI.
</ul>
@@ -211,11 +212,12 @@
Child REST objects can also be preconfigured with basic
functionality by implementing one of the
following interfaces as well:
</p>
- <ul class='javatree'>
- <li class='jic'>{@link oajr.config.BasicUniversalRest} -
Support for all languages.
- <li class='jic'>{@link oajr.config.BasicJsonRest} - Support for
JSON.
- <li class='jic'>{@link oajr.config.BasicSimpleJsonRest} -
Support for simplified JSON.
- <li class='jic'>{@link oajr.config.BasicOpenApiRest} - Support
for OpenAPI.
+ <ul class='javatreec'>
+ <li class='jic'>{@link oajr.config.BasicUniversalRest}
+ <li class='jic'>{@link oajr.config.BasicJsonRest}
+ <li class='jic'>{@link oajr.config.BasicJsonHtmlRest}
+ <li class='jic'>{@link oajr.config.BasicSimpleJsonRest}
+ <li class='jic'>{@link oajr.config.BasicOpenApiRest}
</ul>
<h5 class='topic'>Path Variables</h5>
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods.html
index ff638e3..e7c9539 100644
---
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods.html
+++
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods.html
@@ -67,7 +67,7 @@
<p>
The following specialized annotations are also provided for
specific HTTP methods:
</p>
- <ul class='javatree'>
+ <ul class='javatreec'>
<li class='ja'>{@link oajr.annotation.RestGet}
<li class='ja'>{@link oajr.annotation.RestPut}
<li class='ja'>{@link oajr.annotation.RestPost}
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods/07.jrs.AdditionalInformation.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods/07.jrs.AdditionalInformation.html
index c547163..33be748 100644
---
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods/07.jrs.AdditionalInformation.html
+++
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.jrs.RestOpAnnotatedMethods/07.jrs.AdditionalInformation.html
@@ -22,7 +22,7 @@
<ul class='javatreec w900'>
<li class='jc'>{@link oajr.RestRequest}
<li class='jc'>{@link oajr.RestResponse}
- <li class='jc'>{@link oajr.RequestBody}
+ <li class='jc'>{@link oajr.httppart.RequestBody}
<li class='jc'>{@link oajr.httppart.RequestHeaders}
<li class='jc'>{@link oajr.httppart.RequestQueryParams}
<li class='jc'>{@link oajr.httppart.RequestFormParams}
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts.html
index 1eab817..9cd63f6 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts.html
@@ -60,8 +60,8 @@
</ul>
<li>Sub-annotations:
<ul class='javatreec'>
- <li class='ja'>{@link oaj.jsonschema.annotation.Schema}
- <li class='ja'>{@link oaj.jsonschema.annotation.Items}
+ <li class='ja'>{@link oaj.http.annotation.Schema}
+ <li class='ja'>{@link oaj.http.annotation.Items}
</ul>
</ul>
<p>
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/05.jrs.HttpPartApis.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/05.jrs.HttpPartApis.html
index 1d16e26..2b25937 100644
---
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/05.jrs.HttpPartApis.html
+++
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/05.jrs.HttpPartApis.html
@@ -28,18 +28,18 @@
</ul>
<h5 class='figure'>Example:</h5>
<p class='bcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public</jk> Object myMethod(RequestHeaders
<jv>headers</jv>) {
-
- <jc>// Add a default value.</jc>
- <jv>headers</jv>.addDefault(<js>"ETag"</js>,
<jsf>DEFAULT_UUID</jsf>);
-
- <jc>// Get a header value as a POJO.</jc>
- UUID <jv>etag</jv> =
<jv>headers</jv>.get(<js>"ETag"</js>).as(UUID.<jk>class</jk>).get();
-
- <jc>// Get a header as a standard HTTP part.</jc>
- ContentType <jv>contentType</jv> =
<jv>headers</jv>.get(ContentType.<jk>class</jk>).orElse(ContentType.<jsf>TEXT_XML</jsf>);
- }
+ | <ja>@RestPost</ja>(...)
+ | <jk>public</jk> Object myMethod(RequestHeaders
<jv>headers</jv>) {
+ |
+ | <jc>// Add a default value.</jc>
+ | <jv>headers</jv>.addDefault(<js>"ETag"</js>,
<jsf>DEFAULT_UUID</jsf>);
+ |
+ | <jc>// Get a header value as a POJO.</jc>
+ | UUID <jv>etag</jv> =
<jv>headers</jv>.get(<js>"ETag"</js>).as(UUID.<jk>class</jk>).get();
+ |
+ | <jc>// Get a header as a standard HTTP
part.</jc>
+ | ContentType <jv>contentType</jv> =
<jv>headers</jv>.get(ContentType.<jk>class</jk>).orElse(ContentType.<jsf>TEXT_XML</jsf>);
+ | }
</p>
<p>
Built in to these APIs are various convenience methods such as
converting parts to
@@ -47,10 +47,10 @@
</p>
<h5 class='figure'>Example:</h5>
<p class='bcode w800'>
- <jc>// Inline fluent assertion and retrieval.</jc>
- String <jv>foo</jv> = <jv>request</jv>
- .getHeader(<js>"Foo"</js>)
- .assertString().contains(<js>"bar"</js>)
- .get();
+ | <jc>// Inline fluent assertion and retrieval.</jc>
+ | String <jv>foo</jv> = <jv>request</jv>
+ | .getHeader(<js>"Foo"</js>)
+ | .assertString().contains(<js>"bar"</js>)
+ | .get();
</p>
</div>
\ No newline at end of file
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
index ec056ef..5c86c9f 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
@@ -56,15 +56,22 @@
The following classes provide common default serializers and
parsers that can be
used as-is or augmented by child classes:
<p>
- <ul class='javatreec'>
- <li class='jic'>{@link oajr.config.BasicUniversalRest}
- <li class='jic'>{@link oajr.config.BasicJsonRest}
- <li class='jic'>{@link oajr.config.BasicSimpleJsonRest}
- <li class='jic'>{@link oajr.config.BasicOpenApiRest}
- <li class='jc'>{@link oajr.BasicRestServlet}
- <li class='jc'>{@link oajr.BasicRestServletGroup}
- <li class='jc'>{@link oajr.BasicRestObject}
- <li class='jc'>{@link oajr.BasicRestObjectGroup}
+ <ul class='javatree'>
+ <li>Classes:
+ <ul class='javatreec'>
+ <li class='jc'>{@link oajr.BasicRestServlet}
+ <li class='jc'>{@link
oajr.BasicRestServletGroup}
+ <li class='jc'>{@link oajr.BasicRestObject}
+ <li class='jc'>{@link oajr.BasicRestObjectGroup}
+ </ul>
+ <li>Interfaces:
+ <ul class='javatreec'>
+ <li class='jic'>{@link
oajr.config.BasicUniversalRest}
+ <li class='jic'>{@link
oajr.config.BasicJsonRest}
+ <li class='jic'>{@link
oajr.config.BasicJsonHtmlRest}
+ <li class='jic'>{@link
oajr.config.BasicSimpleJsonRest}
+ <li class='jic'>{@link
oajr.config.BasicOpenApiRest}
+ </ul>
</ul>
<p>
Serializers and parsers can also be defined programmatically
using an INIT hook method like shown below:
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
index 9626ba1..4fc0250 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
@@ -34,14 +34,10 @@
<p>
Juneau defines the following encoders out-of-the-box:
</p>
- <ul class='javatree'>
- <li class='jac'>
- {@link oaj.encoders.Encoder}
- <ul>
- <li class='jc'>
- {@link oaj.encoders.GzipEncoder}
- <li class='jc'>
- {@link oaj.encoders.IdentityEncoder}
- </ul>
+ <ul class='javatreec'>
+ <li class='jc'>
+ {@link oaj.encoders.GzipEncoder}
+ <li class='jc'>
+ {@link oaj.encoders.IdentityEncoder}
</ul>
</div>
\ No newline at end of file
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
index f90e938..05d78ba 100644
---
a/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
+++
b/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
@@ -45,7 +45,8 @@
| <cs>[MyProperties]</cs>
| <ck>path</ck> = <cv>$E{PATH}</cv>
| <ck>javaHome</ck> = <cv>$S{java.home}</cv>
- | <ck>customMessage</ck> = <cv>Java home is
$C{MyProperties/javaHome} and the environment path is
$C{MyProperties/path}.</cv>
+ | <ck>customMessage</ck> = <cv>Java home is
$C{MyProperties/javaHome} and the
+ | environment path is $C{MyProperties/path}.</cv>
</p>
<p>
These properties are then accessible through the {@link
oaj.config.Config} class.
@@ -53,9 +54,9 @@
<p class='bcode w800'>
| <ja>@RestGet</ja>(<js>"/"</js>)
| <jk>public</jk> String sample(Config <jv>config</jv>) {
- | String <jv>path</jv> =
<jv>config</jv>.getString(<js>"MyProperties/path"</js>);
- | File <jv>javaHome</jv> =
<jv>config</jv>.getObject(<js>"MyProperties/javaHome"</js>,
File.<jk>class</jk>);
- | String <jv>customMessage</jv> =
<jv>config</jv>.getString(<js>"MyProperties/customMessage"</js>);
+ | String <jv>path</jv> =
<jv>config</jv>.get(<js>"MyProperties/path"</js>).get();
+ | File <jv>javaHome</jv> =
<jv>config</jv>.get(<js>"MyProperties/javaHome"</js>).to(File.<jk>class</jk>);
+ | String <jv>customMessage</jv> =
<jv>config</jv>.get(<js>"MyProperties/customMessage"</js>).orElse(<js>"Hello"</js>);
| ...
| }
</p>
@@ -107,8 +108,8 @@
|
| <jk>public</jk> MyResource(RestContext.Builder
builder) {
| Config c = builder.getConfig();
- | <jf>path</jf> =
c.getString(<js>"MyProperties/path"</js>);
- | <jf>javaHome</jf> =
c.getObject(File.<jk>class</jk>, <js>"MyProperties/javaHome"</js>);
+ | <jf>path</jf> =
c.get(<js>"MyProperties/path"</js>).orElse(<js>"mypath"</js>);
+ | <jf>javaHome</jf> =
c.get(<js>"MyProperties/javaHome"</js>).to(File.<jk>class</jk>);
| }
</p>
<p>
@@ -185,8 +186,8 @@
| * Specify the GET parameter "?person=X" for a
specialized message!
| */</jd>
| <ja>@RestGet</ja>(<js>"/"</js>)
- | <jk>public</jk> String sayHello(RestRequest
<jv>req</jv>) {
- | <jk>return</jk>
<jv>req</jv>.getConfig().getString(<js>"HelloWorldResource/message"</js>);
+ | <jk>public</jk> String sayHello(Config
<jv>config</jv>) {
+ | <jk>return</jk>
<jv>config</jv>.getString(<js>"HelloWorldResource/message"</js>);
| }
| }
</p>
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/12.jrs.SvlVariables.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/12.jrs.SvlVariables.html
index f200423..9b2630c 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/12.jrs.SvlVariables.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/12.jrs.SvlVariables.html
@@ -13,7 +13,7 @@
***************************************************************************************************************************/
-->
-{title:'SVL Variables', flags:'todo'}
+{title:'SVL Variables', updated:'9.0.0'}
<div class='topic'>
<p>
@@ -38,46 +38,7 @@
<li>
Variables are recursively resolved.
<br>i.e., if a variable results to a value with another
variable in it, that variable will also be
- resolved (restricted for security reasons on some
variables).
- </ul>
- <p>
- Variables are configured on resources via the following API:
- </p>
- <ul class='javatree'>
- <li class='jm'>{@del oajr.RestContext.Builder#vars(Class[])}
- </ul>
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- | <jc>// Defined a variable that simply wrapps all
strings inside [] brackets.</jc>
- | <jc>// e.g. "$BRACKET{foobar}" -> "[foobar]"</jc>
- | <jk>public class</jk> BracketVar <jk>extends</jk>
SimpleVar {
- |
- | <jk>public</jk> BracketVar() {
- | <jk>super</jk>(<js>"BRACKET"</js>);
- | }
- |
- | <ja>@Override</ja> <jc>/* Var */</jc>
- | <jk>public</jk> String
resolve(VarResolverSession session, String arg) {
- | <jk>return</jk> <js>'['</js> + arg +
<js>']'</js>;
- | }
- | }
- |
- | <jc>// Register it with our resource.</jc>
- | <ja>@Rest</ja>(...)
- | <jk>public class</jk> MyResource {
- |
- | <jk>public</jk> MyResource(RestContext.Builder
builder) {
- | builder.vars(BracketVar.<jk>class</jk>);
- | }
- | }
- </p>
- <p>
- The methods involved with variables are:
- </p>
- <ul class='javatree'>
- <li class='jm'>{@link oajr.RestContext#getVarResolver()}
- <li class='jm'>{@link oajr.RestRequest#getVarResolverSession()}
- <li class='jm'>{@del
RestRequest#getClasspathHttpResource(String,boolean)}
+ resolved (restricted for security reasons on variables
that involve user input).
</ul>
<p>
There are two distinct groups of variables:
@@ -277,11 +238,49 @@
<td class='code'>$U{servlet:/foo?bar=$UE{$RA{bar}}</td>
</tr>
<tr class='dark dd'>
- <td>{@del oajr.vars.WidgetVar}</td>
+ <td>{@link oaj.html.Widget}</td>
<td class='code'>$W{name}</td>
<td style='text-align:center;font-weight:bold'>no</td>
<td style='text-align:center;font-weight:bold'>yes</td>
<td class='code'>$W{MenuItemWidget}</td>
</tr>
</table>
+ <p>
+ Custom variables can be defined on resources via the following
API:
+ </p>
+ <ul class='javatree'>
+ <li class='jm'>{@link oajr.RestContext.Builder#varResolver()}
+ </ul>
+ <h5 class='figure'>Example:</h5>
+ <p class='bcode w800'>
+ | <jc>// Defined a variable that simply wrapps all
strings inside [] brackets.</jc>
+ | <jc>// e.g. "$BRACKET{foobar}" -> "[foobar]"</jc>
+ | <jk>public class</jk> BracketVar <jk>extends</jk>
SimpleVar {
+ |
+ | <jk>public</jk> BracketVar() {
+ | <jk>super</jk>(<js>"BRACKET"</js>);
+ | }
+ |
+ | <ja>@Override</ja> <jc>/* Var */</jc>
+ | <jk>public</jk> String
resolve(VarResolverSession <jv>session</jv>, String <jv>arg</jv>) {
+ | <jk>return</jk> <js>'['</js> +
<jv>arg</jv> + <js>']'</js>;
+ | }
+ | }
+ |
+ | <jc>// Register it with our resource.</jc>
+ | <ja>@Rest</ja>(...)
+ | <jk>public class</jk> MyResource {
+ |
+ | <jk>public</jk> MyResource(RestContext.Builder
<jv>builder</jv>) {
+ |
<jv>builder</jv>.varResolver().vars(BracketVar.<jk>class</jk>);
+ | }
+ | }
+ </p>
+ <p>
+ The methods involved with variables are:
+ </p>
+ <ul class='javatree'>
+ <li class='jm'>{@link oajr.RestContext#getVarResolver()}
+ <li class='jm'>{@link oajr.RestRequest#getVarResolverSession()}
+ </ul>
</div>
\ No newline at end of file
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/13.jrs.StaticFiles.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/13.jrs.StaticFiles.html
index 4200142..3518dc8 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/13.jrs.StaticFiles.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/13.jrs.StaticFiles.html
@@ -13,52 +13,43 @@
***************************************************************************************************************************/
-->
-{title:'Static files', flags:'todo'}
+{title:'Static files', updated:'9.0.0'}
<div class='topic'>
<p>
- The {@link oajr.annotation.Rest#staticFiles @Rest(staticFiles)}
- annotation is used to define paths and locations of
statically-served files such as images or HTML
- documents.
+ The {@link oajr.BasicRestServlet} and {@link
oajr.BasicRestObject} classes come with built-in support
+ for serving up static files through the following REST
operation:
+ </p>
+ <p class='bcode w800'>
+ | <ja>@RestGet</ja>(path=<js>"/htdocs/*"</js>)
+ | <jk>public</jk> HttpResource
getHtdoc(<ja>@Path</ja>("/*") String <jv>path</jv>, Locale <jv>locale</jv>)
<jk>throws</jk> NotFound {
+ | <jk>return</jk>
getContext().getStaticFiles().resolve(<jv>path</jv>,
<jv>locale</jv>).orElseThrow(NotFound::<jk>new</jk>);
+ | }
</p>
<p>
- The value is a JSON map of paths to packages/directories
located on either the classpath or working
- directory.
+ The static file finder can be accessed through the following
methods:
</p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- | <jk>package</jk> com.foo.mypackage;
- |
- | <ja>@Rest</ja>(
- | path=<js>"/myresource"</js>,
- | staticFiles={<js>"htdocs:docs"</js>}
- | )
- | <jk>public class</jk> MyResource <jk>extends</jk>
BasicRestServlet {...}
+ <ul class='javatree'>
+ <li class='jm'>{@link oajr.RestContext#getStaticFiles()}
+ <li class='jm'>{@link oajr.RestRequest#getStaticFiles()}
+ </ul>
+ <p>
+ By default, the {@link oajr.staticfile.StaticFiles} bean is
configured as follows:
</p>
- <p>
- Static files are found by calling {@link
java.lang.Class#getResource(String)} up the class hierarchy.
- If not found, then an attempt is made to find the class in the
Java working directory.
+ <p class='bcode w800'>
+ | StaticFiles
+ | .<jsm>create</jsm>()
+ | .beanStore(<jv>beanStore</jv>) <jc>// Allow
injected beans in constructor.</jc>
+ | .type(BasicStaticFiles.<jk>class</jk>) <jc>//
Default implementation class.</jc>
+ | .dir(<js>"static"</js>) <jc>// Look in working
/static directory.</jc>
+ | .dir(<js>"htdocs"</js>) <jc>// Look in working
/htdocs directory.</jc>
+ | .cp(<jv>resourceClass</jv>, <js>"htdocs"</js>,
<jk>true</jk>) <jc>// Look in htdocs subpackage.</jc>
+ | .cp(<jv>resourceClass</jv>, <js>"/htdocs"</js>,
<jk>true</jk>) <jc>// Look in htdocs package.</jc>
+ | .caching(1_000_000) <jc>// Cache files in
memory up to 1MB.</jc>
+ |
.exclude(<js>"(?i).*\\.(class|properties)"</js>) <jc>// Ignore
class/properties files.</jc>
+ |
.headers(<jsm>cacheControl</jsm>(<js>"max-age=86400, public"</js>)); <jc>//
Add cache control.</jc>
</p>
<p>
- In the example above, given a GET request to
<l>/myresource/htdocs/foobar.html</l>, the servlet will
- attempt to find the <l>foobar.html</l> file in the following
ordered locations:
+ See {@link
oajr.RestContext.Builder#createStaticFiles(BeanStore,Supplier)} for details on
configuring this bean.
</p>
- <ol>
- <li><l>com.foo.mypackage.docs</l> package.
- <li><l>[working-dir]/docs</l> directory.
- </ol>
-
- <ul class='notes'>
- <li>
- Mappings are cumulative from parent to child.
- <br>Child resources can override mappings made on
parent resources.
- <li>
- The media type on the response is determined by the
- {@del RestContext#getMediaTypeForName(String)} method.
- </ul>
-
- <ul class='seealso'>
- <li class='jf'>{@del oajr.RestContext#REST_staticFiles}
- </ul>
</div>
\ No newline at end of file
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/14.jrs.ClientVersioning.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/14.jrs.ClientVersioning.html
index d4bede4..c8b1b38 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/14.jrs.ClientVersioning.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/14.jrs.ClientVersioning.html
@@ -13,7 +13,7 @@
***************************************************************************************************************************/
-->
-{title:'Client Versioning', flags:'todo'}
+{title:'Client Versioning', updated:'9.0.0'}
<div class='topic'>
<p>
@@ -53,8 +53,4 @@
| ...
| }
</p>
-
- <ul class='seealso'>
- <li class='jf'>{@del oajr.RestContext#REST_clientVersionHeader}
- </ul>
</div>
\ No newline at end of file
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.InfoProvider.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.InfoProvider.html
deleted file mode 100644
index 967ebad..0000000
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.InfoProvider.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file
- * distributed with this work for additional information regarding copyright
ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the
- * specific language governing permissions and limitations under the License.
-
***************************************************************************************************************************/
- -->
-
-{title:'RestInfoProvider', flags:'todo'}
-
-<div class='topic'>
- <p>
- The {@del oajr.RestInfoProvider} class is used to find the title
- and description for your resource and also generate the Swagger
documentation.
- It can be overridden to provide your own custom Swagger
documentation.
- </p>
- <p>
- The methods on this interface are:
- </p>
- <ul class='javatree'>
- <li class='jic'>{@del RestInfoProvider}
- <ul>
- <li class='jm'>{@del getSwagger(RestRequest)}
- <li class='jm'>{@del getSiteName(RestRequest)}
- <li class='jm'>{@del getTitle(RestRequest)}
- <li class='jm'>{@del getDescription(RestRequest)}
- <li class='jm'>{@del
getMethodSummary(Method,RestRequest)}
- <li class='jm'>{@del
getMethodDescription(Method,RestRequest)}
- </ul>
- </ul>
- <p>
- The info provider in turn supplies the information returned by
the following methods:
- </p>
- <ul class='javatree'>
- <li class='jc'>{@link oajr.RestRequest}
- <ul>
- <li class='jm'>{@link oajr.RestRequest#getSwagger()
getSwagger()}
- <li class='jm'>{@del getSiteName()}
- <li class='jm'>{@del getResourceTitle()}
- <li class='jm'>{@del getResourceDescription()}
- <li class='jm'>{@del getMethodSummary()}
- <li class='jm'>{@del getMethodDescription()}
- </ul>
- </ul>
- <p>
- Info providers are registered through the following property:
- </p>
- <ul class='javatree'>
- <li class='jf'>{@del RestContext#REST_infoProvider}
- </ul>
- <p>
- While you can implement this interface from scratch, you may
want to instead consider extending
- from the <l>BasicRestInfoProvider</l> class described next.
- </p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/01.jrs.BasicRestServletSwagger.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/01.jrs.BasicRestServletSwagger.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/01.jrs.BasicRestServletSwagger.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/01.jrs.BasicRestServletSwagger.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/03.jrs.SwaggerTags.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/03.jrs.SwaggerTags.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/03.jrs.SwaggerTags.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/03.jrs.SwaggerTags.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/04.jrs.SwaggerOperations.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/04.jrs.SwaggerOperations.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/04.jrs.SwaggerOperations.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/04.jrs.SwaggerOperations.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/05.jrs.SwaggerParameters.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/05.jrs.SwaggerParameters.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/05.jrs.SwaggerParameters.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/05.jrs.SwaggerParameters.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/06.jrs.SwaggerParameterExamples.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/06.jrs.SwaggerParameterExamples.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/06.jrs.SwaggerParameterExamples.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/06.jrs.SwaggerParameterExamples.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/07.jrs.SwaggerResponses.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/07.jrs.SwaggerResponses.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/07.jrs.SwaggerResponses.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/07.jrs.SwaggerResponses.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/08.jrs.SwaggerResponseExamples.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/08.jrs.SwaggerResponseExamples.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/08.jrs.SwaggerResponseExamples.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/08.jrs.SwaggerResponseExamples.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/09.jrs.SwaggerModels.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/09.jrs.SwaggerModels.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/09.jrs.SwaggerModels.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/09.jrs.SwaggerModels.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/10.jrs.SwaggerStylesheet.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/10.jrs.SwaggerStylesheet.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/10.jrs.SwaggerStylesheet.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/10.jrs.SwaggerStylesheet.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.1.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.1.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.1.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.1.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.2.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.2.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.2.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.2.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.3.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.3.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Models.3.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Models.3.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.1.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.1.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.1.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.1.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.2.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.2.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.2.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.2.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.3.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.3.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Operations.3.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Operations.3.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.1.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.1.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.1.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.1.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.2.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.2.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.2.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.2.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.3.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.3.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.3.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.3.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.4.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.4.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.Parameters.4.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.Parameters.4.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.1.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.1.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.1.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.1.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.2.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.2.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.2.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.2.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.3.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.3.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.3.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.3.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.4.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.4.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.4.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/doc-files/jrs.Swagger.ResponseExamples.4.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.ExecutionStatistics.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.ExecutionStatistics.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.ExecutionStatistics.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/16.jrs.ExecutionStatistics.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/01.jrs.HtmlUIvsDI.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/01.jrs.HtmlUIvsDI.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/01.jrs.HtmlUIvsDI.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/01.jrs.HtmlUIvsDI.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/02.jrs.HtmlWidgets.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/02.jrs.HtmlWidgets.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/02.jrs.HtmlWidgets.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/02.jrs.HtmlWidgets.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/03.jrs.HtmlPredefinedWidgets.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/03.jrs.HtmlPredefinedWidgets.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/03.jrs.HtmlPredefinedWidgets.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/03.jrs.HtmlPredefinedWidgets.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/04.jrs.HtmlUiCustomization.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/04.jrs.HtmlUiCustomization.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/04.jrs.HtmlUiCustomization.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/04.jrs.HtmlUiCustomization.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/05.jrs.HtmlStylesheets.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/05.jrs.HtmlStylesheets.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/05.jrs.HtmlStylesheets.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/05.jrs.HtmlStylesheets.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.1.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.1.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.1.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.1.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.2.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.2.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.2.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.2.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.3.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.3.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.3.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.3.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.4.png
b/juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.4.png
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.4.png
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/17.jrs.HtmlDocAnnotation/doc-files/jrs.HtmlDocAnnotation.PredefinedWidgets.4.png
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/19.jrs.DefaultHeaders.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.DefaultHeaders.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/19.jrs.DefaultHeaders.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/18.jrs.DefaultHeaders.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/20.jrs.LoggingAndDebugging.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/19.jrs.LoggingAndDebugging.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/20.jrs.LoggingAndDebugging.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/19.jrs.LoggingAndDebugging.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/21.jrs.HttpStatusCodes.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/20.jrs.HttpStatusCodes.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/21.jrs.HttpStatusCodes.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/20.jrs.HttpStatusCodes.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.OverloadingHttpMethods.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/21.jrs.OverloadingHttpMethods.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.OverloadingHttpMethods.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/21.jrs.OverloadingHttpMethods.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/23.jrs.BuiltInParameters.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.BuiltInParameters.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/23.jrs.BuiltInParameters.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.BuiltInParameters.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.CustomSerializersAndParsers.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/23.jrs.CustomSerializersAndParsers.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.CustomSerializersAndParsers.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/23.jrs.CustomSerializersAndParsers.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/25.jrs.UsingWithOsgi.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.UsingWithOsgi.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/25.jrs.UsingWithOsgi.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.UsingWithOsgi.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/26.jrs.Injection.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/25.jrs.Injection.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/26.jrs.Injection.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/25.jrs.Injection.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/27.jrs.OtherNotes.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/26.jrs.OtherNotes.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/27.jrs.OtherNotes.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/26.jrs.OtherNotes.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.RestContext.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/27.jrs.RestContext.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.RestContext.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/27.jrs.RestContext.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/29.jrs.RestRpc.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.RestRpc.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/29.jrs.RestRpc.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.RestRpc.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/30.jrs.CustomRestContextsAndBuilders.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.jrs.CustomRestContextsAndBuilders.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/30.jrs.CustomRestContextsAndBuilders.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/29.jrs.CustomRestContextsAndBuilders.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/33.jrs.ResponseProcessors.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/30.jrs.FluentAssertions.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/33.jrs.ResponseProcessors.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/30.jrs.FluentAssertions.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/34.jrs.UtilityBeans.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/31.jrs.Overview.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/34.jrs.UtilityBeans.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/31.jrs.Overview.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/31.jrs.FluentAssertions.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/32.jrs.ResponseProcessors.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/31.jrs.FluentAssertions.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/32.jrs.ResponseProcessors.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/32.jrs.Overview.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/33.jrs.UtilityBeans.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/32.jrs.Overview.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/33.jrs.UtilityBeans.html
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/35.jrs.SerializingUris.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/34.jrs.SerializingUris.html
similarity index 100%
rename from
juneau-doc/docs/Topics/06.juneau-rest-server/35.jrs.SerializingUris.html
rename to
juneau-doc/docs/Topics/06.juneau-rest-server/34.jrs.SerializingUris.html
diff --git a/juneau-doc/src/main/javadoc/overview.html
b/juneau-doc/src/main/javadoc/overview.html
index 46753b0..1d216d3 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -377,10 +377,9 @@
<li><p><a class='doclink'
href='#juneau-rest-server.jrs.LocalizedMessages'>Localized Messages</a><span
class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='#juneau-rest-server.jrs.Encoders'>Encoders</a><span
class='update'>updated: <b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='#juneau-rest-server.jrs.ConfigurationFiles'>Configuration Files</a><span
class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink'
href='#juneau-rest-server.jrs.SvlVariables'>SVL Variables</a><span
class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='#juneau-rest-server.jrs.StaticFiles'>Static files</a><span
class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='#juneau-rest-server.jrs.ClientVersioning'>Client Versioning</a><span
class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='#juneau-rest-server.jrs.InfoProvider'>RestInfoProvider</a><span
class='update'><b><red>todo</red></b></span></p>
+ <li><p><a class='doclink'
href='#juneau-rest-server.jrs.SvlVariables'>SVL Variables</a><span
class='update'>updated: <b>9.0.0</b></span></p>
+ <li><p><a class='doclink'
href='#juneau-rest-server.jrs.StaticFiles'>Static files</a><span
class='update'>updated: <b>9.0.0</b></span></p>
+ <li><p><a class='doclink'
href='#juneau-rest-server.jrs.ClientVersioning'>Client Versioning</a><span
class='update'>updated: <b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='#juneau-rest-server.jrs.Swagger'>Swagger</a><span
class='update'><b><red>todo</red></b></span></p>
<ol>
<li><p><a class='doclink'
href='#juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'>BasicRestServlet</a><span
class='update'>updated: 8.1.0, <b><red>todo</red></b></span></p>
@@ -14298,7 +14297,7 @@
</p>
<ul class='javatree'>
<li class='jc'>{@link org.apache.juneau.config.Config}
- <ul>
+ <ul class='javatreec'>
<li class='jm'>{@link
org.apache.juneau.config.Config#getSystemDefault() getSystemDefault()}
<li class='jm'>{@link
org.apache.juneau.config.Config#setSystemDefault(Config)
setSystemDefault(Config)}
</ul>
@@ -14693,7 +14692,7 @@
<p>
In a Spring Boot environment, child classes will typically
extend from these latter two when
implementing REST resources as <ja>@Bean</ja>-annotated Spring
Beans.
- If you extend from one of the servlet classses, Spring Boot
will automatically
+ If you extend from one of the servlet classes, Spring Boot will
automatically
register them as top-level servlets which typically is not the
desired behavior.
</p>
<p>
@@ -14702,6 +14701,7 @@
<ul class='javatree'>
<li class='jic'>{@link
org.apache.juneau.rest.config.BasicUniversalRest} - Support for all languages.
<li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonRest} - Support for JSON.
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonHtmlRest} - Support for JSON and HTML.
<li class='jic'>{@link
org.apache.juneau.rest.config.BasicSimpleJsonRest} - Support for simplified
JSON.
<li class='jic'>{@link
org.apache.juneau.rest.config.BasicOpenApiRest} - Support for OpenAPI.
</ul>
@@ -14753,11 +14753,12 @@
Child REST objects can also be preconfigured with basic
functionality by implementing one of the
following interfaces as well:
</p>
- <ul class='javatree'>
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicUniversalRest} - Support for all languages.
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonRest} - Support for JSON.
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicSimpleJsonRest} - Support for simplified
JSON.
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicOpenApiRest} - Support for OpenAPI.
+ <ul class='javatreec'>
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicUniversalRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonHtmlRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicSimpleJsonRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicOpenApiRest}
</ul>
<h5 class='topic'>Path Variables</h5>
@@ -15313,7 +15314,7 @@
<p>
The following specialized annotations are also provided for
specific HTTP methods:
</p>
- <ul class='javatree'>
+ <ul class='javatreec'>
<li class='ja'>{@link org.apache.juneau.rest.annotation.RestGet}
<li class='ja'>{@link org.apache.juneau.rest.annotation.RestPut}
<li class='ja'>{@link
org.apache.juneau.rest.annotation.RestPost}
@@ -15956,7 +15957,7 @@
<ul class='javatreec w900'>
<li class='jc'>{@link org.apache.juneau.rest.RestRequest}
<li class='jc'>{@link org.apache.juneau.rest.RestResponse}
- <li class='jc'>{@link org.apache.juneau.rest.RequestBody}
+ <li class='jc'>{@link
org.apache.juneau.rest.httppart.RequestBody}
<li class='jc'>{@link
org.apache.juneau.rest.httppart.RequestHeaders}
<li class='jc'>{@link
org.apache.juneau.rest.httppart.RequestQueryParams}
<li class='jc'>{@link
org.apache.juneau.rest.httppart.RequestFormParams}
@@ -16016,8 +16017,8 @@
</ul>
<li>Sub-annotations:
<ul class='javatreec'>
- <li class='ja'>{@link
org.apache.juneau.jsonschema.annotation.Schema}
- <li class='ja'>{@link
org.apache.juneau.jsonschema.annotation.Items}
+ <li class='ja'>{@link
org.apache.juneau.http.annotation.Schema}
+ <li class='ja'>{@link
org.apache.juneau.http.annotation.Items}
</ul>
</ul>
<p>
@@ -16744,18 +16745,18 @@
</ul>
<h5 class='figure'>Example:</h5>
<p class='bcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public</jk> Object myMethod(RequestHeaders
<jv>headers</jv>) {
+ <ja>@RestPost</ja>(...)
+ <jk>public</jk> Object myMethod(RequestHeaders <jv>headers</jv>) {
- <jc>// Add a default value.</jc>
- <jv>headers</jv>.addDefault(<js>"ETag"</js>,
<jsf>DEFAULT_UUID</jsf>);
+ <jc>// Add a default value.</jc>
+ <jv>headers</jv>.addDefault(<js>"ETag"</js>,
<jsf>DEFAULT_UUID</jsf>);
- <jc>// Get a header value as a POJO.</jc>
- UUID <jv>etag</jv> =
<jv>headers</jv>.get(<js>"ETag"</js>).as(UUID.<jk>class</jk>).get();
+ <jc>// Get a header value as a POJO.</jc>
+ UUID <jv>etag</jv> =
<jv>headers</jv>.get(<js>"ETag"</js>).as(UUID.<jk>class</jk>).get();
- <jc>// Get a header as a standard HTTP part.</jc>
- ContentType <jv>contentType</jv> =
<jv>headers</jv>.get(ContentType.<jk>class</jk>).orElse(ContentType.<jsf>TEXT_XML</jsf>);
- }
+ <jc>// Get a header as a standard HTTP part.</jc>
+ ContentType <jv>contentType</jv> =
<jv>headers</jv>.get(ContentType.<jk>class</jk>).orElse(ContentType.<jsf>TEXT_XML</jsf>);
+ }
</p>
<p>
Built in to these APIs are various convenience methods such as
converting parts to
@@ -16763,11 +16764,11 @@
</p>
<h5 class='figure'>Example:</h5>
<p class='bcode w800'>
- <jc>// Inline fluent assertion and retrieval.</jc>
- String <jv>foo</jv> = <jv>request</jv>
- .getHeader(<js>"Foo"</js>)
- .assertString().contains(<js>"bar"</js>)
- .get();
+ <jc>// Inline fluent assertion and retrieval.</jc>
+ String <jv>foo</jv> = <jv>request</jv>
+ .getHeader(<js>"Foo"</js>)
+ .assertString().contains(<js>"bar"</js>)
+ .get();
</p>
</div>
</div><!-- END: 6.4.5 - juneau-rest-server.jrs.HttpParts.jrs.HttpPartApis -->
@@ -16818,15 +16819,22 @@
The following classes provide common default serializers and
parsers that can be
used as-is or augmented by child classes:
<p>
- <ul class='javatreec'>
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicUniversalRest}
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonRest}
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicSimpleJsonRest}
- <li class='jic'>{@link
org.apache.juneau.rest.config.BasicOpenApiRest}
- <li class='jc'>{@link org.apache.juneau.rest.BasicRestServlet}
- <li class='jc'>{@link
org.apache.juneau.rest.BasicRestServletGroup}
- <li class='jc'>{@link org.apache.juneau.rest.BasicRestObject}
- <li class='jc'>{@link
org.apache.juneau.rest.BasicRestObjectGroup}
+ <ul class='javatree'>
+ <li>Classes:
+ <ul class='javatreec'>
+ <li class='jc'>{@link
org.apache.juneau.rest.BasicRestServlet}
+ <li class='jc'>{@link
org.apache.juneau.rest.BasicRestServletGroup}
+ <li class='jc'>{@link
org.apache.juneau.rest.BasicRestObject}
+ <li class='jc'>{@link
org.apache.juneau.rest.BasicRestObjectGroup}
+ </ul>
+ <li>Interfaces:
+ <ul class='javatreec'>
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicUniversalRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicJsonHtmlRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicSimpleJsonRest}
+ <li class='jic'>{@link
org.apache.juneau.rest.config.BasicOpenApiRest}
+ </ul>
</ul>
<p>
Serializers and parsers can also be defined programmatically
using an INIT hook method like shown below:
@@ -17311,15 +17319,11 @@
<p>
Juneau defines the following encoders out-of-the-box:
</p>
- <ul class='javatree'>
- <li class='jac'>
- {@link org.apache.juneau.encoders.Encoder}
- <ul>
- <li class='jc'>
- {@link org.apache.juneau.encoders.GzipEncoder}
- <li class='jc'>
- {@link
org.apache.juneau.encoders.IdentityEncoder}
- </ul>
+ <ul class='javatreec'>
+ <li class='jc'>
+ {@link org.apache.juneau.encoders.GzipEncoder}
+ <li class='jc'>
+ {@link org.apache.juneau.encoders.IdentityEncoder}
</ul>
</div>
</div><!-- END: 6.10 - juneau-rest-server.jrs.Encoders -->
@@ -17358,7 +17362,8 @@
<cs>[MyProperties]</cs>
<ck>path</ck> = <cv>$E{PATH}</cv>
<ck>javaHome</ck> = <cv>$S{java.home}</cv>
- <ck>customMessage</ck> = <cv>Java home is $C{MyProperties/javaHome} and
the environment path is $C{MyProperties/path}.</cv>
+ <ck>customMessage</ck> = <cv>Java home is $C{MyProperties/javaHome} and
the
+ environment path is $C{MyProperties/path}.</cv>
</p>
<p>
These properties are then accessible through the {@link
org.apache.juneau.config.Config} class.
@@ -17366,9 +17371,9 @@
<p class='bcode w800'>
<ja>@RestGet</ja>(<js>"/"</js>)
<jk>public</jk> String sample(Config <jv>config</jv>) {
- String <jv>path</jv> =
<jv>config</jv>.getString(<js>"MyProperties/path"</js>);
- File <jv>javaHome</jv> =
<jv>config</jv>.getObject(<js>"MyProperties/javaHome"</js>,
File.<jk>class</jk>);
- String <jv>customMessage</jv> =
<jv>config</jv>.getString(<js>"MyProperties/customMessage"</js>);
+ String <jv>path</jv> =
<jv>config</jv>.get(<js>"MyProperties/path"</js>).get();
+ File <jv>javaHome</jv> =
<jv>config</jv>.get(<js>"MyProperties/javaHome"</js>).to(File.<jk>class</jk>);
+ String <jv>customMessage</jv> =
<jv>config</jv>.get(<js>"MyProperties/customMessage"</js>).orElse(<js>"Hello"</js>);
...
}
</p>
@@ -17420,8 +17425,8 @@
<jk>public</jk> MyResource(RestContext.Builder builder) {
Config c = builder.getConfig();
- <jf>path</jf> =
c.getString(<js>"MyProperties/path"</js>);
- <jf>javaHome</jf> = c.getObject(File.<jk>class</jk>,
<js>"MyProperties/javaHome"</js>);
+ <jf>path</jf> =
c.get(<js>"MyProperties/path"</js>).orElse(<js>"mypath"</js>);
+ <jf>javaHome</jf> =
c.get(<js>"MyProperties/javaHome"</js>).to(File.<jk>class</jk>);
}
</p>
<p>
@@ -17498,8 +17503,8 @@
* Specify the GET parameter "?person=X" for a specialized
message!
*/</jd>
<ja>@RestGet</ja>(<js>"/"</js>)
- <jk>public</jk> String sayHello(RestRequest <jv>req</jv>) {
- <jk>return</jk>
<jv>req</jv>.getConfig().getString(<js>"HelloWorldResource/message"</js>);
+ <jk>public</jk> String sayHello(Config <jv>config</jv>) {
+ <jk>return</jk>
<jv>config</jv>.getString(<js>"HelloWorldResource/message"</js>);
}
}
</p>
@@ -17512,7 +17517,7 @@
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.SvlVariables'
id='juneau-rest-server.jrs.SvlVariables'>6.12 - SVL Variables</a><span
class='update'><b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.SvlVariables'
id='juneau-rest-server.jrs.SvlVariables'>6.12 - SVL Variables</a><span
class='update'>updated: <b>9.0.0</b></span></h3>
<div class='topic'><!-- START: 6.12 - juneau-rest-server.jrs.SvlVariables -->
<div class='topic'>
<p>
@@ -17537,46 +17542,7 @@
<li>
Variables are recursively resolved.
<br>i.e., if a variable results to a value with another
variable in it, that variable will also be
- resolved (restricted for security reasons on some
variables).
- </ul>
- <p>
- Variables are configured on resources via the following API:
- </p>
- <ul class='javatree'>
- <li class='jm'>{@del
org.apache.juneau.rest.RestContext.Builder#vars(Class[])}
- </ul>
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <jc>// Defined a variable that simply wrapps all strings inside []
brackets.</jc>
- <jc>// e.g. "$BRACKET{foobar}" -> "[foobar]"</jc>
- <jk>public class</jk> BracketVar <jk>extends</jk> SimpleVar {
-
- <jk>public</jk> BracketVar() {
- <jk>super</jk>(<js>"BRACKET"</js>);
- }
-
- <ja>@Override</ja> <jc>/* Var */</jc>
- <jk>public</jk> String resolve(VarResolverSession session,
String arg) {
- <jk>return</jk> <js>'['</js> + arg + <js>']'</js>;
- }
- }
-
- <jc>// Register it with our resource.</jc>
- <ja>@Rest</ja>(...)
- <jk>public class</jk> MyResource {
-
- <jk>public</jk> MyResource(RestContext.Builder builder) {
- builder.vars(BracketVar.<jk>class</jk>);
- }
- }
- </p>
- <p>
- The methods involved with variables are:
- </p>
- <ul class='javatree'>
- <li class='jm'>{@link
org.apache.juneau.rest.RestContext#getVarResolver()}
- <li class='jm'>{@link
org.apache.juneau.rest.RestRequest#getVarResolverSession()}
- <li class='jm'>{@del
RestRequest#getClasspathHttpResource(String,boolean)}
+ resolved (restricted for security reasons on variables
that involve user input).
</ul>
<p>
There are two distinct groups of variables:
@@ -17776,72 +17742,101 @@
<td class='code'>$U{servlet:/foo?bar=$UE{$RA{bar}}</td>
</tr>
<tr class='dark dd'>
- <td>{@del org.apache.juneau.rest.vars.WidgetVar}</td>
+ <td>{@link org.apache.juneau.html.Widget}</td>
<td class='code'>$W{name}</td>
<td style='text-align:center;font-weight:bold'>no</td>
<td style='text-align:center;font-weight:bold'>yes</td>
<td class='code'>$W{MenuItemWidget}</td>
</tr>
</table>
+ <p>
+ Custom variables can be defined on resources via the following
API:
+ </p>
+ <ul class='javatree'>
+ <li class='jm'>{@link
org.apache.juneau.rest.RestContext.Builder#varResolver()}
+ </ul>
+ <h5 class='figure'>Example:</h5>
+ <p class='bcode w800'>
+ <jc>// Defined a variable that simply wrapps all strings inside []
brackets.</jc>
+ <jc>// e.g. "$BRACKET{foobar}" -> "[foobar]"</jc>
+ <jk>public class</jk> BracketVar <jk>extends</jk> SimpleVar {
+
+ <jk>public</jk> BracketVar() {
+ <jk>super</jk>(<js>"BRACKET"</js>);
+ }
+
+ <ja>@Override</ja> <jc>/* Var */</jc>
+ <jk>public</jk> String resolve(VarResolverSession
<jv>session</jv>, String <jv>arg</jv>) {
+ <jk>return</jk> <js>'['</js> + <jv>arg</jv> +
<js>']'</js>;
+ }
+ }
+
+ <jc>// Register it with our resource.</jc>
+ <ja>@Rest</ja>(...)
+ <jk>public class</jk> MyResource {
+
+ <jk>public</jk> MyResource(RestContext.Builder
<jv>builder</jv>) {
+
<jv>builder</jv>.varResolver().vars(BracketVar.<jk>class</jk>);
+ }
+ }
+ </p>
+ <p>
+ The methods involved with variables are:
+ </p>
+ <ul class='javatree'>
+ <li class='jm'>{@link
org.apache.juneau.rest.RestContext#getVarResolver()}
+ <li class='jm'>{@link
org.apache.juneau.rest.RestRequest#getVarResolverSession()}
+ </ul>
</div>
</div><!-- END: 6.12 - juneau-rest-server.jrs.SvlVariables -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.StaticFiles'
id='juneau-rest-server.jrs.StaticFiles'>6.13 - Static files</a><span
class='update'><b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.StaticFiles'
id='juneau-rest-server.jrs.StaticFiles'>6.13 - Static files</a><span
class='update'>updated: <b>9.0.0</b></span></h3>
<div class='topic'><!-- START: 6.13 - juneau-rest-server.jrs.StaticFiles -->
<div class='topic'>
<p>
- The {@link org.apache.juneau.rest.annotation.Rest#staticFiles
@Rest(staticFiles)}
- annotation is used to define paths and locations of
statically-served files such as images or HTML
- documents.
+ The {@link org.apache.juneau.rest.BasicRestServlet} and {@link
org.apache.juneau.rest.BasicRestObject} classes come with built-in support
+ for serving up static files through the following REST
operation:
+ </p>
+ <p class='bcode w800'>
+ <ja>@RestGet</ja>(path=<js>"/htdocs/*"</js>)
+ <jk>public</jk> HttpResource getHtdoc(<ja>@Path</ja>("/*") String
<jv>path</jv>, Locale <jv>locale</jv>) <jk>throws</jk> NotFound {
+ <jk>return</jk>
getContext().getStaticFiles().resolve(<jv>path</jv>,
<jv>locale</jv>).orElseThrow(NotFound::<jk>new</jk>);
+ }
</p>
<p>
- The value is a JSON map of paths to packages/directories
located on either the classpath or working
- directory.
+ The static file finder can be accessed through the following
methods:
</p>
-
- <h5 class='figure'>Example:</h5>
- <p class='bcode w800'>
- <jk>package</jk> com.foo.mypackage;
-
- <ja>@Rest</ja>(
- path=<js>"/myresource"</js>,
- staticFiles={<js>"htdocs:docs"</js>}
- )
- <jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {...}
+ <ul class='javatree'>
+ <li class='jm'>{@link
org.apache.juneau.rest.RestContext#getStaticFiles()}
+ <li class='jm'>{@link
org.apache.juneau.rest.RestRequest#getStaticFiles()}
+ </ul>
+ <p>
+ By default, the {@link
org.apache.juneau.rest.staticfile.StaticFiles} bean is configured as follows:
</p>
- <p>
- Static files are found by calling {@link
java.lang.Class#getResource(String)} up the class hierarchy.
- If not found, then an attempt is made to find the class in the
Java working directory.
+ <p class='bcode w800'>
+ StaticFiles
+ .<jsm>create</jsm>()
+ .beanStore(<jv>beanStore</jv>) <jc>// Allow injected beans in
constructor.</jc>
+ .type(BasicStaticFiles.<jk>class</jk>) <jc>// Default
implementation class.</jc>
+ .dir(<js>"static"</js>) <jc>// Look in working /static
directory.</jc>
+ .dir(<js>"htdocs"</js>) <jc>// Look in working /htdocs
directory.</jc>
+ .cp(<jv>resourceClass</jv>, <js>"htdocs"</js>, <jk>true</jk>)
<jc>// Look in htdocs subpackage.</jc>
+ .cp(<jv>resourceClass</jv>, <js>"/htdocs"</js>, <jk>true</jk>)
<jc>// Look in htdocs package.</jc>
+ .caching(1_000_000) <jc>// Cache files in memory up to
1MB.</jc>
+ .exclude(<js>"(?i).*\\.(class|properties)"</js>) <jc>// Ignore
class/properties files.</jc>
+ .headers(<jsm>cacheControl</jsm>(<js>"max-age=86400,
public"</js>)); <jc>// Add cache control.</jc>
</p>
<p>
- In the example above, given a GET request to
<l>/myresource/htdocs/foobar.html</l>, the servlet will
- attempt to find the <l>foobar.html</l> file in the following
ordered locations:
+ See {@link
org.apache.juneau.rest.RestContext.Builder#createStaticFiles(BeanStore,Supplier)}
for details on configuring this bean.
</p>
- <ol>
- <li><l>com.foo.mypackage.docs</l> package.
- <li><l>[working-dir]/docs</l> directory.
- </ol>
-
- <ul class='notes'>
- <li>
- Mappings are cumulative from parent to child.
- <br>Child resources can override mappings made on
parent resources.
- <li>
- The media type on the response is determined by the
- {@del RestContext#getMediaTypeForName(String)} method.
- </ul>
-
- <ul class='seealso'>
- <li class='jf'>{@del
org.apache.juneau.rest.RestContext#REST_staticFiles}
- </ul>
</div>
</div><!-- END: 6.13 - juneau-rest-server.jrs.StaticFiles -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ClientVersioning'
id='juneau-rest-server.jrs.ClientVersioning'>6.14 - Client Versioning</a><span
class='update'><b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ClientVersioning'
id='juneau-rest-server.jrs.ClientVersioning'>6.14 - Client Versioning</a><span
class='update'>updated: <b>9.0.0</b></span></h3>
<div class='topic'><!-- START: 6.14 - juneau-rest-server.jrs.ClientVersioning
-->
<div class='topic'>
<p>
@@ -17881,68 +17876,13 @@
...
}
</p>
-
- <ul class='seealso'>
- <li class='jf'>{@del
org.apache.juneau.rest.RestContext#REST_clientVersionHeader}
- </ul>
</div>
</div><!-- END: 6.14 - juneau-rest-server.jrs.ClientVersioning -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.InfoProvider'
id='juneau-rest-server.jrs.InfoProvider'>6.15 - RestInfoProvider</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.15 - juneau-rest-server.jrs.InfoProvider -->
-<div class='topic'>
- <p>
- The {@del org.apache.juneau.rest.RestInfoProvider} class is
used to find the title
- and description for your resource and also generate the Swagger
documentation.
- It can be overridden to provide your own custom Swagger
documentation.
- </p>
- <p>
- The methods on this interface are:
- </p>
- <ul class='javatree'>
- <li class='jic'>{@del RestInfoProvider}
- <ul>
- <li class='jm'>{@del getSwagger(RestRequest)}
- <li class='jm'>{@del getSiteName(RestRequest)}
- <li class='jm'>{@del getTitle(RestRequest)}
- <li class='jm'>{@del getDescription(RestRequest)}
- <li class='jm'>{@del
getMethodSummary(Method,RestRequest)}
- <li class='jm'>{@del
getMethodDescription(Method,RestRequest)}
- </ul>
- </ul>
- <p>
- The info provider in turn supplies the information returned by
the following methods:
- </p>
- <ul class='javatree'>
- <li class='jc'>{@link org.apache.juneau.rest.RestRequest}
- <ul>
- <li class='jm'>{@link
org.apache.juneau.rest.RestRequest#getSwagger() getSwagger()}
- <li class='jm'>{@del getSiteName()}
- <li class='jm'>{@del getResourceTitle()}
- <li class='jm'>{@del getResourceDescription()}
- <li class='jm'>{@del getMethodSummary()}
- <li class='jm'>{@del getMethodDescription()}
- </ul>
- </ul>
- <p>
- Info providers are registered through the following property:
- </p>
- <ul class='javatree'>
- <li class='jf'>{@del RestContext#REST_infoProvider}
- </ul>
- <p>
- While you can implement this interface from scratch, you may
want to instead consider extending
- from the <l>BasicRestInfoProvider</l> class described next.
- </p>
-</div>
-</div><!-- END: 6.15 - juneau-rest-server.jrs.InfoProvider -->
-
-<!--
====================================================================================================
-->
-
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger' id='juneau-rest-server.jrs.Swagger'>6.16
- Swagger</a><span class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.16 - juneau-rest-server.jrs.Swagger -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger' id='juneau-rest-server.jrs.Swagger'>6.15
- Swagger</a><span class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.15 - juneau-rest-server.jrs.Swagger -->
<div class='topic'>
<p>
One of the most useful features of Juneau is the ability to
generate Swagger-based OPTIONS pages for self-documenting designs
@@ -17960,8 +17900,8 @@
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'
id='juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'>6.16.1 -
BasicRestServlet</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.1 -
juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'
id='juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'>6.15.1 -
BasicRestServlet</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.1 -
juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger -->
<div class='topic'>
<p>
Any subclass of {@link org.apache.juneau.rest.BasicRestServlet}
gets an auto-generated Swagger UI when performing an <c>OPTIONS</c>
@@ -18038,12 +17978,12 @@
your own <ja>@RestOp</ja>-annotated method that returns a
{@link org.apache.juneau.dto.swagger.Swagger} object and a {@link
org.apache.juneau.dto.swagger.ui.SwaggerUI} swap.
</p>
</div>
-</div><!-- END: 6.16.1 -
juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger -->
+</div><!-- END: 6.15.1 -
juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo'
id='juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo'>6.16.2 - Basic Swagger
Info</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.2 -
juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo'
id='juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo'>6.15.2 - Basic Swagger
Info</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.2 -
juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo -->
<div class='topic'>
<p>
Let's look at the various parts of the <c>Petstore</c>
application Swagger UI to see how they are defined.
@@ -18206,12 +18146,12 @@
<li>Swagger JSON file
</ol>
</div>
-</div><!-- END: 6.16.2 - juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo
-->
+</div><!-- END: 6.15.2 - juneau-rest-server.jrs.Swagger.jrs.BasicSwaggerInfo
-->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerTags'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerTags'>6.16.3 - Tags</a><span
class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.3 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerTags -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerTags'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerTags'>6.15.3 - Tags</a><span
class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.3 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerTags -->
<div class='topic'>
<p>
Tags allow you to group operations into general categories.
@@ -18308,12 +18248,12 @@
</p>
<img class='bordered w900' src='doc-files/jrs.Swagger.5.png'>
</div>
-</div><!-- END: 6.16.3 - juneau-rest-server.jrs.Swagger.jrs.SwaggerTags -->
+</div><!-- END: 6.15.3 - juneau-rest-server.jrs.Swagger.jrs.SwaggerTags -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations'>6.16.4 -
Operations</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.4 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations'>6.15.4 -
Operations</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.4 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations -->
<div class='topic'>
<p>
<ja>@RestOp</ja>-annotated methods automatically get rendered
as Swagger operations:
@@ -18353,12 +18293,12 @@
}
</p>
</div>
-</div><!-- END: 6.16.4 - juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations
-->
+</div><!-- END: 6.15.4 - juneau-rest-server.jrs.Swagger.jrs.SwaggerOperations
-->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters'>6.16.5 -
Parameters</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.5 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters'>6.15.5 -
Parameters</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.5 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters -->
<div class='topic'>
<p>
Expanding operations shows you a list of parameters:
@@ -18492,12 +18432,12 @@
Note that the schema information on the body parameter is
automatically detected if not provided.
</p>
</div>
-</div><!-- END: 6.16.5 - juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters
-->
+</div><!-- END: 6.15.5 - juneau-rest-server.jrs.Swagger.jrs.SwaggerParameters
-->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples'>6.16.6 -
Parameter Examples</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.6 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples'>6.15.6 -
Parameter Examples</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.6 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples -->
<div class='topic'>
<p>
The <c>model</c> select box in the parameters can be expanded
to show examples:
@@ -18719,12 +18659,12 @@
</ul>
</ul>
</div>
-</div><!-- END: 6.16.6 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples -->
+</div><!-- END: 6.15.6 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerParameterExamples -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses'>6.16.7 -
Responses</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.7 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses'>6.15.7 -
Responses</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.7 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses -->
<div class='topic'>
<p>
Under the input parameters are listed the possible responses
for the resource:
@@ -18763,12 +18703,12 @@
<li class='link'>{@doc jrs.ResponseBeans}
</ul>
</div>
-</div><!-- END: 6.16.7 - juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses
-->
+</div><!-- END: 6.15.7 - juneau-rest-server.jrs.Swagger.jrs.SwaggerResponses
-->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples'>6.16.8 -
Response Examples</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.8 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples'>6.15.8 -
Response Examples</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.8 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples -->
<div class='topic'>
<p>
The <c>model</c> select box in the responses can be expanded to
show examples:
@@ -18988,12 +18928,12 @@
}
</p>
</div>
-</div><!-- END: 6.16.8 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples -->
+</div><!-- END: 6.15.8 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerResponseExamples -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerModels'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerModels'>6.16.9 - Models</a><span
class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.9 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerModels -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerModels'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerModels'>6.15.9 - Models</a><span
class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.9 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerModels -->
<div class='topic'>
<p>
The {@del
org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_useBeanDefs}
setting can be used to reduce the size of your
@@ -19088,12 +19028,12 @@
</p>
<img class='bordered w900' src='doc-files/jrs.Swagger.Models.3.png'>
</div>
-</div><!-- END: 6.16.9 - juneau-rest-server.jrs.Swagger.jrs.SwaggerModels -->
+</div><!-- END: 6.15.9 - juneau-rest-server.jrs.Swagger.jrs.SwaggerModels -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet'>6.16.10 -
SwaggerUI.css</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.16.10 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet'
id='juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet'>6.15.10 -
SwaggerUI.css</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.15.10 -
juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet -->
<div class='topic'>
<p>
The look-and-feel of the Swagger UI is controlled via a single
CSS file: <c>SwaggerUI.css</c>.
@@ -19104,13 +19044,13 @@
This file can be modified to change the look-and-feel of your
Swagger UI.
</p>
</div>
-</div><!-- END: 6.16.10 - juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet
-->
-</div><!-- END: 6.16 - juneau-rest-server.jrs.Swagger -->
+</div><!-- END: 6.15.10 - juneau-rest-server.jrs.Swagger.jrs.SwaggerStylesheet
-->
+</div><!-- END: 6.15 - juneau-rest-server.jrs.Swagger -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ExecutionStatistics'
id='juneau-rest-server.jrs.ExecutionStatistics'>6.17 - REST method execution
statistics</a><span class='update'>created: 8.1.3,
<b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.17 -
juneau-rest-server.jrs.ExecutionStatistics -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ExecutionStatistics'
id='juneau-rest-server.jrs.ExecutionStatistics'>6.16 - REST method execution
statistics</a><span class='update'>created: 8.1.3,
<b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.16 -
juneau-rest-server.jrs.ExecutionStatistics -->
<div class='topic'>
<p>
<ja>@RestResource</ja> annotated classes get automated timing
and error statistic information for all <ja>@RestOp</ja>
@@ -19138,12 +19078,12 @@
</ul>
</ul>
</div>
-</div><!-- END: 6.17 - juneau-rest-server.jrs.ExecutionStatistics -->
+</div><!-- END: 6.16 - juneau-rest-server.jrs.ExecutionStatistics -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation'
id='juneau-rest-server.jrs.HtmlDocAnnotation'>6.18 - @HtmlDocConfig</a><span
class='update'>updated: 8.1.0, <b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.18 - juneau-rest-server.jrs.HtmlDocAnnotation
-->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation'
id='juneau-rest-server.jrs.HtmlDocAnnotation'>6.17 - @HtmlDocConfig</a><span
class='update'>updated: 8.1.0, <b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.17 - juneau-rest-server.jrs.HtmlDocAnnotation
-->
<div class='topic'>
<p>
The {@link org.apache.juneau.html.annotation.HtmlDocConfig
@HtmlDocConfig} annotation is used to customize the HTML
@@ -19261,8 +19201,8 @@
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI'>6.18.1 - User
Interfaces (UI) vs. Developer Interfaces (DI)</a><span
class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.18.1 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI'>6.17.1 - User
Interfaces (UI) vs. Developer Interfaces (DI)</a><span
class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.17.1 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI -->
<div class='topic'>
<p>
An important distinction needs to be made about the HTML
representations produced by the REST
@@ -19305,12 +19245,12 @@
Angular, or any number of sophisticated Javascript UI
frameworks. Resist the urge to do so.
</ul>
</div>
-</div><!-- END: 6.18.1 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI -->
+</div><!-- END: 6.17.1 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUIvsDI -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets'>6.18.2 -
Widgets</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.18.2 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets'>6.17.2 -
Widgets</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.17.2 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets -->
<div class='topic'>
<p>
The {@link org.apache.juneau.rest.widget.Widget} class allows
you to add arbitrary HTML, CSS, and Javascript
@@ -19425,12 +19365,12 @@
<li class='jf'>{@del
org.apache.juneau.rest.RestContext#REST_widgets}
</ul>
</div>
-</div><!-- END: 6.18.2 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets -->
+</div><!-- END: 6.17.2 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlWidgets -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets'>6.18.3
- Predefined Widgets</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.18.3 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets'>6.17.3
- Predefined Widgets</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.17.3 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets -->
<div class='topic'>
<p>
The {@link org.apache.juneau.rest.widget} package contains
predefined reusable widgets.
@@ -19667,12 +19607,12 @@
}
</p>
</div>
-</div><!-- END: 6.18.3 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets -->
+</div><!-- END: 6.17.3 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlPredefinedWidgets -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization'>6.18.4 -
UI Customization</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.18.4 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization'>6.17.4 -
UI Customization</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.17.4 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization -->
<div class='topic'>
<p>
The HTML views of POJOs can somewhat be considered a
rudimentary User Interface.
@@ -19818,12 +19758,12 @@
<li class='link'>{@doc jmj.UiCustomization}
</ul>
</div>
-</div><!-- END: 6.18.4 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization -->
+</div><!-- END: 6.17.4 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlUiCustomization -->
<!--
====================================================================================================
-->
-<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets'>6.18.5 -
Stylesheets</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.18.5 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets -->
+<h5 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets'
id='juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets'>6.17.5 -
Stylesheets</a><span class='update'>updated: 8.1.0,
<b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.17.5 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets -->
<div class='topic'>
<p>
The sample root page renders in the default "devops"
look-and-feel:
@@ -19935,13 +19875,13 @@
}
</p>
</div>
-</div><!-- END: 6.18.5 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets -->
-</div><!-- END: 6.18 - juneau-rest-server.jrs.HtmlDocAnnotation -->
+</div><!-- END: 6.17.5 -
juneau-rest-server.jrs.HtmlDocAnnotation.jrs.HtmlStylesheets -->
+</div><!-- END: 6.17 - juneau-rest-server.jrs.HtmlDocAnnotation -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.DefaultHeaders'
id='juneau-rest-server.jrs.DefaultHeaders'>6.19 - Default Headers</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.19 - juneau-rest-server.jrs.DefaultHeaders -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.DefaultHeaders'
id='juneau-rest-server.jrs.DefaultHeaders'>6.18 - Default Headers</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.18 - juneau-rest-server.jrs.DefaultHeaders -->
<div class='topic'>
<p>
The following annotations are provided for specifying default
header values for requests and responses:
@@ -19985,12 +19925,12 @@
</li>
</ul>
</div>
-</div><!-- END: 6.19 - juneau-rest-server.jrs.DefaultHeaders -->
+</div><!-- END: 6.18 - juneau-rest-server.jrs.DefaultHeaders -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.LoggingAndDebugging'
id='juneau-rest-server.jrs.LoggingAndDebugging'>6.20 - Logging /
Debugging</a><span class='update'>created: 8.1.0, updated: 8.2.0,
<b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.20 -
juneau-rest-server.jrs.LoggingAndDebugging -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.LoggingAndDebugging'
id='juneau-rest-server.jrs.LoggingAndDebugging'>6.19 - Logging /
Debugging</a><span class='update'>created: 8.1.0, updated: 8.2.0,
<b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.19 -
juneau-rest-server.jrs.LoggingAndDebugging -->
<div class='topic'>
<p>
The REST APIs provides support for fine-tuned control of
logging for HTTP requests and responses.
@@ -20323,12 +20263,12 @@
to the log file again.
</p>
</div>
-</div><!-- END: 6.20 - juneau-rest-server.jrs.LoggingAndDebugging -->
+</div><!-- END: 6.19 - juneau-rest-server.jrs.LoggingAndDebugging -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HttpStatusCodes'
id='juneau-rest-server.jrs.HttpStatusCodes'>6.21 - HTTP Status Codes</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.21 - juneau-rest-server.jrs.HttpStatusCodes
-->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.HttpStatusCodes'
id='juneau-rest-server.jrs.HttpStatusCodes'>6.20 - HTTP Status Codes</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.20 - juneau-rest-server.jrs.HttpStatusCodes
-->
<div class='topic'>
<p>
By default, a 200 (OK) status is automatically set as the HTTP
status when a Java method executes
@@ -20393,12 +20333,12 @@
</tr>
</table>
</div>
-</div><!-- END: 6.21 - juneau-rest-server.jrs.HttpStatusCodes -->
+</div><!-- END: 6.20 - juneau-rest-server.jrs.HttpStatusCodes -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.OverloadingHttpMethods'
id='juneau-rest-server.jrs.OverloadingHttpMethods'>6.22 - Overloading HTTP
Methods</a><span class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.22 -
juneau-rest-server.jrs.OverloadingHttpMethods -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.OverloadingHttpMethods'
id='juneau-rest-server.jrs.OverloadingHttpMethods'>6.21 - Overloading HTTP
Methods</a><span class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.21 -
juneau-rest-server.jrs.OverloadingHttpMethods -->
<div class='topic'>
<p>
Through the use of the built-in <l>"method"</l> GET parameter,
you can implement requests beyond the basic
@@ -20424,12 +20364,12 @@
)
</p>
</div>
-</div><!-- END: 6.22 - juneau-rest-server.jrs.OverloadingHttpMethods -->
+</div><!-- END: 6.21 - juneau-rest-server.jrs.OverloadingHttpMethods -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.BuiltInParameters'
id='juneau-rest-server.jrs.BuiltInParameters'>6.23 - Built-in
Parameters</a><span class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.23 - juneau-rest-server.jrs.BuiltInParameters
-->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.BuiltInParameters'
id='juneau-rest-server.jrs.BuiltInParameters'>6.22 - Built-in
Parameters</a><span class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.22 - juneau-rest-server.jrs.BuiltInParameters
-->
<div class='topic'>
<p>
The following URL parameters have special meaning and can be
passed in through the URL of the request:
@@ -20491,12 +20431,12 @@
</tr>
</table>
</div>
-</div><!-- END: 6.23 - juneau-rest-server.jrs.BuiltInParameters -->
+</div><!-- END: 6.22 - juneau-rest-server.jrs.BuiltInParameters -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.CustomSerializersAndParsers'
id='juneau-rest-server.jrs.CustomSerializersAndParsers'>6.24 - Custom
Serializers and Parsers</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.24 -
juneau-rest-server.jrs.CustomSerializersAndParsers -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.CustomSerializersAndParsers'
id='juneau-rest-server.jrs.CustomSerializersAndParsers'>6.23 - Custom
Serializers and Parsers</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.23 -
juneau-rest-server.jrs.CustomSerializersAndParsers -->
<div class='topic'>
<p>
A very easy-to-use API is provided for defining your own
serializers and parsers at both the servlet and
@@ -20613,12 +20553,12 @@
}
</p>
</div>
-</div><!-- END: 6.24 - juneau-rest-server.jrs.CustomSerializersAndParsers -->
+</div><!-- END: 6.23 - juneau-rest-server.jrs.CustomSerializersAndParsers -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.UsingWithOsgi'
id='juneau-rest-server.jrs.UsingWithOsgi'>6.25 - Using with OSGi</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.25 - juneau-rest-server.jrs.UsingWithOsgi -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.UsingWithOsgi'
id='juneau-rest-server.jrs.UsingWithOsgi'>6.24 - Using with OSGi</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.24 - juneau-rest-server.jrs.UsingWithOsgi -->
<div class='topic'>
<p>
Since REST servlets are basically just <l>HttpServlets</l>,
incorporating them into an OSGi environment
@@ -20682,12 +20622,12 @@
}
</p>
</div>
-</div><!-- END: 6.25 - juneau-rest-server.jrs.UsingWithOsgi -->
+</div><!-- END: 6.24 - juneau-rest-server.jrs.UsingWithOsgi -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Injection'
id='juneau-rest-server.jrs.Injection'>6.26 - Using with Spring and Injection
frameworks</a><span class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.26 - juneau-rest-server.jrs.Injection -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Injection'
id='juneau-rest-server.jrs.Injection'>6.25 - Using with Spring and Injection
frameworks</a><span class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.25 - juneau-rest-server.jrs.Injection -->
<div class='topic'>
<p>
The Juneau REST server API is compatible with dependency
injection frameworks such as Spring.
@@ -20791,12 +20731,12 @@
}
</p>
</div>
-</div><!-- END: 6.26 - juneau-rest-server.jrs.Injection -->
+</div><!-- END: 6.25 - juneau-rest-server.jrs.Injection -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.OtherNotes'
id='juneau-rest-server.jrs.OtherNotes'>6.27 - Other Notes</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.27 - juneau-rest-server.jrs.OtherNotes -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.OtherNotes'
id='juneau-rest-server.jrs.OtherNotes'>6.26 - Other Notes</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.26 - juneau-rest-server.jrs.OtherNotes -->
<div class='topic'>
<ul class='spaced-list'>
<li>
@@ -20809,12 +20749,12 @@
parameter can be specified:
<l>"/sample?X-Response-Headers={Refresh=1}"</l>
</ul>
</div>
-</div><!-- END: 6.27 - juneau-rest-server.jrs.OtherNotes -->
+</div><!-- END: 6.26 - juneau-rest-server.jrs.OtherNotes -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.RestContext'
id='juneau-rest-server.jrs.RestContext'>6.28 - RestContext</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.28 - juneau-rest-server.jrs.RestContext -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.RestContext'
id='juneau-rest-server.jrs.RestContext'>6.27 - RestContext</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.27 - juneau-rest-server.jrs.RestContext -->
<div class='topic'>
<p>
The {@link org.apache.juneau.rest.RestContext} object is the
workhorse class for all of the configuration
@@ -20864,12 +20804,12 @@
resource finders, info providers, etc...
</p>
</div>
-</div><!-- END: 6.28 - juneau-rest-server.jrs.RestContext -->
+</div><!-- END: 6.27 - juneau-rest-server.jrs.RestContext -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.RestRpc' id='juneau-rest-server.jrs.RestRpc'>6.29
- REST/RPC</a><span class='update'>updated: 8.0.0,
<b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.29 - juneau-rest-server.jrs.RestRpc -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.RestRpc' id='juneau-rest-server.jrs.RestRpc'>6.28
- REST/RPC</a><span class='update'>updated: 8.0.0,
<b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.28 - juneau-rest-server.jrs.RestRpc -->
<div class='topic'>
<p>
The REST/RPC (RPC over REST) API allows the creation of
client-side remote proxy interfaces for calling methods on server-side POJOs
using entirely REST.
@@ -21190,12 +21130,12 @@
<h5 class='figure'>Sample form entry page results</h5>
<img class='bordered w800' src='doc-files/jrs.restRPC.9.png'>
</div>
-</div><!-- END: 6.29 - juneau-rest-server.jrs.RestRpc -->
+</div><!-- END: 6.28 - juneau-rest-server.jrs.RestRpc -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.CustomRestContextsAndBuilders'
id='juneau-rest-server.jrs.CustomRestContextsAndBuilders'>6.30 - Custom REST
Context and Builders</a><span class='update'>created: <b>9.0.0</b>,
<b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.30 -
juneau-rest-server.jrs.CustomRestContextsAndBuilders -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.CustomRestContextsAndBuilders'
id='juneau-rest-server.jrs.CustomRestContextsAndBuilders'>6.29 - Custom REST
Context and Builders</a><span class='update'>created: <b>9.0.0</b>,
<b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.29 -
juneau-rest-server.jrs.CustomRestContextsAndBuilders -->
<div class='topic'>
<p>
They can also be defined programmatically:
@@ -21229,56 +21169,56 @@
}
</p>
</div>
-</div><!-- END: 6.30 - juneau-rest-server.jrs.CustomRestContextsAndBuilders -->
+</div><!-- END: 6.29 - juneau-rest-server.jrs.CustomRestContextsAndBuilders -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.FluentAssertions'
id='juneau-rest-server.jrs.FluentAssertions'>6.31 - Fluent Assertions</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
-<div class='topic'><!-- START: 6.31 - juneau-rest-server.jrs.FluentAssertions
-->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.FluentAssertions'
id='juneau-rest-server.jrs.FluentAssertions'>6.30 - Fluent Assertions</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
+<div class='topic'><!-- START: 6.30 - juneau-rest-server.jrs.FluentAssertions
-->
<div class='topic'>
<p>
TODO
</p>
</div>
-</div><!-- END: 6.31 - juneau-rest-server.jrs.FluentAssertions -->
+</div><!-- END: 6.30 - juneau-rest-server.jrs.FluentAssertions -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Overview'
id='juneau-rest-server.jrs.Overview'>6.32 - Utility Beans</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
-<div class='topic'><!-- START: 6.32 - juneau-rest-server.jrs.Overview -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.Overview'
id='juneau-rest-server.jrs.Overview'>6.31 - Utility Beans</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
+<div class='topic'><!-- START: 6.31 - juneau-rest-server.jrs.Overview -->
<div class='topic'>
<p>
TODO
</p>
</div>
-</div><!-- END: 6.32 - juneau-rest-server.jrs.Overview -->
+</div><!-- END: 6.31 - juneau-rest-server.jrs.Overview -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ResponseProcessors'
id='juneau-rest-server.jrs.ResponseProcessors'>6.33 - Fluent
Assertions</a><span class='update'>created: <b>9.0.0</b>,
<b><red>TODO</red></b></span></h3>
-<div class='topic'><!-- START: 6.33 -
juneau-rest-server.jrs.ResponseProcessors -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.ResponseProcessors'
id='juneau-rest-server.jrs.ResponseProcessors'>6.32 - Fluent
Assertions</a><span class='update'>created: <b>9.0.0</b>,
<b><red>TODO</red></b></span></h3>
+<div class='topic'><!-- START: 6.32 -
juneau-rest-server.jrs.ResponseProcessors -->
<div class='topic'>
<p>
TODO
</p>
</div>
-</div><!-- END: 6.33 - juneau-rest-server.jrs.ResponseProcessors -->
+</div><!-- END: 6.32 - juneau-rest-server.jrs.ResponseProcessors -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.UtilityBeans'
id='juneau-rest-server.jrs.UtilityBeans'>6.34 - Utility Beans</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
-<div class='topic'><!-- START: 6.34 - juneau-rest-server.jrs.UtilityBeans -->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.UtilityBeans'
id='juneau-rest-server.jrs.UtilityBeans'>6.33 - Utility Beans</a><span
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></h3>
+<div class='topic'><!-- START: 6.33 - juneau-rest-server.jrs.UtilityBeans -->
<div class='topic'>
<p>
TODO
</p>
</div>
-</div><!-- END: 6.34 - juneau-rest-server.jrs.UtilityBeans -->
+</div><!-- END: 6.33 - juneau-rest-server.jrs.UtilityBeans -->
<!--
====================================================================================================
-->
-<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.SerializingUris'
id='juneau-rest-server.jrs.SerializingUris'>6.35 - URIs</a><span
class='update'><b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 6.35 - juneau-rest-server.jrs.SerializingUris
-->
+<h3 class='topic' onclick='toggle(this)'><a
href='#juneau-rest-server.jrs.SerializingUris'
id='juneau-rest-server.jrs.SerializingUris'>6.34 - URIs</a><span
class='update'><b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 6.34 - juneau-rest-server.jrs.SerializingUris
-->
<div class='topic'>
<p>
As mention earlier {@doc jm.MarshallingUris here}, Juneau
serializers have sophisticated support for transforming relative URIs to
absolute form.
@@ -21360,7 +21300,7 @@
URIs are resolved by both regular and part serializers.
</p>
</div>
-</div><!-- END: 6.35 - juneau-rest-server.jrs.SerializingUris -->
+</div><!-- END: 6.34 - juneau-rest-server.jrs.SerializingUris -->
</div><!-- END: 6 - juneau-rest-server -->
<!--
====================================================================================================
-->
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt
b/juneau-doc/src/main/javadoc/resources/docs.txt
index d6c0966..6ee1798 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -277,7 +277,6 @@ jrs.HttpPartApis =
#juneau-rest-server.jrs.HttpParts.jrs.HttpPartApis, Overview
jrs.HttpParts = #juneau-rest-server.jrs.HttpParts, Overview >
juneau-rest-server > HTTP Parts
jrs.HttpStatusCodes = #juneau-rest-server.jrs.HttpStatusCodes, Overview >
juneau-rest-server > HTTP Status Codes
jrs.InferredHttpMethodsAndPaths =
#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.InferredHttpMethodsAndPaths,
Overview > juneau-rest-server > @RestOp-Annotated Methods > Inferred HTTP
Methods and Paths
-jrs.InfoProvider = #juneau-rest-server.jrs.InfoProvider, Overview >
juneau-rest-server > RestInfoProvider
jrs.Injection = #juneau-rest-server.jrs.Injection, Overview >
juneau-rest-server > Using with Spring and Injection frameworks
jrs.JavaMethodParameters =
#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.JavaMethodParameters,
Overview > juneau-rest-server > @RestOp-Annotated Methods > Java Method
Parameters
jrs.JavaMethodReturnTypes =
#juneau-rest-server.jrs.RestOpAnnotatedMethods.jrs.JavaMethodReturnTypes,
Overview > juneau-rest-server > @RestOp-Annotated Methods > Java Method Return
Types
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 2b9baca..125752a 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -231,10 +231,9 @@
<li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.LocalizedMessages'>Localized
Messages</a><span class='update'>updated: 8.2.0,<b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.Encoders'>Encoders</a><span
class='update'>updated: <b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.ConfigurationFiles'>Configuration
Files</a><span class='update'>updated: <b>9.0.0</b></span></p>
- <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.SvlVariables'>SVL
Variables</a><span class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.StaticFiles'>Static files</a><span
class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.ClientVersioning'>Client
Versioning</a><span class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.InfoProvider'>RestInfoProvider</a><span
class='update'><b><red>todo</red></b></span></p>
+ <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.SvlVariables'>SVL
Variables</a><span class='update'>updated: <b>9.0.0</b></span></p>
+ <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.StaticFiles'>Static files</a><span
class='update'>updated: <b>9.0.0</b></span></p>
+ <li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.ClientVersioning'>Client
Versioning</a><span class='update'>updated: <b>9.0.0</b></span></p>
<li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.Swagger'>Swagger</a><span
class='update'><b><red>todo</red></b></span></p>
<ol>
<li><p><a class='doclink'
href='{OVERVIEW_URL}#juneau-rest-server.jrs.Swagger.jrs.BasicRestServletSwagger'>BasicRestServlet</a><span
class='update'>updated: 8.1.0, <b><red>todo</red></b></span></p>
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 969806c..b199850 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
@@ -20,7 +20,6 @@ import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.SystemEnv.*;
import static org.apache.juneau.rest.HttpRuntimeException.*;
import static org.apache.juneau.rest.logging.RestLoggingDetail.*;
import static org.apache.juneau.rest.processor.ResponseProcessor.*;
@@ -2741,96 +2740,78 @@ public class RestContext extends Context {
* <p>
* The static file finder is instantiated via the {@link
RestContext.Builder#createStaticFiles(BeanStore,Supplier)} method which in turn
instantiates
* based on the following logic:
- * <ul>
- * <li>Returns the resource class itself is an instance of
{@link StaticFiles}.
- * <li>Looks for a public <c>createStaticFiles()</> method
on the resource class with an optional {@link RestContext} argument.
- * <li>Instantiates a {@link BasicStaticFiles} which
provides basic support for finding localized
- * resources on the classpath and JVM working
directory..
+ *
+ * <ol class='spaced-list'>
+ * <li>
+ * Uses resource object itself if it implements
the <c>StaticFiles</c> interface.
+ * <li>
+ * Uses existing {@link StaticFiles} bean if found
in the bean store (e.g. an injected bean).
+ * <li>
+ * Uses existing {@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder} bean if found in the
bean store (e.g. an injected bean).
+ * <li>
+ * Constructs a builder with default settings:
+ * <p class='bcode w800'>
+ * StaticFiles
+ * .<jsm>create</jsm>()
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#beanStore(BeanStore)
beanStore}(<jv>beanStore</jv>) <jc>// Allow injected beans in constructor.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#type(Class) type}({@link
BasicStaticFiles}.<jk>class</jk>)
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#dir(String)
dir}(<js>"static"</js>) <jc>// Look in working /static directory.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#dir(String)
dir}(<js>"htdocs"</js>) <jc>// Look in working /htdocs directory.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#cp(Class,String,boolean)
cp}(<jv>resourceClass</jv>, <js>"htdocs"</js>, <jk>true</jk>) <jc>// Look in
htdocs subpackage.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#cp(Class,String,boolean)
cp}(<jv>resourceClass</jv>, <js>"/htdocs"</js>, <jk>true</jk>) <jc>// Look in
htdocs package.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#caching(long)
caching}(1_000_000) <jc>// Cache files in memory up to 1MB.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#exclude(String...)
exclude}(<js>"(?i).*\\.(class|properties)"</js>) <jc>// Ignore
class/properties files.</jc>
+ * .{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#headers(Header...)
headers}(<jsm>{@link org.apache.juneau.http.HttpHeaders#cacheControl(String)
cacheControl}</jsm>(<js>"max-age=86400, public"</js>)); <jc>// Add cache
control.</jc>
+ * </p>
+ * <li>
+ * Looks for the following method on the resource
class:
+ * <p class='bcode w800'>
+ * <jk>public [static]</jk> StaticFiles.Builder
createStaticFiles(<ja><args></ja>)
+ * </p>
+ * Args can be any bean found in the bean store
(including injected beans) and the <c>StaticFiles.Builder</c> itself.
+ * <li>
+ * Looks for the following method on the resource
class:
+ * <p class='bcode w800'>
+ * <jk>public [static]</jk> StaticFiles
createStaticFiles(<ja><args></ja>)
+ * </p>
+ * Args can be any bean found in the bean store
(including injected beans) and the <c>StaticFiles.Builder</c> itself.
+ * </ol>
+ *
+ * <p>
+ * The default static files finder implementation class is
{@link BasicStaticFiles}. This can be overridden via the following:
+ * <ul class='spaced-list'>
+ * <li>
+ * The {@link Rest#staticFiles()
@Rest(staticFiles)} annotation.
+ * <li>
+ * Overridden {@link StaticFiles} implementation
class name specified in {@link #defaultClasses()}.
+ * <li>
+ * Type specified via <c>{@link
RestContext.Builder}.{@link #staticFiles() staticFiles()}.{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#type(Class)
type(Class)}</c>.
+ * <li>
+ * Bean specified via <c>{@link
RestContext.Builder}.{@link #staticFiles() staticFiles()}.{@link
org.apache.juneau.rest.staticfile.StaticFiles.Builder#impl(Object)
impl(Object)}</c>.
* </ul>
*
* <h5 class='section'>Example:</h5>
* <p class='bcode w800'>
- * <jc>// Create a static file finder that looks for files
in the /files working subdirectory, but overrides the find()
- * // and resolve methods for special handling of special
cases and adds a Foo header to all requests.</jc>
- * <jk>public class</jk> MyStaticFiles <jk>extends</jk>
StaticFiles {
+ * <jc>// Create a static file finder that looks for files
in the /files working subdirectory, but
+ * // overrides the find() and resolve methods for special
handling of special cases and adds a
+ * // Foo header to all requests.</jc>
+ * <jk>public class</jk> MyStaticFiles <jk>extends</jk>
BasicStaticFiles {
*
- * <jk>public</jk> MyStaticFiles()
<jk>extends</jk> BasicStaticFiles {
+ * <jk>public</jk> MyStaticFiles() {
* <jk>super</jk>(
- * <jk>new</jk>
StaticFilesBuilder()
+ * StaticFiles
+ * .<jsm>create</jsm>()
* .dir(<js>"/files"</js>)
*
.headers(BasicStringHeader.<jsm>of</jsm>(<js>"Foo"</js>, <js>"bar"</js>))
* );
* }
- *
- * <ja>@Override</ja> <jc>// FileFinder</jc>
- * <jk>protected</jk> Optional<InputStream>
find(String <jv>name</jv>, Locale <jv>locale</jv>) <jk>throws</jk> IOException {
- * <jc>// Do special handling or just call
super.find().</jc>
- * <jk>return
super</jk>.find(<jv>name</jv>, <jv>locale</jv>);
- * }
- *
- * <ja>@Override</ja> <jc>// staticFiles</jc>
- * <jk>public</jk>
Optional<BasicHttpResource> resolve(String <jv>path</jv>, Locale
<jv>locale</jv>) {
- * <jc>// Do special handling or just call
super.resolve().</jc>
- * <jk>return
super</jk>.resolve(<jv>path</jv>, <jv>locale</jv>);
- * }
* }
* </p>
- *
- * <jc>// Option #1 - Registered via annotation.</jc>
+ * <p class='bcode w800'>
* <ja>@Rest</ja>(staticFiles=MyStaticFiles.<jk>class</jk>)
- * <jk>public class</jk> MyResource {
- *
- * <jc>// Option #2 - Created via
createStaticFiles() method.</jc>
- * <jk>public</jk> StaticFiles
createStaticFiles(RestContext <jv>context</jv>) <jk>throws</jk> Exception {
- * <jk>return new</jk> MyStaticFiles();
- * }
- *
- * <jc>// Option #3 - Registered via builder
passed in through resource constructor.</jc>
- * <jk>public</jk> MyResource(Builder
<jv>builder</jv>) <jk>throws</jk> Exception {
- *
- * <jc>// Using method on builder.</jc>
- *
<jv>builder</jv>.staticFiles(MyStaticFiles.<jk>class</jk>);
- *
- * <jc>// Use a pre-instantiated object
instead.</jc>
- *
<jv>builder</jv>.staticFiles(<jk>new</jk> MyStaticFiles());
- * }
- *
- * <jc>// Option #4 - Registered via builder
passed in through init method.</jc>
- * <ja>@RestHook</ja>(<jsf>INIT</jsf>)
- * <jk>public void</jk> init(Builder
<jv>builder</jv>) <jk>throws</jk> Exception {
- *
<jv>builder</jv>.staticFiles(MyStaticFiles.<jk>class</jk>);
- * }
- *
- * <jc>// Create a REST method that uses the
static files finder.</jc>
- * <ja>@RestGet<ja>(<js>"/htdocs/*"</js>)
- * <jk>public</jk> HttpResource htdocs(RestRequest
<jv>req</jv>, <ja>@Path</ja>("/*") String <jv>path</jv>, Locale
<jv>locale</jv>) <jk>throws</jk> NotFound {
- * <jk>return</jk>
<jv>req</jv>.getStaticFiles().resolve(<jv>path</jv>,
<jv>locale</jv>).orElseThrow(NotFound::<jk>new</jk>);
- * }
- * }
+ * <jk>public class</jk> MyResource {...}
* </p>
*
- * <p>
- * Instantiates based on the following logic:
- * <ul>
- * <li>Returns the resource class itself is an instance of
FileFinder.
- * <li>Looks for static files set via any of the following:
- * <ul>
- * <li>{@link
RestContext.Builder#staticFiles()}
- * <li>{@link Rest#staticFiles()}.
- * </ul>
- * <li>Looks for a static or non-static
<c>createStaticFiles()</> method that returns {@link StaticFiles} on the
- * resource class with any of the following
arguments:
- * <ul>
- * <li>{@link RestContext}
- * <li>{@link BeanStore}
- * <li>{@link BasicFileFinder}
- * <li>Any {@doc jrs.Injection injected
beans}.
- * </ul>
- * <li>Resolves it via the bean store registered in this
context.
- * <li>Looks for value in default static files setting.
- * <li>Instantiates a {@link BasicStaticFiles}.
- * </ul>
- *
* @param beanStore
* The factory used for creating beans and retrieving
injected beans.
* @param resource
@@ -2844,6 +2825,7 @@ public class RestContext extends Context {
StaticFiles
.create()
.beanStore(beanStore)
+ .type(BasicStaticFiles.class)
.dir("static")
.dir("htdocs")
.cp(resourceClass, "htdocs", true)