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 137c1fa  Javadocs.
137c1fa is described below

commit 137c1fa6d31e6133282ad47e05b259bacf11425a
Author: JamesBognar <[email protected]>
AuthorDate: Sun Dec 9 18:07:41 2018 -0500

    Javadocs.
---
 .../11.juneau-microservice-core/01.Overview.html   |  51 +-
 .../docs/Topics/12.juneau-microservice-jetty.html  |  15 +-
 .../12.juneau-microservice-jetty/01.Overview.html  |  61 ++
 .../02.LifecycleMethods.html                       | 106 +++
 .../01.ConfigApi.html => 03.Config.html}           |  12 +-
 ...esourceClasses.html => 04.ResourceClasses.html} |   0
 ...sses.html => 05.PredefinedResourceClasses.html} |   0
 ...iCustomization.html => 06.UiCustomization.html} |   0
 .../01.Extending.html => 07.Extending.html}        |   0
 .../01.Introduction.html                           |   0
 .../02.GettingStarted.html                         |   0
 .../02.GettingStarted/01.Installing.html           |   0
 .../02.GettingStarted/02.Running.html              |   0
 .../02.GettingStarted/03.Building.html             |   0
 .../03.Manifest.html                               |   0
 .../03.Manifest/01.ManifestApi.html                |   0
 .../04.Config.html                                 |   0
 .../04.Config/01.ConfigApi.html                    |   0
 .../05.ResourceClasses.html                        |   0
 .../06.PredefinedResourceClasses.html              |   0
 .../07.RestMicroservice.html                       |   0
 .../07.RestMicroservice/01.Extending.html          |   0
 .../08.UiCustomization.html                        |   0
 .../juneau-microservice-server.Installing.1.png    | Bin 0 -> 156973 bytes
 .../juneau-microservice-server.Installing.2.png    | Bin 0 -> 78192 bytes
 ...uneau-microservice-server.ResourceClasses.1.png | Bin 0 -> 42699 bytes
 .../juneau-microservice-server.Running.1.png       | Bin 0 -> 67578 bytes
 .../juneau-microservice.UiCustomization.1.png      | Bin 0 -> 56726 bytes
 .../14.juneau-examples-core/01.Examples.html       |   4 +-
 juneau-doc/src/main/javadoc/overview.html          | 965 ++++++++++++++++-----
 juneau-doc/src/main/javadoc/resources/docs.txt     |  27 +-
 .../src/main/javadoc/resources/fragments/toc.html  |  43 +-
 .../examples/rest/petstore/dto/PetTagNameSwap.java |  10 +-
 33 files changed, 970 insertions(+), 324 deletions(-)

diff --git 
a/juneau-doc/docs/Topics/11.juneau-microservice-core/01.Overview.html 
b/juneau-doc/docs/Topics/11.juneau-microservice-core/01.Overview.html
index d993909..9ba5ee8 100644
--- a/juneau-doc/docs/Topics/11.juneau-microservice-core/01.Overview.html
+++ b/juneau-doc/docs/Topics/11.juneau-microservice-core/01.Overview.html
@@ -39,6 +39,9 @@
                        <li class='jc'>{@link oaj.microservice.Microservice} - 
The base microservice class.
                        <li class='jc'>{@link 
oaj.microservice.MicroserviceBuilder} - Builder for the microservice class.
                        <li class='jic'>{@link 
oaj.microservice.MicroserviceListener} - Interface for hooking into lifecyle 
events of the microservice.
+                       <ul>
+                               <li class='jc'>{@link 
oaj.microservice.BasicMicroserviceListener} - Adapter for MicroserviceListener 
class.
+                       </ul>
                </ul>
        <li class='jp'>{@link oaj.microservice.console}
                <ul>
@@ -63,51 +66,3 @@
                }
        }
 </p>
-<p>
-       The classes consist of the following methods:
-</p>
-<ul class='doctree'>
-       <li class='jc'>{@link oaj.microservice.MicroserviceBuilder}
-       <ul>
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#args(String...) args(String...)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#config(Config) config(Config)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#configName(String) configName(String)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#configStore(ConfigStore) 
configStore(ConfigStore)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#console(Scanner,PrintWriter) 
console(Scanner,PrintWriter)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#consoleCommands(ConsoleCommand...) 
consoleCommands(ConsoleCommand...)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#consoleEnabled(boolean) 
consoleEnabled(boolean)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#listener(MicroserviceListener) 
listener(MicroserviceListener)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#logConfig(LogConfig) logConfig(LogConfig)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#logger(Logger)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#manifest(Object)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#varContext(String, Object) 
varContext(String,Object)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceBuilder#vars(Class...) vars(Class...)} 
-       </ul>
-       <li class='jc'>{@link oaj.microservice.Microservice}
-       <ul>
-               <li class='jm'>{@link oaj.microservice.Microservice#init() 
init()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#start() 
start()} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#startConsole() startConsole()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#join() 
join()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#stop() 
stop()} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#stopConsole() stopConsole()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#exit() 
exit()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#kill() 
kill()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#getArgs() 
getArgs()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#getConfig() 
getConfig()} 
-               <li class='jm'>{@link oaj.microservice.Microservice#getLogger() 
getLogger()} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#getManifest() getManifest()} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#getVarResolver() getVarResolver()} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#log(Level,String,Object...) 
log(Level,String,Object...)} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#out(MessageBundle,String,Object...) 
out(MessageBundle,String,Object...)} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#err(MessageBundle,String,Object...) 
err(MessageBundle,String,Object...)} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#onConfigChange(ConfigEvents) 
onConfigChange(ConfigEvents)} 
-               <li class='jm'>{@link 
oaj.microservice.Microservice#executeCommand(Args,Scanner,PrintWriter) 
executeCommand(Args,Scanner,PrintWriter)} 
-       </ul>
-       <li class='jic'>{@link oaj.microservice.MicroserviceListener}
-       <ul>
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceListener#onConfigChange(Microservice,ConfigEvents) 
onConfigChange(Microservice,ConfigEvents)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceListener#onStart(Microservice) 
onStart(Microservice)} 
-               <li class='jm'>{@link 
oaj.microservice.MicroserviceListener#onStop(Microservice) 
onStop(Microservice)} 
-       </ul>
-</ul>
diff --git a/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
index 632815b..0ea1e31 100644
--- a/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
+++ b/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
@@ -13,33 +13,28 @@
  
***************************************************************************************************************************/
  -->
 
-{todo} juneau-microservice-jetty
+{new} juneau-microservice-jetty
 
 <h5 class='figure'>Maven Dependency</h5>
 <p class='bpcode w500'>
        <xt>&lt;dependency&gt;</xt>
                
<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-server<xt>&lt;/artifactId&gt;</xt>
+               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-jetty<xt>&lt;/artifactId&gt;</xt>
                <xt>&lt;version&gt;</xt>{@property 
juneauVersion}<xt>&lt;/version&gt;</xt>
        <xt>&lt;/dependency&gt;</xt>
 </p>   
 
 <h5 class='figure'>Java Library</h5>
 <p class='bpcode w500'>
-       juneau-microservice-server-{@property juneauVersion}.jar 
+       juneau-microservice-jetty-{@property juneauVersion}.jar 
 </p>   
 
 <h5 class='figure'>OSGi Module</h5>
 <p class='bpcode w500'>
-       org.apache.juneau.microservice.jetty.server_{@property 
juneauVersion}.jar 
-</p>   
-
-<h5 class='figure'>Microservice Starter Project</h5>
-<p class='bpcode w500'>
-       my-microservice.zip 
+       org.apache.juneau.microservice.jetty_{@property juneauVersion}.jar 
 </p>   
 
 <p>
-       Juneau Microservice is an API for creating stand-alone executable jars 
that can be used to 
+       Juneau Microservice Jetty is an API for creating stand-alone executable 
jars that can be used to 
        start lightweight configurable REST interfaces with all the power of 
