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 2eeff90cb Update docs.
2eeff90cb is described below

commit 2eeff90cb5346dd09eb34dd9342887bd36bd1c65
Author: James Bognar <[email protected]>
AuthorDate: Sun Sep 28 09:46:34 2025 -0400

    Update docs.
---
 README.md                                          |  24 +-
 juneau-docs/PROJECT_CONTEXT.md                     | 218 ++++++++++
 .../topics/01.01.00.JuneauEcosystemOverview.md     |  16 +-
 .../docs/topics/02.01.00.JuneauMarshallBasics.md   |   2 +-
 .../topics/03.01.00.Module-juneau-marshall-rdf.md  |   2 +-
 .../docs/topics/04.01.00.JuneauDtoBasics.md        |   2 +-
 .../docs/topics/05.01.00.JuneauConfigBasics.md     |   2 +-
 .../docs/topics/06.01.00.JuneauAssertionBasics.md  |   2 +-
 .../docs/topics/07.01.00.JuneauRestCommonBasics.md |   2 +-
 .../docs/topics/08.01.00.JuneauRestServerBasics.md |   2 +-
 .../docs/topics/08.16.07.SwaggerResponses.md       |   2 +-
 .../docs/topics/08.18.05.HtmlUiCustomization.md    |   2 +-
 juneau-docs/docs/topics/08.23.00.RestContext.md    |   2 +-
 .../09.01.00.JuneauRestServerSpringbootBasics.md   |   2 +-
 .../docs/topics/10.01.00.JuneauRestClientBasics.md |   2 +-
 .../docs/topics/11.01.00.JuneauRestMockBasics.md   |   2 +-
 .../12.01.00.JuneauMicroserviceCoreBasics.md       |   2 +-
 .../13.01.00.JuneauMicroserviceJettyBasics.md      |   2 +-
 .../docs/topics/16.01.00.JuneauPetstoreBasics.md   |  12 +-
 .../docs/topics/16.02.00.JuneauPetstoreRunning.md  |   2 +-
 .../docs/topics/16.03.00.JuneauPetstoreApi.md      | 281 ++++++------
 .../docs/topics/16.04.00.JuneauPetstoreClient.md   |  24 +-
 .../docs/topics/16.05.00.JuneauPetstoreServer.md   |  28 +-
 .../docs/topics/17.01.00.JuneauExamplesCore.md     | 166 ++++++++
 .../docs/topics/17.02.00.JuneauExamplesRest.md     | 261 ++++++++++++
 .../topics/17.03.00.JuneauExamplesRestJetty.md     | 317 ++++++++++++++
 .../17.04.00.JuneauExamplesRestSpringboot.md       | 472 +++++++++++++++++++++
 ...ecurityBasics.md => 18.01.00.SecurityBasics.md} |   0
 ...Security.md => 18.02.00.MarshallingSecurity.md} |   0
 ...3.00.SvlSecurity.md => 18.03.00.SvlSecurity.md} |   0
 ...00.RestSecurity.md => 18.04.00.RestSecurity.md} |   0
 ...n-guide.md => 19.01.00.V9.0-migration-guide.md} |   0
 juneau-docs/docs/topics/TODO.md                    |  56 ---
 juneau-docs/sidebars.ts                            |  48 ++-
 juneau-docs/src/css/custom.css                     |  12 +-
 35 files changed, 1704 insertions(+), 263 deletions(-)

