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 e39f32a3f Javadocs
e39f32a3f is described below
commit e39f32a3fbbf7e467ce348fcd504448cff52c7fc
Author: JamesBognar <[email protected]>
AuthorDate: Fri Jun 17 07:01:47 2022 -0400
Javadocs
---
.../06.juneau-rest-server/28.jrs.UtilityBeans.html | 3 +-
.../juneau/examples/rest/RootContentTest.java | 38 +++----
.../juneau-examples-rest-jetty.cfg | 2 +-
.../juneau/examples/rest/HelloWorldResource.java | 3 +-
.../juneau/examples/rest/PhotosResource.java | 22 +++-
.../juneau/examples/rest/RequestEchoResource.java | 8 +-
.../apache/juneau/examples/rest/RootResources.java | 9 +-
.../juneau/examples/rest/UtilityBeansResource.java | 123 ++++++++++++---------
.../juneau/examples/rest/dto/AtomFeedResource.java | 10 +-
.../juneau/examples/rest/dto/DtoExamples.java | 7 +-
.../examples/rest/dto/JsonSchemaResource.java | 7 +-
.../org/apache/juneau/rest/beans/Hyperlink.java | 20 ++++
12 files changed, 144 insertions(+), 108 deletions(-)
diff --git
a/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.UtilityBeans.html
b/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.UtilityBeans.html
index 3a20a824f..2d82b9b52 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.UtilityBeans.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/28.jrs.UtilityBeans.html
@@ -21,9 +21,8 @@
explorable REST interfaces.
</p>
+ <h5 class='topic'>ResourceDescriptions</h5>
<h5 class='topic'>BeanDescription</h5>
- <h5 class='topic'>ChildResourceDescriptions</h5>
<h5 class='topic'>Hyperlink</h5>
- <h5 class='topic'>ResourceDescription ResourceDescriptions</h5>
<h5 class='topic'>SeeOtherRoot</h5>
</div>
\ No newline at end of file
diff --git
a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
index 1383e0493..9752453f3 100644
---
a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
+++
b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
@@ -28,7 +28,7 @@ public class RootContentTest extends ContentComboTestBase {
return alist(new Object[][] {
{ /* 0 */
new ComboInput("HTML-stylesheet", "/",
MediaType.HTML,
- "@import '/htdocs/themes/devops.css';",
+ "@import '/htdocs/themes/dark.css';",
".menu-item {"
)
},
@@ -50,7 +50,6 @@ public class RootContentTest extends ContentComboTestBase {
"<nav>",
"<a href='/api'>api</a>",
"<a
onclick='menuClick(this);'>content-type</a>",
- "<a
onclick='menuClick(this);'>themes</a>",
"<a
href='https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java'>source</a>"
)
},
@@ -61,84 +60,75 @@ public class RootContentTest extends ContentComboTestBase {
)
},
{ /* 5 */
- new ComboInput("HTML-nav-popup-styles", "/",
MediaType.HTML,
-
"/?stylesheet=htdocs%2Fthemes%2Fdevops.css",
-
"/?stylesheet=htdocs%2Fthemes%2Flight.css",
-
"/?stylesheet=htdocs%2Fthemes%2Foriginal.css",
-
"/?stylesheet=htdocs%2Fthemes%2Fdark.css"
- )
- },
- { /* 6 */
new ComboInput("HTML-aside", "/",
MediaType.HTML,
"<aside>",
"<p>This is an example of a 'router'
page that serves as a jumping-off point to child resources.</p>",
"<p>Other features (such as this aside)
are added through annotations.</p>"
)
},
- { /* 7 */
+ { /* 6 */
new ComboInput("HTML-footer", "/",
MediaType.HTML,
"<footer>",
"<img
style='float:right;padding-right:20px;height:32px'
src='/htdocs/images/asf.png'>"
)
},
- { /* 8 */
+ { /* 7 */
new ComboInput("HTML-content-text/html", "/",
MediaType.HTML,
"<a href='/helloWorld'>helloWorld</a>",
"<td>Hello World</td>"
)
},
- { /* 9 */
+ { /* 8 */
new ComboInput("HTML-content-application/json",
"/", MediaType.JSON,
"'name':'helloWorld',",
"'description':'Hello World'"
)
},
- { /* 10 */
+ { /* 9 */
new ComboInput("HTML-content-octal/msgpack",
"/", MediaType.MSGPACK,
- "94 82 A4"
+ "82 A4 6E"
)
},
- { /* 11 */
+ { /* 10 */
new ComboInput("HTML-content-text/plain", "/",
MediaType.PLAIN,
"Hello World"
)
},
- { /* 12 */
+ { /* 11 */
new ComboInput("HTML-content-text/uon", "/",
MediaType.UON,
"(name=helloWorld,description='Hello
World')"
)
},
- { /* 13 */
+ { /* 12 */
new
ComboInput("HTML-content-application/x-www-form-urlencoded", "/",
MediaType.URLENCODING,
"0=(name=helloWorld,description='Hello+World')"
)
},
- { /* 14 */
+ { /* 13 */
new ComboInput("HTML-content-text/xml", "/",
MediaType.XML,
"<name>helloWorld</name><description>Hello World</description>"
)
},
- { /* 15 */
+ { /* 14 */
new ComboInput("HTML-content-text/xml+rdf",
"/", MediaType.RDF,
"<jp:name>helloWorld</jp:name>"
)
},
- { /* 16 */
+ { /* 15 */
new ComboInput("HTML-content-text/n-triple",
"/", MediaType.NTRIPLE,
"\"helloWorld\"^^<"
)
},
- { /* 17 */
+ { /* 16 */
new ComboInput("HTML-content-text/turtle", "/",
MediaType.TURTLE,
"jp:description \"Hello World\""
)
},
- { /* 18 */
+ { /* 17 */
new ComboInput("HTML-content-text/n3", "/",
MediaType.N3,
"jp:description \"Hello World\""
)
}
-
});
}
diff --git
a/juneau-examples/juneau-examples-rest-jetty/juneau-examples-rest-jetty.cfg
b/juneau-examples/juneau-examples-rest-jetty/juneau-examples-rest-jetty.cfg
index 366a92334..e09a2d53b 100755
--- a/juneau-examples/juneau-examples-rest-jetty/juneau-examples-rest-jetty.cfg
+++ b/juneau-examples/juneau-examples-rest-jetty/juneau-examples-rest-jetty.cfg
@@ -52,7 +52,7 @@ staticFiles = htdocs:htdocs
# Stylesheet to use for HTML views.
# Used by the BasicRestConfig interface that defines the following value:
# stylesheet="$C{REST/theme,servlet:/htdocs/themes/devops.css}"
-theme = servlet:/htdocs/themes/devops.css
+theme = servlet:/htdocs/themes/dark.css
# Various look-and-feel settings used in the BasicRestConfig interface.
headerIcon = servlet:/htdocs/images/juneau.png
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
index f959b236c..81a962e28 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
@@ -41,7 +41,8 @@ import org.apache.juneau.rest.servlet.*;
public class HelloWorldResource extends BasicRestObject implements
BasicUniversalConfig {
/**
- * GET request handler.
+ * [HTTP GET /helloworld]
+ * Returns a simple string message.
*
* @return A simple Hello-World message.
*/
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
index c14605824..8ad85866b 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
@@ -22,6 +22,7 @@ import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.config.*;
import org.apache.juneau.rest.servlet.*;
+import org.apache.juneau.rest.widget.*;
import java.awt.image.*;
import java.net.*;
@@ -43,7 +44,21 @@ import java.net.*;
description="Use a tool like Poster to upload and retrieve jpeg and png
images."
)
@HtmlDocConfig(
- navlinks="options: ?method=OPTIONS"
+ widgets={
+ ContentTypeMenuItem.class
+ },
+ navlinks={
+ "api: servlet:/api",
+ "stats: servlet:/stats",
+ "$W{ContentTypeMenuItem}",
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/PhotosResource.java"
+ },
+ aside={
+ "<div class='text'>",
+ " <p>Examples of serialized beans in the
org.apache.juneau.rest.utilitybeans package.</p>",
+ "</div>"
+ },
+ asideFloat="RIGHT"
)
public class PhotosResource extends BasicRestServlet implements
BasicUniversalConfig {
@@ -86,6 +101,7 @@ public class PhotosResource extends BasicRestServlet
implements BasicUniversalCo
}
/**
+ * [HTTP GET /photos]
* GET request handler for list of all photos.
*
* @return A list of photo beans.
@@ -96,6 +112,7 @@ public class PhotosResource extends BasicRestServlet
implements BasicUniversalCo
}
/**
+ * [HTTP GET /photos/{id}]
* GET request handler for single photo.
*
* @param id The photo ID.
@@ -111,6 +128,7 @@ public class PhotosResource extends BasicRestServlet
implements BasicUniversalCo
}
/**
+ * [HTTP PUT /photos/{id}]
* PUT request handler.
*
* @param id The photo ID.
@@ -124,6 +142,7 @@ public class PhotosResource extends BasicRestServlet
implements BasicUniversalCo
}
/**
+ * [HTTP POST /photos]
* POST request handler.
*
* @param image The photo image.
@@ -138,6 +157,7 @@ public class PhotosResource extends BasicRestServlet
implements BasicUniversalCo
}
/**
+ * [HTTP DELETE /photos/{id}]
* DELETE request handler
*
* @param id The photo ID.
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
index c7c88f451..32032a64d 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
@@ -49,16 +49,13 @@ import org.apache.juneau.swaps.*;
)
@HtmlDocConfig(
widgets={
- ContentTypeMenuItem.class,
- ThemeMenuItem.class
+ ContentTypeMenuItem.class
},
navlinks={
"up: request:/..",
"api: servlet:/api",
- "stats: servlet:/stats",
"$W{ContentTypeMenuItem}",
- "$W{ThemeMenuItem}",
- "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/RequestEchoResource.java"
},
aside={
"<div style='max-width:400px;min-width:200px' class='text'>",
@@ -85,6 +82,7 @@ import org.apache.juneau.swaps.*;
public class RequestEchoResource extends BasicRestObject implements
BasicUniversalConfig {
/**
+ * [HTTP GET /echo/*]
* GET request handler.
*
* @param req The HTTP servlet request.
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
index de6fb06c3..be53a7d2c 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
@@ -38,21 +38,20 @@ import org.apache.juneau.serializer.annotation.*;
children={
HelloWorldResource.class,
DtoExamples.class,
+ UtilityBeansResource.class,
ConfigResource.class,
ShutdownResource.class
}
)
@HtmlDocConfig(
widgets={
- ContentTypeMenuItem.class,
- ThemeMenuItem.class
+ ContentTypeMenuItem.class
},
navlinks={
"api: servlet:/api",
"stats: servlet:/stats",
"$W{ContentTypeMenuItem}",
- "$W{ThemeMenuItem}",
- "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/RootResources.java"
},
aside={
"<div class='text'>",
@@ -73,7 +72,7 @@ import org.apache.juneau.serializer.annotation.*;
quoteChar="'"
)
public class RootResources extends BasicRestServletGroup implements
BasicUniversalJenaConfig {
- // IMPORTANT! If you don't need RDF support, change the parent class
to ResourceGroup.
+ // IMPORTANT! If you don't need RDF support, change the parent
interface to BasicUniversalConfig.
// It allows you to remove the Jena prerequisite.
private static final long serialVersionUID = 1L;
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
index b958bd0eb..cd6a44163 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
@@ -12,21 +12,15 @@
//
***************************************************************************************************************************
package org.apache.juneau.examples.rest;
-import java.util.*;
-
import org.apache.juneau.annotation.*;
import org.apache.juneau.examples.parser.*;
import org.apache.juneau.examples.serializer.*;
import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.beans.*;
import org.apache.juneau.rest.config.*;
import org.apache.juneau.rest.servlet.*;
-
-import java.awt.image.*;
-import java.net.*;
+import org.apache.juneau.rest.widget.*;
/**
* Sample resource that allows images to be uploaded and retrieved.
@@ -44,35 +38,56 @@ import java.net.*;
description="Examples of utility bean usage."
)
@HtmlDocConfig(
- navlinks="options: ?method=OPTIONS"
+ widgets={
+ ContentTypeMenuItem.class
+ },
+ navlinks={
+ "up: request:/..",
+ "api: servlet:/api",
+ "stats: servlet:/stats",
+ "$W{ContentTypeMenuItem}",
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/UtilityBeansResource.java"
+ },
+ aside={
+ "<div class='text'>",
+ " <p>Examples of serialized beans in the
org.apache.juneau.rest.utilitybeans package.</p>",
+ "</div>"
+ },
+ asideFloat="RIGHT"
)
-public class UtilityBeansResource extends BasicRestServlet implements
BasicUniversalConfig {
+@SuppressWarnings("javadoc")
+public class UtilityBeansResource extends BasicRestObject implements
BasicUniversalConfig {
+ @SuppressWarnings("unused")
private static final long serialVersionUID = 1L;
+ /**
+ * [HTTP GET /utilitybeans]
+ * Returns descriptive links to the child endpoints.
+ */
@RestGet("/")
- public ResourceDescriptions getDescriptions() {
+ public ResourceDescriptions getChildDescriptions() {
return ResourceDescriptions
.create()
- .append("BeanDescription", "Example of BeanDescription
bean");
+ .append("BeanDescription", "Example of BeanDescription
bean")
+ .append("Hyperlink", "Example of Hyperlink bean")
+ .append("SeeOtherRoot", "Example of SeeOtherRoot bean");
}
-
+ /**
+ * [HTTP GET /utilitybeans/BeanDescription]
+ * Example of serialized
org.apache.juneau.rest.utilitybeans.ResourceDescriptions bean.
+ */
@RestGet("/BeanDescription")
- public BeanDescription aBeanDescription() {
- return BeanDescription.of(AddressBook.class);
- }
-
- public static class AddressBook extends LinkedList<Person> {
-
- public AddressBook init() {
- add(
- new Person("Bill Clinton", 65,
- new Address("55W. 125th Street", "New
York", "NY", 10027, true)
- )
- );
- return this;
+ @HtmlDocConfig(
+ aside={
+ "<div class='text'>",
+ " <p>Example of serialized
org.apache.juneau.rest.utilitybeans.ResourceDescriptions bean.</p>",
+ "</div>"
}
+ )
+ public BeanDescription aBeanDescription() {
+ return BeanDescription.of(Address.class);
}
@Bean(p="street,city,state,zip,isCurrent")
@@ -84,40 +99,38 @@ public class UtilityBeansResource extends BasicRestServlet
implements BasicUnive
public boolean isCurrent;
public Address() {}
-
- public Address(String street, String city, String state, int
zip, boolean isCurrent) {
- this.street = street;
- this.city = city;
- this.state = state;
- this.zip = zip;
- this.isCurrent = isCurrent;
- }
- @Override /* Object */
- public String toString() {
- return
"Address(street="+street+",city="+city+",state="+state+",zip="+zip+",isCurrent="+isCurrent+")";
- }
}
- @Bean(typeName="Person",p="name,age,addresses")
- public static class Person {
- public String name;
- public int age;
- public Address[] addresses;
-
- public Person() {}
-
- public Person(String name, int age, Address...addresses) {
- this.name = name;
- this.age = age;
- this.addresses = addresses;
+ /**
+ * [HTTP GET /utilitybeans/Hyperlink]
+ * Example of serialized org.apache.juneau.rest.utilitybeans.Hyperlink
bean.
+ */
+ @RestGet("/Hyperlink")
+ @HtmlDocConfig(
+ aside={
+ "<div class='text'>",
+ " <p>Example of serialized
org.apache.juneau.rest.utilitybeans.Hyperlink bean.</p>",
+ "</div>"
}
+ )
+ public Hyperlink aHyperlink() {
+ return Hyperlink.create("/utilitybeans", "Back to
/utilitybeans");
+ }
- @Override /* Object */
- public String toString() {
- return "Person(name="+name+",age="+age+")";
+ /**
+ * [HTTP GET /utilitybeans/SeeOtherRoot]
+ * Example of serialized
org.apache.juneau.rest.utilitybeans.SeeOtherRoot bean.
+ * This just redirects back to the servlet root.
+ */
+ @RestGet("/SeeOtherRoot")
+ @HtmlDocConfig(
+ aside={
+ "<div class='text'>",
+ " <p>Example of serialized
org.apache.juneau.rest.utilitybeans.SeeOtherRoot bean.</p>",
+ "</div>"
}
+ )
+ public SeeOtherRoot aSeeOtherRoot() {
+ return SeeOtherRoot.INSTANCE;
}
-
-
-
}
\ No newline at end of file
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
index f17f9d929..ef92e6f90 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
@@ -16,7 +16,6 @@ import static org.apache.juneau.dto.atom.AtomBuilder.*;
import java.net.URI;
-import org.apache.juneau.annotation.*;
import org.apache.juneau.dto.atom.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.html.annotation.*;
@@ -53,16 +52,14 @@ import org.apache.juneau.serializer.annotation.*;
)
@HtmlDocConfig(
widgets={
- ContentTypeMenuItem.class,
- ThemeMenuItem.class
+ ContentTypeMenuItem.class
},
navlinks={
"up: request:/..",
"api: servlet:/api",
"stats: servlet:/stats",
"$W{ContentTypeMenuItem}",
- "$W{ThemeMenuItem}",
- "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/$R{servletClassSimple}.java"
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/AtomFeedResource.java"
}
)
@SerializerConfig(
@@ -72,7 +69,6 @@ import org.apache.juneau.serializer.annotation.*;
rdfxml_tab="5",
addRootProperty="true"
)
-@Marshalled(onClass=Feed.class,example="$F{AtomFeedResource_example.json}")
public class AtomFeedResource extends BasicRestServlet implements
BasicUniversalJenaConfig {
private static final long serialVersionUID = 1L;
@@ -117,6 +113,7 @@ public class AtomFeedResource extends BasicRestServlet
implements BasicUniversal
}
/**
+ * [HTTP GET /dto/atom]
* Get the sample ATOM feed
*
* @return The sample ATOM feed.
@@ -129,6 +126,7 @@ public class AtomFeedResource extends BasicRestServlet
implements BasicUniversal
}
/**
+ * [HTTP PUT /dto/atom]
* Overwrite the sample ATOM feed
*
* @param feed The new ATOM feed.
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
index 21f725723..21a38e145 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
@@ -40,16 +40,13 @@ import org.apache.juneau.serializer.annotation.*;
)
@HtmlDocConfig(
widgets={
- ContentTypeMenuItem.class,
- ThemeMenuItem.class
+ ContentTypeMenuItem.class
},
navlinks={
"up: request:/..",
"api: servlet:/api",
- "stats: servlet:/stats",
"$W{ContentTypeMenuItem}",
- "$W{ThemeMenuItem}",
- "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/$R{servletClassSimple}.java"
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/DtoExamples.java"
},
aside={
"<div style='max-width:400px' class='text'>",
diff --git
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
index 413137673..9f1d7da76 100644
---
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
+++
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
@@ -46,8 +46,7 @@ import org.apache.juneau.rest.widget.*;
)
@HtmlDocConfig(
widgets={
- ContentTypeMenuItem.class,
- ThemeMenuItem.class
+ ContentTypeMenuItem.class
},
navlinks={
"up: request:/..",
@@ -55,7 +54,7 @@ import org.apache.juneau.rest.widget.*;
"stats: servlet:/stats",
"$W{ContentTypeMenuItem}",
"$W{ThemeMenuItem}",
- "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/$R{servletClassSimple}.java"
+ "source:
$C{Source/gitHub}/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java"
},
aside={
"<div style='min-width:200px' class='text'>",
@@ -92,6 +91,7 @@ public class JsonSchemaResource extends BasicRestServlet
implements BasicUnivers
}
/**
+ * [HTTP GET /dto/jsonSchema]
* Get the JSON-Schema document.
*
* @return The JSON-Schema document.
@@ -104,6 +104,7 @@ public class JsonSchemaResource extends BasicRestServlet
implements BasicUnivers
}
/**
+ * [HTTP PUT /dto/jsonSchema]
* Overwrite the JSON-Schema document
*
* @param schema The new schema document.
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
index 90d38fcd8..36dbd151c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
@@ -48,6 +48,26 @@ import org.apache.juneau.dto.html5.*;
* </ul>
*/
public class Hyperlink extends A {
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Static
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Static creator.
+ *
+ * @param href The {@link A#href(Object)} attribute.
+ * @param children The {@link A#children(Object[])} nodes.
+ * @return A new {@link Hyperlink} object.
+ */
+ public static Hyperlink create(Object href, Object...children) {
+ return new Hyperlink(href, children);
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Implementation
+
//-----------------------------------------------------------------------------------------------------------------
+
/**
* Creates an empty {@link A} element.
*/