the Juneau REST server and client APIs.
 </p>
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/01.Overview.html 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/01.Overview.html
new file mode 100644
index 0000000..42b057c
--- /dev/null
+++ b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/01.Overview.html
@@ -0,0 +1,61 @@
+<!--
+/***************************************************************************************************************************
+ * 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.
+ 
***************************************************************************************************************************/
+ -->
+
+{new} Overview
+
+<p>
+       The Jetty Microservice API consists of a combination of the Juneau 
Core, Server, and Client APIs and an embedded
+       Eclipse Jetty Servlet Container.  
+</p>
+<p>
+       The API builds upon the {@doc juneau-microservice-core Core 
Microservice} classes to produce easy-to-create and
+       easy-to-use microservices in a standard Java 1.8+ environment.
+</p>
+<p>
+       The <code>juneau-microservice-jetty</code> library consists of the 
following classes:
+</p>
+<ul class='doctree'>
+       <li class='jp'>{@link oaj.microservice.jetty}
+       <ul>
+               <li class='jc'>{@link oaj.microservice.jetty.JettyMicroservice} 
- The Jetty microservice class.
+               <li class='jc'>{@link 
oaj.microservice.jetty.JettyMicroserviceBuilder} - Builder for the microservice 
class.
+               <li class='jic'>{@link 
oaj.microservice.jetty.JettyMicroserviceListener} - Interface for hooking into 
lifecyle events of the microservice.
+               <ul>
+                       <li class='jc'>{@link 
oaj.microservice.jetty.BasicJettyMicroserviceListener} - Adapter for 
JettyMicroserviceListener class.
+               </ul>
+               <li class='jic'>{@link 
oaj.microservice.jetty.JettyServerFactory} - Interface for defining custom 
Jetty servers.
+               <ul>
+                       <li class='jc'>{@link 
oaj.microservice.jetty.BasicJettyServerFactory} - Adapter for 
JettyServerFactory class.
+               </ul>
+                
+       </ul>
+</ul>
+
+<p>
+       The most-basic creation of a Jetty microservice from an entry-point 
method is shown below:
+</p>   
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+               <jk>public static void</jk> main(String[] args) {
+                       JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                       ;
+               }
+       }
+</p>
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.LifecycleMethods.html 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.LifecycleMethods.html
new file mode 100644
index 0000000..0917b97
--- /dev/null
+++ 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.LifecycleMethods.html
@@ -0,0 +1,106 @@
+<!--
+/***************************************************************************************************************************
+ * 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.
+ 
***************************************************************************************************************************/
+ -->
+
+{new} Lifecycle Methods
+
+<p>
+       To review, the {@link oaj.microservice.Microservice} class contains the 
following lifecycle methods:
+</p>
+<ul class='doctree'>
+       <li class='jc'>{@link oaj.microservice.Microservice}
+       <ul>
+               <li class='jm'>{@link oaj.microservice.Microservice#start() 
start()} 
+               <li class='jm'>{@link 
oaj.microservice.Microservice#startConsole() startConsole()} 
+               <li class='jm'>{@link oaj.microservice.Microservice#join() 
join()} 
+               <li class='jm'>{@link oaj.microservice.Microservice#stop() 
stop()} 
+               <li class='jm'>{@link 
oaj.microservice.Microservice#stopConsole() stopConsole()} 
+               <li class='jm'>{@link oaj.microservice.Microservice#exit() 
exit()} 
+               <li class='jm'>{@link oaj.microservice.Microservice#kill() 
kill()} 
+       </ul>
+</ul>
+<p>
+       The {@link oaj.microservice.jetty.JettyMicroservice} class which 
extends from {@link oaj.microservice.Microservice} 
+       provides the following additional lifecycle methods:
+</p>
+<ul class='doctree'>
+       <li class='jc'>{@link oaj.microservice.jetty.JettyMicroservice}
+       <ul>
+               <li class='jm'>{@link 
oaj.microservice.jetty.JettyMicroservice#createServer() createServer()} 
+               <li class='jm'>{@link 
oaj.microservice.jetty.JettyMicroservice#startServer() startServer()} 
+               <li class='jm'>{@link 
oaj.microservice.jetty.JettyMicroservice#destroyServer() destroyServer()} 
+       </ul>
+</ul>
+<p>
+       The additional lifecycle methods are typically not called directly, but 
are exposed to allow subclasses to
+       provide customized behavior for these events.  
+       For this reason, these methods are left as non-final so that they can 
be overridden.
+</p>
+<p>
+       A typical implementation of an app with lifecycle methods might look 
like the following:
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+       
+               <jk>private static final</jk> JettyMicroservice 
<jsf>MICROSERVICE</jsf>;
+       
+               <jk>public static void</jk> main(String[] args) {
+                       <jsf>MICROSERVICE</jsf> = JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                               .startConsole()               <jc>// Start 
console.</jc>
+                               .join()                       <jc>// Join 
thread.</jc>
+                       ;
+               }
+               
+               <jk>public static void</jk> restart() {
+                       <jsf>MICROSERVICE</jsf>.stop().start();
+               }
+               
+               <jk>public static void</jk> exit() {
+                       <jsf>MICROSERVICE</jsf>.exit();
+               }
+       }
+</p>
+<p>
+       Similar to {@link oaj.microservice.Microservice#getInstance()}, the 
{@link oaj.microservice.jetty.JettyMicroservice#getInstance()}
+       also allows easy access to the microservice:
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+       
+               <jk>public static void</jk> main(String[] args) {
+                       JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                               .startConsole()               <jc>// Start 
console.</jc>
+                               .join()                       <jc>// Join 
thread.</jc>
+                       ;
+               }
+               
+               <jk>public static void</jk> restart() {
+                       
JettyMicroservice.<jsm>getInstance</jsm>().stop().start();
+               }
+               
+               <jk>public static void</jk> exit() {
+                       JettyMicroservice.<jsm>getInstance</jsm>().exit();
+               }
+       }
+</p>
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config/01.ConfigApi.html
 b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Config.html
similarity index 95%
copy from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config/01.ConfigApi.html
copy to juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Config.html
index 35499bd..d4659e1 100644
--- 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config/01.ConfigApi.html
+++ b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Config.html
@@ -13,7 +13,17 @@
  
***************************************************************************************************************************/
  -->
 
-Config File API
+{todo} Config
+
+<p>
+       The microservice config file is an external INI-style configuration 
file that is used to configure
+       your microservice.
+</p>
+<h5 class='section'>See Also:</h5>
+<ul class='doctree'>
+       <li class='link'>{@doc juneau-config}
+</ul>
+
 
 <p>
        There are 3 primary ways of getting access to the config file.
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.ResourceClasses.html 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.ResourceClasses.html
similarity index 100%
copy from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.ResourceClasses.html
copy to 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.ResourceClasses.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.PredefinedResourceClasses.html
 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.PredefinedResourceClasses.html
similarity index 100%
copy from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.PredefinedResourceClasses.html
copy to 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.PredefinedResourceClasses.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/08.UiCustomization.html 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.UiCustomization.html
similarity index 100%
copy from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/08.UiCustomization.html
copy to 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.UiCustomization.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice/01.Extending.html
 b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.Extending.html
similarity index 100%
copy from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice/01.Extending.html
copy to juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.Extending.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/01.Introduction.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/01.Introduction.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/01.Introduction.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/01.Introduction.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/01.Installing.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/01.Installing.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/01.Installing.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/01.Installing.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/02.Running.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/02.Running.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/02.Running.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/02.Running.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/03.Building.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/03.Building.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/02.GettingStarted/03.Building.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/02.GettingStarted/03.Building.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Manifest.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/03.Manifest.html
similarity index 100%
rename from juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Manifest.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/03.Manifest.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Manifest/01.ManifestApi.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/03.Manifest/01.ManifestApi.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.Manifest/01.ManifestApi.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/03.Manifest/01.ManifestApi.html
diff --git a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/04.Config.html
similarity index 100%
rename from juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/04.Config.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config/01.ConfigApi.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/04.Config/01.ConfigApi.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/04.Config/01.ConfigApi.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/04.Config/01.ConfigApi.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.ResourceClasses.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/05.ResourceClasses.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.ResourceClasses.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/05.ResourceClasses.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.PredefinedResourceClasses.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/06.PredefinedResourceClasses.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/06.PredefinedResourceClasses.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/06.PredefinedResourceClasses.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/07.RestMicroservice.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/07.RestMicroservice.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice/01.Extending.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/07.RestMicroservice/01.Extending.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/07.RestMicroservice/01.Extending.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/07.RestMicroservice/01.Extending.html
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/08.UiCustomization.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/08.UiCustomization.html
similarity index 100%
rename from 
juneau-doc/docs/Topics/12.juneau-microservice-jetty/08.UiCustomization.html
rename to 
juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/08.UiCustomization.html
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.1.png
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.1.png
new file mode 100755
index 0000000..4ea5cec
Binary files /dev/null and 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.1.png
 differ
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.2.png
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.2.png
new file mode 100755
index 0000000..9caeff9
Binary files /dev/null and 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Installing.2.png
 differ
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.ResourceClasses.1.png
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.ResourceClasses.1.png
new file mode 100644
index 0000000..91f7275
Binary files /dev/null and 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.ResourceClasses.1.png
 differ
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Running.1.png
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Running.1.png
new file mode 100644
index 0000000..9d75bda
Binary files /dev/null and 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice-server.Running.1.png
 differ
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice.UiCustomization.1.png
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice.UiCustomization.1.png
new file mode 100644
index 0000000..490cf48
Binary files /dev/null and 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty-template/doc-files/juneau-microservice.UiCustomization.1.png
 differ
diff --git a/juneau-doc/docs/Topics/14.juneau-examples-core/01.Examples.html 
b/juneau-doc/docs/Topics/14.juneau-examples-core/01.Examples.html
index a3219a8..a4f5bf6 100644
--- a/juneau-doc/docs/Topics/14.juneau-examples-core/01.Examples.html
+++ b/juneau-doc/docs/Topics/14.juneau-examples-core/01.Examples.html
@@ -13,7 +13,7 @@
  
***************************************************************************************************************************/
  -->
 
-{todo} Examples
+{new} Examples
 
 <p>
        The following shows the core examples provided:
@@ -23,7 +23,7 @@
        <ul>
                <li class='jc'>{@link oaj.examples.core.json.JsonSimpleExample} 
- JsonSerializer and JsonParser usage on serialize and deserialize simple Pojo 
bean.
                <li class='jc'>{@link 
oaj.examples.core.json.JsonComplexExample} - JsonSerializer and JsonParser 
usage on serialize and deserialize complex Pojo bean.
-               <li class='jc'>{@link 
oaj.examples.core.json.JsonConfigurationExample} - TODO
+               <li class='jc'>{@link 
oaj.examples.core.json.JsonConfigurationExample} 
        </ul>
        <li class='jp'><code>org.apache.juneau.examples.core.xml</code>
        <ul>
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index bde6ecc..ffddc04 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -406,35 +406,44 @@
                <li><p class='new'><a class='doclink' 
href='#juneau-microservice-core.Logging'>Logging</a></p>
                <li><p class='new'><a class='doclink' 
href='#juneau-microservice-core.Listeners'>Listeners</a></p>
        </ol>
-       <li><p class='toc2 todo'><a class='doclink' 
href='#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
+       <li><p class='toc2 new'><a class='doclink' 
href='#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
        <ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.Introduction'>Microservice Introduction</a></p>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.GettingStarted'>Getting Started</a></p>
+               <li><p class='new'><a class='doclink' 
href='#juneau-microservice-jetty.Overview'>Overview</a></p>
+               <li><p class='new'><a class='doclink' 
href='#juneau-microservice-jetty.LifecycleMethods'>Lifecycle Methods</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.Config'>Config</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.ResourceClasses'>Resource Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.PredefinedResourceClasses'>Predefined Resource 
Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.UiCustomization'>UI Customization</a></p>
+               <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.Extending'>Extending RestMicroservice</a></p>
+       </ol>
+       <li><p class='toc2 todo'><a class='doclink' 
href='#juneau-microservice-jetty-template'>juneau-microservice-jetty-template</a></p>
+       <ol>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.Introduction'>Microservice 
Introduction</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.GettingStarted'>Getting 
Started</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.GettingStarted.Installing'>Installing in 
Eclipse</a></p>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.GettingStarted.Running'>Running in 
Eclipse</a></p>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.GettingStarted.Building'>Building and Running 
from Command-Line</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.GettingStarted.Installing'>Installing 
in Eclipse</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.GettingStarted.Running'>Running in 
Eclipse</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.GettingStarted.Building'>Building and 
Running from Command-Line</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.Manifest'>Manifest File</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.Manifest'>Manifest File</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.Manifest.ManifestApi'>Manifest API</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.Manifest.ManifestApi'>Manifest 
API</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.Config'>Config</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.Config'>Config</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.Config.ConfigApi'>Config File API</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.Config.ConfigApi'>Config File 
API</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.ResourceClasses'>Resource Classes</a></p>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.PredefinedResourceClasses'>Predefined Resource 
Classes</a></p>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.RestMicroservice'>RestMicroservice</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.ResourceClasses'>Resource 
Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.PredefinedResourceClasses'>Predefined 
Resource Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.RestMicroservice'>RestMicroservice</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty.RestMicroservice.Extending'>Extending 
RestMicroservice</a></p>
+                       <li><p class=''><a class='doclink' 
href='#juneau-microservice-jetty-template.RestMicroservice.Extending'>Extending 
RestMicroservice</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty.UiCustomization'>UI Customization</a></p>
+               <li><p class='todo'><a class='doclink' 
href='#juneau-microservice-jetty-template.UiCustomization'>UI 
Customization</a></p>
        </ol>
-       <li><p class='toc2 todo'><a class='doclink' 
href='#juneau-microservice-jetty-template'>juneau-microservice-jetty-template</a></p>
        <li><p class='toc2 '><a class='doclink' 
href='#juneau-examples-core'>juneau-examples-core</a></p>
        <ol>
-               <li><p class='todo'><a class='doclink' 
href='#juneau-examples-core.Examples'>Examples</a></p>
+               <li><p class='new'><a class='doclink' 
href='#juneau-examples-core.Examples'>Examples</a></p>
        </ol>
        <li><p class='toc2 todo'><a class='doclink' 
href='#juneau-examples-rest'>juneau-examples-rest</a></p>
        <ol>
@@ -23525,6 +23534,9 @@
                        <li class='jc'>{@link 
org.apache.juneau.microservice.Microservice} - The base microservice class.
                        <li class='jc'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder} - Builder for the 
microservice class.
                        <li class='jic'>{@link 
org.apache.juneau.microservice.MicroserviceListener} - Interface for hooking 
into lifecyle events of the microservice.
+                       <ul>
+                               <li class='jc'>{@link 
org.apache.juneau.microservice.BasicMicroserviceListener} - Adapter for 
MicroserviceListener class.
+                       </ul>
                </ul>
        <li class='jp'>{@link org.apache.juneau.microservice.console}
                <ul>
@@ -23549,54 +23561,6 @@
                }
        }
 </p>
-<p>
-       The classes consist of the following methods:
-</p>
-<ul class='doctree'>
-       <li class='jc'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder}
-       <ul>
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#args(String...) 
args(String...)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#config(Config) 
config(Config)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#configName(String) 
configName(String)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#configStore(ConfigStore) 
configStore(ConfigStore)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#console(Scanner,PrintWriter) 
console(Scanner,PrintWriter)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#consoleCommands(ConsoleCommand...)
 consoleCommands(ConsoleCommand...)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#consoleEnabled(boolean) 
consoleEnabled(boolean)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#listener(MicroserviceListener)
 listener(MicroserviceListener)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#logConfig(LogConfig) 
logConfig(LogConfig)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#logger(Logger)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#manifest(Object)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#varContext(String, Object) 
varContext(String,Object)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceBuilder#vars(Class...) 
vars(Class...)} 
-       </ul>
-       <li class='jc'>{@link org.apache.juneau.microservice.Microservice}
-       <ul>
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#init() init()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#start() start()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#startConsole() startConsole()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#join() join()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#stop() stop()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#stopConsole() stopConsole()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#exit() exit()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#kill() kill()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getArgs() getArgs()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getConfig() getConfig()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getLogger() getLogger()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getManifest() getManifest()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getVarResolver() getVarResolver()} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#log(Level,String,Object...) 
log(Level,String,Object...)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#out(MessageBundle,String,Object...) 
out(MessageBundle,String,Object...)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#err(MessageBundle,String,Object...) 
err(MessageBundle,String,Object...)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#onConfigChange(ConfigEvents) 
onConfigChange(ConfigEvents)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#executeCommand(Args,Scanner,PrintWriter)
 executeCommand(Args,Scanner,PrintWriter)} 