diff --git a/README.md b/README.md
index 5523168ea..087585ea9 100644
--- a/README.md
+++ b/README.md
@@ -32,14 +32,32 @@
 
 ### πŸ“‹ Documentation
 * **[πŸ“š Javadocs](https://juneau.staged.apache.org/site/apidocs/)** - Complete 
API documentation
-* **[πŸ“– User Guide](https://juneau.staged.apache.org/docs/)** - Comprehensive 
framework documentation
-* **[πŸ”§ Examples](https://juneau.staged.apache.org/docs/examples/)** - Code 
examples and tutorials
+* **[πŸ“– User 
Guide](https://juneau.staged.apache.org/docs/topics/JuneauEcosystemOverview)** 
- Comprehensive framework documentation
+* **[πŸ”§ 
Examples](https://juneau.staged.apache.org/docs/topics/JuneauExamplesCore)** - 
Code examples and tutorials
+  * 
[juneau-examples-core](https://juneau.staged.apache.org/docs/topics/JuneauExamplesCore)
 - Core serialization examples
+  * 
[juneau-examples-rest](https://juneau.staged.apache.org/docs/topics/JuneauExamplesRest)
 - REST API examples
+  * 
[juneau-examples-rest-jetty](https://juneau.staged.apache.org/docs/topics/JuneauExamplesRestJetty)
 - Jetty microservice examples
+  * 
[juneau-examples-rest-springboot](https://juneau.staged.apache.org/docs/topics/JuneauExamplesRestSpringboot)
 - Spring Boot examples
 * **[πŸ“Š Test Reports](https://juneau.staged.apache.org/site/surefire.html)** - 
JUnit test execution results
-* **[πŸ“¦ 
Dependencies](https://juneau.staged.apache.org/site/dependencies.html)** - 
Project dependency analysis
+* **[πŸ“¦ 
Dependencies](https://juneau.staged.apache.org/site/dependency-info.html)** - 
Project dependency analysis
 * **[πŸ“‹ Project 
Reports](https://juneau.staged.apache.org/site/project-reports.html)** - 
Complete Maven site reports
 
 > **Note:** The documentation is automatically updated and provides the most 
 > current project information.
 
+## Common Use Cases
+
+Apache Juneauβ„’ excels in the following scenarios:
+
+* **Marshalling Java beans to a variety of languages using zero dependencies** 
- Serialize POJOs to JSON, XML, HTML, URL-Encoding, UON, OpenAPI, PlainText, 
CSV, SOAP, MessagePack, and RDF formats with minimal setup
+* **Creation of self-documenting Bean-based REST APIs for SpringBoot and Jetty 
applications** - Build REST services with automatic Swagger documentation, 
content negotiation, and POJO-based request/response handling
+* **Creation of Java interface proxies on top of existing REST APIs** - 
Generate type-safe client proxies that make REST calls feel like local method 
invocations
+* **Powerful INI-based configuration files** - Manage application 
configuration with support for POJOs, arrays, collections, binary data, and 
real-time file watching
+* **Serverless unit testing of REST APIs** - Test REST services without 
servlet containers using MockRestClient for fast, comprehensive testing
+* **Microservice development** - Build lightweight microservices with embedded 
Jetty or Spring Boot integration
+* **Data transformation and mapping** - Convert between different data formats 
and handle complex object hierarchies with swap mechanisms
+* **Fluent-style assertions and testing** - Write readable test assertions 
with comprehensive validation capabilities
+* **Content negotiation and HTTP/2 support** - Handle multiple content types 
automatically with modern HTTP features
+
 ## Description
 
 Apache Juneauβ„’ is a single cohesive Java ecosystem consisting of the following 
parts:
diff --git a/juneau-docs/PROJECT_CONTEXT.md b/juneau-docs/PROJECT_CONTEXT.md
new file mode 100644
index 000000000..6bd63103e
--- /dev/null
+++ b/juneau-docs/PROJECT_CONTEXT.md
@@ -0,0 +1,218 @@
+# Apache Juneau Documentation Project Context
+
+## Project Overview
+
+This is the Docusaurus-based documentation site for Apache Juneau, a Java 
ecosystem for marshalling POJOs to various content types and creating 
annotation-based REST APIs. The documentation is hosted at 
https://juneau.staged.apache.org/ and is built from this repository.
+
+## Current Project State
+
+### Documentation Structure
+- **Main Documentation**: Located in `/docs/topics/` with numbered files 
(e.g., `01.01.00.JuneauEcosystemOverview.md`)
+- **Release Notes**: Located in `/docs/release-notes/` 
+- **Sidebar Configuration**: Defined in `sidebars.ts` with hierarchical 
structure
+- **Static Assets**: Maven site files copied to `/static/site/` including 
Javadocs
+
+### Recent Major Changes Completed
+
+#### 1. Documentation Reorganization (December 2024)
+- **Created new "17. juneau-examples" section** to group all example projects
+- **Moved examples from juneau-petstore section** to dedicated examples section
+- **Renumbered existing sections**: Security (17β†’18), V9.0 Migration Guide 
(18β†’19)
+- **Split "Microservice Examples"** into two specific pages:
+  - `17.03.00.JuneauExamplesRestJetty.md` - Jetty-based microservices
+  - `17.04.00.JuneauExamplesRestSpringboot.md` - Spring Boot microservices
+
+#### 2. Example Documentation Created
+- **`17.01.00.JuneauExamplesCore.md`** - Core serialization examples (JSON, 
XML, RDF)
+- **`17.02.00.JuneauExamplesRest.md`** - REST API examples and patterns
+- **`17.03.00.JuneauExamplesRestJetty.md`** - Standalone Jetty microservice 
examples
+- **`17.04.00.JuneauExamplesRestSpringboot.md`** - Spring Boot integrated 
examples
+
+#### 3. Link Fixes and Improvements
+- **Fixed all broken Javadoc links** - Comprehensive link validation and repair
+- **Converted API_DOCS links** to HTML hyperlinks with `target="_blank"`
+- **Fixed package links** to point to correct Javadoc locations
+- **Updated external links** to point to correct Oracle/Jakarta documentation
+- **Fixed Builder class links** to use dot notation (e.g., 
`Class.Builder.html`)
+- **Inferred parameter types** for method signatures in Javadoc links
+
+#### 4. README and Navigation Updates
+- **Updated main README** to point to staged Apache site 
(https://juneau.staged.apache.org/)
+- **Added SonarCloud badges** for code quality metrics
+- **Enhanced Examples section** with child bullets linking to specific example 
docs
+- **Fixed dependencies link** to point to correct Maven site file 
(`dependency-info.html`)
+
+#### 5. SonarCloud Integration
+- **Added SonarCloud workflow** (`.github/workflows/sonarcloud.yml`)
+- **Updated POM files** with SonarCloud Maven plugin
+- **Created SonarCloud configuration** (`sonar-project.properties`)
+- **Enhanced security page** with SonarCloud badges and analysis links
+- **Created setup guide** (`SONARCLOUD_SETUP.md`)
+
+## Technical Configuration
+
+### Docusaurus Setup
+- **Version**: Latest Docusaurus 3.x
+- **Configuration**: `docusaurus.config.ts` with custom plugins
+- **Build Process**: Maven site generation + Docusaurus build
+- **Static Files**: Maven site copied to `/static/site/` for Javadocs and 
reports
+
+### Maven Integration
+- **Site Generation**: `create-mvn-site.sh` script generates Maven site
+- **Javadoc Integration**: Javadocs served from `/site/apidocs/`
+- **Test Reports**: Surefire reports at `/site/surefire.html`
+- **Dependencies**: Dependency info at `/site/dependency-info.html`
+
+### Link Management
+- **Javadoc Links**: All point to `/site/apidocs/` with full method signatures
+- **Javadoc Link Format**: Use HTML anchor tags (`<a href="/site/apidocs/..." 
target="_blank">`) instead of markdown links for Javadoc URLs, as Docusaurus 
doesn't handle markdown links to static files correctly
+- **External Links**: Java standard library β†’ Oracle docs, Jakarta β†’ Jakarta 
docs
+- **Internal Documentation Links**: When creating links to other docs, use the 
slug names and their final location (e.g., 
`/docs/topics/JuneauRestServerSpringbootBasics`) instead of relative file paths
+- **GitHub Links**: PetStore project links use `master` branch
+- **Hyperlink Formatting**: When creating hyperlinks, remove inline code 
blocks (backticks) from the link text
+
+### Code Formatting
+- **Indentation**: All code blocks in documentation use 4-space indentation 
(not tabs)
+
+### Java Tree Rendering
+- **Java Trees**: Special tree-like structures for rendering Java elements 
(packages, classes, methods, etc.) in documentation
+- **Structure**: Uses `<tree>` container with `<node-X>` elements for 
hierarchy levels
+- **Element Types**:
+  - **`java-X` tags**: Normal nodes in a tree (e.g., `<java-abstract-class>`, 
`<java-interface>`)
+  - **`javac-X` tags**: Condensed into a single line of a tree (e.g., 
`<javac-class>`, `<javac-method>`)
+  - **`java-project` tags**: Project/module references with folder icon (πŸ“‚)
+  - **`java-doc` tags**: Documentation links with book icon (πŸ“–)
+- **Styling**: Special element names are defined in `custom.css`
+- **Example**: See lines 35-46 of `08.03.02.PredefinedClasses.md` for 
inheritance tree structure
+- **Usage**: When user says "create a java tree", they're referring to this 
specific rendering system
+
+## File Naming Conventions
+
+### Documentation Files
+- **Format**: `XX.YY.00.TopicName.md` where XX.YY is section.subsection
+- **Slugs**: Use `TopicName` format (e.g., `JuneauEcosystemOverview`)
+- **Front Matter**: Include `title` and `slug` fields
+
+### Current Section Structure
+```
+1. Juneau Ecosystem (01.XX.00.*)
+2. juneau-marshall (02.XX.00.*)
+3. juneau-marshall-rdf (03.XX.00.*)
+4. juneau-dto (04.XX.00.*)
+5. juneau-config (05.XX.00.*)
+6. juneau-assertions (06.XX.00.*)
+7. juneau-rest-common (07.XX.00.*)
+8. juneau-rest-server (08.XX.00.*)
+9. juneau-rest-server-springboot (09.XX.00.*)
+10. juneau-rest-client (10.XX.00.*)
+11. juneau-rest-mock (11.XX.00.*)
+12. juneau-microservice-core (12.XX.00.*)
+13. juneau-microservice-jetty (13.XX.00.*)
+14. My Jetty Microservice (14.XX.00.*)
+15. My SpringBoot Microservice (15.XX.00.*)
+16. juneau-petstore (16.XX.00.*)
+17. juneau-examples (17.XX.00.*) ← NEW
+18. Security (18.XX.00.*) ← RENUMBERED
+19. V9.0 Migration Guide (19.XX.00.*) ← RENUMBERED
+```
+
+## Key URLs and Links
+
+### Production Sites
+- **Documentation**: https://juneau.staged.apache.org/
+- **Javadocs**: https://juneau.staged.apache.org/site/apidocs/
+- **PetStore Project**: https://github.com/apache/juneau-petstore (master 
branch)
+
+### External Documentation
+- **Oracle Java 17**: https://docs.oracle.com/en/java/javase/17/docs/api/
+- **Jakarta Servlet 6.0**: 
https://jakarta.ee/specifications/servlet/6.0/apidocs/
+- **Apache HttpClient**: https://hc.apache.org/httpcomponents-client-4.5.x/
+- **SonarCloud**: https://sonarcloud.io/project/overview?id=apache_juneau
+
+## Development Workflow
+
+### Local Development
+1. **Start Server**: `./start-server.sh` (runs Docusaurus dev server)
+2. **Generate Maven Site**: `./create-mvn-site.sh` (updates Javadocs and 
reports)
+3. **Build**: `npm run build` (creates production build)
+
+### Link Validation
+- **Static Check**: Use built HTML files for comprehensive link validation
+- **Dev Check**: Use running server for dynamic content validation
+- **Javadoc Validation**: Check against generated Javadoc files in 
`/static/site/apidocs/`
+
+## Common Tasks and Patterns
+
+### Adding New Documentation
+1. Create numbered file in `/docs/topics/`
+2. Add entry to `sidebars.ts` with proper numbering
+3. Update any cross-references
+4. Test links and navigation
+
+### Fixing Broken Links
+1. Identify link type (Javadoc, external, internal)
+2. Check against valid URL lists (e.g., `focused-apidocs-urls.txt`)
+3. Apply appropriate fix (parameter inference, external link conversion, etc.)
+4. Validate fix works in browser
+
+### Updating Examples
+1. Update source code in respective modules
+2. Update corresponding documentation in section 17
+3. Update README links if needed
+4. Test example functionality
+
+## Known Issues and Limitations
+
+### Link Validation
+- Static link checkers may report false positives for dynamic content
+- Some Javadoc links require parameter type inference
+- External links may change over time
+
+### Build Process
+- Maven site generation required before Javadoc links work
+- Docusaurus dev server caches static files (restart needed after Maven site 
updates)
+- Some Maven site reports may show zero values (known configuration issues)
+
+### Documentation Gaps
+- Some advanced topics may need additional examples
+- Migration guides may need updates for newer versions
+- Some API documentation may be incomplete
+
+## Maintenance Notes
+
+### Regular Tasks
+- **Link Validation**: Check for broken links after major updates
+- **External Link Updates**: Verify Oracle/Jakarta links still work
+- **Example Testing**: Ensure examples still work with current Juneau version
+- **SonarCloud Monitoring**: Check quality gate status regularly
+
+## Chat Session Rules
+
+### Context Persistence
+- **"Persist this rule to the context"**: When the user says this phrase, 
immediately add the rule they just stated to this PROJECT_CONTEXT.md file under 
an appropriate section
+- **Rule Updates**: Always update this file when new rules, patterns, or 
procedures are established
+- **Context Maintenance**: Keep this file current with project changes and 
established workflows
+- **Cross-Session Consistency**: This helps maintain consistency across chat 
sessions and ensures that important rules and procedures are properly 
documented and preserved
+
+### Version Updates
+- Update version numbers in documentation
+- Update external link versions (Java, Jakarta, etc.)
+- Test all examples with new version
+- Update migration guides if needed
+
+## Contact and Resources
+
+### Project Information
+- **Apache Juneau**: https://juneau.apache.org/
+- **GitHub Repository**: https://github.com/apache/juneau
+- **Mailing List**: [email protected]
+- **Wiki**: https://github.com/apache/juneau/wiki
+
+### Documentation Team
+- **Primary Maintainer**: James Bognar
+- **Documentation Site**: https://juneau.staged.apache.org/
+- **Issue Tracking**: GitHub Issues in main repository
+
+---
+
+*This file should be updated whenever significant changes are made to the 
documentation structure, build process, or project configuration.*
diff --git a/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md 
b/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
index 5b98370e6..1e155509d 100644
--- a/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
+++ b/juneau-docs/docs/topics/01.01.00.JuneauEcosystemOverview.md
@@ -8,6 +8,20 @@ slug: JuneauEcosystemOverview
 Apache Juneauβ„’ is a single cohesive Java ecosystem for marshalling Java 
objects to a wide variety of language types and 
 creating annotation-based REST end-to-end server and client APIs.
 
+#### Common Use Cases
+
+Juneau excels in the following scenarios:
+
+* **Marshalling Java beans to a variety of languages using zero dependencies** 
- Serialize POJOs to JSON, XML, HTML, URL-Encoding, UON, OpenAPI, PlainText, 
CSV, SOAP, MessagePack, and RDF formats with minimal setup
+* **Creation of self-documenting Bean-based REST APIs for SpringBoot and Jetty 
applications** - Build REST services with automatic Swagger documentation, 
content negotiation, and POJO-based request/response handling
+* **Creation of Java interface proxies on top of existing REST APIs** - 
Generate type-safe client proxies that make REST calls feel like local method 
invocations
+* **Powerful INI-based configuration files** - Manage application 
configuration with support for POJOs, arrays, collections, binary data, and 
real-time file watching
+* **Serverless unit testing of REST APIs** - Test REST services without 
servlet containers using MockRestClient for fast, comprehensive testing
+* **Microservice development** - Build lightweight microservices with embedded 
Jetty or Spring Boot integration
+* **Data transformation and mapping** - Convert between different data formats 
and handle complex object hierarchies with swap mechanisms
+* **Fluent-style assertions and testing** - Write readable test assertions 
with comprehensive validation capabilities
+* **Content negotiation and HTTP/2 support** - Handle multiple content types 
automatically with modern HTTP features
+
 The Juneau ecosystem consists of the following parts:
 
 | Category | Maven Artifacts | Description | Prerequisites |
@@ -35,7 +49,7 @@ The easiest way to pull in the library is through the 
following maven dependency
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-all</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/02.01.00.JuneauMarshallBasics.md 
b/juneau-docs/docs/topics/02.01.00.JuneauMarshallBasics.md
index c68f6469b..4ecb516fd 100644
--- a/juneau-docs/docs/topics/02.01.00.JuneauMarshallBasics.md
+++ b/juneau-docs/docs/topics/02.01.00.JuneauMarshallBasics.md
@@ -9,7 +9,7 @@ slug: JuneauMarshallBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-marshall</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/03.01.00.Module-juneau-marshall-rdf.md 
b/juneau-docs/docs/topics/03.01.00.Module-juneau-marshall-rdf.md
index 4f39059fc..9be09932f 100644
--- a/juneau-docs/docs/topics/03.01.00.Module-juneau-marshall-rdf.md
+++ b/juneau-docs/docs/topics/03.01.00.Module-juneau-marshall-rdf.md
@@ -9,7 +9,7 @@ slug: Module-juneau-marshall-rdf
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-marshall-rdf</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/04.01.00.JuneauDtoBasics.md 
b/juneau-docs/docs/topics/04.01.00.JuneauDtoBasics.md
index d54d519f7..7e856db0f 100644
--- a/juneau-docs/docs/topics/04.01.00.JuneauDtoBasics.md
+++ b/juneau-docs/docs/topics/04.01.00.JuneauDtoBasics.md
@@ -9,7 +9,7 @@ slug: JuneauDtoBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-dto</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/05.01.00.JuneauConfigBasics.md 
b/juneau-docs/docs/topics/05.01.00.JuneauConfigBasics.md
index 9c7004e62..16f8c386b 100644
--- a/juneau-docs/docs/topics/05.01.00.JuneauConfigBasics.md
+++ b/juneau-docs/docs/topics/05.01.00.JuneauConfigBasics.md
@@ -9,7 +9,7 @@ slug: JuneauConfigBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-config</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/06.01.00.JuneauAssertionBasics.md 
b/juneau-docs/docs/topics/06.01.00.JuneauAssertionBasics.md
index fbed32060..5c63eadfd 100644
--- a/juneau-docs/docs/topics/06.01.00.JuneauAssertionBasics.md
+++ b/juneau-docs/docs/topics/06.01.00.JuneauAssertionBasics.md
@@ -9,7 +9,7 @@ slug: JuneauAssertionBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-assertions</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/07.01.00.JuneauRestCommonBasics.md 
b/juneau-docs/docs/topics/07.01.00.JuneauRestCommonBasics.md
index 5b1d374b2..273caf05b 100644
--- a/juneau-docs/docs/topics/07.01.00.JuneauRestCommonBasics.md
+++ b/juneau-docs/docs/topics/07.01.00.JuneauRestCommonBasics.md
@@ -9,7 +9,7 @@ slug: JuneauRestCommonBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-rest-common</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/08.01.00.JuneauRestServerBasics.md 
b/juneau-docs/docs/topics/08.01.00.JuneauRestServerBasics.md
index 6cd6ff37c..15239bc7b 100644
--- a/juneau-docs/docs/topics/08.01.00.JuneauRestServerBasics.md
+++ b/juneau-docs/docs/topics/08.01.00.JuneauRestServerBasics.md
@@ -9,7 +9,7 @@ slug: JuneauRestServerBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-rest-server</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/08.16.07.SwaggerResponses.md 
b/juneau-docs/docs/topics/08.16.07.SwaggerResponses.md
index cc308b54a..7361374bb 100644
--- a/juneau-docs/docs/topics/08.16.07.SwaggerResponses.md
+++ b/juneau-docs/docs/topics/08.16.07.SwaggerResponses.md
@@ -35,5 +35,5 @@ Like input parameters, the Swagger for responses can be 
define in multiple locat
 </tree>
 
 :::info See Also
-[TODO-Response Beans](..)
+[Response Beans](/docs/topics/ResponseBeans)
 :::
\ No newline at end of file
diff --git a/juneau-docs/docs/topics/08.18.05.HtmlUiCustomization.md 
b/juneau-docs/docs/topics/08.18.05.HtmlUiCustomization.md
index 28f3b8c3c..705969ad8 100644
--- a/juneau-docs/docs/topics/08.18.05.HtmlUiCustomization.md
+++ b/juneau-docs/docs/topics/08.18.05.HtmlUiCustomization.md
@@ -114,5 +114,5 @@ arbitrary HTML, and allows you either hardcode your 
interface inside annotations
 from other places such as external config files.
 
 :::info See Also
-[TODO-UI Customization](..)
+[UI Customization](/docs/topics/UiCustomization)
 :::
\ No newline at end of file
diff --git a/juneau-docs/docs/topics/08.23.00.RestContext.md 
b/juneau-docs/docs/topics/08.23.00.RestContext.md
index 87996b44a..708fe3424 100644
--- a/juneau-docs/docs/topics/08.23.00.RestContext.md
+++ b/juneau-docs/docs/topics/08.23.00.RestContext.md
@@ -56,7 +56,7 @@ For more complex configurations, access to sub-builders is 
provided via the foll
 :::note
 The builders or built objects above can also be defined as injected beans 
defined in a Spring Configuration if you wish
 to do all your app configuration Spring-style.
-This is described in detail in the [TODO-juneau-rest-server-springboot](..) 
documentation.
+This is described in detail in the 
[juneau-rest-server-springboot](/docs/topics/JuneauRestServerSpringbootBasics) 
documentation.
 :::
 
 The programmatic equivalent to the annotated lifecycle methods are below:
diff --git 
a/juneau-docs/docs/topics/09.01.00.JuneauRestServerSpringbootBasics.md 
b/juneau-docs/docs/topics/09.01.00.JuneauRestServerSpringbootBasics.md
index 63957522a..fc3f0d840 100644
--- a/juneau-docs/docs/topics/09.01.00.JuneauRestServerSpringbootBasics.md
+++ b/juneau-docs/docs/topics/09.01.00.JuneauRestServerSpringbootBasics.md
@@ -9,7 +9,7 @@ slug: JuneauRestServerSpringbootBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-rest-server-springboot</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/10.01.00.JuneauRestClientBasics.md 
b/juneau-docs/docs/topics/10.01.00.JuneauRestClientBasics.md
index 7894961fa..fc6c86b3d 100644
--- a/juneau-docs/docs/topics/10.01.00.JuneauRestClientBasics.md
+++ b/juneau-docs/docs/topics/10.01.00.JuneauRestClientBasics.md
@@ -9,7 +9,7 @@ slug: JuneauRestClientBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-rest-client</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/11.01.00.JuneauRestMockBasics.md 
b/juneau-docs/docs/topics/11.01.00.JuneauRestMockBasics.md
index e0258333d..a62f8b280 100644
--- a/juneau-docs/docs/topics/11.01.00.JuneauRestMockBasics.md
+++ b/juneau-docs/docs/topics/11.01.00.JuneauRestMockBasics.md
@@ -9,7 +9,7 @@ slug: JuneauRestMockBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-rest-mock</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/12.01.00.JuneauMicroserviceCoreBasics.md 
b/juneau-docs/docs/topics/12.01.00.JuneauMicroserviceCoreBasics.md
index 3f8f7273b..f75e2b595 100644
--- a/juneau-docs/docs/topics/12.01.00.JuneauMicroserviceCoreBasics.md
+++ b/juneau-docs/docs/topics/12.01.00.JuneauMicroserviceCoreBasics.md
@@ -9,7 +9,7 @@ slug: JuneauMicroserviceCoreBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-microservice-core</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/13.01.00.JuneauMicroserviceJettyBasics.md 
b/juneau-docs/docs/topics/13.01.00.JuneauMicroserviceJettyBasics.md
index 680ebba6f..2a543b347 100644
--- a/juneau-docs/docs/topics/13.01.00.JuneauMicroserviceJettyBasics.md
+++ b/juneau-docs/docs/topics/13.01.00.JuneauMicroserviceJettyBasics.md
@@ -9,7 +9,7 @@ slug: JuneauMicroserviceJettyBasics
 <dependency>
     <groupId>org.apache.juneau</groupId>
     <artifactId>juneau-microservice-jetty</artifactId>
-    <version>0.0.0</version>
+    <version>${juneau.version}</version>
 </dependency>
 ```
 
diff --git a/juneau-docs/docs/topics/16.01.00.JuneauPetstoreBasics.md 
b/juneau-docs/docs/topics/16.01.00.JuneauPetstoreBasics.md
index ed588373a..0d3b8556e 100644
--- a/juneau-docs/docs/topics/16.01.00.JuneauPetstoreBasics.md
+++ b/juneau-docs/docs/topics/16.01.00.JuneauPetstoreBasics.md
@@ -3,7 +3,7 @@ title: "juneau-petstore Basics"
 slug: JuneauPetstoreBasics
 ---
 
-The `PetStore` application is an functional application meant to demonstrate 
using Juneau with Spring Boot to create an
+The 
[PetStore](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java)
 application is an functional application meant to demonstrate using Juneau 
with Spring Boot to create an
 end-to-end client/server REST API.
 
 What makes Juneau unique is the ability to create Java interfaces that behave 
just like RPC but using REST as the
@@ -14,10 +14,12 @@ dependencies.
 
 The server-side need only provide the ability to host a servlet.
 
-Visit the GitHub project hosting the application.
+Visit the [GitHub project](https://github.com/apache/juneau-petstore) hosting 
the application.
 
 The project is broken down into the following subprojects:
 
-- `juneau-petstore-api` - Contains the Java interface and DTOs for the 
petstore application.
-- `juneau-petstore-server` - Contains the server-side Java implementation of 
the petstore Java interface as a REST resource.
-- `juneau-petstore-client` - Contains the client-side Java proxy of the 
petstore Java interface.
\ No newline at end of file
+<tree>
+<node-0><java-project><a 
href="https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-api";
 target="_blank">juneau-petstore-api</a></java-project> - Contains the Java 
interface and DTOs for the petstore application.</node-0>
+<node-0><java-project><a 
href="https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-server";
 target="_blank">juneau-petstore-server</a></java-project> - Contains the 
server-side Java implementation of the petstore Java interface as a REST 
resource.</node-0>
+<node-0><java-project><a 
href="https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-client";
 target="_blank">juneau-petstore-client</a></java-project> - Contains the 
client-side Java proxy of the petstore Java interface.</node-0>
+</tree>
\ No newline at end of file
diff --git a/juneau-docs/docs/topics/16.02.00.JuneauPetstoreRunning.md 
b/juneau-docs/docs/topics/16.02.00.JuneauPetstoreRunning.md
index e47f93e5c..6254d4823 100644
--- a/juneau-docs/docs/topics/16.02.00.JuneauPetstoreRunning.md
+++ b/juneau-docs/docs/topics/16.02.00.JuneauPetstoreRunning.md
@@ -3,7 +3,7 @@ title: "Running the Pet Store App"
 slug: JuneauPetstoreRunning
 ---
 
-The Pet Store app is a Spring Boot application that can be started up by 
running the `App` class.
+The Pet Store app is a Spring Boot application that can be started up by 
running the 
[App](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/server/App.java)
 class.
 
 This starts the application on port 5000.
 
diff --git a/juneau-docs/docs/topics/16.03.00.JuneauPetstoreApi.md 
b/juneau-docs/docs/topics/16.03.00.JuneauPetstoreApi.md
index b6b8d0a31..ee2a4d503 100644
--- a/juneau-docs/docs/topics/16.03.00.JuneauPetstoreApi.md
+++ b/juneau-docs/docs/topics/16.03.00.JuneauPetstoreApi.md
@@ -3,143 +3,142 @@ title: "juneau-petstore-api"
 slug: JuneauPetstoreApi
 ---
 
-The `juneau-petstore-api` module contains the Java interface of our 
application and the DTOs that go along with it.
+The 
[juneau-petstore-api](https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-api)
 module contains the Java interface of our application and the DTOs that go 
along with it.
 
 These classes are meant to be shared between the server and client side code.
 
-The `PetStore` class is our primary class for defining our application.
+The 
[PetStore](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java)
 class is our primary class for defining our application.
 
 It's a standard Java interface with annotations used to describe how the 
methods map to REST calls.
 
-#### PetStore.java
+#### 
[PetStore.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java)
 
 ```java
 @Remote(path="/petstore")
 public interface PetStore {
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // Pets
-       
//------------------------------------------------------------------------------------------------------------------
-
-       /**
-        * Returns all pets in the database.
-        *
-        * @return All pets in the database.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        */
-       @RemoteGet("/pet")
-       public Collection<Pet> getPets() throws NotAcceptable;
-
-       /**
-        * Returns a pet from the database.
-        *
-        * @param petId The ID of the pet to retrieve.
-        * @return The pet.
-        * @throws IdNotFound Pet was not found.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        */
-       @RemoteGet("/pet/{petId}")
-       public Pet getPet(
-               @Path(
-                       name="petId",
-                       schema=@Schema(description="ID of pet to return")
-               ) long petId
-       ) throws IdNotFound, NotAcceptable;
-
-       /**
-        * Adds a pet to the database.
-        *
-        * @param pet The pet data to add to the database.
-        * @return Ok if successful.
-        * @throws IdConflict ID already in use.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        * @throws UnsupportedMediaType Unsupported `Content-Type` header 
specified.
-        */
-       @RemotePost("/pet")
-       public long createPet(
-               @Content(
-                       schema=@Schema(description="Pet object to add to the 
store")
-               ) CreatePet pet
-       ) throws IdConflict, NotAcceptable, UnsupportedMediaType;
-
-       /**
-        * Updates a pet in the database.
-        *
-        * @param pet The pet data to add to the database.
-        * @return Ok if successful.
-        * @throws IdNotFound ID not found.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        * @throws UnsupportedMediaType Unsupported `Content-Type` header 
specified.
-        */
-       @RemotePut("/pet/{petId}")
-       public Ok updatePet(
-               @Content(
-                       schema=@Schema(description="Pet object that needs to be 
added to the store")
-               ) UpdatePet pet
-       ) throws IdNotFound, NotAcceptable, UnsupportedMediaType;
-
-       /**
-        * Find all pets with the matching statuses.
-        *
-        * @param status The statuses to match against.
-        * @return The pets that match the specified statuses.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        */
-       @RemoteGet("/pet/findByStatus")
-       public Collection<Pet> findPetsByStatus(
-               @Query(
-                       name="status",
-                       schema=@Schema(
-                               description="Status values that need to be 
considered for filter.",
-                               required=true,
-                               type="array",
-                               collectionFormat="csv",
-                               items=@Items(
-                                       type="string",
-                                       _enum="AVAILABLE,PENDING,SOLD",
-                                       _default="AVAILABLE"
-                               )
-                       )
-               ) PetStatus[] status
-       ) throws NotAcceptable;
-
-       /**
-        * Deletes the specified pet.
-        *
-        * @param apiKey Security key.
-        * @param petId ID of pet to delete.
-        * @return Ok if successful.
-        * @throws IdNotFound Pet not found.
-        * @throws NotAcceptable Unsupported `Accept` header specified.
-        */
-       @RemoteDelete("/pet/{petId}")
-       public Ok deletePet(
-               @Header(
-                       name="api_key",
-                       schema=@Schema(
-                               description="Security API key",
-                               required=true
-                       )
-               ) String apiKey,
-               @Path(
-                       name="petId",
-                       schema=@Schema(description="Pet id to delete")
-               ) long petId
-       ) throws IdNotFound, NotAcceptable;
-
-       /**
-        * Deletes all pets in the database.
-        *
-        * @return Ok if successful.
-        */
-       @RemoteDelete("/pet")
-       public Ok deleteAllPets();
-
-       
//------------------------------------------------------------------------------------------------------------------
-       // Orders
-       
//------------------------------------------------------------------------------------------------------------------
-
-       // ... (additional order methods would go here)
+    
//------------------------------------------------------------------------------------------------------------------
+    // Pets
+    
//------------------------------------------------------------------------------------------------------------------
+
+    /**
+     * Returns all pets in the database.
+     *
+     * @return All pets in the database.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     */
+    @RemoteGet("/pet")
+    public Collection<Pet> getPets() throws NotAcceptable;
+
+    /**
+     * Returns a pet from the database.
+     *
+     * @param petId The ID of the pet to retrieve.
+     * @return The pet.
+     * @throws IdNotFound Pet was not found.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     */
+    @RemoteGet("/pet/{petId}")
+    public Pet getPet(
+            name="petId",
+            schema=@Schema(description="ID of pet to return")
+        ) long petId
+    ) throws IdNotFound, NotAcceptable;
+
+    /**
+     * Adds a pet to the database.
+     *
+     * @param pet The pet data to add to the database.
+     * @return Ok if successful.
+     * @throws IdConflict ID already in use.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     * @throws UnsupportedMediaType Unsupported `Content-Type` header 
specified.
+     */
+    @RemotePost("/pet")
+    public long createPet(
+        @Content(
+            schema=@Schema(description="Pet object to add to the store")
+        ) CreatePet pet
+    ) throws IdConflict, NotAcceptable, UnsupportedMediaType;
+
+    /**
+     * Updates a pet in the database.
+     *
+     * @param pet The pet data to add to the database.
+     * @return Ok if successful.
+     * @throws IdNotFound ID not found.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     * @throws UnsupportedMediaType Unsupported `Content-Type` header 
specified.
+     */
+    @RemotePut("/pet/{petId}")
+    public Ok updatePet(
+        @Content(
+            schema=@Schema(description="Pet object that needs to be added to 
the store")
+        ) UpdatePet pet
+    ) throws IdNotFound, NotAcceptable, UnsupportedMediaType;
+
+    /**
+     * Find all pets with the matching statuses.
+     *
+     * @param status The statuses to match against.
+     * @return The pets that match the specified statuses.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     */
+    @RemoteGet("/pet/findByStatus")
+    public Collection<Pet> findPetsByStatus(
+        @Query(
+            name="status",
+            schema=@Schema(
+                description="Status values that need to be considered for 
filter.",
+                required=true,
+                type="array",
+                collectionFormat="csv",
+                items=@Items(
+                    type="string",
+                    _enum="AVAILABLE,PENDING,SOLD",
+                    _default="AVAILABLE"
+                )
+            )
+        ) PetStatus[] status
+    ) throws NotAcceptable;
+
+    /**
+     * Deletes the specified pet.
+     *
+     * @param apiKey Security key.
+     * @param petId ID of pet to delete.
+     * @return Ok if successful.
+     * @throws IdNotFound Pet not found.
+     * @throws NotAcceptable Unsupported `Accept` header specified.
+     */
+    @RemoteDelete("/pet/{petId}")
+    public Ok deletePet(
+        @Header(
+            name="api_key",
+            schema=@Schema(
+                description="Security API key",
+                required=true
+            )
+        ) String apiKey,
+        @Path(
+            name="petId",
+            schema=@Schema(description="Pet id to delete")
+        ) long petId
+    ) throws IdNotFound, NotAcceptable;
+
+    /**
+     * Deletes all pets in the database.
+     *
+     * @return Ok if successful.
+     */
+    @RemoteDelete("/pet")
+    public Ok deleteAllPets();
+
+    
//------------------------------------------------------------------------------------------------------------------
+    // Orders
+    
//------------------------------------------------------------------------------------------------------------------
+
+    // ... (additional order methods would go here)
 }
 ```
 
@@ -160,36 +159,36 @@ Both sets of annotations are provided by pulling in the 
Juneau dependency below:
 </dependency>
 ```
 
-The `Pet` class is a DTO that gets serialized over the REST connection.
+The 
[Pet](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Pet.java)
 class is a DTO that gets serialized over the REST connection.
 
 It is also annotated with JPA annotations so that they can easily be stored in 
a JPA datastore on the server side.
 
-#### Pet.java
+#### 
[Pet.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Pet.java)
 
 ```java
 @Bean(typeName="Pet", properties="id,species,name,tags,price,status")
 @Entity(name="PetstorePet")
 public class Pet {
 
-       @Column @Id @GeneratedValue
-       @Schema(description="Unique identifier for this pet.")
-       @Html(link="servlet:/pet/{id}")
-       private long id;
+    @Column @Id @GeneratedValue
+    @Schema(description="Unique identifier for this pet.")
+    @Html(link="servlet:/pet/{id}")
+    private long id;
 
-       @Column(length=50)
-       @Schema(description="Pet name.", minLength=3, maxLength=50)
-       private String name;
+    @Column(length=50)
+    Schema(description="Pet name.", minLength=3, maxLength=50)
+    private String name;
 
-       @Column
-       @Schema(description="Price of pet.", maximum="999.99")
-       @Html(render=PriceRender.class)
-       private float price;
+    @Column
+    @Schema(description="Price of pet.", maximum="999.99")
+    @Html(render=PriceRender.class)
+    private float price;
 
-       // ... (additional fields and methods would go here)
+    // ... (additional fields and methods would go here)
 }
 ```
 
-The annotations here are a combination of Juneau annotations for controlling 
marshalling (<a href="/site/apidocs/org/apache/juneau/annotation/Bean.html" 
target="_blank">@Bean</a>, <a 
href="/site/apidocs/org/apache/juneau/html/annotation/Html.html" 
target="_blank">@Html</a>) and
+The annotations here are a combination of Juneau annotations for controlling 
marshalling (`@Bean`, `@Html`) and
 documentation/validation (`@Schema`), and JPA annotations for database 
persistence (`@Entity`, `@Column`).
 
 Most applications may choose to have separate classes for DTOs and JPA beans 
since you typically are not going to want
diff --git a/juneau-docs/docs/topics/16.04.00.JuneauPetstoreClient.md 
b/juneau-docs/docs/topics/16.04.00.JuneauPetstoreClient.md
index 259d621a1..6e1955133 100644
--- a/juneau-docs/docs/topics/16.04.00.JuneauPetstoreClient.md
+++ b/juneau-docs/docs/topics/16.04.00.JuneauPetstoreClient.md
@@ -3,28 +3,28 @@ title: "juneau-petstore-client"
 slug: JuneauPetstoreClient
 ---
 
-The `juneau-petstore-client` module contains a single `Main` class used to 
instantiate the proxy against our remote REST
+The 
[juneau-petstore-client](https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-client)
 module contains a single 
[Main](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-client/src/main/java/org/apache/juneau/petstore/client/Main.java)
 class used to instantiate the proxy against our remote REST
 interface using the Java interface described above.
 
-#### Main.java
+#### 
[Main.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-client/src/main/java/org/apache/juneau/petstore/client/Main.java)
 
 ```java
 public class Main {
 
-       public static void main(String[] args) {
+    public static void main(String[] args) {
 
-               // Create a RestClient with JSON serialization support.
-               RestClient restClient = RestClient.create().json5().build();
+        // Create a RestClient with JSON serialization support.
+        RestClient restClient = RestClient.create().json5().build();
 
-               // Instantiate our proxy.
-               PetStore petStore = restClient.getRemote(PetStore.class, 
"http://localhost:5000";);
+        // Instantiate our proxy.
+        PetStore petStore = restClient.getRemote(PetStore.class, 
"http://localhost:5000";);
 
-               // Print out the pets in the store.
-               Collection<Pet> pets = petStore.getPets();
+        // Print out the pets in the store.
+        Collection<Pet> pets = petStore.getPets();
 
-               // Pretty-print them to STDOUT.
-               Json5.DEFAULT_READABLE.println(pets);
-       }
+        // Pretty-print them to STDOUT.
+        Json5.DEFAULT_READABLE.println(pets);
+    }
 }
 ```
 
diff --git a/juneau-docs/docs/topics/16.05.00.JuneauPetstoreServer.md 
b/juneau-docs/docs/topics/16.05.00.JuneauPetstoreServer.md
index 82b218dfb..230721f21 100644
--- a/juneau-docs/docs/topics/16.05.00.JuneauPetstoreServer.md
+++ b/juneau-docs/docs/topics/16.05.00.JuneauPetstoreServer.md
@@ -3,12 +3,12 @@ title: "juneau-petstore-server"
 slug: JuneauPetstoreServer
 ---
 
-The `juneau-petstore-server` module contains all of the guts of the 
application.
+The 
[juneau-petstore-server](https://github.com/apache/juneau-petstore/tree/master/juneau-petstore-server)
 module contains all of the guts of the application.
 It's a standard Spring Boot application with Juneau integration support.
 
-For brevity, the app and configuration classes are combined into the following:
+For brevity, the app and configuration classes are combined into the following 
[App](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/server/App.java)
 class:
 
-#### App.java
+#### 
[App.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/server/App.java)
 
 ```java
 @SpringBootApplication
@@ -58,11 +58,11 @@ public class App {
 Notice how cleanly Juneau servlets fit into Spring Boot.
 No special initializers are required to integrate Juneau with Spring Boot.
 
-The `RootResources` class is the top-level entry point into the REST API.
+The 
[RootResources](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/RootResources.java)
 class is the top-level entry point into the REST API.
 It allows us to group child resources.
-In our case though we only have one child resource...`PetStoreResource`:
+In our case though we only have one child 
resource...[PetStoreResource](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java):
 
-#### RootResources.java
+#### 
[RootResources.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/RootResources.java)
 
 ```java
 @Rest(
@@ -100,13 +100,13 @@ public class RootResources extends 
BasicSpringRestServletGroup {
 ```
 
 By extending from `BasicSpringRestServletGroup`, the root servlet hooks into 
the injection framework of Spring
-to resolve spring beans such as the child resource `PetStoreResource`.
+to resolve spring beans such as the child resource 
[PetStoreResource](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java).
 
 This page renders as follows: `http://localhost:5000`
 
-The `PetStoreResource` class is the REST implementation of our `PetStore` 
interface.
+The 
[PetStoreResource](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java)
 class is the REST implementation of our 
[PetStore](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java)
 interface.
 
-#### PetStoreResource.java
+#### 
[PetStoreResource.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java)
 
 ```java
 @Rest(
@@ -223,9 +223,9 @@ public class PetStoreResource extends BasicRestObject 
implements PetStore {
 
 Clicking the `petstore` link on the root page takes you to our PetStore 
resource: `http://localhost:5000/petstore`
 
-The methods defined in our `PetStore` interface are implemented like so:
+The methods defined in our 
[PetStore](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java)
 interface are implemented like so:
 
-#### PetStoreResource.java
+#### 
[PetStoreResource.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java)
 
 ```java
 @Override /* PetStore */
@@ -274,7 +274,7 @@ public long createPet(CreatePet pet) throws IdConflict, 
NotAcceptable, Unsupport
 ...
 ```
 
-After running the `Main` method in the client code to populate the database, 
the page renders as follows: `http://localhost:5000/petstore/pet`
+After running the `main` method in the client code to populate the database, 
the page renders as follows: `http://localhost:5000/petstore/pet`
 
 The OPTIONS menu items takes you to the auto-generated Swagger UI for the 
application: `http://localhost:10000/petstore/pet?method=OPTIONS`
 
@@ -289,9 +289,9 @@ Auto-generated examples are available for all supported 
languages:
 For example, application/json5:
 
 Examples can be derived in a number of ways.
-In our case, we've defined a static method on our Pet class annotated with 
@Example:
+In our case, we've defined a static method on our Pet class annotated with 
`@Example`:
 
-#### Pet.java
+#### 
[Pet.java](https://github.com/apache/juneau-petstore/blob/master/juneau-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Pet.java)
 
 ```java
 @Example
diff --git a/juneau-docs/docs/topics/17.01.00.JuneauExamplesCore.md 
b/juneau-docs/docs/topics/17.01.00.JuneauExamplesCore.md
new file mode 100644
index 000000000..c5de34d6f
--- /dev/null
+++ b/juneau-docs/docs/topics/17.01.00.JuneauExamplesCore.md
@@ -0,0 +1,166 @@
+---
+slug: JuneauExamplesCore
+---
+
+# juneau-examples-core
+
+The 
[juneau-examples-core](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-core)
 module provides practical examples demonstrating how to use Apache Juneau's 
core marshalling capabilities for serialization and deserialization of Plain 
Old Java Objects (POJOs).
+
+## Overview
+
+This module focuses on the fundamental serialization and deserialization 
features of Juneau Core, showing developers how to:
+
+- Convert POJOs to various content types (JSON, XML, RDF)
+- Parse content back into POJOs
+- Configure serializers and parsers with different properties
+- Handle complex object structures
+
+## Getting Started
+
+To use the examples in this module, add the following dependency to your 
project:
+
+```xml
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-core</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+```
+
+## Example Categories
+
+### JSON Examples
+
+Juneau provides comprehensive JSON support out of the box, allowing you to 
read and write JSON structures into POJOs with minimal configuration.
+
+#### 
[JsonSimpleExample.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonSimpleExample.java)
+Demonstrates basic usage of <a 
href="/site/apidocs/org/apache/juneau/json/JsonSerializer.html" 
target="_blank">JsonSerializer</a> and <a 
href="/site/apidocs/org/apache/juneau/json/JsonParser.html" 
target="_blank">JsonParser</a> to convert POJOs to JSON strings and back to 
POJOs.
+
+**Key Features:**
+- Simple POJO serialization to JSON
+- JSON parsing back to POJOs
+- Automatic type inference
+- Null handling
+
+#### 
[JsonConfigurationExample.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java)
+Shows how to create <a 
href="/site/apidocs/org/apache/juneau/json/JsonParser.html" 
target="_blank">JsonParser</a> and <a 
href="/site/apidocs/org/apache/juneau/json/JsonSerializer.html" 
target="_blank">JsonSerializer</a> instances with custom configuration 
properties.
+
+**Key Features:**
+- Custom serializer/parser configuration
+- Property customization
+- Formatting options
+- Validation settings
+
+### XML Examples
+
+Juneau's XML support enables seamless conversion between POJOs and XML 
structures.
+
+#### 
[XmlComplexExample.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/xml/XmlComplexExample.java)
+Demonstrates how to use <a 
href="/site/apidocs/org/apache/juneau/xml/XmlSerializer.html" 
target="_blank">XmlSerializer</a> and <a 
href="/site/apidocs/org/apache/juneau/xml/XmlParser.html" 
target="_blank">XmlParser</a> to handle complex POJOs with nested objects and 
collections.
+
+**Key Features:**
+- Complex object serialization to XML
+- Nested object handling
+- Collection serialization
+- XML namespace support
+
+### RDF Examples
+
+For RDF support, Juneau integrates with Apache Jena to provide RDF 
serialization capabilities.
+
+#### Prerequisites
+Add Apache Jena to your classpath:
+
+```xml
+<dependency>
+    <groupId>org.apache.jena</groupId>
+    <artifactId>jena-core</artifactId>
+    <version>${jena.version}</version> <!-- Juneau is tested against 2.7.1 -->
+</dependency>
+```
+
+#### RDF Support
+RDF serialization support is available through the `juneau-marshall-rdf` 
module. While there isn't a dedicated example file, RDF functionality can be 
demonstrated using the existing serializers with RDF-specific configurations.
+
+**Key Features:**
+- POJO to RDF conversion
+- Multiple RDF formats (RDF/XML, N3, NTriple, Turtle)
+- RDF vocabulary mapping
+- Semantic web integration
+
+:::note RDF Examples
+RDF examples are integrated into the core serialization examples rather than 
having separate dedicated example files.
+:::
+
+## Running the Examples
+
+All examples in this module are designed to be run as standalone Java 
applications. Each example class contains a `main` method that demonstrates the 
specific functionality.
+
+### Example Structure
+
+```java
+public class ExampleClass {
+    public static void main(String[] args) {
+        // Example implementation
+        // Demonstrates specific Juneau functionality
+    }
+}
+```
+
+### Common Patterns
+
+The examples follow these common patterns:
+
+1. **Create POJOs** - Define simple or complex Java objects
+2. **Configure Serializers/Parsers** - Set up Juneau components with desired 
properties
+3. **Serialize** - Convert POJOs to target format (JSON, XML, RDF)
+4. **Parse** - Convert formatted strings back to POJOs
+5. **Validate** - Ensure data integrity throughout the process
+
+## Best Practices
+
+### Performance Considerations
+- Reuse serializer/parser instances when possible
+- Configure appropriate buffer sizes for large objects
+- Use streaming for very large datasets
+
+### Error Handling
+- Always handle serialization/parsing exceptions
+- Validate input data before processing
+- Use appropriate logging for debugging
+
+### Configuration
+- Start with default configurations
+- Customize only when necessary
+- Document custom configurations
+
+## Integration with Other Modules
+
+The examples in this module serve as the foundation for more complex scenarios 
found in:
+
+<tree>
+<node-0><java-project><a 
href="https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest";
 target="_blank">juneau-examples-rest</a></java-project> - REST API examples 
using these core concepts</node-0>
+<node-0><java-project><a href="https://github.com/apache/juneau-petstore"; 
target="_blank">juneau-petstore</a></java-project> - Complete application 
demonstrating end-to-end usage</node-0>
+<node-0><java-project><a 
href="https://github.com/apache/juneau/tree/master/juneau-microservice"; 
target="_blank">juneau-microservice</a></java-project> - Microservice examples 
building on core serialization</node-0>
+</tree>
+
+## Related Documentation
+
+<tree>
+<node-0><java-doc><a href="/docs/topics/JuneauMarshallBasics" 
target="_blank">Juneau Marshall Basics</a></java-doc> - Core marshalling 
concepts</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauEcosystemOverview" 
target="_blank">Juneau Ecosystem Overview</a></java-doc> - Overall framework 
architecture</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesRest" 
target="_blank">juneau-examples-rest</a></java-doc> - REST-specific 
examples</node-0>
+</tree>
+
+## Source Code
+
+The complete source code for all examples is available in the 
[juneau-examples-core](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-core)
 module of the Apache Juneau project.
+
+## Contributing
+
+To contribute new examples or improve existing ones:
+
+1. Follow the established patterns in existing examples
+2. Include comprehensive comments and documentation
+3. Test examples with various data scenarios
+4. Update this documentation when adding new examples
diff --git a/juneau-docs/docs/topics/17.02.00.JuneauExamplesRest.md 
b/juneau-docs/docs/topics/17.02.00.JuneauExamplesRest.md
new file mode 100644
index 000000000..c60a7824e
--- /dev/null
+++ b/juneau-docs/docs/topics/17.02.00.JuneauExamplesRest.md
@@ -0,0 +1,261 @@
+---
+slug: JuneauExamplesRest
+---
+
+# juneau-examples-rest
+
+The 
[juneau-examples-rest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest)
 module provides comprehensive examples demonstrating how to build REST APIs 
using Apache Juneau's REST server capabilities.
+
+## Overview
+
+This module showcases practical examples of building REST services with 
Juneau, including:
+
+- REST resource implementation
+- HTTP method handling
+- Request/response serialization
+- Error handling and validation
+- Integration with various data sources
+
+## Getting Started
+
+To use the examples in this module, add the following dependencies to your 
project:
+
+```xml
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-rest-server</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-rest-client</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+```
+
+## Example Resources
+
+### 
[HelloWorldResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java)
+A simple REST resource demonstrating basic HTTP method handling and response 
serialization.
+
+**Features:**
+- GET method implementation
+- JSON response serialization
+- Simple POJO return types
+- Basic error handling
+
+### 
[RequestEchoResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java)
+Shows how to handle incoming requests and echo back request information.
+
+**Features:**
+- Request object inspection
+- Header and parameter access
+- Request body parsing
+- Response customization
+
+### 
[PhotosResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java)
+Demonstrates file handling and binary data management in REST APIs.
+
+**Features:**
+- File upload handling
+- Binary data processing
+- Image metadata extraction
+- File serving capabilities
+
+### DTO Examples
+
+#### 
[AtomFeedResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java)
+Shows how to create and serve Atom feeds using Juneau's DTO capabilities.
+
+**Features:**
+- Atom feed generation
+- RSS/Atom standard compliance
+- Dynamic content updates
+- Feed metadata management
+
+#### 
[JsonSchemaResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java)
+Demonstrates JSON Schema generation for API documentation and validation.
+
+**Features:**
+- Automatic schema generation
+- API documentation
+- Request/response validation
+- Schema customization
+
+### Command Pattern Examples
+
+#### 
[EchoCommand.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/command/EchoCommand.java)
+Illustrates the command pattern implementation for REST operations.
+
+**Features:**
+- Command object design
+- Parameter validation
+- Result processing
+- Error handling
+
+## Advanced Features
+
+### AdminGuard
+Demonstrates security and access control in REST APIs.
+
+**Features:**
+- Authentication checking
+- Authorization validation
+- Security context handling
+- Access control patterns
+
+### 
[UtilityBeansResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java)
+Shows how to create utility resources for common operations.
+
+**Features:**
+- Utility method exposure
+- Common operation patterns
+- Reusable functionality
+- Service composition
+
+### 
[HtmlBeansResource.java](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HtmlBeansResource.java)
+Demonstrates HTML generation and web interface creation.
+
+**Features:**
+- HTML response generation
+- Template-based rendering
+- Web interface creation
+- Form handling
+
+## Project Structure
+
+The examples are organized in a clear package structure:
+
+```
+org.apache.juneau.examples.rest/
+β”œβ”€β”€ HelloWorldResource.java
+β”œβ”€β”€ RequestEchoResource.java
+β”œβ”€β”€ PhotosResource.java
+β”œβ”€β”€ AdminGuard.java
+β”œβ”€β”€ UtilityBeansResource.java
+β”œβ”€β”€ HtmlBeansResource.java
+β”œβ”€β”€ command/
+β”‚   └── EchoCommand.java
+└── dto/
+    β”œβ”€β”€ AtomFeedResource.java
+    β”œβ”€β”€ JsonSchemaResource.java
+    └── DtoExamples.java
+```
+
+## Configuration Examples
+
+### Basic REST Configuration
+```java
+@Rest(
+    path="/api",
+    serializers={JsonSerializer.class, XmlSerializer.class},
+    parsers={JsonParser.class, XmlParser.class}
+)
+public class MyResource {
+    // Resource implementation
+}
+```
+
+### Advanced Configuration
+```java
+@Rest(
+    path="/api/v1",
+    serializers={JsonSerializer.class, XmlSerializer.class, 
HtmlSerializer.class},
+    parsers={JsonParser.class, XmlParser.class, HtmlParser.class},
+    config={
+        @RestConfig(name="REST_allowMethodParam", value="true"),
+        @RestConfig(name="REST_allowHeaderParam", value="true")
+    }
+)
+public class AdvancedResource {
+    // Advanced resource implementation
+}
+```
+
+## Testing the Examples
+
+### Running Individual Examples
+Each resource can be tested independently by deploying it to a servlet 
container or using the embedded Jetty server.
+
+### Integration Testing
+The module includes integration tests that demonstrate:
+- End-to-end request/response cycles
+- Error scenario handling
+- Performance characteristics
+- Cross-browser compatibility
+
+## Best Practices Demonstrated
+
+### Resource Design
+- Single responsibility principle
+- Clear method naming
+- Consistent error handling
+- Proper HTTP status codes
+
+### Data Handling
+- Input validation
+- Output formatting
+- Error serialization
+- Content type negotiation
+
+### Security
+- Authentication patterns
+- Authorization checks
+- Input sanitization
+- Output filtering
+
+## Integration with Other Modules
+
+These REST examples integrate with:
+
+<tree>
+<node-0><java-project><a 
href="https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-core";
 target="_blank">juneau-examples-core</a></java-project> - Uses core 
serialization examples</node-0>
+<node-0><java-project><a href="https://github.com/apache/juneau-petstore"; 
target="_blank">juneau-petstore</a></java-project> - Provides foundation for 
complete application</node-0>
+<node-0><java-project><a 
href="https://github.com/apache/juneau/tree/master/juneau-microservice"; 
target="_blank">juneau-microservice</a></java-project> - Demonstrates 
microservice patterns</node-0>
+</tree>
+
+## Deployment Options
+
+### Servlet Container
+Deploy to any Servlet 3.1+ container:
+- Tomcat
+- Jetty
+- WildFly
+- WebLogic
+
+### Spring Boot Integration
+Use with Spring Boot for rapid development:
+```java
+@SpringBootApplication
+public class Application {
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+}
+```
+
+### Embedded Server
+Run as standalone application with embedded server.
+
+## Related Documentation
+
+<tree>
+<node-0><java-doc><a href="/docs/topics/JuneauRestServerBasics" 
target="_blank">Juneau REST Server Basics</a></java-doc> - Core REST server 
concepts</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauRestClientBasics" 
target="_blank">Juneau REST Client Basics</a></java-doc> - REST client 
usage</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesCore" 
target="_blank">juneau-examples-core</a></java-doc> - Core serialization 
examples</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauPetstoreBasics" 
target="_blank">juneau-petstore</a></java-doc> - Complete application 
example</node-0>
+</tree>
+
+## Source Code
+
+The complete source code for all REST examples is available in the 
[juneau-examples-rest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest)
 module of the Apache Juneau project.
+
+## Contributing
+
+To contribute new REST examples:
+
+1. Follow RESTful design principles
+2. Include comprehensive error handling
+3. Provide clear documentation
+4. Test with various HTTP clients
+5. Update this documentation when adding new examples
diff --git a/juneau-docs/docs/topics/17.03.00.JuneauExamplesRestJetty.md 
b/juneau-docs/docs/topics/17.03.00.JuneauExamplesRestJetty.md
new file mode 100644
index 000000000..1e7db2e68
--- /dev/null
+++ b/juneau-docs/docs/topics/17.03.00.JuneauExamplesRestJetty.md
@@ -0,0 +1,317 @@
+---
+slug: JuneauExamplesRestJetty
+---
+
+# juneau-examples-rest-jetty
+
+The 
[juneau-examples-rest-jetty](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest-jetty)
 module demonstrates how to deploy Juneau REST servers using embedded Jetty 
server for standalone microservice applications.
+
+## Overview
+
+This example shows how to create a lightweight, self-contained REST 
microservice using Apache Juneau's Jetty integration. It's perfect for 
scenarios where you need a standalone application that can be easily deployed 
and run without external dependencies.
+
+## Getting Started
+
+### Prerequisites
+- Java 17+
+- Maven 3.6+
+
+### Dependencies
+
+Add the following dependencies to your project:
+
+```xml
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-microservice-jetty</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-examples-rest</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+```
+
+## Example Implementation
+
+### Main Application Class
+
+The example demonstrates a simple REST microservice using the 
[App](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest-jetty/src/main/java/org/apache/juneau/examples/rest/jetty/App.java)
 class:
+
+```java
+package org.apache.juneau.examples.rest.jetty;
+
+import org.apache.juneau.examples.rest.RootResources;
+import org.apache.juneau.microservice.jetty.*;
+
+public class App {
+    public static void main(String[] args) throws Exception {
+        JettyMicroservice
+            .create()
+            .args(args)
+            .servlet(RootResources.class)
+            .build()
+            .start()
+            .startConsole()
+            .join();
+    }
+}
+```
+
+### Key Features
+
+- **Embedded Jetty Server** - No external servlet container required
+- **Standalone Application** - Can be run as a simple JAR file
+- **Configuration Support** - Uses `examples.cfg` configuration file
+- **Console Interface** - Built-in management console
+- **Resource Integration** - Seamlessly integrates with juneau-examples-rest 
resources
+
+## Configuration
+
+### Configuration File
+
+The application looks for an `examples.cfg` file in the home directory. This 
file can contain various configuration options:
+
+```properties
+# Server configuration
+server.port=8080
+server.host=localhost
+
+# Logging configuration
+logging.level=INFO
+logging.file=microservice.log
+
+# REST configuration
+rest.path=/api
+rest.serializers=JsonSerializer,XmlSerializer
+rest.parsers=JsonParser,XmlParser
+```
+
+### Command Line Arguments
+
+The application accepts standard command line arguments:
+
+```bash
+java -jar juneau-examples-rest-jetty.jar --port=8080 --host=0.0.0.0
+```
+
+## Running the Example
+
+### Development Mode
+
+```bash
+# Clone the repository
+git clone https://github.com/apache/juneau.git
+cd juneau
+
+# Build the project
+mvn clean package
+
+# Run the Jetty example
+java -jar 
juneau-examples/juneau-examples-rest-jetty/target/juneau-examples-rest-jetty-${version}.jar
+```
+
+### Production Deployment
+
+```bash
+# Run with custom configuration
+java -jar juneau-examples-rest-jetty.jar --config=/path/to/config.cfg
+
+# Run with specific port
+java -jar juneau-examples-rest-jetty.jar --port=9090
+
+# Run with console disabled
+java -jar juneau-examples-rest-jetty.jar --no-console
+```
+
+## Available Endpoints
+
+Once running, the application provides access to all the REST examples from 
the 
[juneau-examples-rest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest)
 module:
+
+- **Root Resources** - `GET /api/`
+- **Hello World** - `GET /api/helloWorld`
+- **Request Echo** - `GET /api/requestEcho`
+- **Photos** - `GET /api/photos`
+- **DTO Examples** - Various DTO demonstration endpoints
+
+## Architecture
+
+### JettyMicroservice Class
+
+The 
[App](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest-jetty/src/main/java/org/apache/juneau/examples/rest/jetty/App.java)
 class provides:
+
+- **Embedded Jetty Server** - Lightweight HTTP server
+- **REST Servlet Integration** - Automatic servlet registration
+- **Configuration Management** - File and command-line configuration
+- **Console Interface** - Built-in management and monitoring
+- **Graceful Shutdown** - Proper resource cleanup
+
+### Resource Integration
+
+The example integrates with the 
[juneau-examples-rest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest)
 module, providing:
+
+- **Pre-built REST Resources** - Ready-to-use example endpoints
+- **DTO Examples** - Various data transfer object demonstrations
+- **Command Patterns** - Example command implementations
+- **Utility Resources** - Common utility endpoints
+
+## Development Patterns
+
+### Custom Microservice
+
+You can extend the 
[App](https://github.com/apache/juneau/blob/master/juneau-examples/juneau-examples-rest-jetty/src/main/java/org/apache/juneau/examples/rest/jetty/App.java)
 class for custom behavior:
+
+```java
+public class CustomApp extends JettyMicroservice {
+    
+    @Override
+    protected void configure() {
+        // Custom configuration
+        setPort(9090);
+        setHost("0.0.0.0");
+        addServlet(CustomResource.class);
+    }
+    
+    public static void main(String[] args) throws Exception {
+        new CustomApp().start().join();
+    }
+}
+```
+
+### Multiple Servlets
+
+Register multiple REST servlets:
+
+```java
+JettyMicroservice
+    .create()
+    .servlet(RootResources.class, "/api/*")
+    .servlet(AdminResources.class, "/admin/*")
+    .servlet(PublicResources.class, "/public/*")
+    .build()
+    .start();
+```
+
+## Testing
+
+### Integration Tests
+
+The module includes integration tests in 
[juneau-examples-rest-jetty-ftest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest-jetty-ftest):
+
+- **Root Content Tests** - Verify root endpoint responses
+- **Resource Tests** - Test individual REST resources
+- **End-to-End Tests** - Complete request/response cycle testing
+
+### Running Tests
+
+```bash
+# Run integration tests
+mvn test -pl juneau-examples/juneau-examples-rest-jetty-ftest
+
+# Run with specific test
+mvn test -pl juneau-examples/juneau-examples-rest-jetty-ftest 
-Dtest=RootResourcesTest
+```
+
+## Deployment Options
+
+### JAR Deployment
+
+```bash
+# Create executable JAR
+mvn clean package
+
+# Run standalone
+java -jar target/juneau-examples-rest-jetty-${version}.jar
+```
+
+### Docker Deployment
+
+```dockerfile
+FROM openjdk:17-jre-slim
+COPY target/juneau-examples-rest-jetty.jar app.jar
+EXPOSE 8080
+ENTRYPOINT ["java", "-jar", "/app.jar"]
+```
+
+### System Service
+
+Create a systemd service file:
+
+```ini
+[Unit]
+Description=Juneau REST Jetty Example
+After=network.target
+
+[Service]
+Type=simple
+User=juneau
+ExecStart=/usr/bin/java -jar /opt/juneau/juneau-examples-rest-jetty.jar
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+```
+
+## Monitoring and Management
+
+### Built-in Console
+
+The application includes a management console accessible at `/console`:
+
+- **Server Status** - Current server state and metrics
+- **Configuration** - View and modify configuration
+- **Logs** - Real-time log viewing
+- **Health Checks** - Application health status
+
+### Health Endpoints
+
+Standard health check endpoints:
+
+- `GET /health` - Basic health status
+- `GET /health/detailed` - Detailed health information
+- `GET /metrics` - Application metrics
+
+## Best Practices
+
+### Configuration Management
+- Use environment-specific configuration files
+- Implement configuration validation
+- Support hot configuration reloading
+
+### Error Handling
+- Implement comprehensive error handling
+- Provide meaningful error messages
+- Log errors appropriately
+
+### Performance
+- Configure appropriate thread pools
+- Monitor memory usage
+- Implement request timeouts
+
+### Security
+- Implement authentication and authorization
+- Use HTTPS in production
+- Validate all inputs
+
+## Related Documentation
+
+<tree>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesRest" 
target="_blank">juneau-examples-rest</a></java-doc> - REST API examples</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesRestSpringboot" 
target="_blank">juneau-examples-rest-springboot</a></java-doc> - Spring Boot 
examples</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauMicroserviceCore" 
target="_blank">Juneau Microservice Core</a></java-doc> - Core microservice 
components</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauRestServerBasics" 
target="_blank">Juneau REST Server Basics</a></java-doc> - REST server 
fundamentals</node-0>
+</tree>
+
+## Source Code
+
+The complete source code for the Jetty examples is available in the 
[juneau-examples-rest-jetty](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest-jetty)
 module of the Apache Juneau project.
+
+## Contributing
+
+To contribute improvements to the Jetty examples:
+
+1. Follow the established patterns in the existing code
+2. Include comprehensive tests
+3. Update documentation when adding new features
+4. Ensure backward compatibility
diff --git a/juneau-docs/docs/topics/17.04.00.JuneauExamplesRestSpringboot.md 
b/juneau-docs/docs/topics/17.04.00.JuneauExamplesRestSpringboot.md
new file mode 100644
index 000000000..0cf8c5c5c
--- /dev/null
+++ b/juneau-docs/docs/topics/17.04.00.JuneauExamplesRestSpringboot.md
@@ -0,0 +1,472 @@
+---
+slug: JuneauExamplesRestSpringboot
+---
+
+# juneau-examples-rest-springboot
+
+The 
[juneau-examples-rest-springboot](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest-springboot)
 module demonstrates how to integrate Apache Juneau REST servers with Spring 
Boot for enterprise-grade microservice applications.
+
+## Overview
+
+This example shows how to leverage Spring Boot's powerful features while using 
Juneau's REST capabilities. It demonstrates Spring Boot integration patterns, 
dependency injection, and enterprise deployment scenarios.
+
+## Getting Started
+
+### Prerequisites
+- Java 17+
+- Maven 3.6+
+- Spring Boot 2.0+ (tested with Spring Boot 2.7+)
+
+### Dependencies
+
+Add the following dependencies to your project:
+
+```xml
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-rest-server-springboot</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+<dependency>
+    <groupId>org.apache.juneau</groupId>
+    <artifactId>juneau-examples-rest</artifactId>
+    <version>${juneau.version}</version>
+</dependency>
+<dependency>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-web</artifactId>
+    <version>${spring.boot.version}</version>
+</dependency>
+<dependency>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-actuator</artifactId>
+    <version>${spring.boot.version}</version>
+</dependency>
+```
+
+## Example Implementation
+
+### Main Application Class
+
+The example demonstrates Spring Boot integration with Juneau REST:
+
+```java
+package org.apache.juneau.examples.rest.springboot;
+
+import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.springboot.*;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.*;
+import org.springframework.boot.web.servlet.*;
+import org.springframework.context.annotation.*;
+import org.springframework.stereotype.Controller;
+
+@SpringBootApplication
+@Controller
+public class App {
+
+    public static void main(String[] args) {
+        try {
+            new SpringApplicationBuilder(App.class).run(args);
+            System.out.println("Initialized. App available on 
http://localhost:5000";);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Bean
+    public RootResources getRootResources() {
+        return new RootResources();
+    }
+
+    @Bean
+    public HelloWorldResource getHelloWorldResource() {
+        return new HelloWorldResource();
+    }
+
+    @Bean
+    public HelloWorldMessageProvider getHelloWorldMessageProvider() {
+        return new HelloWorldMessageProvider("Hello Spring injection user!");
+    }
+
+    @Bean
+    public ServletRegistrationBean<jakarta.servlet.Servlet> 
getRootServlet(RootResources rootResources) {
+        return new ServletRegistrationBean<>(rootResources, "/*");
+    }
+}
+```
+
+### Key Features
+
+- **Spring Boot Integration** - Full Spring Boot auto-configuration
+- **Dependency Injection** - Spring's IoC container integration
+- **Bean Management** - REST resources as Spring beans
+- **Actuator Support** - Built-in monitoring and management
+- **Configuration Properties** - Spring Boot configuration support
+
+## Spring Boot Integration Patterns
+
+### REST Resource as Spring Bean
+
+```java
+@Bean
+public HelloWorldResource getHelloWorldResource() {
+    return new HelloWorldResource();
+}
+```
+
+### Dependency Injection in REST Resources
+
+```java
+@Rest(path="/hello")
+public class HelloWorldResource extends SpringRestServlet {
+    
+    @Autowired
+    private HelloWorldMessageProvider messageProvider;
+    
+    @RestGet
+    public String getMessage() {
+        return messageProvider.getMessage();
+    }
+}
+```
+
+### Servlet Registration
+
+```java
+@Bean
+public ServletRegistrationBean<jakarta.servlet.Servlet> 
getRootServlet(RootResources rootResources) {
+    return new ServletRegistrationBean<>(rootResources, "/*");
+}
+```
+
+## Configuration
+
+### Application Properties
+
+Configure the application using `application.properties`:
+
+```properties
+# Server configuration
+server.port=5000
+server.servlet.context-path=/
+
+# Spring Boot configuration
+spring.application.name=juneau-examples-rest-springboot
+spring.profiles.active=dev
+
+# Juneau REST configuration
+juneau.rest.path=/api
+juneau.rest.serializers=JsonSerializer,XmlSerializer
+juneau.rest.parsers=JsonParser,XmlParser
+
+# Logging configuration
+logging.level.org.apache.juneau=DEBUG
+logging.level.org.springframework=INFO
+```
+
+### YAML Configuration
+
+Alternative YAML configuration:
+
+```yaml
+server:
+  port: 5000
+  servlet:
+    context-path: /
+
+spring:
+  application:
+    name: juneau-examples-rest-springboot
+  profiles:
+    active: dev
+
+juneau:
+  rest:
+    path: /api
+    serializers:
+      - JsonSerializer
+      - XmlSerializer
+    parsers:
+      - JsonParser
+      - XmlParser
+
+logging:
+  level:
+    org.apache.juneau: DEBUG
+    org.springframework: INFO
+```
+
+## Running the Example
+
+### Development Mode
+
+```bash
+# Clone the repository
+git clone https://github.com/apache/juneau.git
+cd juneau
+
+# Build the project
+mvn clean package
+
+# Run the Spring Boot example
+mvn spring-boot:run -pl juneau-examples/juneau-examples-rest-springboot
+```
+
+### Production Deployment
+
+```bash
+# Run with specific profile
+java -jar juneau-examples-rest-springboot.jar --spring.profiles.active=prod
+
+# Run with custom configuration
+java -jar juneau-examples-rest-springboot.jar --server.port=8080
+
+# Run with external configuration
+java -jar juneau-examples-rest-springboot.jar 
--spring.config.location=classpath:/application-prod.properties
+```
+
+## Available Endpoints
+
+The application provides all REST examples from the 
[juneau-examples-rest](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest)
 module:
+
+- **Root Resources** - `GET /api/`
+- **Hello World** - `GET /api/helloWorld`
+- **Request Echo** - `GET /api/requestEcho`
+- **Photos** - `GET /api/photos`
+- **DTO Examples** - Various DTO demonstration endpoints
+
+### Spring Boot Actuator Endpoints
+
+Additional Spring Boot management endpoints:
+
+- **Health Check** - `GET /actuator/health`
+- **Application Info** - `GET /actuator/info`
+- **Metrics** - `GET /actuator/metrics`
+- **Environment** - `GET /actuator/env`
+
+## Advanced Features
+
+### Profile-Based Configuration
+
+```java
+@Configuration
+@Profile("dev")
+public class DevConfig {
+    
+    @Bean
+    public HelloWorldMessageProvider devMessageProvider() {
+        return new HelloWorldMessageProvider("Hello from DEV environment!");
+    }
+}
+
+@Configuration
+@Profile("prod")
+public class ProdConfig {
+    
+    @Bean
+    public HelloWorldMessageProvider prodMessageProvider() {
+        return new HelloWorldMessageProvider("Hello from PROD environment!");
+    }
+}
+```
+
+### Custom Configuration Properties
+
+```java
+@ConfigurationProperties(prefix = "juneau.rest")
+public class JuneauRestProperties {
+    
+    private String path = "/api";
+    private List<String> serializers = Arrays.asList("JsonSerializer");
+    private List<String> parsers = Arrays.asList("JsonParser");
+    
+    // Getters and setters
+}
+```
+
+### Conditional Bean Creation
+
+```java
+@Bean
+@ConditionalOnProperty(name = "juneau.rest.console.enabled", havingValue = 
"true")
+public RestConsole getRestConsole() {
+    return new RestConsole();
+}
+```
+
+## Testing
+
+### Unit Tests
+
+```java
+@SpringBootTest
+@AutoConfigureTestDatabase
+class HelloWorldResourceTest {
+    
+    @Autowired
+    private HelloWorldResource helloWorldResource;
+    
+    @Test
+    void testGetMessage() {
+        String message = helloWorldResource.getMessage();
+        assertThat(message).isNotNull();
+    }
+}
+```
+
+### Integration Tests
+
+```java
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+class RestIntegrationTest {
+    
+    @Autowired
+    private TestRestTemplate restTemplate;
+    
+    @Test
+    void testHelloWorldEndpoint() {
+        ResponseEntity<String> response = 
restTemplate.getForEntity("/api/helloWorld", String.class);
+        assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
+    }
+}
+```
+
+## Deployment Options
+
+### JAR Deployment
+
+```bash
+# Create executable JAR
+mvn clean package
+
+# Run standalone
+java -jar target/juneau-examples-rest-springboot-${version}.jar
+```
+
+### Docker Deployment
+
+```dockerfile
+FROM openjdk:17-jre-slim
+COPY target/juneau-examples-rest-springboot.jar app.jar
+EXPOSE 5000
+ENTRYPOINT ["java", "-jar", "/app.jar"]
+```
+
+### Kubernetes Deployment
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: juneau-springboot-example
+spec:
+  replicas: 3
+  selector:
+    matchLabels:
+      app: juneau-springboot-example
+  template:
+    metadata:
+      labels:
+        app: juneau-springboot-example
+    spec:
+      containers:
+      - name: app
+        image: juneau-springboot-example:latest
+        ports:
+        - containerPort: 5000
+        env:
+        - name: SPRING_PROFILES_ACTIVE
+          value: "prod"
+```
+
+## Monitoring and Management
+
+### Spring Boot Actuator
+
+Enable comprehensive monitoring:
+
+```properties
+# Actuator configuration
+management.endpoints.web.exposure.include=health,info,metrics,env
+management.endpoint.health.show-details=always
+management.info.env.enabled=true
+```
+
+### Custom Health Indicators
+
+```java
+@Component
+public class JuneauHealthIndicator implements HealthIndicator {
+    
+    @Override
+    public Health health() {
+        // Custom health check logic
+        return Health.up()
+            .withDetail("juneau", "Available")
+            .build();
+    }
+}
+```
+
+### Metrics Integration
+
+```java
+@Component
+public class JuneauMetrics {
+    
+    private final MeterRegistry meterRegistry;
+    
+    public JuneauMetrics(MeterRegistry meterRegistry) {
+        this.meterRegistry = meterRegistry;
+    }
+    
+    public void recordRequest(String endpoint) {
+        meterRegistry.counter("juneau.requests", "endpoint", 
endpoint).increment();
+    }
+}
+```
+
+## Best Practices
+
+### Configuration Management
+- Use Spring profiles for environment-specific configuration
+- Implement configuration validation
+- Use `@ConfigurationProperties` for type-safe configuration
+
+### Dependency Injection
+- Prefer constructor injection over field injection
+- Use `@Qualifier` for multiple bean implementations
+- Implement proper bean lifecycle management
+
+### Error Handling
+- Use Spring's `@ControllerAdvice` for global error handling
+- Implement custom exception handlers
+- Provide meaningful error responses
+
+### Security
+- Integrate with Spring Security
+- Use HTTPS in production
+- Implement proper authentication and authorization
+
+## Related Documentation
+
+<tree>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesRest" 
target="_blank">juneau-examples-rest</a></java-doc> - REST API examples</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauExamplesRestJetty" 
target="_blank">juneau-examples-rest-jetty</a></java-doc> - Jetty 
examples</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauRestServerSpringbootBasics" 
target="_blank">Juneau REST Server Spring Boot</a></java-doc> - Spring Boot 
integration</node-0>
+<node-0><java-doc><a href="/docs/topics/JuneauRestServerBasics" 
target="_blank">Juneau REST Server Basics</a></java-doc> - REST server 
fundamentals</node-0>
+</tree>
+
+## Source Code
+
+The complete source code for the Spring Boot examples is available in the 
[juneau-examples-rest-springboot](https://github.com/apache/juneau/tree/master/juneau-examples/juneau-examples-rest-springboot)
 module of the Apache Juneau project.
+
+## Contributing
+
+To contribute improvements to the Spring Boot examples:
+
+1. Follow Spring Boot best practices
+2. Include comprehensive tests
+3. Update documentation when adding new features
+4. Ensure compatibility with supported Spring Boot versions
diff --git a/juneau-docs/docs/topics/17.01.00.SecurityBasics.md 
b/juneau-docs/docs/topics/18.01.00.SecurityBasics.md
similarity index 100%
rename from juneau-docs/docs/topics/17.01.00.SecurityBasics.md
rename to juneau-docs/docs/topics/18.01.00.SecurityBasics.md
diff --git a/juneau-docs/docs/topics/17.02.00.MarshallingSecurity.md 
b/juneau-docs/docs/topics/18.02.00.MarshallingSecurity.md
similarity index 100%
rename from juneau-docs/docs/topics/17.02.00.MarshallingSecurity.md
rename to juneau-docs/docs/topics/18.02.00.MarshallingSecurity.md
diff --git a/juneau-docs/docs/topics/17.03.00.SvlSecurity.md 
b/juneau-docs/docs/topics/18.03.00.SvlSecurity.md
similarity index 100%
rename from juneau-docs/docs/topics/17.03.00.SvlSecurity.md
rename to juneau-docs/docs/topics/18.03.00.SvlSecurity.md
diff --git a/juneau-docs/docs/topics/17.04.00.RestSecurity.md 
b/juneau-docs/docs/topics/18.04.00.RestSecurity.md
similarity index 100%
rename from juneau-docs/docs/topics/17.04.00.RestSecurity.md
rename to juneau-docs/docs/topics/18.04.00.RestSecurity.md
diff --git a/juneau-docs/docs/topics/18.01.00.V9.0-migration-guide.md 
b/juneau-docs/docs/topics/19.01.00.V9.0-migration-guide.md
similarity index 100%
rename from juneau-docs/docs/topics/18.01.00.V9.0-migration-guide.md
rename to juneau-docs/docs/topics/19.01.00.V9.0-migration-guide.md
diff --git a/juneau-docs/docs/topics/TODO.md b/juneau-docs/docs/topics/TODO.md
deleted file mode 100644
index f2ff3820f..000000000
--- a/juneau-docs/docs/topics/TODO.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: "TODO Links"
----
-
-# TODO Links
-
-This page serves as a placeholder for links that need to be properly connected 
once the full documentation structure is in place.
-
-## Available Sections
-
-The following sections are planned but not yet linked:
-
-#### Core Components
-
-- juneau-marshall
-- juneau-marshall-rdf
-- juneau-dto  
-- juneau-config
-- juneau-assertions
-
-#### REST Components
-
-- juneau-rest-common
-- juneau-rest-server
-- juneau-rest-server-springboot
-- juneau-rest-client
-- juneau-rest-mock
-
-:::tip Examples
-
-- juneau-examples-core
-- juneau-examples-rest
-- my-springboot-microservice
-
-:::
-
-#### Detailed Topics
-
-- PojoCategories
-- Swaps
-- SerializersAndParsers
-- JavaBeansSupport
-- ContextAnnotations
-- Json5
-- UonDetails
-- OpenApiDetails
-- JsonMap
-- SerializerSetsParserSets
-- SimpleVariableLanguage
-- HTML5
-- Atom
-- Swagger
-- SwaggerUI
-- FluentAssertions
-
-*This page will be updated as the documentation structure is finalized.*
diff --git a/juneau-docs/sidebars.ts b/juneau-docs/sidebars.ts
index 729fd58b7..451823130 100644
--- a/juneau-docs/sidebars.ts
+++ b/juneau-docs/sidebars.ts
@@ -1622,40 +1622,62 @@ const sidebars: SidebarsConfig = {
     },
     {
       type: 'category',
-      label: '17. Security',
+      label: '17. juneau-examples',
       collapsed: true,
       items: [
         {
           type: 'doc',
-          id: 'topics/17.01.00.SecurityBasics',
-          label: '17.1. Security Basics',
+          id: 'topics/17.01.00.JuneauExamplesCore',
+          label: '17.1. juneau-examples-core',
         },
         {
           type: 'doc',
-          id: 'topics/17.02.00.MarshallingSecurity',
-          label: '17.2. Marshalling Security',
+          id: 'topics/17.02.00.JuneauExamplesRest',
+          label: '17.2. juneau-examples-rest',
         },
         {
           type: 'doc',
-          id: 'topics/17.03.00.SvlSecurity',
-          label: '17.3. SVL Security',
+          id: 'topics/17.03.00.JuneauExamplesRestJetty',
+          label: '17.3. juneau-examples-rest-jetty',
         },
         {
           type: 'doc',
-          id: 'topics/17.04.00.RestSecurity',
-          label: '17.4. REST Security',
+          id: 'topics/17.04.00.JuneauExamplesRestSpringboot',
+          label: '17.4. juneau-examples-rest-springboot',
         },
       ],
+    },
+    {
+      type: 'category',
+      label: '18. Security',
+      collapsed: true,
+      items: [
+        {
+          type: 'doc',
+          id: 'topics/18.01.00.SecurityBasics',
+          label: '18.1. Security Basics',
         },
         {
           type: 'doc',
-          id: 'topics/18.01.00.V9.0-migration-guide',
-          label: '18. V9.0 Migration Guide',
+          id: 'topics/18.02.00.MarshallingSecurity',
+          label: '18.2. Marshalling Security',
+        },
+        {
+          type: 'doc',
+          id: 'topics/18.03.00.SvlSecurity',
+          label: '18.3. SVL Security',
+        },
+        {
+          type: 'doc',
+          id: 'topics/18.04.00.RestSecurity',
+          label: '18.4. REST Security',
+        },
+      ],
         },
         {
           type: 'doc',
-          id: 'topics/TODO',
-          label: 'TODO Links',
+          id: 'topics/19.01.00.V9.0-migration-guide',
+          label: '19. V9.0 Migration Guide',
         },
       ],
     },
diff --git a/juneau-docs/src/css/custom.css b/juneau-docs/src/css/custom.css
index 599e06d29..a07febc13 100644
--- a/juneau-docs/src/css/custom.css
+++ b/juneau-docs/src/css/custom.css
@@ -466,7 +466,9 @@ javac-field,
 javac-field-private, 
 javac-method, 
 javac-method-private, 
-javac-method-annotation { 
+javac-method-annotation,
+javac-project,
+javac-doc { 
   font: monospace; 
   font-size: small; 
   margin-right: 8px; 
@@ -483,7 +485,9 @@ java-field,
 java-field-private, 
 java-method, 
 java-method-private, 
-java-method-annotation { font-family: monospace; font-size: medium; }
+java-method-annotation,
+java-project,
+java-doc { font-family: monospace; font-size: medium; }
 
 /* Custom node elements for hierarchy levels */
 node-0 { display: block; margin-left: 0em; }
@@ -511,6 +515,8 @@ javac-field-private::before { color: #CCB404; content: 
'\25cf\00a0'; font-weight
 javac-method::before  { color: #008000; content: '\25cf\00a0'; font-weight: 
bolder; font-size: x-small; }
 javac-method-private::before { color: #CCB404; content: '\25c6\00a0'; 
font-weight: bolder; font-size: x-small; }
 javac-method-annotation::before { color: #00ced1; content: '\25cf\00a0'; 
font-weight: bolder; font-size: x-small; }
+javac-project::before { color: #ff6b35; content: '\1f4c2\00a0'; font-weight: 
bolder; font-size: small; }
+javac-doc::before { color: #4a90e2; content: '\1f4d6\00a0'; font-weight: 
bolder; font-size: small; }
 
 java-package::before { color: #e09c01; content: '\229e\00a0'; font-weight: 
bolder; font-size: large; }
 java-annotation::before  { color: #00ced1; content: '\24d0\00a0'; font-weight: 
bolder; font-size: large; }
@@ -523,3 +529,5 @@ java-field-private::before { color: #CCB404; content: 
'\25cf\00a0'; font-weight:
 java-method::before  { color: #008000; content: '\25cf\00a0'; font-weight: 
bolder; font-size: x-small; }
 java-method-private::before { color: #CCB404; content: '\25c6\00a0'; 
font-weight: bolder; font-size: x-small; }
 java-method-annotation::before { color: #00ced1; content: '\25cf\00a0'; 
font-weight: bolder; font-size: x-small; }
+java-project::before { color: #ff6b35; content: '\1f4c2\00a0'; font-weight: 
bolder; font-size: x-large; }
+java-doc::before { color: #4a90e2; content: '\1f4d6\00a0'; font-weight: 
bolder; font-size: x-large; }


Reply via email to