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 0642440 Javadocs 0642440 is described below commit 0642440e28c2216cb2898a954c6186e767e275ed Author: JamesBognar <jamesbog...@apache.org> AuthorDate: Thu Aug 30 13:07:09 2018 -0400 Javadocs --- juneau-doc/src/main/javadoc/overview.html | 198 +++++++++++---------- .../27.HtmlDocAnnotation/02.PredefinedWidgets.html | 42 ++++- .../27.HtmlDocAnnotation/03.UiCustomization.html | 154 +++++++--------- 3 files changed, 215 insertions(+), 179 deletions(-) diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html index 064e6fc..c3c5de8 100644 --- a/juneau-doc/src/main/javadoc/overview.html +++ b/juneau-doc/src/main/javadoc/overview.html @@ -338,7 +338,7 @@ <ol> <li><p class=''><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.Widgets'>Widgets</a></p> <li><p class='todo'><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>Predefined Widgets</a></p> - <li><p class='todo'><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization'>UI Customization</a></p> + <li><p class='updated'><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization'>UI Customization</a></p> <li><p class=''><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.Stylesheets'>Stylesheets</a></p> </ol> <li><p class=''><a class='doclink' href='#juneau-rest-server.DefaultHeaders'>Default Headers</a></p> @@ -18750,18 +18750,58 @@ <h4 class='topic todo' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets' id='juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>7.27.2 - Predefined Widgets</a></h4> <div class='topic'><!-- START: 7.27.2 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets --> -TODO(7.2.0) +<ul class='doctree'> + <li class='jac'>{@link org.apache.juneau.rest.widget.Widget} + <ul> + <li class='jac'>{@link org.apache.juneau.rest.widget.MenuItemWidget} + <ul> + <li class='jc'>{@link org.apache.juneau.rest.widget.ContentTypeMenuItem} + <li class='jc'>{@link org.apache.juneau.rest.widget.QueryMenuItem} + <li class='jc'>{@link org.apache.juneau.rest.widget.ThemeMenuItem} + </ul> + <li class='jc'>{@link org.apache.juneau.rest.widget.PoweredByJuneau} + </ul> + <li class='jc'>{@link org.apache.juneau.rest.widget.Tooltip} +</ul> + +<h5 class='topic'>Widget</h5> +<p> +</p> + +<h5 class='topic'>MenuItemWidget</h5> +<p> +</p> + +<h5 class='topic'>ContentTypeMenuItem</h5> +<p> +</p> + +<h5 class='topic'>QueryMenuItem</h5> +<p> +</p> + +<h5 class='topic'>ThemeMenuItem</h5> +<p> +</p> + +<h5 class='topic'>PoweredByJuneau</h5> +<p> +</p> + +<h5 class='topic'>Tooltip</h5> +<p> +</p> </div><!-- END: 7.27.2 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets --> <!-- ==================================================================================================== --> -<h4 class='topic todo' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization' id='juneau-rest-server.HtmlDocAnnotation.UiCustomization'>7.27.3 - UI Customization</a></h4> +<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization' id='juneau-rest-server.HtmlDocAnnotation.UiCustomization'>7.27.3 - UI Customization</a></h4> <div class='topic'><!-- START: 7.27.3 - juneau-rest-server.HtmlDocAnnotation.UiCustomization --> <p> The HTML views of POJOs can somewhat be considered a rudimentary User Interface. - <br>In reality, a better term for them would be a Developer Interface as they're meant to be used + In reality, a better term for them would be a Developer Interface as they're meant to be used primarily by developers and not end users. - <br>Despite that distinction, it is possible to 'brand' the HTML page to whatever you desire. + Despite that distinction, it is possible to 'brand' the HTML page to whatever you desire. </p> <p> The sample root page below includes some default branding for Juneau and Apache: @@ -18771,17 +18811,9 @@ TODO(7.2.0) </p> <img class='bordered w800' src='doc-files/juneau-rest-server.UiCustomization.1.png'> <p> - In particular, you may want to replace these icons: -</p> -<img class='bordered' src='doc-files/juneau-rest-server.UiCustomization.2.png'/> -<img class='bordered' src='doc-files/juneau-rest-server.UiCustomization.3.png'/> -<p> The Juneau REST framework does not provide specific branding support (i.e. there is no concept of a brand icon). - <br>Instead, it just uses the existing open-ended API for defining branding. + Instead, it just uses the existing open-ended API for defining branding via annotations on your REST classes. </p> -<p> - The Juneau icon shown is a result of the header annotation on the {@link org.apache.juneau.rest.BasicRestConfig} class: -</p> <p class='bpcode w800'> <ja>@RestResource</ja>( ... @@ -18825,103 +18857,89 @@ TODO(7.2.0) <ja>@RestResource</ja>( ... htmldoc=<ja>@HtmlDoc</ja>( - header={ - <js>"<h1>$R{resourceTitle}</h1>"</js>, - <js>"<h2>$R{methodSummary,resourceDescription}</h2>"</js>, - <js>"<a href='http://my.project.org'>"</js> - +<js>"<img src='$U{servlet:/my-htdocs/my-project.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/>"</js> - +<js>"</a>"</js> - }, - head={ - <jc>// Browser tab icon.</jc> - <js>"<link rel='icon' href='$U{servlet:/my-htdocs/my-project.png}'/>"</js> - } + htmldoc=<ja>@HtmlDoc</ja>( + <jc>// Basic page navigation links.</jc> + navlinks={ + <js>"up: request:/.."</js>, + <js>"options: servlet:/?method=OPTIONS"</js> + } + ) ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} + ... ) <jk>public abstract class</jk> BasicRestServlet <jk>extends</jk> RestServlet <jk>implements</jk> BasicRestConfig {...} </p> - -<p> - The <js>"juneau.png"</js> image file is located in <code>org.apache.juneau.rest.htdocs</code> package and - is served up via the <code>staticFiles</code> annotation (i.e. anything in the <code>org.apache.juneau.rest.htdocs</code> - package is served up under the path <code>/servlet-path/htdocs</code>). - <br>Then we just reference using a URI resolution variable <js>"$U{servlet:/htdocs/juneau.png}"</js>. -</p> -<p> - To change this image, you can extend the <l>BasicRestServlet</l> class and simply override the annotations - pointing to your own icon. -</p> <p class='bpcode w800'> - <ja>@RestResource</ja>( - ... - htmldoc=<ja>@HtmlDoc</ja>( - header={ - <js>"<h1>$R{resourceTitle}</h1>"</js>, - <js>"<h2>$R{methodSummary,resourceDescription}</h2>"</js>, - <js>"<a href='http://my.project.org'>"</js> - +<js>"<img src='$U{servlet:/my-htdocs/my-project.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/>"</js> - +<js>"</a>"</js> - }, - head={ - <jc>// Browser tab icon.</jc> - <js>"<link rel='icon' href='$U{servlet:/my-htdocs/my-project.png}'/>"</js> - } - ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} - ) - <jk>public class</jk> MyResourceBaseClass <jk>extends</jk> BasicRestServlet {...} -</p> -<p> - The footer icon shown is generated by a predefined widget: + <ja>@RestResource</ja> + <jk>public abstract class</jk> BasicRestServletGroup <jk>extends</jk> BasicRestServlet {...} </p> -<p class='bpcode w800'> +<p class='bpcode w800'> <ja>@RestResource</ja>( htmldoc=<ja>@HtmlDoc</ja>( widgets={ - PoweredByApache.<jk>class</jk> + ContentTypeMenuItem.<jk>class</jk>, + ThemeMenuItem.<jk>class</jk> }, - footer=<js>"$W{PoweredByApache}"</js> + navlinks={ + <js>"options: ?method=OPTIONS"</js>, + <js>"$W{ContentTypeMenuItem}"</js>, + <js>"$W{ThemeMenuItem}"</js>, + <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js> + }, + aside={ + <js>"<div style='max-width:400px' class='text'>"</js>, + <js>" <p>This is an example of a 'router' page that serves as a jumping-off point to child resources.</p>"</js>, + <js>" <p>Resources can be nested arbitrarily deep through router pages.</p>"</js>, + <js>" <p>Note the <span class='link'>options</span> link provided that lets you see the generated swagger doc for this page.</p>"</js>, + <js>" <p>Also note the <span class='link'>sources</span> link on these pages to view the source code for the page.</p>"</js>, + <js>" <p>All content on pages in the UI are serialized POJOs. In this case, it's a serialized array of beans with 2 properties, 'name' and 'description'.</p>"</js>, + <js>" <p>Other features (such as this aside) are added through annotations.</p>"</js>, + <js>"</div>"</js> + } ), ... ) - <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {...} -</p> -<p> - The widget definition is shown below: -</p> -<p class='bpcode w800'> - <jk>public class</jk> PoweredByApache <jk>extends</jk> Widget { - - <jd>/** - * Returns an Apache image tag hyperlinked to <js>"http://apache.org"</js> - */</jd> - <ja>@Override</ja> <jc>/* Widget */</jc> - <jk>public</jk> String getHtml(RestRequest req) <jk>throws</jk> Exception { - UriResolver r = req.getUriResolver(); - <jk>return</jk> <js>"<a href='http://apache.org'><img style='float:right;padding-right:20px;height:32px' src='"</js>+r.resolve(<js>"servlet:/htdocs/asf.png"</js>)+<js>"'>"</js>; - } - } + <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletGroup {...} </p> + <p> - To provide your own footer icon, simply define it in your own footer section: + The default annotation values use {@link org.apache.juneau.config.vars.ConfigVar $C} variables to pull in values from an optional + external configuration file, such as the one shown below: </p> <p class='bpcode w800'> - <ja>@RestResource</ja>( - htmldoc=<ja>@HtmlDoc</ja>( - footer=<js>"<img style='float:right;padding-right:20px;height:32px' src='$U{servlet:/my-htdocs/my-project.png}'>"</js> - ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} - ... - ) - <jk>public class</jk> MyResourceBaseClass <jk>extends</jk> BasicRestServlet {...} + <cc>#======================================================================================================================= + # REST settings + #=======================================================================================================================</cc> + <cs>[REST]</cs> + + <ck>staticFiles</ck> = <cv>htdocs:files/htdocs</cv> + + <cc># Stylesheet to use for HTML views.</cc> + <ck>theme</ck> = <cv>servlet:/htdocs/themes/devops.css</cv> + + <ck>headerIcon</ck> = <cv>servlet:/htdocs/images/juneau.png</cv> + <ck>headerLink</ck> = <cv>http://juneau.apache.org</cv> + <ck>footerIcon</ck> = <cv>servlet:/htdocs/images/asf.png</cv> + <ck>footerLink</ck> = <cv>http://www.apache.org</cv> + + <ck>favicon</ck> = <cv>$C{REST/headerIcon}</cv> + <ck>header</ck> = + <cv><a href='$U{$C{REST/headerLink}}'></cv> + <cv><img src='$U{$C{REST/headerIcon}}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/></cv> + <cv></a></cv> + <ck>footer</ck> = + <cv><a href='$U{$C{REST/footerLink}}'></cv> + <cv><img src='$U{$C{REST/footerIcon}}' style='float:right;padding-right:20px;height:32px'/></cv> + <cv></a></cv> </p> <p> - Note how the "User Interface" is open-ended to pretty much lets you do whatever you want. + The take-away here is that the "User Interface" is open-ended, lets you define pretty much anything you want through arbitrary HTML, + and allows you either hardcode your interface inside annotations or pull them in via string variables from other places such as + external config files. </p> -<h5 class='figure'>See Also:</h5> +<h5 class='section'>See Also:</h5> <ul> - <li class='doclink'>{@doc juneau-microservice-server.UiCustomization} + <li class='link'>{@doc juneau-microservice-server.UiCustomization} </ul> </div><!-- END: 7.27.3 - juneau-rest-server.HtmlDocAnnotation.UiCustomization --> diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html index 236bc8a..b54de40 100644 --- a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html +++ b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/02.PredefinedWidgets.html @@ -15,4 +15,44 @@ {todo} Predefined Widgets -TODO(7.2.0) \ No newline at end of file +<ul class='doctree'> + <li class='jac'>{@link oajr.widget.Widget} + <ul> + <li class='jac'>{@link oajr.widget.MenuItemWidget} + <ul> + <li class='jc'>{@link oajr.widget.ContentTypeMenuItem} + <li class='jc'>{@link oajr.widget.QueryMenuItem} + <li class='jc'>{@link oajr.widget.ThemeMenuItem} + </ul> + <li class='jc'>{@link oajr.widget.PoweredByJuneau} + </ul> + <li class='jc'>{@link oajr.widget.Tooltip} +</ul> + +<h5 class='topic'>Widget</h5> +<p> +</p> + +<h5 class='topic'>MenuItemWidget</h5> +<p> +</p> + +<h5 class='topic'>ContentTypeMenuItem</h5> +<p> +</p> + +<h5 class='topic'>QueryMenuItem</h5> +<p> +</p> + +<h5 class='topic'>ThemeMenuItem</h5> +<p> +</p> + +<h5 class='topic'>PoweredByJuneau</h5> +<p> +</p> + +<h5 class='topic'>Tooltip</h5> +<p> +</p> \ No newline at end of file diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/03.UiCustomization.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/03.UiCustomization.html index e44573e..c4e4bbf 100644 --- a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/03.UiCustomization.html +++ b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/27.HtmlDocAnnotation/03.UiCustomization.html @@ -13,13 +13,13 @@ ***************************************************************************************************************************/ --> -{todo} UI Customization +{updated} UI Customization <p> The HTML views of POJOs can somewhat be considered a rudimentary User Interface. - <br>In reality, a better term for them would be a Developer Interface as they're meant to be used + In reality, a better term for them would be a Developer Interface as they're meant to be used primarily by developers and not end users. - <br>Despite that distinction, it is possible to 'brand' the HTML page to whatever you desire. + Despite that distinction, it is possible to 'brand' the HTML page to whatever you desire. </p> <p> The sample root page below includes some default branding for Juneau and Apache: @@ -29,17 +29,9 @@ </p> <img class='bordered w800' src='doc-files/juneau-rest-server.UiCustomization.1.png'> <p> - In particular, you may want to replace these icons: -</p> -<img class='bordered' src='doc-files/juneau-rest-server.UiCustomization.2.png'/> -<img class='bordered' src='doc-files/juneau-rest-server.UiCustomization.3.png'/> -<p> The Juneau REST framework does not provide specific branding support (i.e. there is no concept of a brand icon). - <br>Instead, it just uses the existing open-ended API for defining branding. + Instead, it just uses the existing open-ended API for defining branding via annotations on your REST classes. </p> -<p> - The Juneau icon shown is a result of the header annotation on the {@link oajr.BasicRestConfig} class: -</p> <p class='bpcode w800'> <ja>@RestResource</ja>( ... @@ -83,101 +75,87 @@ <ja>@RestResource</ja>( ... htmldoc=<ja>@HtmlDoc</ja>( - header={ - <js>"<h1>$R{resourceTitle}</h1>"</js>, - <js>"<h2>$R{methodSummary,resourceDescription}</h2>"</js>, - <js>"<a href='http://my.project.org'>"</js> - +<js>"<img src='$U{servlet:/my-htdocs/my-project.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/>"</js> - +<js>"</a>"</js> - }, - head={ - <jc>// Browser tab icon.</jc> - <js>"<link rel='icon' href='$U{servlet:/my-htdocs/my-project.png}'/>"</js> - } + htmldoc=<ja>@HtmlDoc</ja>( + <jc>// Basic page navigation links.</jc> + navlinks={ + <js>"up: request:/.."</js>, + <js>"options: servlet:/?method=OPTIONS"</js> + } + ) ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} + ... ) <jk>public abstract class</jk> BasicRestServlet <jk>extends</jk> RestServlet <jk>implements</jk> BasicRestConfig {...} </p> - -<p> - The <js>"juneau.png"</js> image file is located in <code>org.apache.juneau.rest.htdocs</code> package and - is served up via the <code>staticFiles</code> annotation (i.e. anything in the <code>org.apache.juneau.rest.htdocs</code> - package is served up under the path <code>/servlet-path/htdocs</code>). - <br>Then we just reference using a URI resolution variable <js>"$U{servlet:/htdocs/juneau.png}"</js>. -</p> -<p> - To change this image, you can extend the <l>BasicRestServlet</l> class and simply override the annotations - pointing to your own icon. -</p> <p class='bpcode w800'> - <ja>@RestResource</ja>( - ... - htmldoc=<ja>@HtmlDoc</ja>( - header={ - <js>"<h1>$R{resourceTitle}</h1>"</js>, - <js>"<h2>$R{methodSummary,resourceDescription}</h2>"</js>, - <js>"<a href='http://my.project.org'>"</js> - +<js>"<img src='$U{servlet:/my-htdocs/my-project.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/>"</js> - +<js>"</a>"</js> - }, - head={ - <jc>// Browser tab icon.</jc> - <js>"<link rel='icon' href='$U{servlet:/my-htdocs/my-project.png}'/>"</js> - } - ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} - ) - <jk>public class</jk> MyResourceBaseClass <jk>extends</jk> BasicRestServlet {...} -</p> -<p> - The footer icon shown is generated by a predefined widget: + <ja>@RestResource</ja> + <jk>public abstract class</jk> BasicRestServletGroup <jk>extends</jk> BasicRestServlet {...} </p> -<p class='bpcode w800'> +<p class='bpcode w800'> <ja>@RestResource</ja>( htmldoc=<ja>@HtmlDoc</ja>( widgets={ - PoweredByApache.<jk>class</jk> + ContentTypeMenuItem.<jk>class</jk>, + ThemeMenuItem.<jk>class</jk> + }, + navlinks={ + <js>"options: ?method=OPTIONS"</js>, + <js>"$W{ContentTypeMenuItem}"</js>, + <js>"$W{ThemeMenuItem}"</js>, + <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js> }, - footer=<js>"$W{PoweredByApache}"</js> + aside={ + <js>"<div style='max-width:400px' class='text'>"</js>, + <js>" <p>This is an example of a 'router' page that serves as a jumping-off point to child resources.</p>"</js>, + <js>" <p>Resources can be nested arbitrarily deep through router pages.</p>"</js>, + <js>" <p>Note the <span class='link'>options</span> link provided that lets you see the generated swagger doc for this page.</p>"</js>, + <js>" <p>Also note the <span class='link'>sources</span> link on these pages to view the source code for the page.</p>"</js>, + <js>" <p>All content on pages in the UI are serialized POJOs. In this case, it's a serialized array of beans with 2 properties, 'name' and 'description'.</p>"</js>, + <js>" <p>Other features (such as this aside) are added through annotations.</p>"</js>, + <js>"</div>"</js> + } ), ... ) - <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {...} -</p> -<p> - The widget definition is shown below: -</p> -<p class='bpcode w800'> - <jk>public class</jk> PoweredByApache <jk>extends</jk> Widget { - - <jd>/** - * Returns an Apache image tag hyperlinked to <js>"http://apache.org"</js> - */</jd> - <ja>@Override</ja> <jc>/* Widget */</jc> - <jk>public</jk> String getHtml(RestRequest req) <jk>throws</jk> Exception { - UriResolver r = req.getUriResolver(); - <jk>return</jk> <js>"<a href='http://apache.org'><img style='float:right;padding-right:20px;height:32px' src='"</js>+r.resolve(<js>"servlet:/htdocs/asf.png"</js>)+<js>"'>"</js>; - } - } + <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletGroup {...} </p> + <p> - To provide your own footer icon, simply define it in your own footer section: + The default annotation values use {@link oaj.config.vars.ConfigVar $C} variables to pull in values from an optional + external configuration file such as the one shown below: </p> <p class='bpcode w800'> - <ja>@RestResource</ja>( - htmldoc=<ja>@HtmlDoc</ja>( - footer=<js>"<img style='float:right;padding-right:20px;height:32px' src='$U{servlet:/my-htdocs/my-project.png}'>"</js> - ), - staticFiles={<js>"my-htdocs:my-htdocs"</js>} - ... - ) - <jk>public class</jk> MyResourceBaseClass <jk>extends</jk> BasicRestServlet {...} + <cc>#======================================================================================================================= + # REST settings + #=======================================================================================================================</cc> + <cs>[REST]</cs> + + <ck>staticFiles</ck> = <cv>htdocs:files/htdocs</cv> + + <cc># Stylesheet to use for HTML views.</cc> + <ck>theme</ck> = <cv>servlet:/htdocs/themes/devops.css</cv> + + <ck>headerIcon</ck> = <cv>servlet:/htdocs/images/juneau.png</cv> + <ck>headerLink</ck> = <cv>http://juneau.apache.org</cv> + <ck>footerIcon</ck> = <cv>servlet:/htdocs/images/asf.png</cv> + <ck>footerLink</ck> = <cv>http://www.apache.org</cv> + + <ck>favicon</ck> = <cv>$C{REST/headerIcon}</cv> + <ck>header</ck> = + <cv><a href='$U{$C{REST/headerLink}}'></cv> + <cv><img src='$U{$C{REST/headerIcon}}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/></cv> + <cv></a></cv> + <ck>footer</ck> = + <cv><a href='$U{$C{REST/footerLink}}'></cv> + <cv><img src='$U{$C{REST/footerIcon}}' style='float:right;padding-right:20px;height:32px'/></cv> + <cv></a></cv> </p> <p> - Note how the "User Interface" is open-ended to pretty much lets you do whatever you want. + The take-away here is that the "User Interface" is open-ended, lets you define pretty much anything you want through arbitrary HTML, + and allows you either hardcode your interface inside annotations or pull them in via string variables from other places such as + external config files. </p> -<h5 class='figure'>See Also:</h5> +<h5 class='section'>See Also:</h5> <ul> - <li class='doclink'>{@doc juneau-microservice-server.UiCustomization} + <li class='link'>{@doc juneau-microservice-server.UiCustomization} </ul>