-       </ul>
-       <li class='jic'>{@link 
org.apache.juneau.microservice.MicroserviceListener}
-       <ul>
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceListener#onConfigChange(Microservice,ConfigEvents)
 onConfigChange(Microservice,ConfigEvents)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceListener#onStart(Microservice) 
onStart(Microservice)} 
-               <li class='jm'>{@link 
org.apache.juneau.microservice.MicroserviceListener#onStop(Microservice) 
onStop(Microservice)} 
-       </ul>
-</ul>
 </div><!-- END: 11.1 - juneau-microservice-core.Overview -->
 
 <!-- 
====================================================================================================
 -->
@@ -24323,154 +24287,719 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h2 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty' id='juneau-microservice-jetty'>12 - 
juneau-microservice-jetty</a></h2>
+<h2 class='topic new' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty' id='juneau-microservice-jetty'>12 - 
juneau-microservice-jetty</a></h2>
 <div class='topic'><!-- START: 12 - juneau-microservice-jetty -->
 <h5 class='figure'>Maven Dependency</h5>
 <p class='bpcode w500'>
        <xt>&lt;dependency&gt;</xt>
                
<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-server<xt>&lt;/artifactId&gt;</xt>
+               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-jetty<xt>&lt;/artifactId&gt;</xt>
                <xt>&lt;version&gt;</xt>{@property 
juneauVersion}<xt>&lt;/version&gt;</xt>
        <xt>&lt;/dependency&gt;</xt>
 </p>   
 
 <h5 class='figure'>Java Library</h5>
 <p class='bpcode w500'>
-       juneau-microservice-server-{@property juneauVersion}.jar 
+       juneau-microservice-jetty-{@property juneauVersion}.jar 
 </p>   
 
 <h5 class='figure'>OSGi Module</h5>
 <p class='bpcode w500'>
-       org.apache.juneau.microservice.jetty.server_{@property 
juneauVersion}.jar 
-</p>   
-
-<h5 class='figure'>Microservice Starter Project</h5>
-<p class='bpcode w500'>
-       my-microservice.zip 
+       org.apache.juneau.microservice.jetty_{@property juneauVersion}.jar 
 </p>   
 
 <p>
-       Juneau Microservice is an API for creating stand-alone executable jars 
that can be used to 
+       Juneau Microservice Jetty is an API for creating stand-alone executable 
jars that can be used to 
        start lightweight configurable REST interfaces with all the power of 
the Juneau REST server and client APIs.
 </p>
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Introduction' 
id='juneau-microservice-jetty.Introduction'>12.1 - Microservice 
Introduction</a></h3>
-<div class='topic'><!-- START: 12.1 - juneau-microservice-jetty.Introduction 
-->
+<h3 class='topic new' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Overview' 
id='juneau-microservice-jetty.Overview'>12.1 - Overview</a></h3>
+<div class='topic'><!-- START: 12.1 - juneau-microservice-jetty.Overview -->
 <p>
-       The Microservice API consists of a combination of the Juneau Core, 
Server, and Client APIs and an embedded
+       The Jetty Microservice API consists of a combination of the Juneau 
Core, Server, and Client APIs and an embedded
        Eclipse Jetty Servlet Container.  
-       <br>It includes all libraries needed to execute in a Java 1.7+ 
environment.
 </p>
 <p>
-       Features include:
+       The API builds upon the {@doc juneau-microservice-core Core 
Microservice} classes to produce easy-to-create and
+       easy-to-use microservices in a standard Java 1.8+ environment.
 </p>
-<ul class='spaced-list'>
-       <li>
-               An out-of-the-box zipped Eclipse project to get started quickly.
-       <li>
-               Packaged as a simple executable jar and configuration file.
-       <li>
-               All the power of the Juneau ecosystem for defining REST 
servlets and clients with the ability to 
-               serialize and parse POJOs as HTML, JSON, XML, RDF, 
URL-Encoding, and others.
-       <li>
-               An extensible API that allows you to hook into various 
lifecycle events.
-       <li>
-               Simple-to-use APIs for accessing manifest file entries, 
command-line arguments, and external configuration 
-               file properties.
-       <li>
-               Predefined REST resources for configuring microservice and 
accessing log files.
-</ul>
 <p>
-       The <code>juneau-microservice-server</code> library consists of the 
following classes:
+       The <code>juneau-microservice-jetty</code> library consists of the 
following classes:
 </p>
 <ul class='doctree'>
-       <li class='jac'>
-               {@link org.apache.juneau.microservice.Microservice} 
-               - Defines basic lifecycle methods for microservices in general.
+       <li class='jp'>{@link org.apache.juneau.microservice.jetty}
+       <ul>
+               <li class='jc'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroservice} - The Jetty 
microservice class.
+               <li class='jc'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroserviceBuilder} - Builder for 
the microservice class.
+               <li class='jic'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroserviceListener} - Interface for 
hooking into lifecyle events of the microservice.
                <ul>
-                       <li class='jc'>
-                               {@link 
org.apache.juneau.microservice.RestMicroservice}
-                               - Defines additional lifecycle methods for REST 
microservices.
-                               <br>Starts up an externally-configured Jetty 
server, registers servlets, and sets up 
-                               other features such as logging.  
+                       <li class='jc'>{@link 
org.apache.juneau.microservice.jetty.BasicJettyMicroserviceListener} - Adapter 
for JettyMicroserviceListener class.
                </ul>
+               <li class='jic'>{@link 
org.apache.juneau.microservice.jetty.JettyServerFactory} - Interface for 
defining custom Jetty servers.
+               <ul>
+                       <li class='jc'>{@link 
org.apache.juneau.microservice.jetty.BasicJettyServerFactory} - Adapter for 
JettyServerFactory class.
+               </ul>
+                
+       </ul>
 </ul>
-</div><!-- END: 12.1 - juneau-microservice-jetty.Introduction -->
+
+<p>
+       The most-basic creation of a Jetty microservice from an entry-point 
method is shown below:
+</p>   
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+               <jk>public static void</jk> main(String[] args) {
+                       JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                       ;
+               }
+       }
+</p>
+</div><!-- END: 12.1 - juneau-microservice-jetty.Overview -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.GettingStarted' 
id='juneau-microservice-jetty.GettingStarted'>12.2 - Getting Started</a></h3>
-<div class='topic'><!-- START: 12.2 - juneau-microservice-jetty.GettingStarted 
-->
+<h3 class='topic new' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.LifecycleMethods' 
id='juneau-microservice-jetty.LifecycleMethods'>12.2 - Lifecycle 
Methods</a></h3>
+<div class='topic'><!-- START: 12.2 - 
juneau-microservice-jetty.LifecycleMethods -->
 <p>
-       The <l>my-microservice.zip</l> file is a zipped eclipse project that 
includes everything you 
-       need to create a REST microservice in an Eclipse workspace.
+       To review, the {@link org.apache.juneau.microservice.Microservice} 
class contains the following lifecycle methods:
+</p>
+<ul class='doctree'>
+       <li class='jc'>{@link org.apache.juneau.microservice.Microservice}
+       <ul>
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#start() start()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#startConsole() startConsole()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#join() join()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#stop() stop()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#stopConsole() stopConsole()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#exit() exit()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#kill() kill()} 
+       </ul>
+</ul>
+<p>
+       The {@link org.apache.juneau.microservice.jetty.JettyMicroservice} 
class which extends from {@link org.apache.juneau.microservice.Microservice} 
+       provides the following additional lifecycle methods:
+</p>
+<ul class='doctree'>
+       <li class='jc'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroservice}
+       <ul>
+               <li class='jm'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroservice#createServer() 
createServer()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroservice#startServer() 
startServer()} 
+               <li class='jm'>{@link 
org.apache.juneau.microservice.jetty.JettyMicroservice#destroyServer() 
destroyServer()} 
+       </ul>
+</ul>
+<p>
+       The additional lifecycle methods are typically not called directly, but 
are exposed to allow subclasses to
+       provide customized behavior for these events.  
+       For this reason, these methods are left as non-final so that they can 
be overridden.
+</p>
+<p>
+       A typical implementation of an app with lifecycle methods might look 
like the following:
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+       
+               <jk>private static final</jk> JettyMicroservice 
<jsf>MICROSERVICE</jsf>;
+       
+               <jk>public static void</jk> main(String[] args) {
+                       <jsf>MICROSERVICE</jsf> = JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                               .startConsole()               <jc>// Start 
console.</jc>
+                               .join()                       <jc>// Join 
thread.</jc>
+                       ;
+               }
+               
+               <jk>public static void</jk> restart() {
+                       <jsf>MICROSERVICE</jsf>.stop().start();
+               }
+               
+               <jk>public static void</jk> exit() {
+                       <jsf>MICROSERVICE</jsf>.exit();
+               }
+       }
+</p>
+<p>
+       Similar to {@link 
org.apache.juneau.microservice.Microservice#getInstance()}, the {@link 
org.apache.juneau.microservice.jetty.JettyMicroservice#getInstance()}
+       also allows easy access to the microservice:
+</p>
+<p class='bpcode w800'>
+       <jk>public class</jk> App {
+       
+               <jk>public static void</jk> main(String[] args) {
+                       JettyMicroservice
+                               .<jsm>create</jsm>()                     <jc>// 
Create builder.</jc>
+                               .args(args)                   <jc>// Pass in 
args.</jc>
+                               .servlets(RootResource.<jk>class</jk>) <jc>// A 
Juneau RestServlet class.</jc>
+                               .build()                      <jc>// Create 
microservice.</jc>
+                               .start()                      <jc>// Start 
microservice.</jc>
+                               .startConsole()               <jc>// Start 
console.</jc>
+                               .join()                       <jc>// Join 
thread.</jc>
+                       ;
+               }
+               
+               <jk>public static void</jk> restart() {
+                       
JettyMicroservice.<jsm>getInstance</jsm>().stop().start();
+               }
+               
+               <jk>public static void</jk> exit() {
+                       JettyMicroservice.<jsm>getInstance</jsm>().exit();
+               }
+       }
 </p>
+</div><!-- END: 12.2 - juneau-microservice-jetty.LifecycleMethods -->
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.GettingStarted.Installing' 
id='juneau-microservice-jetty.GettingStarted.Installing'>12.2.1 - Installing in 
Eclipse</a></h4>
-<div class='topic'><!-- START: 12.2.1 - 
juneau-microservice-jetty.GettingStarted.Installing -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Config' 
id='juneau-microservice-jetty.Config'>12.3 - Config</a></h3>
+<div class='topic'><!-- START: 12.3 - juneau-microservice-jetty.Config -->
 <p>
-       Follow these instructions to create a new template project in Eclipse.
-</p>           
-<ol class='spaced-list'>
-       <li>
-               Download the latest microservice-project zip file (e.g. 
<l>my-microservice.zip</l>).
-       <li>
-               In your Eclipse workspace, go to <b>File -&gt; Import -&gt; 
General -&gt; Existing Projects into Workspace</b> 
-               and select the zip file and click <b>Finish</b>.
-               <br><br>
-               <img class='bordered' 
src='doc-files/juneau-microservice-server.Installing.1.png' style='width:549px'>
-       <li>
-               In your workspace, you should now see the following project:
-               <br><br>
-               <img class='bordered' 
src='doc-files/juneau-microservice-server.Installing.2.png' style='width:299px'>
-</ol>
+       The microservice config file is an external INI-style configuration 
file that is used to configure
+       your microservice.
+</p>
+<h5 class='section'>See Also:</h5>
+<ul class='doctree'>
+       <li class='link'>{@doc juneau-config}
+</ul>
+
+
 <p>
-       The important elements in this project are:
+       There are 3 primary ways of getting access to the config file.
 </p>
-<ul class='spaced-list'>
-       <li>
-               <l>RootResources.java</l> - The top-level REST resource. 
-               <br>This class routes HTTP requests to child resources:
-               <br><br>
+<ul class='doctree'>
+       <li class='jm'>{@link 
org.apache.juneau.microservice.Microservice#getConfig()} 
+               <br>Any {@doc DefaultRestSvlVariables initialization-time 
variables} can be used.
+       <li class='jm'>{@link org.apache.juneau.rest.RestContext#getConfig()} 
+               <br>Any {@doc DefaultRestSvlVariables initialization-time 
variables} can be used.
+               <h5 class='figure'>Example usage:</h5>
                <p class='bcode w800'>
-       <ja>@RestResource</ja>(
-               path=<js>"/"</js>,
-               title=<js>"My Microservice"</js>,
-               description=<js>"Top-level resources page"</js>,
-               htmldoc=<ja>@HtmlDoc</ja>(
-                       widgets={
-                               ContentTypeMenuItem.<jk>class</jk>,
-                               StyleMenuItem.<jk>class</jk>
-                       },
-                       navlinks={
-                               <js>"options: servlet:/?method=OPTIONS"</js>
-                       }
-               ),
-               children={
-                       HelloWorldResource.<jk>class</jk>,
-                       ConfigResource.<jk>class</jk>,
-                       LogsResource.<jk>class</jk>
+       <cc>#-------------------------------</cc>
+       <cc># Properties for MyHelloResource </cc>
+       <cc>#-------------------------------</cc>
+       <cs>[MyHelloResource]</cs>
+       <ck>greeting</ck> = <cv>Hello world!</cv> 
+                               </p>
+                               <p class='bcode w800'>
+       <ja>@RestResource</ja>(...)
+       <jk>public class</jk> MyHelloResource <jk>extends</jk> BasicRestServlet 
{
+               <jc>// Access config file when initializing fields.</jc>
+               <jk>private</jk> String greeting = 
getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
+               
+               <jc>// Or access config file in servlet init method.</jc>
+               <ja>@Override</ja> <jc>/* Servlet */</jc>
+               <jk>public void</jk> init() {
+                       String greeting = 
getConfig().getString(<js>"MyHelloResource/greeting"</js>); 
                }
-       )
-       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletJenaGroup {
-               <jc>// No code</jc>
-       }
+       }               
                </p>
-       <li>
-               <l>my-microservice.cfg</l> - The external configuration file. 
-               <br>Contains various useful settings.
-               <br>Can be used for your own resource configurations.
-               <br><br>
+               <p>
+                       Additional user-defined variables can be defined at 
this level by adding a  
+                       {@link 
org.apache.juneau.rest.annotation.HookEvent#INIT} hook method
+                       and using the {@link 
org.apache.juneau.rest.RestContextBuilder#vars(Class...)} method.
+               </p>
+       <li class='jm'>
+               {@link org.apache.juneau.rest.RestRequest#getConfig()} 
+               - An instance method to access it from inside a REST method.
+               <br>Any {@doc DefaultRestSvlVariables initialization-time or 
request-time variables} can be used.
+               
+               <h5 class='figure'>Example usage:</h5>
                <p class='bcode w800'>
-       
<cc>#=======================================================================================================================
-       # Basic configuration file for REST microservices
-       # Subprojects can use this as a starting point.
-       
#=======================================================================================================================</cc>
-       
+       <cc>#-----------------------------</cc>
+       <cc># Contents of microservice.cfg </cc>
+       <cc>#-----------------------------</cc>
+       <cs>[MyHelloResource]</cs>
+       <ck>greeting</ck> = <cv>Hello $RP{person}!</cv> 
+       <ck>localizedGreeting</ck> = <cv>$L{HelloMessage,$RP{person}}</cv> 
+                               </p>
+                               <p class='bcode w800'>
+       <cc>#---------------------------------</cc>
+       <cc># Contents of MyHelloResource.java </cc>
+       <cc>#---------------------------------</cc>
+       <ja>@RestResource</ja>(
+               path=<js>"/hello"</js>,
+               messages=<js>"nls/Messages"</js>,
+               ...
+       )
+       <jk>public class</jk> MyHelloResource <jk>extends</jk> BasicRestServlet 
{
+
+               <jd>/** Standard hello message. */</jd>
+               <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, 
path=<js>"/{person}"</js>)
+               <jk>public</jk> String sayHello(RestRequest req) {
+                       <jk>return</jk> 
req.getConfig().getString(<js>"MyHelloResource/greeting"</js>);
+               }
+
+               <jd>/** Hello message in users language. */</jd>
+               <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, 
path=<js>"/localized/{person}"</js>)
+               <jk>public</jk> String sayLocalizedHello(RestRequest req) {
+                       <jk>return</jk> 
req.getConfig().getString(<js>"MyHelloResource/localizedGreeting"</js>);
+               }
+       }               
+               </p>
+               <p class='bcode w800'>
+       <cc>#---------------------------------------</cc>
+       <cc># Contents of nls/Messages_en.properties </cc>
+       <cc>#---------------------------------------</cc>
+       <ck>MyHelloResource.HelloMessage</ck> = <cv>Hello {0}!</cv> 
+               </p>
+               <p>
+                       Additional user-defined variables can be defined at 
this level by overriding the 
+                       {@link 
org.apache.juneau.rest.RestContextBuilder#vars(Class...)} method.
+               </p>
+</ul>
+<p>
+       That <l>sayLocalizedHello()</l> example might need some explanation 
since there's a lot going on there.
+       <br>Here's what happens when an HTTP call is made to <l>GET 
/hello/localized/Bob</l>:
+</p>
+<ol class='spaced-list'>
+       <li>
+               The HTTP call matches the <l>/hello</l> path on the 
<l>MyHelloResource</l> class.
+       <li>
+               The HTTP call matches the <l>/localized/{person}</l> path on 
the <l>sayLocalizedHello()</l> method.
+       <li>
+               The request attribute <l>person</l> gets assigned the value 
<l>"Bob"</l>.
+       <li>
+               The call to 
<l>req.getConfig().getString("MyHelloResource/localizedGreeting")</l> 
+               finds the value <l>"$L{HelloMessage,$RP{person}}"</l>.
+       <li>
+               The arguments in the <l>$L{}</l> variable get resolved, 
resulting in <l>"$L{HelloMessage,Bob}"</l>.
+       <li>
+               The <l>$L{}</l> variable gets resolved to the message <l>"Hello 
{0}!"</l> in the localized properties 
+               file of the servlet based on the <l>Accept-Language</l> header 
on the request.
+       <li>
+               The arguments get replaced in the message resulting in 
<l>"Hello Bob!"</l>. 
+       <li>
+               The resulting message <l>"Hello Bob!"</l> is returned as a POJO 
to be serialized to whatever content 
+               type was specified on the <l>Accept</l> header on the request.
+</ol>
+<p>
+       This particular example is needlessly complex, but it gives an idea of 
how variables can be used 
+       recursively to produce sophisticated results
+</p>
+</div><!-- END: 12.3 - juneau-microservice-jetty.Config -->
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.ResourceClasses' 
id='juneau-microservice-jetty.ResourceClasses'>12.4 - Resource Classes</a></h3>
+<div class='topic'><!-- START: 12.4 - 
juneau-microservice-jetty.ResourceClasses -->
+<p>
+       Now let's take a look at the resource classes themselves.  
+       <br>The top-level page...
+</p>
+<p class='bpcode w800'>
+       http://localhost:10000
+</p>                   
+<img class='bordered w800' 
src='doc-files/juneau-microservice-server.Running.1.png'>
+<p>
+       ...is generated by this class...
+<p class='bpcode w800'>
+       <ja>@RestResource</ja>(
+               path=<js>"/"</js>,
+               title=<js>"My Microservice"</js>,
+               description=<js>"Top-level resources page"</js>,
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       navlinks={
+                               <js>"options: servlet:/?method=OPTIONS"</js>
+                       }
+               ),
+               children={
+                       HelloWorldResource.<jk>class</jk>,
+                       ConfigResource.<jk>class</jk>,
+                       LogsResource.<jk>class</jk>
+               }
+       )
+       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletJenaGroup {
+               <jc>// No code! </jc>
+       }
+</p>
+<ul class='spaced-list'>
+       <li>
+               The </l>title</l> and <l>description</l> annotations define the 
titles on the page.
+               <br>These can be globalized using <l>$L{...}</l> variables, or 
by defining specially-named properties in the 
+               properties file for the resource.
+       <li>
+               In this case, the <l>path</l> annotation defines the context 
root of your application since it was 
+               not specified in the manifest or config file.
+               <br>Therefore, this resource is mapped to 
<l>http://localhost:10000</l>.
+       <li>
+               The <l>children</l> annotation make up the list of child 
resources.
+               <br>These child resources can be anything that extends from 
<l>Servlet</l>, although usually
+               they will be subclasses of {@link 
org.apache.juneau.rest.BasicRestServlet} or other resource groups.
+</ul>
+<p>
+       If you click the <l>helloWorld</l> link in your application, you'll get 
a simple hello world message:
+</p>
+<p class='bpcode w800'>
+       http://localhost:10000/helloWorld
+</p>                   
+<img class='bordered w800' 
src='doc-files/juneau-microservice-server.ResourceClasses.1.png'>
+<p>
+       ...which is generated by this class...
+</p>
+<p class='bpcode w800'>
+       <ja>@RestResource</ja>(
+               path=<js>"/helloWorld"</js>,
+               title=<js>"Hello World example"</js>,
+               description=<js>"Simplest possible REST resource"</js>
+       )
+       <jk>public class</jk> HelloWorldResource <jk>extends</jk> 
BasicRestServlet {
+       
+               <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>)
+               <jk>public</jk> String sayHello() {
+                       <jk>return</jk> <js>"Hello world!"</js>;
+               }
+       }               
+</p>
+</div><!-- END: 12.4 - juneau-microservice-jetty.ResourceClasses -->
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.PredefinedResourceClasses' 
id='juneau-microservice-jetty.PredefinedResourceClasses'>12.5 - Predefined 
Resource Classes</a></h3>
+<div class='topic'><!-- START: 12.5 - 
juneau-microservice-jetty.PredefinedResourceClasses -->
+<p>
+       The following predefined resource classes are also provided for easy 
inclusion into your microservice:
+</p>
+<ul class='doctree'>
+       <li class='jc'>{@link 
org.apache.juneau.microservice.resources.ConfigResource}
+               - View and modify the external INI config file.
+       <li class='jc'>{@link 
org.apache.juneau.microservice.resources.DirectoryResource}
+               - View and modify file system directories.
+       <li class='jc'>{@link 
org.apache.juneau.microservice.resources.LogsResource}
+               - View and control generated log files.
+       <li class='jc'>{@link 
org.apache.juneau.microservice.resources.SampleRootResource}
+               - A sample root resource class to get started from.
+       <li class='jc'>{@link 
org.apache.juneau.microservice.resources.ShutdownResource}
+               - Shutdown and/or restart the JVM.
+</ul>
+</div><!-- END: 12.5 - juneau-microservice-jetty.PredefinedResourceClasses -->
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.UiCustomization' 
id='juneau-microservice-jetty.UiCustomization'>12.6 - UI Customization</a></h3>
+<div class='topic'><!-- START: 12.6 - 
juneau-microservice-jetty.UiCustomization -->
+<p>
+       The Microservice project contains a <code>files/htdocs</code> working 
directly folder with predefined stylesheets and
+       images.
+</p>
+<img style='width:200px' 
src='doc-files/juneau-microservice.UiCustomization.1.png'>
+<p>
+       These files can be used to tailor the look-and-feel of your 
microservice.
+</p>
+<p class='bpcode w800'>
+       http://localhost:10000/helloWorld
+</p>
+<img class='bordered w800' 
src='doc-files/juneau-rest-server.UiCustomization.1.png'>
+<p>
+       The REST configuration section of your microservice configuration file 
can be used to tailor the header and footer on the pages:
+</p>
+<p class='bpcode w800'>
+       
<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>&lt;a href='$U{$C{REST/headerLink}}'&gt;</cv>
+                       <cv>&lt;img src='$U{$C{REST/headerIcon}}' 
style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/&gt;</cv>
+               <cv>&lt;/a&gt;</cv>
+       <ck>footer</ck> = 
+               <cv>&lt;a href='$U{$C{REST/footerLink}}'&gt;</cv>
+                       <cv>&lt;img src='$U{$C{REST/footerIcon}}' 
style='float:right;padding-right:20px;height:32px'/&gt;</cv>
+               <cv>&lt;/a&gt;</cv>
+</p>
+<p>
+       The {@link org.apache.juneau.rest.BasicRestConfig} interface (which 
defines the default settings for {@link 
org.apache.juneau.rest.BasicRestServlet} 
+       pulls in this information using {@link 
org.apache.juneau.config.vars.ConfigVar $C} and {@link 
org.apache.juneau.rest.vars.UrlVar $U} variables:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestResource</ja>(
+               ...
+               <jc>// HTML-page specific settings</jc>
+               htmldoc=<ja>@HtmlDoc</ja>(
+       
+                       <jc>// Default page header contents.</jc>
+                       header={
+                               
<js>"&lt;h1&gt;$R{resourceTitle}&lt;/h1&gt;"</js>,  <jc>// Use 
@RestResource(title)</jc>
+                               
<js>"&lt;h2&gt;$R{methodSummary,resourceDescription}&lt;/h2&gt;"</js>, <jc>// 
Use either @RestMethod(summary) or @RestResource(description)</jc>
+                               <js>"$C{REST/header}"</js>  <jc>// Extra header 
HTML defined in external config file.</jc>
+                       },
+       
+                       <jc>// Default stylesheet to use for the page.
+                       // Can be overridden from external config file.
+                       // Default is DevOps look-and-feel (aka Depression 
look-and-feel).</jc>
+                       
stylesheet=<js>"$C{REST/theme,servlet:/htdocs/themes/devops.css}"</js>,
+       
+                       <jc>// Default contents to add to the &lt;head&gt; 
section of the HTML page.
+                       // Use it to add a favicon link to the page.</jc>
+                       head={
+                               <js>"&lt;link rel='icon' 
href='$U{$C{REST/favicon}}'/&gt;"</js>
+                       },
+       
+                       <jc>// No default page footer contents.
+                       // Can be overridden from external config file.</jc>
+                       footer=<js>"$C{REST/footer}"</js>
+               ),
+       
+               <jc>// Optional external configuration file.</jc>
+               config=<js>"$S{juneau.configFile}"</js>,
+       
+               <jc>// These are static files that are served up by the servlet 
under the specified sub-paths.
+               // For example, "/servletPath/htdocs/javadoc.css" resolves to 
the file "[servlet-package]/htdocs/javadoc.css"
+               // By default, we define static files through the external 
configuration file.</jc>
+               staticFiles=<js>"$C{REST/staticFiles}"</js>
+       )
+       <jk>public interface</jk> BasicRestConfig {}
+</p>
+<p>
+       Note that the <code>files/htdocs</code> directory is mapped to 
<js>"servlet:/htdocs"</js> using the <code>staticFiles</code>
+       setting.  This allows those files to be served up through the servlet 
through the URL <js>"/[servlet-path]/htdocs"</js>
+</p>
+<p>
+       The theme files are externally accessible and can be modified to 
produce any look-and-feel you desire.
+       The microservice still works without the files directory.  An embedded 
<code>devops.css</code> is included in the jar as a default spreadsheet.
+</p>
+<p>
+       If you're testing out changes in the theme stylesheets, you may want to 
set the following system property that prevents caching of those files so 
+       that you don't need to restart the microservice each time a change is 
made:
+</p>
+<p class='bpcode w800'>
+       
<cc>#=======================================================================================================================
+       # System properties
+       
#-----------------------------------------------------------------------------------------------------------------------
+       # These are arbitrary system properties that are set during startup.
+       
#=======================================================================================================================</cc>
+       <cs>[SystemProperties]</cs>
+       
+       <cc># Disable classpath resource caching.
+       # Useful if you're attached using a debugger and you're modifying 
classpath resources while running.</cc>
+       <ck>RestContext.useClasspathResourceCaching.b</ck> = <cv>false</cv>
+
+</p>
+</div><!-- END: 12.6 - juneau-microservice-jetty.UiCustomization -->
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Extending' 
id='juneau-microservice-jetty.Extending'>12.7 - Extending 
RestMicroservice</a></h3>
+<div class='topic'><!-- START: 12.7 - juneau-microservice-jetty.Extending -->
+<p>
+       This example shows how the {@link 
org.apache.juneau.microservice.RestMicroservice} class
+       can be extended to implement lifecycle listener methods or override 
existing methods.
+       <br>We'll create a new class 
<l>com.foo.SampleCustomRestMicroservice</l>.
+</p>
+<p>
+       First, the manifest file needs to be modified to point to our new 
microservice:
+</p>
+<p class='bpcode w800'>
+       <mk>Main-Class:</mk> com.foo.SampleCustomRestMicroservice
+</p>
+<p>
+       Then we define the following class:
+</p>
+<p class='bpcode w800'>
+       <jd>/**
+        * Sample subclass of a RestMicroservice that provides customized 
behavior.
+        * This class must be specified in the Main-Class entry in the manifest 
file and optionally
+        *      a Main-ConfigFile entry.
+        */</jd>
+       <jk>public class</jk> SampleCustomRestMicroservice <jk>extends</jk> 
RestMicroservice {
+       
+               <jd>/**
+                * Must implement a main method and call start()!
+                */</jd>
+               <jk>public static void</jk> main(String[] args) <jk>throws</jk> 
Exception {
+                       <jk>new</jk> 
SampleCustomRestMicroservice(args).start().join();
+               }
+       
+               <jd>/**
+                * Must implement a constructor!
+                * 
+                * <ja>@param</ja> args Command line arguments. 
+                * <ja>@throws</ja> Exception 
+                */</jd>
+               <jk>public</jk> SampleCustomRestMicroservice(String[] args) 
<jk>throws</jk> Exception {
+                       <jk>super</jk>(args);
+               }
+</p>
+<p>
+       The microservice APIs provide several useful methods that can be used 
or extended.
+</p>
+<h5 class='section'>See Also:</h5>
+<ul class='doctree'>
+       <li class='jac'>{@link org.apache.juneau.microservice.Microservice}
+       <li class='jc'>{@link org.apache.juneau.microservice.RestMicroservice}
+</ul>
+</div><!-- END: 12.7 - juneau-microservice-jetty.Extending -->
+</div><!-- END: 12 - juneau-microservice-jetty -->
+
+<!-- 
====================================================================================================
 -->
+
+<h2 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template' 
id='juneau-microservice-jetty-template'>13 - 
juneau-microservice-jetty-template</a></h2>
+<div class='topic'><!-- START: 13 - juneau-microservice-jetty-template -->
+<h5 class='figure'>Maven Dependency</h5>
+<p class='bpcode w500'>
+       <xt>&lt;dependency&gt;</xt>
+               
<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
+               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-server<xt>&lt;/artifactId&gt;</xt>
+               <xt>&lt;version&gt;</xt>{@property 
juneauVersion}<xt>&lt;/version&gt;</xt>
+       <xt>&lt;/dependency&gt;</xt>
+</p>   
+
+<h5 class='figure'>Java Library</h5>
+<p class='bpcode w500'>
+       juneau-microservice-server-{@property juneauVersion}.jar 
+</p>   
+
+<h5 class='figure'>OSGi Module</h5>
+<p class='bpcode w500'>
+       org.apache.juneau.microservice.jetty.server_{@property 
juneauVersion}.jar 
+</p>   
+
+<h5 class='figure'>Microservice Starter Project</h5>
+<p class='bpcode w500'>
+       my-microservice.zip 
+</p>   
+
+<p>
+       Juneau Microservice is an API for creating stand-alone executable jars 
that can be used to 
+       start lightweight configurable REST interfaces with all the power of 
the Juneau REST server and client APIs.
+</p>
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.Introduction' 
id='juneau-microservice-jetty-template.Introduction'>13.1 - Microservice 
Introduction</a></h3>
+<div class='topic'><!-- START: 13.1 - 
juneau-microservice-jetty-template.Introduction -->
+<p>
+       The Microservice API consists of a combination of the Juneau Core, 
Server, and Client APIs and an embedded
+       Eclipse Jetty Servlet Container.  
+       <br>It includes all libraries needed to execute in a Java 1.7+ 
environment.
+</p>
+<p>
+       Features include:
+</p>
+<ul class='spaced-list'>
+       <li>
+               An out-of-the-box zipped Eclipse project to get started quickly.
+       <li>
+               Packaged as a simple executable jar and configuration file.
+       <li>
+               All the power of the Juneau ecosystem for defining REST 
servlets and clients with the ability to 
+               serialize and parse POJOs as HTML, JSON, XML, RDF, 
URL-Encoding, and others.
+       <li>
+               An extensible API that allows you to hook into various 
lifecycle events.
+       <li>
+               Simple-to-use APIs for accessing manifest file entries, 
command-line arguments, and external configuration 
+               file properties.
+       <li>
+               Predefined REST resources for configuring microservice and 
accessing log files.
+</ul>
+<p>
+       The <code>juneau-microservice-server</code> library consists of the 
following classes:
+</p>
+<ul class='doctree'>
+       <li class='jac'>
+               {@link org.apache.juneau.microservice.Microservice} 
+               - Defines basic lifecycle methods for microservices in general.
+               <ul>
+                       <li class='jc'>
+                               {@link 
org.apache.juneau.microservice.RestMicroservice}
+                               - Defines additional lifecycle methods for REST 
microservices.
+                               <br>Starts up an externally-configured Jetty 
server, registers servlets, and sets up 
+                               other features such as logging.  
+               </ul>
+</ul>
+</div><!-- END: 13.1 - juneau-microservice-jetty-template.Introduction -->
+
+<!-- 
====================================================================================================
 -->
+
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.GettingStarted' 
id='juneau-microservice-jetty-template.GettingStarted'>13.2 - Getting 
Started</a></h3>
+<div class='topic'><!-- START: 13.2 - 
juneau-microservice-jetty-template.GettingStarted -->
+<p>
+       The <l>my-microservice.zip</l> file is a zipped eclipse project that 
includes everything you 
+       need to create a REST microservice in an Eclipse workspace.
+</p>
+
+<!-- 
====================================================================================================
 -->
+
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.GettingStarted.Installing' 
id='juneau-microservice-jetty-template.GettingStarted.Installing'>13.2.1 - 
Installing in Eclipse</a></h4>
+<div class='topic'><!-- START: 13.2.1 - 
juneau-microservice-jetty-template.GettingStarted.Installing -->
+<p>
+       Follow these instructions to create a new template project in Eclipse.
+</p>           
+<ol class='spaced-list'>
+       <li>
+               Download the latest microservice-project zip file (e.g. 
<l>my-microservice.zip</l>).
+       <li>
+               In your Eclipse workspace, go to <b>File -&gt; Import -&gt; 
General -&gt; Existing Projects into Workspace</b> 
+               and select the zip file and click <b>Finish</b>.
+               <br><br>
+               <img class='bordered' 
src='doc-files/juneau-microservice-server.Installing.1.png' style='width:549px'>
+       <li>
+               In your workspace, you should now see the following project:
+               <br><br>
+               <img class='bordered' 
src='doc-files/juneau-microservice-server.Installing.2.png' style='width:299px'>
+</ol>
+<p>
+       The important elements in this project are:
+</p>
+<ul class='spaced-list'>
+       <li>
+               <l>RootResources.java</l> - The top-level REST resource. 
+               <br>This class routes HTTP requests to child resources:
+               <br><br>
+               <p class='bcode w800'>
+       <ja>@RestResource</ja>(
+               path=<js>"/"</js>,
+               title=<js>"My Microservice"</js>,
+               description=<js>"Top-level resources page"</js>,
+               htmldoc=<ja>@HtmlDoc</ja>(
+                       widgets={
+                               ContentTypeMenuItem.<jk>class</jk>,
+                               StyleMenuItem.<jk>class</jk>
+                       },
+                       navlinks={
+                               <js>"options: servlet:/?method=OPTIONS"</js>
+                       }
+               ),
+               children={
+                       HelloWorldResource.<jk>class</jk>,
+                       ConfigResource.<jk>class</jk>,
+                       LogsResource.<jk>class</jk>
+               }
+       )
+       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletJenaGroup {
+               <jc>// No code</jc>
+       }
+               </p>
+       <li>
+               <l>my-microservice.cfg</l> - The external configuration file. 
+               <br>Contains various useful settings.
+               <br>Can be used for your own resource configurations.
+               <br><br>
+               <p class='bcode w800'>
+       
<cc>#=======================================================================================================================
+       # Basic configuration file for REST microservices
+       # Subprojects can use this as a starting point.
+       
#=======================================================================================================================</cc>
+       
        <cc># What to do when the config file is saved.
        # Possible values:
        #       NOTHING - Don't do anything. (default)
@@ -24621,12 +25150,12 @@
 <p>
        At this point, you're ready to start the microservice from your 
workspace.
 </p>
-</div><!-- END: 12.2.1 - juneau-microservice-jetty.GettingStarted.Installing 
-->
+</div><!-- END: 13.2.1 - 
juneau-microservice-jetty-template.GettingStarted.Installing -->
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.GettingStarted.Running' 
id='juneau-microservice-jetty.GettingStarted.Running'>12.2.2 - Running in 
Eclipse</a></h4>
-<div class='topic'><!-- START: 12.2.2 - 
juneau-microservice-jetty.GettingStarted.Running -->
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.GettingStarted.Running' 
id='juneau-microservice-jetty-template.GettingStarted.Running'>13.2.2 - Running 
in Eclipse</a></h4>
+<div class='topic'><!-- START: 13.2.2 - 
juneau-microservice-jetty-template.GettingStarted.Running -->
 <p>
        The <l>my-microservice.launch</l> file is already provided to allow you 
to quickly start
        your new microservice.
@@ -24658,12 +25187,12 @@
        You have started a REST interface on port 10000.
        <br>You can enter the command <code>exit</code> to shut it down.
 </p>
-</div><!-- END: 12.2.2 - juneau-microservice-jetty.GettingStarted.Running -->
+</div><!-- END: 13.2.2 - 
juneau-microservice-jetty-template.GettingStarted.Running -->
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.GettingStarted.Building' 
id='juneau-microservice-jetty.GettingStarted.Building'>12.2.3 - Building and 
Running from Command-Line</a></h4>
-<div class='topic'><!-- START: 12.2.3 - 
juneau-microservice-jetty.GettingStarted.Building -->
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.GettingStarted.Building' 
id='juneau-microservice-jetty-template.GettingStarted.Building'>13.2.3 - 
Building and Running from Command-Line</a></h4>
+<div class='topic'><!-- START: 13.2.3 - 
juneau-microservice-jetty-template.GettingStarted.Building -->
 <p>
        The <l>pom.xml</l> file is a basic Maven build script for creating your 
microservice
        as an executable uber-jar.
@@ -24706,13 +25235,13 @@
        If you get this error message: <code 
class='snippet'>java.net.BindException: Address already in use</code>, 
        then this microservice is already running elsewhere and so it cannot 
bind to port 10000.
 </p>
-</div><!-- END: 12.2.3 - juneau-microservice-jetty.GettingStarted.Building -->
-</div><!-- END: 12.2 - juneau-microservice-jetty.GettingStarted -->
+</div><!-- END: 13.2.3 - 
juneau-microservice-jetty-template.GettingStarted.Building -->
+</div><!-- END: 13.2 - juneau-microservice-jetty-template.GettingStarted -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Manifest' 
id='juneau-microservice-jetty.Manifest'>12.3 - Manifest File</a></h3>
-<div class='topic'><!-- START: 12.3 - juneau-microservice-jetty.Manifest -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.Manifest' 
id='juneau-microservice-jetty-template.Manifest'>13.3 - Manifest File</a></h3>
+<div class='topic'><!-- START: 13.3 - 
juneau-microservice-jetty-template.Manifest -->
 <p>
        The generated <l>META-INF/MANIFEST.MF</l> file is used to describe the 
microservice. 
        <br>If you open it, you'll see the following:
@@ -24736,8 +25265,8 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Manifest.ManifestApi' 
id='juneau-microservice-jetty.Manifest.ManifestApi'>12.3.1 - Manifest 
API</a></h4>
-<div class='topic'><!-- START: 12.3.1 - 
juneau-microservice-jetty.Manifest.ManifestApi -->
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.Manifest.ManifestApi' 
id='juneau-microservice-jetty-template.Manifest.ManifestApi'>13.3.1 - Manifest 
API</a></h4>
+<div class='topic'><!-- START: 13.3.1 - 
juneau-microservice-jetty-template.Manifest.ManifestApi -->
 <p>
        The {@link org.apache.juneau.microservice.Microservice#getManifest()} 
method is a static method that
        can be used to retrieve the manifest file as a {@link 
org.apache.juneau.utils.ManifestFile}.  
@@ -24751,13 +25280,13 @@
        making it possible to retrieve entries as a wide variety of object 
types such as java primitives, arrays, collections, 
        maps, or even POJOs serialized as JSON.
 </p>
-</div><!-- END: 12.3.1 - juneau-microservice-jetty.Manifest.ManifestApi -->
-</div><!-- END: 12.3 - juneau-microservice-jetty.Manifest -->
+</div><!-- END: 13.3.1 - 
juneau-microservice-jetty-template.Manifest.ManifestApi -->
+</div><!-- END: 13.3 - juneau-microservice-jetty-template.Manifest -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Config' 
id='juneau-microservice-jetty.Config'>12.4 - Config</a></h3>
-<div class='topic'><!-- START: 12.4 - juneau-microservice-jetty.Config -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.Config' 
id='juneau-microservice-jetty-template.Config'>13.4 - Config</a></h3>
+<div class='topic'><!-- START: 13.4 - 
juneau-microservice-jetty-template.Config -->
 <p>
        The microservice config file is an external INI-style configuration 
file that is used to configure
        your microservice.
@@ -24769,8 +25298,8 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.Config.ConfigApi' 
id='juneau-microservice-jetty.Config.ConfigApi'>12.4.1 - Config File 
API</a></h4>
-<div class='topic'><!-- START: 12.4.1 - 
juneau-microservice-jetty.Config.ConfigApi -->
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.Config.ConfigApi' 
id='juneau-microservice-jetty-template.Config.ConfigApi'>13.4.1 - Config File 
API</a></h4>
+<div class='topic'><!-- START: 13.4.1 - 
juneau-microservice-jetty-template.Config.ConfigApi -->
 <p>
        There are 3 primary ways of getting access to the config file.
 </p>
@@ -24883,13 +25412,13 @@
        This particular example is needlessly complex, but it gives an idea of 
how variables can be used 
        recursively to produce sophisticated results
 </p>
-</div><!-- END: 12.4.1 - juneau-microservice-jetty.Config.ConfigApi -->
-</div><!-- END: 12.4 - juneau-microservice-jetty.Config -->
+</div><!-- END: 13.4.1 - juneau-microservice-jetty-template.Config.ConfigApi 
-->
+</div><!-- END: 13.4 - juneau-microservice-jetty-template.Config -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.ResourceClasses' 
id='juneau-microservice-jetty.ResourceClasses'>12.5 - Resource Classes</a></h3>
-<div class='topic'><!-- START: 12.5 - 
juneau-microservice-jetty.ResourceClasses -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.ResourceClasses' 
id='juneau-microservice-jetty-template.ResourceClasses'>13.5 - Resource 
Classes</a></h3>
+<div class='topic'><!-- START: 13.5 - 
juneau-microservice-jetty-template.ResourceClasses -->
 <p>
        Now let's take a look at the resource classes themselves.  
        <br>The top-level page...
@@ -24958,12 +25487,12 @@
                }
        }               
 </p>
-</div><!-- END: 12.5 - juneau-microservice-jetty.ResourceClasses -->
+</div><!-- END: 13.5 - juneau-microservice-jetty-template.ResourceClasses -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.PredefinedResourceClasses' 
id='juneau-microservice-jetty.PredefinedResourceClasses'>12.6 - Predefined 
Resource Classes</a></h3>
-<div class='topic'><!-- START: 12.6 - 
juneau-microservice-jetty.PredefinedResourceClasses -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.PredefinedResourceClasses' 
id='juneau-microservice-jetty-template.PredefinedResourceClasses'>13.6 - 
Predefined Resource Classes</a></h3>
+<div class='topic'><!-- START: 13.6 - 
juneau-microservice-jetty-template.PredefinedResourceClasses -->
 <p>
        The following predefined resource classes are also provided for easy 
inclusion into your microservice:
 </p>
@@ -24979,12 +25508,12 @@
        <li class='jc'>{@link 
org.apache.juneau.microservice.resources.ShutdownResource}
                - Shutdown and/or restart the JVM.
 </ul>
-</div><!-- END: 12.6 - juneau-microservice-jetty.PredefinedResourceClasses -->
+</div><!-- END: 13.6 - 
juneau-microservice-jetty-template.PredefinedResourceClasses -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.RestMicroservice' 
id='juneau-microservice-jetty.RestMicroservice'>12.7 - RestMicroservice</a></h3>
-<div class='topic'><!-- START: 12.7 - 
juneau-microservice-jetty.RestMicroservice -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.RestMicroservice' 
id='juneau-microservice-jetty-template.RestMicroservice'>13.7 - 
RestMicroservice</a></h3>
+<div class='topic'><!-- START: 13.7 - 
juneau-microservice-jetty-template.RestMicroservice -->
 <p>
        The {@link org.apache.juneau.microservice.RestMicroservice} class is 
the main application entry-point for REST 
        microservices. 
@@ -25011,8 +25540,8 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.RestMicroservice.Extending' 
id='juneau-microservice-jetty.RestMicroservice.Extending'>12.7.1 - Extending 
RestMicroservice</a></h4>
-<div class='topic'><!-- START: 12.7.1 - 
juneau-microservice-jetty.RestMicroservice.Extending -->
+<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.RestMicroservice.Extending' 
id='juneau-microservice-jetty-template.RestMicroservice.Extending'>13.7.1 - 
Extending RestMicroservice</a></h4>
+<div class='topic'><!-- START: 13.7.1 - 
juneau-microservice-jetty-template.RestMicroservice.Extending -->
 <p>
        This example shows how the {@link 
org.apache.juneau.microservice.RestMicroservice} class
        can be extended to implement lifecycle listener methods or override 
existing methods.
@@ -25060,13 +25589,13 @@
        <li class='jac'>{@link org.apache.juneau.microservice.Microservice}
        <li class='jc'>{@link org.apache.juneau.microservice.RestMicroservice}
 </ul>
-</div><!-- END: 12.7.1 - juneau-microservice-jetty.RestMicroservice.Extending 
-->
-</div><!-- END: 12.7 - juneau-microservice-jetty.RestMicroservice -->
+</div><!-- END: 13.7.1 - 
juneau-microservice-jetty-template.RestMicroservice.Extending -->
+</div><!-- END: 13.7 - juneau-microservice-jetty-template.RestMicroservice -->
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty.UiCustomization' 
id='juneau-microservice-jetty.UiCustomization'>12.8 - UI Customization</a></h3>
-<div class='topic'><!-- START: 12.8 - 
juneau-microservice-jetty.UiCustomization -->
+<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template.UiCustomization' 
id='juneau-microservice-jetty-template.UiCustomization'>13.8 - UI 
Customization</a></h3>
+<div class='topic'><!-- START: 13.8 - 
juneau-microservice-jetty-template.UiCustomization -->
 <p>
        The Microservice project contains a <code>files/htdocs</code> working 
directly folder with predefined stylesheets and
        images.
@@ -25176,41 +25705,7 @@
        <ck>RestContext.useClasspathResourceCaching.b</ck> = <cv>false</cv>
 
 </p>
-</div><!-- END: 12.8 - juneau-microservice-jetty.UiCustomization -->
-</div><!-- END: 12 - juneau-microservice-jetty -->
-
-<!-- 
====================================================================================================
 -->
-
-<h2 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-microservice-jetty-template' 
id='juneau-microservice-jetty-template'>13 - 
juneau-microservice-jetty-template</a></h2>
-<div class='topic'><!-- START: 13 - juneau-microservice-jetty-template -->
-<h5 class='figure'>Maven Dependency</h5>
-<p class='bpcode w500'>
-       <xt>&lt;dependency&gt;</xt>
-               
<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-               
<xt>&lt;artifactId&gt;</xt>juneau-microservice-server<xt>&lt;/artifactId&gt;</xt>
-               <xt>&lt;version&gt;</xt>{@property 
juneauVersion}<xt>&lt;/version&gt;</xt>
-       <xt>&lt;/dependency&gt;</xt>
-</p>   
-
-<h5 class='figure'>Java Library</h5>
-<p class='bpcode w500'>
-       juneau-microservice-server-{@property juneauVersion}.jar 
-</p>   
-
-<h5 class='figure'>OSGi Module</h5>
-<p class='bpcode w500'>
-       org.apache.juneau.microservice.jetty.server_{@property 
juneauVersion}.jar 
-</p>   
-
-<h5 class='figure'>Microservice Starter Project</h5>
-<p class='bpcode w500'>
-       my-microservice.zip 
-</p>   
-
-<p>
-       Juneau Microservice is an API for creating stand-alone executable jars 
that can be used to 
-       start lightweight configurable REST interfaces with all the power of 
the Juneau REST server and client APIs.
-</p>
+</div><!-- END: 13.8 - juneau-microservice-jetty-template.UiCustomization -->
 </div><!-- END: 13 - juneau-microservice-jetty-template -->
 
 <!-- 
====================================================================================================
 -->
@@ -25252,7 +25747,7 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-examples-core.Examples' id='juneau-examples-core.Examples'>14.1 - 
Examples</a></h3>
+<h3 class='topic new' onclick='toggle(this)'><a 
href='#juneau-examples-core.Examples' id='juneau-examples-core.Examples'>14.1 - 
Examples</a></h3>
 <div class='topic'><!-- START: 14.1 - juneau-examples-core.Examples -->
 <p>
        The following shows the core examples provided:
@@ -25262,7 +25757,7 @@
        <ul>
                <li class='jc'>{@link 
org.apache.juneau.examples.core.json.JsonSimpleExample} - JsonSerializer and 
JsonParser usage on serialize and deserialize simple Pojo bean.
                <li class='jc'>{@link 
org.apache.juneau.examples.core.json.JsonComplexExample} - JsonSerializer and 
JsonParser usage on serialize and deserialize complex Pojo bean.
-               <li class='jc'>{@link 
org.apache.juneau.examples.core.json.JsonConfigurationExample} - TODO
+               <li class='jc'>{@link 
org.apache.juneau.examples.core.json.JsonConfigurationExample} 
        </ul>
        <li class='jp'><code>org.apache.juneau.examples.core.xml</code>
        <ul>
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt 
b/juneau-doc/src/main/javadoc/resources/docs.txt
index 439681f..c219c17 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -216,19 +216,26 @@ juneau-microservice-core.SystemProperties = 
#juneau-microservice-core.SystemProp
 juneau-microservice-core.VarResolver = #juneau-microservice-core.VarResolver, 
Overview > juneau-microservice-core > VarResolver
 juneau-microservice-jetty = #juneau-microservice-jetty, Overview > 
juneau-microservice-jetty
 juneau-microservice-jetty-template = #juneau-microservice-jetty-template, 
Overview > juneau-microservice-jetty-template
+juneau-microservice-jetty-template.Config = 
#juneau-microservice-jetty-template.Config, Overview > 
juneau-microservice-jetty-template > Config
+juneau-microservice-jetty-template.Config.ConfigApi = 
#juneau-microservice-jetty-template.Config.ConfigApi, Overview > 
juneau-microservice-jetty-template > Config > Config File API
+juneau-microservice-jetty-template.GettingStarted = 
#juneau-microservice-jetty-template.GettingStarted, Overview > 
juneau-microservice-jetty-template > Getting Started
+juneau-microservice-jetty-template.GettingStarted.Building = 
#juneau-microservice-jetty-template.GettingStarted.Building, Overview > 
juneau-microservice-jetty-template > Getting Started > Building and Running 
from Command-Line
+juneau-microservice-jetty-template.GettingStarted.Installing = 
#juneau-microservice-jetty-template.GettingStarted.Installing, Overview > 
juneau-microservice-jetty-template > Getting Started > Installing in Eclipse
+juneau-microservice-jetty-template.GettingStarted.Running = 
#juneau-microservice-jetty-template.GettingStarted.Running, Overview > 
juneau-microservice-jetty-template > Getting Started > Running in Eclipse
+juneau-microservice-jetty-template.Introduction = 
#juneau-microservice-jetty-template.Introduction, Overview > 
juneau-microservice-jetty-template > Microservice Introduction
+juneau-microservice-jetty-template.Manifest = 
#juneau-microservice-jetty-template.Manifest, Overview > 
juneau-microservice-jetty-template > Manifest File
+juneau-microservice-jetty-template.Manifest.ManifestApi = 
#juneau-microservice-jetty-template.Manifest.ManifestApi, Overview > 
juneau-microservice-jetty-template > Manifest File > Manifest API
+juneau-microservice-jetty-template.PredefinedResourceClasses = 
#juneau-microservice-jetty-template.PredefinedResourceClasses, Overview > 
juneau-microservice-jetty-template > Predefined Resource Classes
+juneau-microservice-jetty-template.ResourceClasses = 
#juneau-microservice-jetty-template.ResourceClasses, Overview > 
juneau-microservice-jetty-template > Resource Classes
+juneau-microservice-jetty-template.RestMicroservice = 
#juneau-microservice-jetty-template.RestMicroservice, Overview > 
juneau-microservice-jetty-template > RestMicroservice
+juneau-microservice-jetty-template.RestMicroservice.Extending = 
#juneau-microservice-jetty-template.RestMicroservice.Extending, Overview > 
juneau-microservice-jetty-template > RestMicroservice > Extending 
RestMicroservice
+juneau-microservice-jetty-template.UiCustomization = 
#juneau-microservice-jetty-template.UiCustomization, Overview > 
juneau-microservice-jetty-template > UI Customization
 juneau-microservice-jetty.Config = #juneau-microservice-jetty.Config, Overview 
> juneau-microservice-jetty > Config
-juneau-microservice-jetty.Config.ConfigApi = 
#juneau-microservice-jetty.Config.ConfigApi, Overview > 
juneau-microservice-jetty > Config > Config File API
-juneau-microservice-jetty.GettingStarted = 
#juneau-microservice-jetty.GettingStarted, Overview > juneau-microservice-jetty 
> Getting Started
-juneau-microservice-jetty.GettingStarted.Building = 
#juneau-microservice-jetty.GettingStarted.Building, Overview > 
juneau-microservice-jetty > Getting Started > Building and Running from 
Command-Line
-juneau-microservice-jetty.GettingStarted.Installing = 
#juneau-microservice-jetty.GettingStarted.Installing, Overview > 
juneau-microservice-jetty > Getting Started > Installing in Eclipse
-juneau-microservice-jetty.GettingStarted.Running = 
#juneau-microservice-jetty.GettingStarted.Running, Overview > 
juneau-microservice-jetty > Getting Started > Running in Eclipse
-juneau-microservice-jetty.Introduction = 
#juneau-microservice-jetty.Introduction, Overview > juneau-microservice-jetty > 
Microservice Introduction
-juneau-microservice-jetty.Manifest = #juneau-microservice-jetty.Manifest, 
Overview > juneau-microservice-jetty > Manifest File
-juneau-microservice-jetty.Manifest.ManifestApi = 
#juneau-microservice-jetty.Manifest.ManifestApi, Overview > 
juneau-microservice-jetty > Manifest File > Manifest API
+juneau-microservice-jetty.Extending = #juneau-microservice-jetty.Extending, 
Overview > juneau-microservice-jetty > Extending RestMicroservice
+juneau-microservice-jetty.LifecycleMethods = 
#juneau-microservice-jetty.LifecycleMethods, Overview > 
juneau-microservice-jetty > Lifecycle Methods
+juneau-microservice-jetty.Overview = #juneau-microservice-jetty.Overview, 
Overview > juneau-microservice-jetty > Overview
 juneau-microservice-jetty.PredefinedResourceClasses = 
#juneau-microservice-jetty.PredefinedResourceClasses, Overview > 
juneau-microservice-jetty > Predefined Resource Classes
 juneau-microservice-jetty.ResourceClasses = 
#juneau-microservice-jetty.ResourceClasses, Overview > 
juneau-microservice-jetty > Resource Classes
-juneau-microservice-jetty.RestMicroservice = 
#juneau-microservice-jetty.RestMicroservice, Overview > 
juneau-microservice-jetty > RestMicroservice
-juneau-microservice-jetty.RestMicroservice.Extending = 
#juneau-microservice-jetty.RestMicroservice.Extending, Overview > 
juneau-microservice-jetty > RestMicroservice > Extending RestMicroservice
 juneau-microservice-jetty.UiCustomization = 
#juneau-microservice-jetty.UiCustomization, Overview > 
juneau-microservice-jetty > UI Customization
 juneau-rest-client = #juneau-rest-client, Overview > juneau-rest-client
 juneau-rest-client.Authentication = #juneau-rest-client.Authentication, 
Overview > juneau-rest-client > Authentication
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html 
b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index e9256b1..a76bd18 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -349,35 +349,44 @@
                <li><p class='new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-core.Logging'>Logging</a></p>
                <li><p class='new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-core.Listeners'>Listeners</a></p>
        </ol>
-       <li><p class='toc2 todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
+       <li><p class='toc2 new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
        <ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Introduction'>Microservice 
Introduction</a></p>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.GettingStarted'>Getting 
Started</a></p>
+               <li><p class='new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Overview'>Overview</a></p>
+               <li><p class='new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.LifecycleMethods'>Lifecycle 
Methods</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Config'>Config</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.ResourceClasses'>Resource 
Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.PredefinedResourceClasses'>Predefined
 Resource Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.UiCustomization'>UI 
Customization</a></p>
+               <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Extending'>Extending 
RestMicroservice</a></p>
+       </ol>
+       <li><p class='toc2 todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template'>juneau-microservice-jetty-template</a></p>
+       <ol>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.Introduction'>Microservice
 Introduction</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.GettingStarted'>Getting 
Started</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.GettingStarted.Installing'>Installing
 in Eclipse</a></p>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.GettingStarted.Running'>Running 
in Eclipse</a></p>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.GettingStarted.Building'>Building
 and Running from Command-Line</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.GettingStarted.Installing'>Installing
 in Eclipse</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.GettingStarted.Running'>Running
 in Eclipse</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.GettingStarted.Building'>Building
 and Running from Command-Line</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Manifest'>Manifest File</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.Manifest'>Manifest 
File</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Manifest.ManifestApi'>Manifest 
API</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.Manifest.ManifestApi'>Manifest
 API</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Config'>Config</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.Config'>Config</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.Config.ConfigApi'>Config File 
API</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.Config.ConfigApi'>Config
 File API</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.ResourceClasses'>Resource 
Classes</a></p>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.PredefinedResourceClasses'>Predefined
 Resource Classes</a></p>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.RestMicroservice'>RestMicroservice</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.ResourceClasses'>Resource
 Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.PredefinedResourceClasses'>Predefined
 Resource Classes</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.RestMicroservice'>RestMicroservice</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.RestMicroservice.Extending'>Extending
 RestMicroservice</a></p>
+                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.RestMicroservice.Extending'>Extending
 RestMicroservice</a></p>
                </ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty.UiCustomization'>UI 
Customization</a></p>
+               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template.UiCustomization'>UI 
Customization</a></p>
        </ol>
-       <li><p class='toc2 todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-microservice-jetty-template'>juneau-microservice-jetty-template</a></p>
        <li><p class='toc2 '><a class='doclink' 
href='{OVERVIEW_URL}#juneau-examples-core'>juneau-examples-core</a></p>
        <ol>
-               <li><p class='todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-examples-core.Examples'>Examples</a></p>
+               <li><p class='new'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-examples-core.Examples'>Examples</a></p>
        </ol>
        <li><p class='toc2 todo'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-examples-rest'>juneau-examples-rest</a></p>
        <ol>
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/dto/PetTagNameSwap.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/dto/PetTagNameSwap.java
index 6bff077..517dbb5 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/dto/PetTagNameSwap.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/dto/PetTagNameSwap.java
@@ -2,7 +2,7 @@
 // * 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                
                                              * 
+// * with the License.  You may obtain a copy of the License at                
                                              *
 // *                                                                           
                                              *
 // *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
 // *                                                                           
                                              *
@@ -17,10 +17,18 @@ import org.apache.juneau.http.*;
 import org.apache.juneau.transform.*;
 
 public class PetTagNameSwap extends PojoSwap<PetTag,String> {
+
+       /**
+        * Swap PetTag with name.
+        */
        @Override
        public String swap(BeanSession bs, PetTag o) throws Exception {
                return o.getName();
        }
+
+       /**
+        * This is only applicable to HTML serialization.
+        */
        @Override
        public MediaType[] forMediaTypes() {
                return new MediaType[] { MediaType.HTML };

Reply via email to