You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by gi...@apache.org on 2025/10/22 14:02:34 UTC

(juneau) branch asf-staging updated: Deploy documentation staging from 9814f577cd29518c64028f521503aa1e6fbb4272 9814f577cd29518c64028f521503aa1e6fbb4272

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 92ba3028a9 Deploy documentation staging from 9814f577cd29518c64028f521503aa1e6fbb4272 9814f577cd29518c64028f521503aa1e6fbb4272
92ba3028a9 is described below

commit 92ba3028a9ee1b052fd75e077575a7b6fcf2fad4
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Wed Oct 22 14:02:27 2025 +0000

    Deploy documentation staging from 9814f577cd29518c64028f521503aa1e6fbb4272 9814f577cd29518c64028f521503aa1e6fbb4272
---
 404.html                                           |    2 +-
 about/index.html                                   |    2 +-
 apache/index.html                                  |    2 +-
 assets/js/284f90e9.bc3b8f60.js                     |    1 +
 assets/js/284f90e9.e6b8484f.js                     |    1 -
 ...e~main.076c50ee.js => runtime~main.09192986.js} |    2 +-
 docs/release-notes/5.0.0.00/index.html             |    2 +-
 docs/release-notes/5.0.0.01/index.html             |    2 +-
 docs/release-notes/5.0.0.02/index.html             |    2 +-
 docs/release-notes/5.0.0.03/index.html             |    2 +-
 docs/release-notes/5.0.0.04/index.html             |    2 +-
 docs/release-notes/5.0.0.05/index.html             |    2 +-
 docs/release-notes/5.0.0.06/index.html             |    2 +-
 docs/release-notes/5.0.0.07/index.html             |    2 +-
 docs/release-notes/5.0.0.08/index.html             |    2 +-
 docs/release-notes/5.0.0.09/index.html             |    2 +-
 docs/release-notes/5.0.0.10/index.html             |    2 +-
 docs/release-notes/5.0.0.11/index.html             |    2 +-
 docs/release-notes/5.0.0.12/index.html             |    2 +-
 docs/release-notes/5.0.0.13/index.html             |    2 +-
 docs/release-notes/5.0.0.14/index.html             |    2 +-
 docs/release-notes/5.0.0.15/index.html             |    2 +-
 docs/release-notes/5.0.0.16/index.html             |    2 +-
 docs/release-notes/5.0.0.17/index.html             |    2 +-
 docs/release-notes/5.0.0.18/index.html             |    2 +-
 docs/release-notes/5.0.0.19/index.html             |    2 +-
 docs/release-notes/5.0.0.20/index.html             |    2 +-
 docs/release-notes/5.0.0.21/index.html             |    2 +-
 docs/release-notes/5.0.0.22/index.html             |    2 +-
 docs/release-notes/5.0.0.23/index.html             |    2 +-
 docs/release-notes/5.0.0.24/index.html             |    2 +-
 docs/release-notes/5.0.0.25/index.html             |    2 +-
 docs/release-notes/5.0.0.26/index.html             |    2 +-
 docs/release-notes/5.0.0.27/index.html             |    2 +-
 docs/release-notes/5.0.0.28/index.html             |    2 +-
 docs/release-notes/5.0.0.29/index.html             |    2 +-
 docs/release-notes/5.0.0.30/index.html             |    2 +-
 docs/release-notes/5.0.0.31/index.html             |    2 +-
 docs/release-notes/5.0.0.32/index.html             |    2 +-
 docs/release-notes/5.0.0.33/index.html             |    2 +-
 docs/release-notes/5.0.0.34/index.html             |    2 +-
 docs/release-notes/5.0.0.35/index.html             |    2 +-
 docs/release-notes/5.0.0.36/index.html             |    2 +-
 docs/release-notes/5.1.0.00/index.html             |    2 +-
 docs/release-notes/5.1.0.01/index.html             |    2 +-
 docs/release-notes/5.1.0.02/index.html             |    2 +-
 docs/release-notes/5.1.0.03/index.html             |    2 +-
 docs/release-notes/5.1.0.04/index.html             |    2 +-
 docs/release-notes/5.1.0.05/index.html             |    2 +-
 docs/release-notes/5.1.0.06/index.html             |    2 +-
 docs/release-notes/5.1.0.07/index.html             |    2 +-
 docs/release-notes/5.1.0.08/index.html             |    2 +-
 docs/release-notes/5.1.0.09/index.html             |    2 +-
 docs/release-notes/5.1.0.10/index.html             |    2 +-
 docs/release-notes/5.1.0.11/index.html             |    2 +-
 docs/release-notes/5.1.0.12/index.html             |    2 +-
 docs/release-notes/5.1.0.13/index.html             |    2 +-
 docs/release-notes/5.1.0.14/index.html             |    2 +-
 docs/release-notes/5.1.0.15/index.html             |    2 +-
 docs/release-notes/5.1.0.16/index.html             |    2 +-
 docs/release-notes/5.1.0.17/index.html             |    2 +-
 docs/release-notes/5.1.0.18/index.html             |    2 +-
 docs/release-notes/5.1.0.19/index.html             |    2 +-
 docs/release-notes/5.1.0.20/index.html             |    2 +-
 docs/release-notes/5.2.0.0/index.html              |    2 +-
 docs/release-notes/5.2.0.1/index.html              |    2 +-
 docs/release-notes/6.0.0/index.html                |    2 +-
 docs/release-notes/6.0.1/index.html                |    2 +-
 docs/release-notes/6.1.0/index.html                |    2 +-
 docs/release-notes/6.2.0/index.html                |    2 +-
 docs/release-notes/6.3.0/index.html                |    2 +-
 docs/release-notes/6.3.1/index.html                |    2 +-
 docs/release-notes/6.4.0/index.html                |    2 +-
 docs/release-notes/7.0.0/index.html                |    2 +-
 docs/release-notes/7.0.1/index.html                |    2 +-
 docs/release-notes/7.1.0/index.html                |    2 +-
 docs/release-notes/7.2.0/index.html                |    2 +-
 docs/release-notes/7.2.1/index.html                |    2 +-
 docs/release-notes/7.2.2/index.html                |    2 +-
 docs/release-notes/8.0.0/index.html                |    2 +-
 docs/release-notes/8.1.0/index.html                |    2 +-
 docs/release-notes/8.1.1/index.html                |    2 +-
 docs/release-notes/8.1.2/index.html                |    2 +-
 docs/release-notes/8.1.3/index.html                |    2 +-
 docs/release-notes/8.2.0/index.html                |    2 +-
 docs/release-notes/9.0.0/index.html                |    2 +-
 docs/release-notes/9.0.1/index.html                |    2 +-
 docs/release-notes/9.1.0/index.html                |    2 +-
 docs/release-notes/9.2.0/index.html                |   14 +-
 docs/topics/AdditionalInformation/index.html       |    2 +-
 docs/topics/Annotations/index.html                 |    2 +-
 docs/topics/Args/index.html                        |    2 +-
 docs/topics/Arrays/index.html                      |    2 +-
 docs/topics/AssertionsOverview/index.html          |    2 +-
 docs/topics/AuthenticationBASIC/index.html         |    2 +-
 docs/topics/AuthenticationBasics/index.html        |    2 +-
 docs/topics/AuthenticationForm/index.html          |    2 +-
 docs/topics/AuthenticationOIDC/index.html          |    2 +-
 docs/topics/AutoSwaps/index.html                   |    2 +-
 docs/topics/BasicHtmlDocTemplate/index.html        |    2 +-
 docs/topics/BasicRestServletSwagger/index.html     |    2 +-
 docs/topics/BasicSwaggerInfo/index.html            |    2 +-
 docs/topics/BeanAnnotation/index.html              |    2 +-
 docs/topics/BeanContextBasics/index.html           |    2 +-
 docs/topics/BeanDictionaryBasics/index.html        |    2 +-
 docs/topics/BeanIgnoreAnnotation/index.html        |    2 +-
 docs/topics/BeanSubTypes/index.html                |    2 +-
 docs/topics/BeancAnnotation/index.html             |    2 +-
 docs/topics/BeanpAnnotation/index.html             |    2 +-
 docs/topics/BestPractices/index.html               |    2 +-
 docs/topics/BinaryData/index.html                  |    2 +-
 docs/topics/BuiltInParameters/index.html           |    2 +-
 docs/topics/BulkSettingValues/index.html           |    2 +-
 docs/topics/BypassSerialization/index.html         |    2 +-
 docs/topics/ChildResources/index.html              |    2 +-
 docs/topics/ClientVersioning/index.html            |    2 +-
 docs/topics/ClosingConfigs/index.html              |    2 +-
 docs/topics/ComplexDataTypes/index.html            |    2 +-
 docs/topics/ConfigFiles/index.html                 |    2 +-
 docs/topics/ConfigListeners/index.html             |    2 +-
 docs/topics/ConfigOverviewBasics/index.html        |    2 +-
 docs/topics/ConfigStoresBasics/index.html          |    2 +-
 docs/topics/ConfigurationFiles/index.html          |    2 +-
 docs/topics/ConsoleCommands/index.html             |    2 +-
 docs/topics/Content/index.html                     |    2 +-
 docs/topics/ContextAnnotations/index.html          |    2 +-
 docs/topics/ContextSettings/index.html             |    2 +-
 docs/topics/Converters/index.html                  |    2 +-
 docs/topics/CustomCallHandlers/index.html          |    2 +-
 docs/topics/CustomEntrySerialization/index.html    |    2 +-
 docs/topics/CustomErrorMessages/index.html         |    2 +-
 docs/topics/CustomStores/index.html                |    2 +-
 docs/topics/CustomizingHttpClient/index.html       |    2 +-
 docs/topics/DefaultParts/index.html                |    2 +-
 docs/topics/DefaultSwaps/index.html                |    2 +-
 docs/topics/DefaultVarResolver/index.html          |    2 +-
 docs/topics/Deployment/index.html                  |    2 +-
 docs/topics/DtoBeans/index.html                    |    2 +-
 docs/topics/DualPurposeInterfaces/index.html       |    2 +-
 .../DynamicallyAppliedAnnotations/index.html       |    2 +-
 docs/topics/EndToEndRest/index.html                |    2 +-
 docs/topics/ExecutionStatistics/index.html         |    2 +-
 docs/topics/Extending/index.html                   |    2 +-
 docs/topics/ExtendingRestClient/index.html         |    2 +-
 docs/topics/FileStore/index.html                   |    2 +-
 docs/topics/FileSystemChanges/index.html           |    2 +-
 docs/topics/FluentAssertions/index.html            |    2 +-
 docs/topics/FormData/index.html                    |    2 +-
 docs/topics/FrameworkComparisons/index.html        |    2 +-
 docs/topics/GeneralDesign/index.html               |    2 +-
 docs/topics/Guards/index.html                      |    2 +-
 docs/topics/HandlingFormPosts/index.html           |    2 +-
 docs/topics/Header/index.html                      |    2 +-
 docs/topics/HelperClasses/index.html               |    2 +-
 docs/topics/HtmlAnnotation/index.html              |    2 +-
 docs/topics/HtmlBasics/index.html                  |    2 +-
 docs/topics/HtmlBeans/index.html                   |    2 +-
 docs/topics/HtmlCustomTemplates/index.html         |    2 +-
 .../HtmlDocConfigAnnotationBasics/index.html       |    2 +-
 docs/topics/HtmlDocSerializer/index.html           |    2 +-
 docs/topics/HtmlMethodology/index.html             |    2 +-
 docs/topics/HtmlParsers/index.html                 |    2 +-
 docs/topics/HtmlPredefinedWidgets/index.html       |    2 +-
 docs/topics/HtmlRenderAnnotation/index.html        |    2 +-
 docs/topics/HtmlSchemaSupport/index.html           |    2 +-
 docs/topics/HtmlSerializers/index.html             |    2 +-
 docs/topics/HtmlStylesheets/index.html             |    2 +-
 docs/topics/HtmlUIvsDI/index.html                  |    2 +-
 docs/topics/HtmlUiCustomization/index.html         |    2 +-
 docs/topics/HtmlWidgets/index.html                 |    2 +-
 docs/topics/HttpEntitiesAndResources/index.html    |    2 +-
 docs/topics/HttpHeaders/index.html                 |    2 +-
 docs/topics/HttpPartAnnotations/index.html         |    2 +-
 docs/topics/HttpPartApis/index.html                |    2 +-
 docs/topics/HttpPartBasics/index.html              |    2 +-
 docs/topics/HttpPartSerializersParsers/index.html  |    2 +-
 docs/topics/HttpPartValidation/index.html          |    2 +-
 docs/topics/HttpParts/index.html                   |    2 +-
 docs/topics/HttpResponses/index.html               |    2 +-
 docs/topics/HttpStatusCodes/index.html             |    2 +-
 docs/topics/Imports/index.html                     |    2 +-
 docs/topics/InferredHttpMethodsAndPaths/index.html |    2 +-
 docs/topics/Interceptors/index.html                |    2 +-
 docs/topics/JCFObjects/index.html                  |    2 +-
 docs/topics/JacksonComparison/index.html           |    2 +-
 docs/topics/JavaBeansSupport/index.html            |    2 +-
 docs/topics/JavaMethodParameters/index.html        |    2 +-
 docs/topics/JavaMethodReturnTypes/index.html       |    2 +-
 docs/topics/JavaMethodThrowableTypes/index.html    |    2 +-
 docs/topics/JettyXml/index.html                    |    2 +-
 docs/topics/Json5/index.html                       |    2 +-
 docs/topics/JsonAnnotation/index.html              |    2 +-
 docs/topics/JsonBasics/index.html                  |    2 +-
 docs/topics/JsonMap/index.html                     |    2 +-
 docs/topics/JsonMethodology/index.html             |    2 +-
 docs/topics/JsonParsers/index.html                 |    2 +-
 docs/topics/JsonSchemaDetails/index.html           |    2 +-
 docs/topics/JsonSerializers/index.html             |    2 +-
 docs/topics/JuneauAssertionBasics/index.html       |    2 +-
 docs/topics/JuneauBctBasics/index.html             |    2 +-
 docs/topics/JuneauBeanAtom/index.html              |    2 +-
 docs/topics/JuneauBeanBasics/index.html            |    2 +-
 docs/topics/JuneauBeanCommon/index.html            |    2 +-
 docs/topics/JuneauBeanHtml5/index.html             |    2 +-
 docs/topics/JuneauBeanJsonSchema/index.html        |    2 +-
 docs/topics/JuneauBeanOpenApi3/index.html          |    2 +-
 docs/topics/JuneauBeanSwagger2/index.html          |    2 +-
 docs/topics/JuneauConfigBasics/index.html          |    2 +-
 docs/topics/JuneauEcosystemOverview/index.html     |    2 +-
 docs/topics/JuneauExamplesCore/index.html          |    2 +-
 docs/topics/JuneauExamplesRest/index.html          |    2 +-
 docs/topics/JuneauExamplesRestJetty/index.html     |    2 +-
 .../topics/JuneauExamplesRestSpringboot/index.html |    2 +-
 docs/topics/JuneauMarshallBasics/index.html        |    2 +-
 .../topics/JuneauMicroserviceCoreBasics/index.html |    2 +-
 .../JuneauMicroserviceJettyBasics/index.html       |    2 +-
 docs/topics/JuneauPetstoreApi/index.html           |    2 +-
 docs/topics/JuneauPetstoreBasics/index.html        |    2 +-
 docs/topics/JuneauPetstoreClient/index.html        |    2 +-
 docs/topics/JuneauPetstoreRunning/index.html       |    2 +-
 docs/topics/JuneauPetstoreServer/index.html        |    2 +-
 docs/topics/JuneauRestClientBasics/index.html      |    2 +-
 docs/topics/JuneauRestCommonBasics/index.html      |    2 +-
 docs/topics/JuneauRestMockBasics/index.html        |    2 +-
 docs/topics/JuneauRestServerBasics/index.html      |    2 +-
 .../JuneauRestServerSpringbootBasics/index.html    |    2 +-
 docs/topics/JuneauShadedAll/index.html             |    2 +-
 docs/topics/JuneauShadedCore/index.html            |    2 +-
 docs/topics/JuneauShadedOverview/index.html        |    2 +-
 docs/topics/JuneauShadedRestClient/index.html      |    2 +-
 docs/topics/JuneauShadedRestServer/index.html      |    2 +-
 .../JuneauShadedRestServerSpringboot/index.html    |    2 +-
 docs/topics/LifecycleHooks/index.html              |    2 +-
 docs/topics/Listifiers/index.html                  |    2 +-
 docs/topics/LocalizedMessages/index.html           |    2 +-
 docs/topics/Log4j/index.html                       |    2 +-
 docs/topics/LogicVariables/index.html              |    2 +-
 docs/topics/Manifest/index.html                    |    2 +-
 docs/topics/MarshallEncoders/index.html            |    2 +-
 docs/topics/MarshallSvlVariables/index.html        |    2 +-
 docs/topics/Marshallers/index.html                 |    2 +-
 docs/topics/Marshalling/index.html                 |    2 +-
 docs/topics/MarshallingOverview/index.html         |    2 +-
 docs/topics/MarshallingSecurity/index.html         |    2 +-
 docs/topics/MarshallingUris/index.html             |    2 +-
 docs/topics/Matchers/index.html                    |    2 +-
 docs/topics/MemoryStore/index.html                 |    2 +-
 docs/topics/MessagePackBasics/index.html           |    2 +-
 docs/topics/MicroserviceCoreConfig/index.html      |    2 +-
 .../MicroserviceCoreLifecycleMethods/index.html    |    2 +-
 docs/topics/MicroserviceCoreListeners/index.html   |    2 +-
 docs/topics/MicroserviceCoreOverview/index.html    |    2 +-
 docs/topics/MicroserviceJettyOverview/index.html   |    2 +-
 docs/topics/MockRestClientOverview/index.html      |    2 +-
 docs/topics/ModdedEntries/index.html               |    2 +-
 docs/topics/Module-juneau-marshall-rdf/index.html  |    2 +-
 docs/topics/ModuleName/index.html                  |    2 +-
 docs/topics/MsgPackParsers/index.html              |    2 +-
 docs/topics/MsgPackSerializers/index.html          |    2 +-
 docs/topics/MyJettyMicroserviceBasics/index.html   |    2 +-
 docs/topics/MyJettyMicroserviceBuilding/index.html |    2 +-
 .../MyJettyMicroserviceInstalling/index.html       |    2 +-
 docs/topics/MyJettyMicroserviceRunning/index.html  |    2 +-
 .../MySpringBootMicroserviceBasics/index.html      |    2 +-
 .../MySpringBootMicroserviceBuilding/index.html    |    2 +-
 .../MySpringBootMicroserviceInstalling/index.html  |    2 +-
 .../MySpringBootMicroserviceRunning/index.html     |    2 +-
 docs/topics/NamePropertyAnnotation/index.html      |    2 +-
 docs/topics/ObjectTools/index.html                 |    2 +-
 docs/topics/OneWaySwaps/index.html                 |    2 +-
 docs/topics/OpenApiBasics/index.html               |    2 +-
 docs/topics/OpenApiMethodology/index.html          |    2 +-
 docs/topics/OpenApiParsers/index.html              |    2 +-
 docs/topics/OpenApiSerializers/index.html          |    2 +-
 docs/topics/OtherNotes/index.html                  |    2 +-
 docs/topics/OverloadingHttpMethods/index.html      |    2 +-
 docs/topics/ParentPropertyAnnotation/index.html    |    2 +-
 docs/topics/ParsingIntoGenericModels/index.html    |    2 +-
 docs/topics/PartMarshallers/index.html             |    2 +-
 docs/topics/Path/index.html                        |    2 +-
 docs/topics/PathPatterns/index.html                |    2 +-
 docs/topics/PathVariables/index.html               |    2 +-
 docs/topics/PerMediaTypeSwaps/index.html           |    2 +-
 docs/topics/PojoBuilders/index.html                |    2 +-
 docs/topics/PojoCategories/index.html              |    2 +-
 docs/topics/PojoMarshalling/index.html             |    2 +-
 docs/topics/Pojos/index.html                       |    2 +-
 docs/topics/PredefinedClasses/index.html           |    2 +-
 docs/topics/PredefinedResourceClasses/index.html   |    2 +-
 docs/topics/PropertyExtractors/index.html          |    2 +-
 docs/topics/Query/index.html                       |    2 +-
 docs/topics/ReadOnlyConfigs/index.html             |    2 +-
 docs/topics/ReadingContinuousStreams/index.html    |    2 +-
 docs/topics/ReadingEntriesBasics/index.html        |    2 +-
 docs/topics/Recursion/index.html                   |    2 +-
 docs/topics/Remote/index.html                      |    2 +-
 docs/topics/RemoteMethod/index.html                |    2 +-
 docs/topics/RemoteProxyInterfaces/index.html       |    2 +-
 docs/topics/Request/index.html                     |    2 +-
 docs/topics/RequestBeans/index.html                |    2 +-
 docs/topics/RequestContent/index.html              |    2 +-
 docs/topics/RequestParts/index.html                |    2 +-
 docs/topics/ResourceClasses/index.html             |    2 +-
 docs/topics/Response/index.html                    |    2 +-
 docs/topics/ResponseBeans/index.html               |    2 +-
 docs/topics/ResponseContent/index.html             |    2 +-
 docs/topics/ResponseHeaders/index.html             |    2 +-
 docs/topics/ResponseProcessors/index.html          |    2 +-
 docs/topics/ResponseStatus/index.html              |    2 +-
 docs/topics/RestAnnotatedClassBasics/index.html    |    2 +-
 docs/topics/RestClient/index.html                  |    2 +-
 .../RestClientLoggingAndDebugging/index.html       |    2 +-
 docs/topics/RestContext/index.html                 |    2 +-
 docs/topics/RestOpAnnotatedMethodBasics/index.html |    2 +-
 docs/topics/RestOpContext/index.html               |    2 +-
 docs/topics/RestProxyBasics/index.html             |    2 +-
 docs/topics/RestRpc/index.html                     |    2 +-
 docs/topics/RestSecurity/index.html                |    2 +-
 docs/topics/RestServer/index.html                  |    2 +-
 docs/topics/RestServerEncoders/index.html          |    2 +-
 .../RestServerLoggingAndDebugging/index.html       |    2 +-
 docs/topics/RestServerOverview/index.html          |    2 +-
 docs/topics/RestServerSvlVariables/index.html      |    2 +-
 docs/topics/Sections/index.html                    |    2 +-
 docs/topics/SecurityBasics/index.html              |    2 +-
 docs/topics/SerializerSetsParserSets/index.html    |    2 +-
 docs/topics/SerializersAndParsers/index.html       |    2 +-
 docs/topics/SerializingConfigs/index.html          |    2 +-
 docs/topics/SerializingUris/index.html             |    2 +-
 docs/topics/SettingValuesBasics/index.html         |    2 +-
 .../topics/SimpleVariableLanguageBasics/index.html |    2 +-
 docs/topics/SpringBootOverview/index.html          |    2 +-
 docs/topics/StaticFiles/index.html                 |    2 +-
 docs/topics/StoreListeners/index.html              |    2 +-
 docs/topics/Stringifiers/index.html                |    2 +-
 docs/topics/SurrogateClasses/index.html            |    2 +-
 docs/topics/SvlOtherNotes/index.html               |    2 +-
 docs/topics/SvlSecurity/index.html                 |    2 +-
 docs/topics/SwaggerBasics/index.html               |    2 +-
 docs/topics/SwaggerModels/index.html               |    2 +-
 docs/topics/SwaggerOperations/index.html           |    2 +-
 docs/topics/SwaggerParameters/index.html           |    2 +-
 docs/topics/SwaggerResponses/index.html            |    2 +-
 docs/topics/SwaggerStylesheet/index.html           |    2 +-
 docs/topics/SwaggerTags/index.html                 |    2 +-
 docs/topics/SwapAnnotation/index.html              |    2 +-
 docs/topics/SwapBasics/index.html                  |    2 +-
 docs/topics/Swappers/index.html                    |    2 +-
 docs/topics/SyntaxRules/index.html                 |    2 +-
 docs/topics/SystemDefaultConfig/index.html         |    2 +-
 docs/topics/SystemProperties/index.html            |    2 +-
 docs/topics/TemplatedSwaps/index.html              |    2 +-
 docs/topics/UiCustomization/index.html             |    2 +-
 docs/topics/UonBasics/index.html                   |    2 +-
 docs/topics/UonMethodology/index.html              |    2 +-
 docs/topics/UonParsers/index.html                  |    2 +-
 docs/topics/UonSerializers/index.html              |    2 +-
 docs/topics/UrlEncMethodology/index.html           |    2 +-
 docs/topics/UrlEncParsers/index.html               |    2 +-
 docs/topics/UrlEncSerializers/index.html           |    2 +-
 docs/topics/UrlEncodingAnnotation/index.html       |    2 +-
 docs/topics/UrlEncodingBasics/index.html           |    2 +-
 docs/topics/UsingWithOsgi/index.html               |    2 +-
 docs/topics/UtilityBeans/index.html                |    2 +-
 docs/topics/V9.0-migration-guide/index.html        |    2 +-
 docs/topics/VarResolver/index.html                 |    2 +-
 docs/topics/VarResolvers/index.html                |    2 +-
 docs/topics/VariableBasics/index.html              |    2 +-
 docs/topics/VirtualBeans/index.html                |    2 +-
 docs/topics/WhyJuneau/index.html                   |    2 +-
 docs/topics/XmlBasics/index.html                   |    2 +-
 docs/topics/XmlBeanTypeNameAnnotation/index.html   |    2 +-
 docs/topics/XmlChildNameAnnotation/index.html      |    2 +-
 docs/topics/XmlFormatAnnotation/index.html         |    2 +-
 docs/topics/XmlMethodology/index.html              |    2 +-
 docs/topics/XmlNamespaces/index.html               |    2 +-
 docs/topics/XmlParsers/index.html                  |    2 +-
 docs/topics/XmlSerializers/index.html              |    2 +-
 docs/topics/index.html                             |    2 +-
 downloads/index.html                               |    2 +-
 index.html                                         |    2 +-
 markdown-page/index.html                           |    2 +-
 security/index.html                                |    2 +-
 site/dependency-convergence.html                   |   86 +-
 site/dependency-info.html                          |    2 +-
 site/distribution-management.html                  |    2 +-
 site/index.html                                    |    2 +-
 site/issue-management.html                         |    2 +-
 site/licenses.html                                 |    2 +-
 site/mailing-lists.html                            |    2 +-
 site/modules.html                                  |    2 +-
 site/plugin-management.html                        |    2 +-
 site/plugins.html                                  |    2 +-
 site/project-info.html                             |    2 +-
 site/project-reports.html                          |    2 +-
 site/scm.html                                      |    2 +-
 site/summary.html                                  |    2 +-
 site/surefire.html                                 |    2 +-
 site/team.html                                     |    2 +-
 site/xref-test/allclasses-frame.html               |    1 +
 .../juneau/common/utils/MimeTypeDetector_Test.html |  500 +++++++
 .../apache/juneau/common/utils/package-frame.html  |    3 +
 .../juneau/common/utils/package-summary.html       |    7 +-
 site/xref/allclasses-frame.html                    |    4 +-
 .../org/apache/juneau/bean/atom/CommonEntry.html   |   12 +-
 site/xref/org/apache/juneau/bean/atom/Entry.html   |  839 ++++++------
 site/xref/org/apache/juneau/bean/atom/Utils.html   |   56 -
 .../org/apache/juneau/bean/atom/package-frame.html |    3 -
 .../apache/juneau/bean/atom/package-summary.html   |    5 -
 .../apache/juneau/common/collections/Cache.html    |   33 +-
 .../org/apache/juneau/common/utils/DateUtils.html  | 1422 ++++++++++----------
 .../juneau/common/utils/MimeTypeDetector.html      |  426 ++++++
 .../apache/juneau/common/utils/StringUtils.html    | 1146 ++++++++--------
 .../apache/juneau/common/utils/package-frame.html  |    6 +
 .../juneau/common/utils/package-summary.html       |   10 +
 .../juneau/objecttools/TimeMatcherFactory.html     |    4 +-
 .../juneau/rest/staticfile/BasicStaticFiles.html   |  249 ++--
 .../apache/juneau/rest/staticfile/StaticFiles.html |  361 +++--
 .../juneau/utils/ExtendedMimetypesFileTypeMap.html |  107 --
 .../org/apache/juneau/utils/package-frame.html     |    3 -
 .../org/apache/juneau/utils/package-summary.html   |   35 +-
 421 files changed, 3434 insertions(+), 2690 deletions(-)

diff --git a/404.html b/404.html
index e0f1105394..b864bdc46a 100644
--- a/404.html
+++ b/404.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Page Not Found | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/about/index.html b/about/index.html
index 30cd0223d4..63aa7fbc17 100644
--- a/about/index.html
+++ b/about/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">About Apache Juneau™ | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/apache/index.html b/apache/index.html
index 8eb3cafb53..1035400604 100644
--- a/apache/index.html
+++ b/apache/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Apache Software Foundation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/assets/js/284f90e9.bc3b8f60.js b/assets/js/284f90e9.bc3b8f60.js
new file mode 100644
index 0000000000..149446fbd1
--- /dev/null
+++ b/assets/js/284f90e9.bc3b8f60.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkjuneau_documentation=self.webpackChunkjuneau_documentation||[]).push([[8314],{28453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>d});var i=s(96540);const r={},l=i.createContext(r);function a(e){const n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(l.Provider,{value:n},e.childr [...]
\ No newline at end of file
diff --git a/assets/js/284f90e9.e6b8484f.js b/assets/js/284f90e9.e6b8484f.js
deleted file mode 100644
index 37d0f8fd08..0000000000
--- a/assets/js/284f90e9.e6b8484f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkjuneau_documentation=self.webpackChunkjuneau_documentation||[]).push([[8314],{28453:(e,n,s)=>{s.d(n,{R:()=>a,x:()=>t});var i=s(96540);const r={},l=i.createContext(r);function a(e){const n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(l.Provider,{value:n},e.childr [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.076c50ee.js b/assets/js/runtime~main.09192986.js
similarity index 99%
rename from assets/js/runtime~main.076c50ee.js
rename to assets/js/runtime~main.09192986.js
index 5aee95f957..9dbae77561 100644
--- a/assets/js/runtime~main.076c50ee.js
+++ b/assets/js/runtime~main.09192986.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,d,b,f,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return c[e].call(d.exports,d,d.exports,r),d.exports}r.m=c,e=[],r.O=(a,d,b,f)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],b=e[i][1],f=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&f||c>=f)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,f<c&&(c=f));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2 [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,d,b,f,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return c[e].call(d.exports,d,d.exports,r),d.exports}r.m=c,e=[],r.O=(a,d,b,f)=>{if(!d){var c=1/0;for(i=0;i<e.length;i++){d=e[i][0],b=e[i][1],f=e[i][2];for(var t=!0,o=0;o<d.length;o++)(!1&f||c>=f)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,f<c&&(c=f));if(t){e.splice(i--,1);var n=b();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2 [...]
\ No newline at end of file
diff --git a/docs/release-notes/5.0.0.00/index.html b/docs/release-notes/5.0.0.00/index.html
index 85206f5771..cc8613ffac 100644
--- a/docs/release-notes/5.0.0.00/index.html
+++ b/docs/release-notes/5.0.0.00/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.01/index.html b/docs/release-notes/5.0.0.01/index.html
index 4565b5606c..d8ca7359ce 100644
--- a/docs/release-notes/5.0.0.01/index.html
+++ b/docs/release-notes/5.0.0.01/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.02/index.html b/docs/release-notes/5.0.0.02/index.html
index a94bd228c6..37cffd0540 100644
--- a/docs/release-notes/5.0.0.02/index.html
+++ b/docs/release-notes/5.0.0.02/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.2 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.03/index.html b/docs/release-notes/5.0.0.03/index.html
index a8d13099d3..1888e445a7 100644
--- a/docs/release-notes/5.0.0.03/index.html
+++ b/docs/release-notes/5.0.0.03/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.3 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.04/index.html b/docs/release-notes/5.0.0.04/index.html
index 8e95eb415c..4495a6eeb8 100644
--- a/docs/release-notes/5.0.0.04/index.html
+++ b/docs/release-notes/5.0.0.04/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.4 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.05/index.html b/docs/release-notes/5.0.0.05/index.html
index 622d7f56c1..de2e4e39ec 100644
--- a/docs/release-notes/5.0.0.05/index.html
+++ b/docs/release-notes/5.0.0.05/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.5 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.06/index.html b/docs/release-notes/5.0.0.06/index.html
index fa61e5bc1f..61c3f6fe9c 100644
--- a/docs/release-notes/5.0.0.06/index.html
+++ b/docs/release-notes/5.0.0.06/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.6 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.07/index.html b/docs/release-notes/5.0.0.07/index.html
index df917ee935..4b687097fa 100644
--- a/docs/release-notes/5.0.0.07/index.html
+++ b/docs/release-notes/5.0.0.07/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.7 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.08/index.html b/docs/release-notes/5.0.0.08/index.html
index 5de4bdca60..a240778a4d 100644
--- a/docs/release-notes/5.0.0.08/index.html
+++ b/docs/release-notes/5.0.0.08/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.8 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.09/index.html b/docs/release-notes/5.0.0.09/index.html
index ef2b4e6d3f..c201b7b5af 100644
--- a/docs/release-notes/5.0.0.09/index.html
+++ b/docs/release-notes/5.0.0.09/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.9 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.10/index.html b/docs/release-notes/5.0.0.10/index.html
index 5b8b26a016..65118e7a1a 100644
--- a/docs/release-notes/5.0.0.10/index.html
+++ b/docs/release-notes/5.0.0.10/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.10 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.11/index.html b/docs/release-notes/5.0.0.11/index.html
index f56113192f..0bbc456936 100644
--- a/docs/release-notes/5.0.0.11/index.html
+++ b/docs/release-notes/5.0.0.11/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.11 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.12/index.html b/docs/release-notes/5.0.0.12/index.html
index cf50ff82a9..a5a34085a6 100644
--- a/docs/release-notes/5.0.0.12/index.html
+++ b/docs/release-notes/5.0.0.12/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.12 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.13/index.html b/docs/release-notes/5.0.0.13/index.html
index 077a2c1a8f..7e548d69e9 100644
--- a/docs/release-notes/5.0.0.13/index.html
+++ b/docs/release-notes/5.0.0.13/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.13 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.14/index.html b/docs/release-notes/5.0.0.14/index.html
index df8d04eaf1..64a0b58ebe 100644
--- a/docs/release-notes/5.0.0.14/index.html
+++ b/docs/release-notes/5.0.0.14/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.14 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.15/index.html b/docs/release-notes/5.0.0.15/index.html
index d90abbf001..a311760321 100644
--- a/docs/release-notes/5.0.0.15/index.html
+++ b/docs/release-notes/5.0.0.15/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.15 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.16/index.html b/docs/release-notes/5.0.0.16/index.html
index a0d95e375d..edebb48bb1 100644
--- a/docs/release-notes/5.0.0.16/index.html
+++ b/docs/release-notes/5.0.0.16/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.16 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.17/index.html b/docs/release-notes/5.0.0.17/index.html
index d2e45460f5..179534c0b0 100644
--- a/docs/release-notes/5.0.0.17/index.html
+++ b/docs/release-notes/5.0.0.17/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.17 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.18/index.html b/docs/release-notes/5.0.0.18/index.html
index bdf299cea9..aa7b253fee 100644
--- a/docs/release-notes/5.0.0.18/index.html
+++ b/docs/release-notes/5.0.0.18/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.18 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.19/index.html b/docs/release-notes/5.0.0.19/index.html
index c0be64e5bd..1852dd92b1 100644
--- a/docs/release-notes/5.0.0.19/index.html
+++ b/docs/release-notes/5.0.0.19/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.19 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.20/index.html b/docs/release-notes/5.0.0.20/index.html
index 275330e0cf..9b81c33d53 100644
--- a/docs/release-notes/5.0.0.20/index.html
+++ b/docs/release-notes/5.0.0.20/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.20 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.21/index.html b/docs/release-notes/5.0.0.21/index.html
index 9f70ed6ebd..7ca5096df4 100644
--- a/docs/release-notes/5.0.0.21/index.html
+++ b/docs/release-notes/5.0.0.21/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.21 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.22/index.html b/docs/release-notes/5.0.0.22/index.html
index 30908d4241..bd9068b1e9 100644
--- a/docs/release-notes/5.0.0.22/index.html
+++ b/docs/release-notes/5.0.0.22/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.22 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.23/index.html b/docs/release-notes/5.0.0.23/index.html
index fef931da4a..740889b1c5 100644
--- a/docs/release-notes/5.0.0.23/index.html
+++ b/docs/release-notes/5.0.0.23/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.23 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.24/index.html b/docs/release-notes/5.0.0.24/index.html
index 809c46c4d8..8257702397 100644
--- a/docs/release-notes/5.0.0.24/index.html
+++ b/docs/release-notes/5.0.0.24/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.24 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.25/index.html b/docs/release-notes/5.0.0.25/index.html
index c0baca99b9..1fc4b969ff 100644
--- a/docs/release-notes/5.0.0.25/index.html
+++ b/docs/release-notes/5.0.0.25/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.25 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.26/index.html b/docs/release-notes/5.0.0.26/index.html
index fa56441a5f..b57a47b3ce 100644
--- a/docs/release-notes/5.0.0.26/index.html
+++ b/docs/release-notes/5.0.0.26/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.26 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.27/index.html b/docs/release-notes/5.0.0.27/index.html
index 9dd6e5241a..8f02957d6f 100644
--- a/docs/release-notes/5.0.0.27/index.html
+++ b/docs/release-notes/5.0.0.27/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.27 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.28/index.html b/docs/release-notes/5.0.0.28/index.html
index 1c7976edfa..8cfde70e6d 100644
--- a/docs/release-notes/5.0.0.28/index.html
+++ b/docs/release-notes/5.0.0.28/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.28 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.29/index.html b/docs/release-notes/5.0.0.29/index.html
index 11a1e3ed69..bcc9b78e11 100644
--- a/docs/release-notes/5.0.0.29/index.html
+++ b/docs/release-notes/5.0.0.29/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.29 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.30/index.html b/docs/release-notes/5.0.0.30/index.html
index 300ff4276e..e022b9e1b3 100644
--- a/docs/release-notes/5.0.0.30/index.html
+++ b/docs/release-notes/5.0.0.30/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.30 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.31/index.html b/docs/release-notes/5.0.0.31/index.html
index 77ccd016aa..d70eb35e88 100644
--- a/docs/release-notes/5.0.0.31/index.html
+++ b/docs/release-notes/5.0.0.31/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.31 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.32/index.html b/docs/release-notes/5.0.0.32/index.html
index f06473c0d5..04d71df808 100644
--- a/docs/release-notes/5.0.0.32/index.html
+++ b/docs/release-notes/5.0.0.32/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.32 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.33/index.html b/docs/release-notes/5.0.0.33/index.html
index e5a43fb2f8..81ed11dfed 100644
--- a/docs/release-notes/5.0.0.33/index.html
+++ b/docs/release-notes/5.0.0.33/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.33 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.34/index.html b/docs/release-notes/5.0.0.34/index.html
index 785115e1e6..48b0206616 100644
--- a/docs/release-notes/5.0.0.34/index.html
+++ b/docs/release-notes/5.0.0.34/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.34 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.35/index.html b/docs/release-notes/5.0.0.35/index.html
index 220d62dbd2..1509106f79 100644
--- a/docs/release-notes/5.0.0.35/index.html
+++ b/docs/release-notes/5.0.0.35/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.35 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.0.0.36/index.html b/docs/release-notes/5.0.0.36/index.html
index f20333e619..ab6aa95f88 100644
--- a/docs/release-notes/5.0.0.36/index.html
+++ b/docs/release-notes/5.0.0.36/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.0.0.36 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.00/index.html b/docs/release-notes/5.1.0.00/index.html
index ce9dd9de81..261db94a5c 100644
--- a/docs/release-notes/5.1.0.00/index.html
+++ b/docs/release-notes/5.1.0.00/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.01/index.html b/docs/release-notes/5.1.0.01/index.html
index 4fac57674b..df3a4b3d0c 100644
--- a/docs/release-notes/5.1.0.01/index.html
+++ b/docs/release-notes/5.1.0.01/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.02/index.html b/docs/release-notes/5.1.0.02/index.html
index eb5b048a14..7e7e65c125 100644
--- a/docs/release-notes/5.1.0.02/index.html
+++ b/docs/release-notes/5.1.0.02/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.2 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.03/index.html b/docs/release-notes/5.1.0.03/index.html
index 0c942c666f..5da62a22bf 100644
--- a/docs/release-notes/5.1.0.03/index.html
+++ b/docs/release-notes/5.1.0.03/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.3 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.04/index.html b/docs/release-notes/5.1.0.04/index.html
index 4a36f65e9c..c0486473d3 100644
--- a/docs/release-notes/5.1.0.04/index.html
+++ b/docs/release-notes/5.1.0.04/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.4 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.05/index.html b/docs/release-notes/5.1.0.05/index.html
index 0f2c1c523c..297e4a8b6d 100644
--- a/docs/release-notes/5.1.0.05/index.html
+++ b/docs/release-notes/5.1.0.05/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.5 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.06/index.html b/docs/release-notes/5.1.0.06/index.html
index 46088fc659..21b47fcc40 100644
--- a/docs/release-notes/5.1.0.06/index.html
+++ b/docs/release-notes/5.1.0.06/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.6 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.07/index.html b/docs/release-notes/5.1.0.07/index.html
index b720575efd..f512474108 100644
--- a/docs/release-notes/5.1.0.07/index.html
+++ b/docs/release-notes/5.1.0.07/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.7 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.08/index.html b/docs/release-notes/5.1.0.08/index.html
index 96935c0cbb..0a6b047c37 100644
--- a/docs/release-notes/5.1.0.08/index.html
+++ b/docs/release-notes/5.1.0.08/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.8 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.09/index.html b/docs/release-notes/5.1.0.09/index.html
index 91a7a6ac58..ba6dc7d864 100644
--- a/docs/release-notes/5.1.0.09/index.html
+++ b/docs/release-notes/5.1.0.09/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.9 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.10/index.html b/docs/release-notes/5.1.0.10/index.html
index c518426e89..4aa7c1001d 100644
--- a/docs/release-notes/5.1.0.10/index.html
+++ b/docs/release-notes/5.1.0.10/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.10 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.11/index.html b/docs/release-notes/5.1.0.11/index.html
index dc489d60b9..e5480437ac 100644
--- a/docs/release-notes/5.1.0.11/index.html
+++ b/docs/release-notes/5.1.0.11/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.11 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.12/index.html b/docs/release-notes/5.1.0.12/index.html
index 5eb035fb32..835d0e128a 100644
--- a/docs/release-notes/5.1.0.12/index.html
+++ b/docs/release-notes/5.1.0.12/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.12 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.13/index.html b/docs/release-notes/5.1.0.13/index.html
index 90b167b5d4..186ce80668 100644
--- a/docs/release-notes/5.1.0.13/index.html
+++ b/docs/release-notes/5.1.0.13/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.13 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.14/index.html b/docs/release-notes/5.1.0.14/index.html
index 808c15b6f5..65e411d7e5 100644
--- a/docs/release-notes/5.1.0.14/index.html
+++ b/docs/release-notes/5.1.0.14/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.14 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.15/index.html b/docs/release-notes/5.1.0.15/index.html
index df79550c27..42d848f928 100644
--- a/docs/release-notes/5.1.0.15/index.html
+++ b/docs/release-notes/5.1.0.15/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.15 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.16/index.html b/docs/release-notes/5.1.0.16/index.html
index 3dccb8aae4..2e2bee9f83 100644
--- a/docs/release-notes/5.1.0.16/index.html
+++ b/docs/release-notes/5.1.0.16/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.16 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.17/index.html b/docs/release-notes/5.1.0.17/index.html
index f4aa66a468..1eb9fa9508 100644
--- a/docs/release-notes/5.1.0.17/index.html
+++ b/docs/release-notes/5.1.0.17/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.17 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.18/index.html b/docs/release-notes/5.1.0.18/index.html
index 8d4c774046..0abcc92edc 100644
--- a/docs/release-notes/5.1.0.18/index.html
+++ b/docs/release-notes/5.1.0.18/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.18 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.19/index.html b/docs/release-notes/5.1.0.19/index.html
index be266b2870..2a22bff5ba 100644
--- a/docs/release-notes/5.1.0.19/index.html
+++ b/docs/release-notes/5.1.0.19/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.19 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.1.0.20/index.html b/docs/release-notes/5.1.0.20/index.html
index c3919f9a2f..d37d40d9cd 100644
--- a/docs/release-notes/5.1.0.20/index.html
+++ b/docs/release-notes/5.1.0.20/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.1.0.20 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.2.0.0/index.html b/docs/release-notes/5.2.0.0/index.html
index dbe5977a28..d44d11dd34 100644
--- a/docs/release-notes/5.2.0.0/index.html
+++ b/docs/release-notes/5.2.0.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.2.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/5.2.0.1/index.html b/docs/release-notes/5.2.0.1/index.html
index 7021790972..de07b692c9 100644
--- a/docs/release-notes/5.2.0.1/index.html
+++ b/docs/release-notes/5.2.0.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 5.2.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.0.0/index.html b/docs/release-notes/6.0.0/index.html
index b990810ed1..faca645065 100644
--- a/docs/release-notes/6.0.0/index.html
+++ b/docs/release-notes/6.0.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.0.1/index.html b/docs/release-notes/6.0.1/index.html
index 1a3aad0efd..9a882e72e8 100644
--- a/docs/release-notes/6.0.1/index.html
+++ b/docs/release-notes/6.0.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.1.0/index.html b/docs/release-notes/6.1.0/index.html
index ce690fcb65..11ff65a03b 100644
--- a/docs/release-notes/6.1.0/index.html
+++ b/docs/release-notes/6.1.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.1.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.2.0/index.html b/docs/release-notes/6.2.0/index.html
index 14d8ab196f..745ad75658 100644
--- a/docs/release-notes/6.2.0/index.html
+++ b/docs/release-notes/6.2.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.2.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.3.0/index.html b/docs/release-notes/6.3.0/index.html
index 7c0e92e708..1f74314e58 100644
--- a/docs/release-notes/6.3.0/index.html
+++ b/docs/release-notes/6.3.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.3.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.3.1/index.html b/docs/release-notes/6.3.1/index.html
index 9d8584e5ba..81e5cd458e 100644
--- a/docs/release-notes/6.3.1/index.html
+++ b/docs/release-notes/6.3.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.3.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/6.4.0/index.html b/docs/release-notes/6.4.0/index.html
index ec8459b4cb..9b17294f91 100644
--- a/docs/release-notes/6.4.0/index.html
+++ b/docs/release-notes/6.4.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 6.4.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.0.0/index.html b/docs/release-notes/7.0.0/index.html
index 5b9a29c3c1..7efbe074e6 100644
--- a/docs/release-notes/7.0.0/index.html
+++ b/docs/release-notes/7.0.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.0.1/index.html b/docs/release-notes/7.0.1/index.html
index 66706b3236..f10a6ec150 100644
--- a/docs/release-notes/7.0.1/index.html
+++ b/docs/release-notes/7.0.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.1.0/index.html b/docs/release-notes/7.1.0/index.html
index f5e185e4f3..33768ebd0b 100644
--- a/docs/release-notes/7.1.0/index.html
+++ b/docs/release-notes/7.1.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.1.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.2.0/index.html b/docs/release-notes/7.2.0/index.html
index 51eeb845ed..808967381b 100644
--- a/docs/release-notes/7.2.0/index.html
+++ b/docs/release-notes/7.2.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.2.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.2.1/index.html b/docs/release-notes/7.2.1/index.html
index f06a37e387..e7ac2c5774 100644
--- a/docs/release-notes/7.2.1/index.html
+++ b/docs/release-notes/7.2.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.2.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/7.2.2/index.html b/docs/release-notes/7.2.2/index.html
index 990c4a3921..c7a42d2b43 100644
--- a/docs/release-notes/7.2.2/index.html
+++ b/docs/release-notes/7.2.2/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 7.2.2 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.0.0/index.html b/docs/release-notes/8.0.0/index.html
index b812504dcf..7dc14e2963 100644
--- a/docs/release-notes/8.0.0/index.html
+++ b/docs/release-notes/8.0.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.1.0/index.html b/docs/release-notes/8.1.0/index.html
index c3606dfbfe..685fca2317 100644
--- a/docs/release-notes/8.1.0/index.html
+++ b/docs/release-notes/8.1.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.1.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.1.1/index.html b/docs/release-notes/8.1.1/index.html
index 335e01bfc8..4d3e910e51 100644
--- a/docs/release-notes/8.1.1/index.html
+++ b/docs/release-notes/8.1.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.1.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.1.2/index.html b/docs/release-notes/8.1.2/index.html
index 05598d06db..b6d98c5db9 100644
--- a/docs/release-notes/8.1.2/index.html
+++ b/docs/release-notes/8.1.2/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.1.2 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.1.3/index.html b/docs/release-notes/8.1.3/index.html
index 4a4ee3f1e1..0623bc1719 100644
--- a/docs/release-notes/8.1.3/index.html
+++ b/docs/release-notes/8.1.3/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.1.3 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/8.2.0/index.html b/docs/release-notes/8.2.0/index.html
index 54b9c21149..fac503c5d2 100644
--- a/docs/release-notes/8.2.0/index.html
+++ b/docs/release-notes/8.2.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 8.2.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/9.0.0/index.html b/docs/release-notes/9.0.0/index.html
index 4dcba0ec0c..731a1aa113 100644
--- a/docs/release-notes/9.0.0/index.html
+++ b/docs/release-notes/9.0.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 9.0.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/9.0.1/index.html b/docs/release-notes/9.0.1/index.html
index 150249035c..25a07180f5 100644
--- a/docs/release-notes/9.0.1/index.html
+++ b/docs/release-notes/9.0.1/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 9.0.1 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/9.1.0/index.html b/docs/release-notes/9.1.0/index.html
index 5c84f1f98d..afc4c25d7e 100644
--- a/docs/release-notes/9.1.0/index.html
+++ b/docs/release-notes/9.1.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 9.1.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/release-notes/9.2.0/index.html b/docs/release-notes/9.2.0/index.html
index 714a19d9fc..a237a7f516 100644
--- a/docs/release-notes/9.2.0/index.html
+++ b/docs/release-notes/9.2.0/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Release 9.2.0 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
@@ -187,6 +187,18 @@ Features and release date are subject to change.</p></div></div>
 </ul>
 </li>
 <li>
+<p><strong>Jakarta XML Bind Dependency Elimination</strong>: Replaced <code>jakarta.xml.bind-api</code> dependency with modern Java time APIs:</p>
+<ul>
+<li>Updated <code>StringUtils.toIsoDate(Calendar)</code> to use <code>ZonedDateTime</code> and <code>DateTimeFormatter.ISO_LOCAL_DATE</code></li>
+<li>Updated <code>StringUtils.toIsoDateTime(Calendar)</code> to use <code>ZonedDateTime</code> and <code>DateTimeFormatter.ISO_OFFSET_DATE_TIME</code></li>
+<li>Removed <code>import jakarta.xml.bind.*;</code> from <code>StringUtils.java</code></li>
+<li>Added <code>import java.time.*;</code> and <code>import java.time.format.*;</code> for modern time API support</li>
+<li>Maintains identical output format and behavior while eliminating external dependency</li>
+<li>Improved timezone preservation in serialized date-time values</li>
+<li>Enhanced performance with modern Java 8+ time APIs</li>
+</ul>
+</li>
+<li>
 <p><strong>Code Cleanup</strong>: Removed commented-out code blocks to improve code maintainability:</p>
 <ul>
 <li>Removed entire commented-out <code>getResponseBeanMeta()</code> method from <code>RestContext.java</code></li>
diff --git a/docs/topics/AdditionalInformation/index.html b/docs/topics/AdditionalInformation/index.html
index cd61baf691..375e8bbdee 100644
--- a/docs/topics/AdditionalInformation/index.html
+++ b/docs/topics/AdditionalInformation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Additional Information | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Annotations/index.html b/docs/topics/Annotations/index.html
index 64135a3079..a510a3a68a 100644
--- a/docs/topics/Annotations/index.html
+++ b/docs/topics/Annotations/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Annotations | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Args/index.html b/docs/topics/Args/index.html
index f36bd6eb91..0d60d478b2 100644
--- a/docs/topics/Args/index.html
+++ b/docs/topics/Args/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Args | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache.or [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Arrays/index.html b/docs/topics/Arrays/index.html
index a0f795bfd6..f3ad3e96f5 100644
--- a/docs/topics/Arrays/index.html
+++ b/docs/topics/Arrays/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Arrays | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AssertionsOverview/index.html b/docs/topics/AssertionsOverview/index.html
index 3d6b1d9d27..7d3d704536 100644
--- a/docs/topics/AssertionsOverview/index.html
+++ b/docs/topics/AssertionsOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Assertions Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AuthenticationBASIC/index.html b/docs/topics/AuthenticationBASIC/index.html
index 955fb48033..5bf5d0a485 100644
--- a/docs/topics/AuthenticationBASIC/index.html
+++ b/docs/topics/AuthenticationBASIC/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">BASIC Authentication | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AuthenticationBasics/index.html b/docs/topics/AuthenticationBasics/index.html
index b0a5cd5828..64e3d2bd94 100644
--- a/docs/topics/AuthenticationBasics/index.html
+++ b/docs/topics/AuthenticationBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Authentication Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AuthenticationForm/index.html b/docs/topics/AuthenticationForm/index.html
index 2d162ca00d..6d35762181 100644
--- a/docs/topics/AuthenticationForm/index.html
+++ b/docs/topics/AuthenticationForm/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">FORM-based Authentication | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AuthenticationOIDC/index.html b/docs/topics/AuthenticationOIDC/index.html
index e6f579f744..d38f8d9846 100644
--- a/docs/topics/AuthenticationOIDC/index.html
+++ b/docs/topics/AuthenticationOIDC/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">OIDC Authentication | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/AutoSwaps/index.html b/docs/topics/AutoSwaps/index.html
index 3163a6e12f..5ac5cfc336 100644
--- a/docs/topics/AutoSwaps/index.html
+++ b/docs/topics/AutoSwaps/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Auto-detected swaps | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BasicHtmlDocTemplate/index.html b/docs/topics/BasicHtmlDocTemplate/index.html
index 1599ba5453..329be67c08 100644
--- a/docs/topics/BasicHtmlDocTemplate/index.html
+++ b/docs/topics/BasicHtmlDocTemplate/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">BasicHtmlDocTemplate | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BasicRestServletSwagger/index.html b/docs/topics/BasicRestServletSwagger/index.html
index dd305a3eac..14c5993854 100644
--- a/docs/topics/BasicRestServletSwagger/index.html
+++ b/docs/topics/BasicRestServletSwagger/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">BasicRestServlet/BasicRestObject Swagger | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:ur [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BasicSwaggerInfo/index.html b/docs/topics/BasicSwaggerInfo/index.html
index 4c15df440d..04f9ed8055 100644
--- a/docs/topics/BasicSwaggerInfo/index.html
+++ b/docs/topics/BasicSwaggerInfo/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Basic Swagger Info | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanAnnotation/index.html b/docs/topics/BeanAnnotation/index.html
index 85e35926f4..75d8cc587b 100644
--- a/docs/topics/BeanAnnotation/index.html
+++ b/docs/topics/BeanAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Bean Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanContextBasics/index.html b/docs/topics/BeanContextBasics/index.html
index 436f1b6c09..ba28c411fb 100644
--- a/docs/topics/BeanContextBasics/index.html
+++ b/docs/topics/BeanContextBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Bean Context Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanDictionaryBasics/index.html b/docs/topics/BeanDictionaryBasics/index.html
index 378bfbff07..82fc37bd6b 100644
--- a/docs/topics/BeanDictionaryBasics/index.html
+++ b/docs/topics/BeanDictionaryBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Bean Dictionary Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanIgnoreAnnotation/index.html b/docs/topics/BeanIgnoreAnnotation/index.html
index 18e3ddaa70..9786ce6562 100644
--- a/docs/topics/BeanIgnoreAnnotation/index.html
+++ b/docs/topics/BeanIgnoreAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@BeanIgnore Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanSubTypes/index.html b/docs/topics/BeanSubTypes/index.html
index 7553afebf7..59970bb384 100644
--- a/docs/topics/BeanSubTypes/index.html
+++ b/docs/topics/BeanSubTypes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Bean Subtypes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeancAnnotation/index.html b/docs/topics/BeancAnnotation/index.html
index 9a3b053a4c..75c613db0a 100644
--- a/docs/topics/BeancAnnotation/index.html
+++ b/docs/topics/BeancAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Beanc Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BeanpAnnotation/index.html b/docs/topics/BeanpAnnotation/index.html
index 9b6fea78ae..b95980e0c2 100644
--- a/docs/topics/BeanpAnnotation/index.html
+++ b/docs/topics/BeanpAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Beanp Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BestPractices/index.html b/docs/topics/BestPractices/index.html
index cff35ff1be..905e7739ca 100644
--- a/docs/topics/BestPractices/index.html
+++ b/docs/topics/BestPractices/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Best Practices | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BinaryData/index.html b/docs/topics/BinaryData/index.html
index 17d25221b0..60bb96c6ed 100644
--- a/docs/topics/BinaryData/index.html
+++ b/docs/topics/BinaryData/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Binary Data | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BuiltInParameters/index.html b/docs/topics/BuiltInParameters/index.html
index ea8177da22..a6bdc864f0 100644
--- a/docs/topics/BuiltInParameters/index.html
+++ b/docs/topics/BuiltInParameters/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Built-in Parameters | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BulkSettingValues/index.html b/docs/topics/BulkSettingValues/index.html
index 8292b7d575..5471fd3aff 100644
--- a/docs/topics/BulkSettingValues/index.html
+++ b/docs/topics/BulkSettingValues/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Setting Values in Bulk | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/BypassSerialization/index.html b/docs/topics/BypassSerialization/index.html
index a62befeb0c..835f4fb61a 100644
--- a/docs/topics/BypassSerialization/index.html
+++ b/docs/topics/BypassSerialization/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Bypass Serialization using `Readers` and `InputStreams` | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true"  [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ChildResources/index.html b/docs/topics/ChildResources/index.html
index 9d8cdeaf02..caeb84fbf2 100644
--- a/docs/topics/ChildResources/index.html
+++ b/docs/topics/ChildResources/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Child Resources | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ClientVersioning/index.html b/docs/topics/ClientVersioning/index.html
index 281755daeb..6df680eb09 100644
--- a/docs/topics/ClientVersioning/index.html
+++ b/docs/topics/ClientVersioning/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Client Versioning | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ClosingConfigs/index.html b/docs/topics/ClosingConfigs/index.html
index 69ef45dcf9..a4366fef17 100644
--- a/docs/topics/ClosingConfigs/index.html
+++ b/docs/topics/ClosingConfigs/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Closing Configs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ComplexDataTypes/index.html b/docs/topics/ComplexDataTypes/index.html
index 333d574f47..41cceb6cda 100644
--- a/docs/topics/ComplexDataTypes/index.html
+++ b/docs/topics/ComplexDataTypes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Complex Data Types | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConfigFiles/index.html b/docs/topics/ConfigFiles/index.html
index 10a78f678c..bf6fb49a06 100644
--- a/docs/topics/ConfigFiles/index.html
+++ b/docs/topics/ConfigFiles/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Config Files | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConfigListeners/index.html b/docs/topics/ConfigListeners/index.html
index 7671f91c64..b40dbe5e2f 100644
--- a/docs/topics/ConfigListeners/index.html
+++ b/docs/topics/ConfigListeners/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Listeners | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConfigOverviewBasics/index.html b/docs/topics/ConfigOverviewBasics/index.html
index 5fc5428298..e010f910ff 100644
--- a/docs/topics/ConfigOverviewBasics/index.html
+++ b/docs/topics/ConfigOverviewBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Config Overview Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConfigStoresBasics/index.html b/docs/topics/ConfigStoresBasics/index.html
index 9b354f873a..2e37532533 100644
--- a/docs/topics/ConfigStoresBasics/index.html
+++ b/docs/topics/ConfigStoresBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Config Stores Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConfigurationFiles/index.html b/docs/topics/ConfigurationFiles/index.html
index 2736231d51..aaf0555f69 100644
--- a/docs/topics/ConfigurationFiles/index.html
+++ b/docs/topics/ConfigurationFiles/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Configuration Files | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ConsoleCommands/index.html b/docs/topics/ConsoleCommands/index.html
index 673acb731c..e2a99d1186 100644
--- a/docs/topics/ConsoleCommands/index.html
+++ b/docs/topics/ConsoleCommands/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Console Commands | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Content/index.html b/docs/topics/Content/index.html
index 90ae286c13..789a5bb1a1 100644
--- a/docs/topics/Content/index.html
+++ b/docs/topics/Content/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Content | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ContextAnnotations/index.html b/docs/topics/ContextAnnotations/index.html
index 2938a4c4b3..8ccf95c916 100644
--- a/docs/topics/ContextAnnotations/index.html
+++ b/docs/topics/ContextAnnotations/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Context Annotations | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ContextSettings/index.html b/docs/topics/ContextSettings/index.html
index 34d72f7d95..5f794156c2 100644
--- a/docs/topics/ContextSettings/index.html
+++ b/docs/topics/ContextSettings/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Context Settings | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Converters/index.html b/docs/topics/Converters/index.html
index ea78633e0c..e806f7469a 100644
--- a/docs/topics/Converters/index.html
+++ b/docs/topics/Converters/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Converters | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/CustomCallHandlers/index.html b/docs/topics/CustomCallHandlers/index.html
index 3f712ab669..3be08ed4bb 100644
--- a/docs/topics/CustomCallHandlers/index.html
+++ b/docs/topics/CustomCallHandlers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Custom Call Handlers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/CustomEntrySerialization/index.html b/docs/topics/CustomEntrySerialization/index.html
index ff36bc586c..32628e4310 100644
--- a/docs/topics/CustomEntrySerialization/index.html
+++ b/docs/topics/CustomEntrySerialization/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Custom Entry Serialization | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/CustomErrorMessages/index.html b/docs/topics/CustomErrorMessages/index.html
index fdb45b335c..383830262b 100644
--- a/docs/topics/CustomErrorMessages/index.html
+++ b/docs/topics/CustomErrorMessages/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Custom Error Messages | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/CustomStores/index.html b/docs/topics/CustomStores/index.html
index 26f107cda5..a4c6404a4a 100644
--- a/docs/topics/CustomStores/index.html
+++ b/docs/topics/CustomStores/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Custom ConfigStores | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/CustomizingHttpClient/index.html b/docs/topics/CustomizingHttpClient/index.html
index b56e0e5f4f..259194c4a7 100644
--- a/docs/topics/CustomizingHttpClient/index.html
+++ b/docs/topics/CustomizingHttpClient/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Customizing HttpClient | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DefaultParts/index.html b/docs/topics/DefaultParts/index.html
index a42e6fd4b8..8bd5e15643 100644
--- a/docs/topics/DefaultParts/index.html
+++ b/docs/topics/DefaultParts/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Default Parts | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DefaultSwaps/index.html b/docs/topics/DefaultSwaps/index.html
index 96d7fd6b19..eb3bb0246f 100644
--- a/docs/topics/DefaultSwaps/index.html
+++ b/docs/topics/DefaultSwaps/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Default Swaps | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DefaultVarResolver/index.html b/docs/topics/DefaultVarResolver/index.html
index 87e8795db3..c18b6baa1c 100644
--- a/docs/topics/DefaultVarResolver/index.html
+++ b/docs/topics/DefaultVarResolver/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">VarResolver.DEFAULT | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Deployment/index.html b/docs/topics/Deployment/index.html
index 822f737288..dd227d13e9 100644
--- a/docs/topics/Deployment/index.html
+++ b/docs/topics/Deployment/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Deployment | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DtoBeans/index.html b/docs/topics/DtoBeans/index.html
index bffc599d6a..063a908da2 100644
--- a/docs/topics/DtoBeans/index.html
+++ b/docs/topics/DtoBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">DTO Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DualPurposeInterfaces/index.html b/docs/topics/DualPurposeInterfaces/index.html
index 69cac68dd7..62c530ea5e 100644
--- a/docs/topics/DualPurposeInterfaces/index.html
+++ b/docs/topics/DualPurposeInterfaces/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Dual-purpose (end-to-end) interfaces | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" c [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/DynamicallyAppliedAnnotations/index.html b/docs/topics/DynamicallyAppliedAnnotations/index.html
index ddc52f3e0a..ea75237f3f 100644
--- a/docs/topics/DynamicallyAppliedAnnotations/index.html
+++ b/docs/topics/DynamicallyAppliedAnnotations/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Dynamically Applied Annotations | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/EndToEndRest/index.html b/docs/topics/EndToEndRest/index.html
index b9e0476ef7..187de490f2 100644
--- a/docs/topics/EndToEndRest/index.html
+++ b/docs/topics/EndToEndRest/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">End-to-End REST | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ExecutionStatistics/index.html b/docs/topics/ExecutionStatistics/index.html
index b33ac7b284..2fff9967dc 100644
--- a/docs/topics/ExecutionStatistics/index.html
+++ b/docs/topics/ExecutionStatistics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST method execution statistics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conte [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Extending/index.html b/docs/topics/Extending/index.html
index 24a0bbf691..e610c6bca6 100644
--- a/docs/topics/Extending/index.html
+++ b/docs/topics/Extending/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Extending JettyMicroservice | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ExtendingRestClient/index.html b/docs/topics/ExtendingRestClient/index.html
index 7f4d414667..6516a1c354 100644
--- a/docs/topics/ExtendingRestClient/index.html
+++ b/docs/topics/ExtendingRestClient/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Extending RestClient | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/FileStore/index.html b/docs/topics/FileStore/index.html
index 4d8ae0cc10..d60d473800 100644
--- a/docs/topics/FileStore/index.html
+++ b/docs/topics/FileStore/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">FileStore | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/FileSystemChanges/index.html b/docs/topics/FileSystemChanges/index.html
index 1103a3eebf..b615f4fd77 100644
--- a/docs/topics/FileSystemChanges/index.html
+++ b/docs/topics/FileSystemChanges/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">File System Changes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/FluentAssertions/index.html b/docs/topics/FluentAssertions/index.html
index c131d972ef..f5d355af5b 100644
--- a/docs/topics/FluentAssertions/index.html
+++ b/docs/topics/FluentAssertions/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Fluent Assertions | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/FormData/index.html b/docs/topics/FormData/index.html
index 5bb561fcb9..33aa869666 100644
--- a/docs/topics/FormData/index.html
+++ b/docs/topics/FormData/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@FormData | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/FrameworkComparisons/index.html b/docs/topics/FrameworkComparisons/index.html
index de6ee8a060..42f30013be 100644
--- a/docs/topics/FrameworkComparisons/index.html
+++ b/docs/topics/FrameworkComparisons/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Framework Comparisons | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/GeneralDesign/index.html b/docs/topics/GeneralDesign/index.html
index c73bbfbc9e..c192d4b8b2 100644
--- a/docs/topics/GeneralDesign/index.html
+++ b/docs/topics/GeneralDesign/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">General Design | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Guards/index.html b/docs/topics/Guards/index.html
index 4eb4df7100..a6a55b2b17 100644
--- a/docs/topics/Guards/index.html
+++ b/docs/topics/Guards/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Guards | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HandlingFormPosts/index.html b/docs/topics/HandlingFormPosts/index.html
index 370a25b650..cf964a26bf 100644
--- a/docs/topics/HandlingFormPosts/index.html
+++ b/docs/topics/HandlingFormPosts/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Form Posts | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Header/index.html b/docs/topics/Header/index.html
index 0f6dedd4ff..a2f002db7c 100644
--- a/docs/topics/Header/index.html
+++ b/docs/topics/Header/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Header | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HelperClasses/index.html b/docs/topics/HelperClasses/index.html
index 285d1d1699..0fd78237b3 100644
--- a/docs/topics/HelperClasses/index.html
+++ b/docs/topics/HelperClasses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Helper Classes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlAnnotation/index.html b/docs/topics/HtmlAnnotation/index.html
index 1e69cdbdc0..f60be2713d 100644
--- a/docs/topics/HtmlAnnotation/index.html
+++ b/docs/topics/HtmlAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Html Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlBasics/index.html b/docs/topics/HtmlBasics/index.html
index 3817994ffa..51dad1340a 100644
--- a/docs/topics/HtmlBasics/index.html
+++ b/docs/topics/HtmlBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTML Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlBeans/index.html b/docs/topics/HtmlBeans/index.html
index 137ae5beb9..3a428438c2 100644
--- a/docs/topics/HtmlBeans/index.html
+++ b/docs/topics/HtmlBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Using with HTML Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlCustomTemplates/index.html b/docs/topics/HtmlCustomTemplates/index.html
index c11ee301a4..c067f32551 100644
--- a/docs/topics/HtmlCustomTemplates/index.html
+++ b/docs/topics/HtmlCustomTemplates/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Custom Templates | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlDocConfigAnnotationBasics/index.html b/docs/topics/HtmlDocConfigAnnotationBasics/index.html
index 47e8ebd027..8585dcb545 100644
--- a/docs/topics/HtmlDocConfigAnnotationBasics/index.html
+++ b/docs/topics/HtmlDocConfigAnnotationBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@HtmlDocConfig Annotation Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conte [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlDocSerializer/index.html b/docs/topics/HtmlDocSerializer/index.html
index 3589273c58..5c1c4ee38d 100644
--- a/docs/topics/HtmlDocSerializer/index.html
+++ b/docs/topics/HtmlDocSerializer/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HtmlDocSerializer | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlMethodology/index.html b/docs/topics/HtmlMethodology/index.html
index 4537f6467a..7938d1563c 100644
--- a/docs/topics/HtmlMethodology/index.html
+++ b/docs/topics/HtmlMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTML Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlParsers/index.html b/docs/topics/HtmlParsers/index.html
index 97251724c0..10b58e13a0 100644
--- a/docs/topics/HtmlParsers/index.html
+++ b/docs/topics/HtmlParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTML Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlPredefinedWidgets/index.html b/docs/topics/HtmlPredefinedWidgets/index.html
index 17af4a3dbc..c3bab7c67f 100644
--- a/docs/topics/HtmlPredefinedWidgets/index.html
+++ b/docs/topics/HtmlPredefinedWidgets/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Predefined Widgets | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlRenderAnnotation/index.html b/docs/topics/HtmlRenderAnnotation/index.html
index 347f26c546..c9d45f38c5 100644
--- a/docs/topics/HtmlRenderAnnotation/index.html
+++ b/docs/topics/HtmlRenderAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Html(render) Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlSchemaSupport/index.html b/docs/topics/HtmlSchemaSupport/index.html
index ba75adb36c..0df8133bc7 100644
--- a/docs/topics/HtmlSchemaSupport/index.html
+++ b/docs/topics/HtmlSchemaSupport/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTML-Schema Support | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlSerializers/index.html b/docs/topics/HtmlSerializers/index.html
index 2cc49ea7dd..086633d82e 100644
--- a/docs/topics/HtmlSerializers/index.html
+++ b/docs/topics/HtmlSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTML Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlStylesheets/index.html b/docs/topics/HtmlStylesheets/index.html
index 9406d193ce..eacd1b3b0e 100644
--- a/docs/topics/HtmlStylesheets/index.html
+++ b/docs/topics/HtmlStylesheets/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Stylesheets | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlUIvsDI/index.html b/docs/topics/HtmlUIvsDI/index.html
index 6f846bdbb7..036353acda 100644
--- a/docs/topics/HtmlUIvsDI/index.html
+++ b/docs/topics/HtmlUIvsDI/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">User Interfaces (UI) vs. Developer Interfaces (DI) | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" prope [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlUiCustomization/index.html b/docs/topics/HtmlUiCustomization/index.html
index 55ae962be4..1e92b35c2f 100644
--- a/docs/topics/HtmlUiCustomization/index.html
+++ b/docs/topics/HtmlUiCustomization/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UI Customization | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HtmlWidgets/index.html b/docs/topics/HtmlWidgets/index.html
index 4a0e17fba3..07cd5181da 100644
--- a/docs/topics/HtmlWidgets/index.html
+++ b/docs/topics/HtmlWidgets/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Widgets | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpEntitiesAndResources/index.html b/docs/topics/HttpEntitiesAndResources/index.html
index 3b9ea85e38..849960c414 100644
--- a/docs/topics/HttpEntitiesAndResources/index.html
+++ b/docs/topics/HttpEntitiesAndResources/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Entities and Resources | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpHeaders/index.html b/docs/topics/HttpHeaders/index.html
index 84816e09bb..ab3667720a 100644
--- a/docs/topics/HttpHeaders/index.html
+++ b/docs/topics/HttpHeaders/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Headers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpPartAnnotations/index.html b/docs/topics/HttpPartAnnotations/index.html
index 73e866b0ec..606ac909af 100644
--- a/docs/topics/HttpPartAnnotations/index.html
+++ b/docs/topics/HttpPartAnnotations/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Part Annotations | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpPartApis/index.html b/docs/topics/HttpPartApis/index.html
index b2e1fd30cd..ac6dc9cd9c 100644
--- a/docs/topics/HttpPartApis/index.html
+++ b/docs/topics/HttpPartApis/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Part APIs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpPartBasics/index.html b/docs/topics/HttpPartBasics/index.html
index 554025641b..2a1d91d31c 100644
--- a/docs/topics/HttpPartBasics/index.html
+++ b/docs/topics/HttpPartBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Part Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpPartSerializersParsers/index.html b/docs/topics/HttpPartSerializersParsers/index.html
index aa5f6a95ba..d76f1355b7 100644
--- a/docs/topics/HttpPartSerializersParsers/index.html
+++ b/docs/topics/HttpPartSerializersParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Part Serializers and Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" cont [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpPartValidation/index.html b/docs/topics/HttpPartValidation/index.html
index edba3d58de..93d5f1390b 100644
--- a/docs/topics/HttpPartValidation/index.html
+++ b/docs/topics/HttpPartValidation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Part Validation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpParts/index.html b/docs/topics/HttpParts/index.html
index 91888e76ba..903b918a5a 100644
--- a/docs/topics/HttpParts/index.html
+++ b/docs/topics/HttpParts/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Parts | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpResponses/index.html b/docs/topics/HttpResponses/index.html
index 12b5f3e54f..4c20cd5820 100644
--- a/docs/topics/HttpResponses/index.html
+++ b/docs/topics/HttpResponses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Responses | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/HttpStatusCodes/index.html b/docs/topics/HttpStatusCodes/index.html
index 114a49850f..8203af0a14 100644
--- a/docs/topics/HttpStatusCodes/index.html
+++ b/docs/topics/HttpStatusCodes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">HTTP Status Codes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Imports/index.html b/docs/topics/Imports/index.html
index b4642722cc..496242678d 100644
--- a/docs/topics/Imports/index.html
+++ b/docs/topics/Imports/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Imports | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/InferredHttpMethodsAndPaths/index.html b/docs/topics/InferredHttpMethodsAndPaths/index.html
index f68bc67985..f4c3c9e8ac 100644
--- a/docs/topics/InferredHttpMethodsAndPaths/index.html
+++ b/docs/topics/InferredHttpMethodsAndPaths/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Inferred HTTP Methods and Paths | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Interceptors/index.html b/docs/topics/Interceptors/index.html
index 4473c0f6ad..7b3c9e9f86 100644
--- a/docs/topics/Interceptors/index.html
+++ b/docs/topics/Interceptors/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Interceptors | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JCFObjects/index.html b/docs/topics/JCFObjects/index.html
index 6a65fddd8b..870e717569 100644
--- a/docs/topics/JCFObjects/index.html
+++ b/docs/topics/JCFObjects/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Java Collection Framework Objects | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" cont [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JacksonComparison/index.html b/docs/topics/JacksonComparison/index.html
index 2012bffc58..38ee695644 100644
--- a/docs/topics/JacksonComparison/index.html
+++ b/docs/topics/JacksonComparison/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Comparison with Jackson | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JavaBeansSupport/index.html b/docs/topics/JavaBeansSupport/index.html
index f8010142bf..c74a925a67 100644
--- a/docs/topics/JavaBeansSupport/index.html
+++ b/docs/topics/JavaBeansSupport/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Java Beans Support | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JavaMethodParameters/index.html b/docs/topics/JavaMethodParameters/index.html
index 79a3763630..da68acaf77 100644
--- a/docs/topics/JavaMethodParameters/index.html
+++ b/docs/topics/JavaMethodParameters/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Java Method Parameters | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JavaMethodReturnTypes/index.html b/docs/topics/JavaMethodReturnTypes/index.html
index 08eef78d69..0a0df265b3 100644
--- a/docs/topics/JavaMethodReturnTypes/index.html
+++ b/docs/topics/JavaMethodReturnTypes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Java Method Return Types | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JavaMethodThrowableTypes/index.html b/docs/topics/JavaMethodThrowableTypes/index.html
index eff34fefc7..0fb7f21008 100644
--- a/docs/topics/JavaMethodThrowableTypes/index.html
+++ b/docs/topics/JavaMethodThrowableTypes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Java Method Throwable Types | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JettyXml/index.html b/docs/topics/JettyXml/index.html
index 16912932a3..a9546c68dc 100644
--- a/docs/topics/JettyXml/index.html
+++ b/docs/topics/JettyXml/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Jetty.xml file | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Json5/index.html b/docs/topics/Json5/index.html
index eadccb1903..61bd2aaf54 100644
--- a/docs/topics/Json5/index.html
+++ b/docs/topics/Json5/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON 5 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonAnnotation/index.html b/docs/topics/JsonAnnotation/index.html
index 8f93682ad0..03f2601716 100644
--- a/docs/topics/JsonAnnotation/index.html
+++ b/docs/topics/JsonAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Json Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonBasics/index.html b/docs/topics/JsonBasics/index.html
index 2c47687394..fef94f5e4e 100644
--- a/docs/topics/JsonBasics/index.html
+++ b/docs/topics/JsonBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonMap/index.html b/docs/topics/JsonMap/index.html
index 6576419f2b..dfe957d2e8 100644
--- a/docs/topics/JsonMap/index.html
+++ b/docs/topics/JsonMap/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JsonMap and JsonList | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonMethodology/index.html b/docs/topics/JsonMethodology/index.html
index 90430f07a7..637c4eee06 100644
--- a/docs/topics/JsonMethodology/index.html
+++ b/docs/topics/JsonMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonParsers/index.html b/docs/topics/JsonParsers/index.html
index 2c304b39ee..3e00796660 100644
--- a/docs/topics/JsonParsers/index.html
+++ b/docs/topics/JsonParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonSchemaDetails/index.html b/docs/topics/JsonSchemaDetails/index.html
index 45a697a1e6..fe3b4fc96d 100644
--- a/docs/topics/JsonSchemaDetails/index.html
+++ b/docs/topics/JsonSchemaDetails/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON-Schema Support | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JsonSerializers/index.html b/docs/topics/JsonSerializers/index.html
index 74685ccd03..70d2685934 100644
--- a/docs/topics/JsonSerializers/index.html
+++ b/docs/topics/JsonSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">JSON Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauAssertionBasics/index.html b/docs/topics/JuneauAssertionBasics/index.html
index a7ac5e0b88..dbdf1763c3 100644
--- a/docs/topics/JuneauAssertionBasics/index.html
+++ b/docs/topics/JuneauAssertionBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-assertions Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBctBasics/index.html b/docs/topics/JuneauBctBasics/index.html
index b3ba894f5c..bf973e5d51 100644
--- a/docs/topics/JuneauBctBasics/index.html
+++ b/docs/topics/JuneauBctBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bct Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanAtom/index.html b/docs/topics/JuneauBeanAtom/index.html
index 0f39d1e362..e9066d20ac 100644
--- a/docs/topics/JuneauBeanAtom/index.html
+++ b/docs/topics/JuneauBeanAtom/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-atom | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanBasics/index.html b/docs/topics/JuneauBeanBasics/index.html
index 0f5e3eaf85..c151e7f74b 100644
--- a/docs/topics/JuneauBeanBasics/index.html
+++ b/docs/topics/JuneauBeanBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanCommon/index.html b/docs/topics/JuneauBeanCommon/index.html
index c6d8bf692f..ec62b6d764 100644
--- a/docs/topics/JuneauBeanCommon/index.html
+++ b/docs/topics/JuneauBeanCommon/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-common | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanHtml5/index.html b/docs/topics/JuneauBeanHtml5/index.html
index bfde56c84a..b9065b8223 100644
--- a/docs/topics/JuneauBeanHtml5/index.html
+++ b/docs/topics/JuneauBeanHtml5/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-html5 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanJsonSchema/index.html b/docs/topics/JuneauBeanJsonSchema/index.html
index a69d676795..cef7bb3e60 100644
--- a/docs/topics/JuneauBeanJsonSchema/index.html
+++ b/docs/topics/JuneauBeanJsonSchema/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-jsonschema | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanOpenApi3/index.html b/docs/topics/JuneauBeanOpenApi3/index.html
index aa8a1c1d7e..2fbc7311fa 100644
--- a/docs/topics/JuneauBeanOpenApi3/index.html
+++ b/docs/topics/JuneauBeanOpenApi3/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-openapi-v3 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauBeanSwagger2/index.html b/docs/topics/JuneauBeanSwagger2/index.html
index fa1d26840b..dac9643053 100644
--- a/docs/topics/JuneauBeanSwagger2/index.html
+++ b/docs/topics/JuneauBeanSwagger2/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-bean-swagger-v2 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauConfigBasics/index.html b/docs/topics/JuneauConfigBasics/index.html
index 0399923187..2582078309 100644
--- a/docs/topics/JuneauConfigBasics/index.html
+++ b/docs/topics/JuneauConfigBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-config Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauEcosystemOverview/index.html b/docs/topics/JuneauEcosystemOverview/index.html
index 0503615f02..632fd85721 100644
--- a/docs/topics/JuneauEcosystemOverview/index.html
+++ b/docs/topics/JuneauEcosystemOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Juneau Ecosystem Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauExamplesCore/index.html b/docs/topics/JuneauExamplesCore/index.html
index ed5e6578f0..84f1ddefec 100644
--- a/docs/topics/JuneauExamplesCore/index.html
+++ b/docs/topics/JuneauExamplesCore/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-examples-core | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauExamplesRest/index.html b/docs/topics/JuneauExamplesRest/index.html
index a698e3f5db..83f04ed079 100644
--- a/docs/topics/JuneauExamplesRest/index.html
+++ b/docs/topics/JuneauExamplesRest/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-examples-rest | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauExamplesRestJetty/index.html b/docs/topics/JuneauExamplesRestJetty/index.html
index 90ffbcfb7a..73cde9cc3f 100644
--- a/docs/topics/JuneauExamplesRestJetty/index.html
+++ b/docs/topics/JuneauExamplesRestJetty/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-examples-rest-jetty | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauExamplesRestSpringboot/index.html b/docs/topics/JuneauExamplesRestSpringboot/index.html
index 1f29897a13..a84a6975d3 100644
--- a/docs/topics/JuneauExamplesRestSpringboot/index.html
+++ b/docs/topics/JuneauExamplesRestSpringboot/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-examples-rest-springboot | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauMarshallBasics/index.html b/docs/topics/JuneauMarshallBasics/index.html
index 603c4e1fb8..e079038130 100644
--- a/docs/topics/JuneauMarshallBasics/index.html
+++ b/docs/topics/JuneauMarshallBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-marshall Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauMicroserviceCoreBasics/index.html b/docs/topics/JuneauMicroserviceCoreBasics/index.html
index 4c3c4cd125..00a03c1ea5 100644
--- a/docs/topics/JuneauMicroserviceCoreBasics/index.html
+++ b/docs/topics/JuneauMicroserviceCoreBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-microservice-core Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauMicroserviceJettyBasics/index.html b/docs/topics/JuneauMicroserviceJettyBasics/index.html
index 4f9716a5a3..1b39ad69d2 100644
--- a/docs/topics/JuneauMicroserviceJettyBasics/index.html
+++ b/docs/topics/JuneauMicroserviceJettyBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-microservice-jetty Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conte [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauPetstoreApi/index.html b/docs/topics/JuneauPetstoreApi/index.html
index f662d1a3d9..681079c8fd 100644
--- a/docs/topics/JuneauPetstoreApi/index.html
+++ b/docs/topics/JuneauPetstoreApi/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-petstore-api | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauPetstoreBasics/index.html b/docs/topics/JuneauPetstoreBasics/index.html
index 93f2d36b90..97be79d837 100644
--- a/docs/topics/JuneauPetstoreBasics/index.html
+++ b/docs/topics/JuneauPetstoreBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-petstore Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauPetstoreClient/index.html b/docs/topics/JuneauPetstoreClient/index.html
index 10abe50eed..23e4130cff 100644
--- a/docs/topics/JuneauPetstoreClient/index.html
+++ b/docs/topics/JuneauPetstoreClient/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-petstore-client | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauPetstoreRunning/index.html b/docs/topics/JuneauPetstoreRunning/index.html
index 0c517c0948..a19d2e1bae 100644
--- a/docs/topics/JuneauPetstoreRunning/index.html
+++ b/docs/topics/JuneauPetstoreRunning/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Running the Pet Store App | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauPetstoreServer/index.html b/docs/topics/JuneauPetstoreServer/index.html
index cccdd5a48c..95bbf3fa11 100644
--- a/docs/topics/JuneauPetstoreServer/index.html
+++ b/docs/topics/JuneauPetstoreServer/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-petstore-server | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauRestClientBasics/index.html b/docs/topics/JuneauRestClientBasics/index.html
index 5220f7460b..44bb89fd07 100644
--- a/docs/topics/JuneauRestClientBasics/index.html
+++ b/docs/topics/JuneauRestClientBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-rest-client Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauRestCommonBasics/index.html b/docs/topics/JuneauRestCommonBasics/index.html
index f7bc6a3ff4..bfffe0c61c 100644
--- a/docs/topics/JuneauRestCommonBasics/index.html
+++ b/docs/topics/JuneauRestCommonBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-rest-common Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauRestMockBasics/index.html b/docs/topics/JuneauRestMockBasics/index.html
index 2aa82c9d8f..9b34b96df7 100644
--- a/docs/topics/JuneauRestMockBasics/index.html
+++ b/docs/topics/JuneauRestMockBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-rest-mock Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauRestServerBasics/index.html b/docs/topics/JuneauRestServerBasics/index.html
index f9146b8a90..7ce10dd143 100644
--- a/docs/topics/JuneauRestServerBasics/index.html
+++ b/docs/topics/JuneauRestServerBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-rest-server Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauRestServerSpringbootBasics/index.html b/docs/topics/JuneauRestServerSpringbootBasics/index.html
index 48eb5d3d96..b869d461f7 100644
--- a/docs/topics/JuneauRestServerSpringbootBasics/index.html
+++ b/docs/topics/JuneauRestServerSpringbootBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-rest-server-springboot Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" c [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedAll/index.html b/docs/topics/JuneauShadedAll/index.html
index e6c1fc3ca1..f1102e0b56 100644
--- a/docs/topics/JuneauShadedAll/index.html
+++ b/docs/topics/JuneauShadedAll/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-shaded-all | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedCore/index.html b/docs/topics/JuneauShadedCore/index.html
index c0beca5845..ee32221233 100644
--- a/docs/topics/JuneauShadedCore/index.html
+++ b/docs/topics/JuneauShadedCore/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-shaded-core | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedOverview/index.html b/docs/topics/JuneauShadedOverview/index.html
index 86bb83c493..fa5899c782 100644
--- a/docs/topics/JuneauShadedOverview/index.html
+++ b/docs/topics/JuneauShadedOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Juneau Shaded Artifacts | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedRestClient/index.html b/docs/topics/JuneauShadedRestClient/index.html
index 868dfe1f07..4a1eeebbe9 100644
--- a/docs/topics/JuneauShadedRestClient/index.html
+++ b/docs/topics/JuneauShadedRestClient/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-shaded-rest-client | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedRestServer/index.html b/docs/topics/JuneauShadedRestServer/index.html
index 1d8bcc04fe..621bc7cc0d 100644
--- a/docs/topics/JuneauShadedRestServer/index.html
+++ b/docs/topics/JuneauShadedRestServer/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-shaded-rest-server | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/JuneauShadedRestServerSpringboot/index.html b/docs/topics/JuneauShadedRestServerSpringboot/index.html
index 3a61e23d8f..d1c800d935 100644
--- a/docs/topics/JuneauShadedRestServerSpringboot/index.html
+++ b/docs/topics/JuneauShadedRestServerSpringboot/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-shaded-rest-server-springboot | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" c [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/LifecycleHooks/index.html b/docs/topics/LifecycleHooks/index.html
index 833fc1d9df..4626a951ba 100644
--- a/docs/topics/LifecycleHooks/index.html
+++ b/docs/topics/LifecycleHooks/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Lifecycle Hooks | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Listifiers/index.html b/docs/topics/Listifiers/index.html
index 0a702cbcd4..14d62c4c78 100644
--- a/docs/topics/Listifiers/index.html
+++ b/docs/topics/Listifiers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Listifiers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/LocalizedMessages/index.html b/docs/topics/LocalizedMessages/index.html
index 22b1cee608..0818b63b86 100644
--- a/docs/topics/LocalizedMessages/index.html
+++ b/docs/topics/LocalizedMessages/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Localized Messages | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Log4j/index.html b/docs/topics/Log4j/index.html
index 29a7051bac..4c4ec3a139 100644
--- a/docs/topics/Log4j/index.html
+++ b/docs/topics/Log4j/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Using LOG4J for logging | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/LogicVariables/index.html b/docs/topics/LogicVariables/index.html
index af9497766c..2622a30312 100644
--- a/docs/topics/LogicVariables/index.html
+++ b/docs/topics/LogicVariables/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Logic Variables | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Manifest/index.html b/docs/topics/Manifest/index.html
index 1105395e82..0c9bad3a63 100644
--- a/docs/topics/Manifest/index.html
+++ b/docs/topics/Manifest/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Manifest | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MarshallEncoders/index.html b/docs/topics/MarshallEncoders/index.html
index 6e0400595f..d0ff342d8b 100644
--- a/docs/topics/MarshallEncoders/index.html
+++ b/docs/topics/MarshallEncoders/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Encoders | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MarshallSvlVariables/index.html b/docs/topics/MarshallSvlVariables/index.html
index aa1379a137..936dbc9061 100644
--- a/docs/topics/MarshallSvlVariables/index.html
+++ b/docs/topics/MarshallSvlVariables/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">SVL Variables | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Marshallers/index.html b/docs/topics/Marshallers/index.html
index e6c80049b9..2d4f762fbd 100644
--- a/docs/topics/Marshallers/index.html
+++ b/docs/topics/Marshallers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Marshallers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Marshalling/index.html b/docs/topics/Marshalling/index.html
index a6e0d4a93b..8f9393f43b 100644
--- a/docs/topics/Marshalling/index.html
+++ b/docs/topics/Marshalling/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Marshalling | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MarshallingOverview/index.html b/docs/topics/MarshallingOverview/index.html
index 458b47b30a..99f3acd59d 100644
--- a/docs/topics/MarshallingOverview/index.html
+++ b/docs/topics/MarshallingOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Marshalling | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MarshallingSecurity/index.html b/docs/topics/MarshallingSecurity/index.html
index 3f0b9dd9b3..53e32efaa6 100644
--- a/docs/topics/MarshallingSecurity/index.html
+++ b/docs/topics/MarshallingSecurity/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Marshalling Security | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MarshallingUris/index.html b/docs/topics/MarshallingUris/index.html
index 69ea22daa6..a3ecbba803 100644
--- a/docs/topics/MarshallingUris/index.html
+++ b/docs/topics/MarshallingUris/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">URIs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache.or [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Matchers/index.html b/docs/topics/Matchers/index.html
index 885cbfc1ea..87d2c92e52 100644
--- a/docs/topics/Matchers/index.html
+++ b/docs/topics/Matchers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Matchers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MemoryStore/index.html b/docs/topics/MemoryStore/index.html
index 6d25383d1d..4b2c56b62e 100644
--- a/docs/topics/MemoryStore/index.html
+++ b/docs/topics/MemoryStore/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">MemoryStore | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MessagePackBasics/index.html b/docs/topics/MessagePackBasics/index.html
index 8a037b1b16..b5466acea5 100644
--- a/docs/topics/MessagePackBasics/index.html
+++ b/docs/topics/MessagePackBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">MessagePack Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MicroserviceCoreConfig/index.html b/docs/topics/MicroserviceCoreConfig/index.html
index 21947cd4b9..2e4c72e261 100644
--- a/docs/topics/MicroserviceCoreConfig/index.html
+++ b/docs/topics/MicroserviceCoreConfig/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Config | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MicroserviceCoreLifecycleMethods/index.html b/docs/topics/MicroserviceCoreLifecycleMethods/index.html
index 7cf5c6e092..7bea2ba429 100644
--- a/docs/topics/MicroserviceCoreLifecycleMethods/index.html
+++ b/docs/topics/MicroserviceCoreLifecycleMethods/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Lifecycle Methods | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MicroserviceCoreListeners/index.html b/docs/topics/MicroserviceCoreListeners/index.html
index 49641968df..6361535c10 100644
--- a/docs/topics/MicroserviceCoreListeners/index.html
+++ b/docs/topics/MicroserviceCoreListeners/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Listeners | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MicroserviceCoreOverview/index.html b/docs/topics/MicroserviceCoreOverview/index.html
index 1242ddf3b6..f9f8abc115 100644
--- a/docs/topics/MicroserviceCoreOverview/index.html
+++ b/docs/topics/MicroserviceCoreOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Microservice Core Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MicroserviceJettyOverview/index.html b/docs/topics/MicroserviceJettyOverview/index.html
index 3b4c788bf7..cd361e37d7 100644
--- a/docs/topics/MicroserviceJettyOverview/index.html
+++ b/docs/topics/MicroserviceJettyOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Microservice Jetty Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MockRestClientOverview/index.html b/docs/topics/MockRestClientOverview/index.html
index 0f4de4edc5..2413f501c0 100644
--- a/docs/topics/MockRestClientOverview/index.html
+++ b/docs/topics/MockRestClientOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Mock REST Client Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="htt [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ModdedEntries/index.html b/docs/topics/ModdedEntries/index.html
index 15a5f5e175..f12dfa5454 100644
--- a/docs/topics/ModdedEntries/index.html
+++ b/docs/topics/ModdedEntries/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Modded/Encoded Entries | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Module-juneau-marshall-rdf/index.html b/docs/topics/Module-juneau-marshall-rdf/index.html
index f01a6fc036..7b9bc13c3f 100644
--- a/docs/topics/Module-juneau-marshall-rdf/index.html
+++ b/docs/topics/Module-juneau-marshall-rdf/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">juneau-marshall-rdf | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ModuleName/index.html b/docs/topics/ModuleName/index.html
index 1ddb1dc0a0..8e146d4c23 100644
--- a/docs/topics/ModuleName/index.html
+++ b/docs/topics/ModuleName/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">module-name | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MsgPackParsers/index.html b/docs/topics/MsgPackParsers/index.html
index 54bb6e3628..9deee97997 100644
--- a/docs/topics/MsgPackParsers/index.html
+++ b/docs/topics/MsgPackParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">MessagePack Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MsgPackSerializers/index.html b/docs/topics/MsgPackSerializers/index.html
index b67e7d30f8..97407f72e2 100644
--- a/docs/topics/MsgPackSerializers/index.html
+++ b/docs/topics/MsgPackSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">MessagePack Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MyJettyMicroserviceBasics/index.html b/docs/topics/MyJettyMicroserviceBasics/index.html
index b35614ef14..76713e2e5e 100644
--- a/docs/topics/MyJettyMicroserviceBasics/index.html
+++ b/docs/topics/MyJettyMicroserviceBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">My Jetty Microservice Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content=" [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MyJettyMicroserviceBuilding/index.html b/docs/topics/MyJettyMicroserviceBuilding/index.html
index 0664c3e3cb..4a4de87ebb 100644
--- a/docs/topics/MyJettyMicroserviceBuilding/index.html
+++ b/docs/topics/MyJettyMicroserviceBuilding/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Building and Running from Command-Line | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MyJettyMicroserviceInstalling/index.html b/docs/topics/MyJettyMicroserviceInstalling/index.html
index 37077be1c4..9040f3550c 100644
--- a/docs/topics/MyJettyMicroserviceInstalling/index.html
+++ b/docs/topics/MyJettyMicroserviceInstalling/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Installing in Eclipse | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MyJettyMicroserviceRunning/index.html b/docs/topics/MyJettyMicroserviceRunning/index.html
index 1a6bf635ee..783cee1c80 100644
--- a/docs/topics/MyJettyMicroserviceRunning/index.html
+++ b/docs/topics/MyJettyMicroserviceRunning/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Running in Eclipse | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MySpringBootMicroserviceBasics/index.html b/docs/topics/MySpringBootMicroserviceBasics/index.html
index c5cbce97a0..8839e489c7 100644
--- a/docs/topics/MySpringBootMicroserviceBasics/index.html
+++ b/docs/topics/MySpringBootMicroserviceBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">My SpringBoot Microservice Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" cont [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MySpringBootMicroserviceBuilding/index.html b/docs/topics/MySpringBootMicroserviceBuilding/index.html
index 3598a786d5..cddbd847b7 100644
--- a/docs/topics/MySpringBootMicroserviceBuilding/index.html
+++ b/docs/topics/MySpringBootMicroserviceBuilding/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Building and Running from Command-Line | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MySpringBootMicroserviceInstalling/index.html b/docs/topics/MySpringBootMicroserviceInstalling/index.html
index 7f401956d2..8a2a413b95 100644
--- a/docs/topics/MySpringBootMicroserviceInstalling/index.html
+++ b/docs/topics/MySpringBootMicroserviceInstalling/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Installing in Eclipse | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/MySpringBootMicroserviceRunning/index.html b/docs/topics/MySpringBootMicroserviceRunning/index.html
index 49003b7cb9..5bc08a7c1b 100644
--- a/docs/topics/MySpringBootMicroserviceRunning/index.html
+++ b/docs/topics/MySpringBootMicroserviceRunning/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Running in Eclipse | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/NamePropertyAnnotation/index.html b/docs/topics/NamePropertyAnnotation/index.html
index cdec65fdc7..c404c030e4 100644
--- a/docs/topics/NamePropertyAnnotation/index.html
+++ b/docs/topics/NamePropertyAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@NameProperty Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ObjectTools/index.html b/docs/topics/ObjectTools/index.html
index 238294bbeb..5d0fdf88d0 100644
--- a/docs/topics/ObjectTools/index.html
+++ b/docs/topics/ObjectTools/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Object Tools | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OneWaySwaps/index.html b/docs/topics/OneWaySwaps/index.html
index d5ab2febbb..a42c2ad88a 100644
--- a/docs/topics/OneWaySwaps/index.html
+++ b/docs/topics/OneWaySwaps/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">One-way Swaps | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OpenApiBasics/index.html b/docs/topics/OpenApiBasics/index.html
index cd0f78ad9b..aaab6b3f15 100644
--- a/docs/topics/OpenApiBasics/index.html
+++ b/docs/topics/OpenApiBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">OpenApi Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OpenApiMethodology/index.html b/docs/topics/OpenApiMethodology/index.html
index 15dfcb0a6c..f60ba42b73 100644
--- a/docs/topics/OpenApiMethodology/index.html
+++ b/docs/topics/OpenApiMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">OpenAPI Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OpenApiParsers/index.html b/docs/topics/OpenApiParsers/index.html
index c9d17c763a..442cf13be0 100644
--- a/docs/topics/OpenApiParsers/index.html
+++ b/docs/topics/OpenApiParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">OpenAPI Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OpenApiSerializers/index.html b/docs/topics/OpenApiSerializers/index.html
index bfaef2fa4b..3ce1b032f9 100644
--- a/docs/topics/OpenApiSerializers/index.html
+++ b/docs/topics/OpenApiSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">OpenAPI Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OtherNotes/index.html b/docs/topics/OtherNotes/index.html
index 0d286b25a2..7738802639 100644
--- a/docs/topics/OtherNotes/index.html
+++ b/docs/topics/OtherNotes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Other Notes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/OverloadingHttpMethods/index.html b/docs/topics/OverloadingHttpMethods/index.html
index e8f14b6d8b..1930435f4d 100644
--- a/docs/topics/OverloadingHttpMethods/index.html
+++ b/docs/topics/OverloadingHttpMethods/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Overloading HTTP Methods | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ParentPropertyAnnotation/index.html b/docs/topics/ParentPropertyAnnotation/index.html
index 1271ab144b..a0362b7d83 100644
--- a/docs/topics/ParentPropertyAnnotation/index.html
+++ b/docs/topics/ParentPropertyAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@ParentProperty Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ParsingIntoGenericModels/index.html b/docs/topics/ParsingIntoGenericModels/index.html
index bee0671bcc..5eedca36ba 100644
--- a/docs/topics/ParsingIntoGenericModels/index.html
+++ b/docs/topics/ParsingIntoGenericModels/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Parsing into Generic Models | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PartMarshallers/index.html b/docs/topics/PartMarshallers/index.html
index 482897b0c0..cee498c929 100644
--- a/docs/topics/PartMarshallers/index.html
+++ b/docs/topics/PartMarshallers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Part Marshallers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Path/index.html b/docs/topics/Path/index.html
index 954351b32a..bda4704f7c 100644
--- a/docs/topics/Path/index.html
+++ b/docs/topics/Path/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Path | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache.o [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PathPatterns/index.html b/docs/topics/PathPatterns/index.html
index 9fa60d1137..2b6010fafb 100644
--- a/docs/topics/PathPatterns/index.html
+++ b/docs/topics/PathPatterns/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Path Patterns | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PathVariables/index.html b/docs/topics/PathVariables/index.html
index d1f4efc3c8..ac63382f36 100644
--- a/docs/topics/PathVariables/index.html
+++ b/docs/topics/PathVariables/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Path Variables | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PerMediaTypeSwaps/index.html b/docs/topics/PerMediaTypeSwaps/index.html
index 33b5c61df5..8fa725ee50 100644
--- a/docs/topics/PerMediaTypeSwaps/index.html
+++ b/docs/topics/PerMediaTypeSwaps/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Per-media-type Swaps | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PojoBuilders/index.html b/docs/topics/PojoBuilders/index.html
index 9de9e789c0..0f8a974b79 100644
--- a/docs/topics/PojoBuilders/index.html
+++ b/docs/topics/PojoBuilders/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">POJO Builders | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PojoCategories/index.html b/docs/topics/PojoCategories/index.html
index d250420816..272a1d096d 100644
--- a/docs/topics/PojoCategories/index.html
+++ b/docs/topics/PojoCategories/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">POJO Categories | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PojoMarshalling/index.html b/docs/topics/PojoMarshalling/index.html
index ce44affd0d..433cf5b797 100644
--- a/docs/topics/PojoMarshalling/index.html
+++ b/docs/topics/PojoMarshalling/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">POJO Marshalling | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Pojos/index.html b/docs/topics/Pojos/index.html
index 6cf7e6b5b6..8069dd4174 100644
--- a/docs/topics/Pojos/index.html
+++ b/docs/topics/Pojos/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">POJOs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache.o [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PredefinedClasses/index.html b/docs/topics/PredefinedClasses/index.html
index 046c662a3b..bd06e80799 100644
--- a/docs/topics/PredefinedClasses/index.html
+++ b/docs/topics/PredefinedClasses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Predefined Classes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PredefinedResourceClasses/index.html b/docs/topics/PredefinedResourceClasses/index.html
index 11a5660591..e333e398da 100644
--- a/docs/topics/PredefinedResourceClasses/index.html
+++ b/docs/topics/PredefinedResourceClasses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Predefined Resource Classes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="h [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/PropertyExtractors/index.html b/docs/topics/PropertyExtractors/index.html
index d1d0cd8864..e0e1c33f97 100644
--- a/docs/topics/PropertyExtractors/index.html
+++ b/docs/topics/PropertyExtractors/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Property Extractors | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Query/index.html b/docs/topics/Query/index.html
index 357c1f6422..65d9875096 100644
--- a/docs/topics/Query/index.html
+++ b/docs/topics/Query/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Query | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ReadOnlyConfigs/index.html b/docs/topics/ReadOnlyConfigs/index.html
index 9e517f4c3e..1d3a7f9da8 100644
--- a/docs/topics/ReadOnlyConfigs/index.html
+++ b/docs/topics/ReadOnlyConfigs/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Read-only Configs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ReadingContinuousStreams/index.html b/docs/topics/ReadingContinuousStreams/index.html
index 3cd577c9d4..d5e4788551 100644
--- a/docs/topics/ReadingContinuousStreams/index.html
+++ b/docs/topics/ReadingContinuousStreams/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Reading Continuous Streams | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ReadingEntriesBasics/index.html b/docs/topics/ReadingEntriesBasics/index.html
index 8cc9342d78..633398a527 100644
--- a/docs/topics/ReadingEntriesBasics/index.html
+++ b/docs/topics/ReadingEntriesBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Reading Entries Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https: [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Recursion/index.html b/docs/topics/Recursion/index.html
index e26f9b516f..57e1d400b4 100644
--- a/docs/topics/Recursion/index.html
+++ b/docs/topics/Recursion/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Non-Tree Models and Recursion Detection | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Remote/index.html b/docs/topics/Remote/index.html
index e6f68dffa9..d5fca79546 100644
--- a/docs/topics/Remote/index.html
+++ b/docs/topics/Remote/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Remote | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apache [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RemoteMethod/index.html b/docs/topics/RemoteMethod/index.html
index cf40a9a5aa..d9279327a1 100644
--- a/docs/topics/RemoteMethod/index.html
+++ b/docs/topics/RemoteMethod/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@RemoteOp | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RemoteProxyInterfaces/index.html b/docs/topics/RemoteProxyInterfaces/index.html
index 33a5484871..33c0a18916 100644
--- a/docs/topics/RemoteProxyInterfaces/index.html
+++ b/docs/topics/RemoteProxyInterfaces/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Remote Proxy Interfaces | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Request/index.html b/docs/topics/Request/index.html
index 2b95e5e720..dd77310c66 100644
--- a/docs/topics/Request/index.html
+++ b/docs/topics/Request/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Request | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RequestBeans/index.html b/docs/topics/RequestBeans/index.html
index e4545a36cd..2db1e08cbd 100644
--- a/docs/topics/RequestBeans/index.html
+++ b/docs/topics/RequestBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Request Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RequestContent/index.html b/docs/topics/RequestContent/index.html
index a355e57237..b56ab08e74 100644
--- a/docs/topics/RequestContent/index.html
+++ b/docs/topics/RequestContent/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Request Content | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RequestParts/index.html b/docs/topics/RequestParts/index.html
index bfd912c8bf..3775af341c 100644
--- a/docs/topics/RequestParts/index.html
+++ b/docs/topics/RequestParts/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Request Parts | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResourceClasses/index.html b/docs/topics/ResourceClasses/index.html
index 49cd113fa8..af9041ec79 100644
--- a/docs/topics/ResourceClasses/index.html
+++ b/docs/topics/ResourceClasses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Resource Classes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Response/index.html b/docs/topics/Response/index.html
index b78e475600..4650af7134 100644
--- a/docs/topics/Response/index.html
+++ b/docs/topics/Response/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Response | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResponseBeans/index.html b/docs/topics/ResponseBeans/index.html
index b1aa700e79..0ce7a88468 100644
--- a/docs/topics/ResponseBeans/index.html
+++ b/docs/topics/ResponseBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Response Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResponseContent/index.html b/docs/topics/ResponseContent/index.html
index 288944facf..5af51141e6 100644
--- a/docs/topics/ResponseContent/index.html
+++ b/docs/topics/ResponseContent/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Response Content | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResponseHeaders/index.html b/docs/topics/ResponseHeaders/index.html
index 590af992a3..4df33813c9 100644
--- a/docs/topics/ResponseHeaders/index.html
+++ b/docs/topics/ResponseHeaders/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Response Headers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResponseProcessors/index.html b/docs/topics/ResponseProcessors/index.html
index 33b1b3f310..1d16aabebf 100644
--- a/docs/topics/ResponseProcessors/index.html
+++ b/docs/topics/ResponseProcessors/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Response Processors | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/ResponseStatus/index.html b/docs/topics/ResponseStatus/index.html
index 2edebb92f9..aa37e3f258 100644
--- a/docs/topics/ResponseStatus/index.html
+++ b/docs/topics/ResponseStatus/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Response Status | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestAnnotatedClassBasics/index.html b/docs/topics/RestAnnotatedClassBasics/index.html
index 392891a636..46c5f5c7f4 100644
--- a/docs/topics/RestAnnotatedClassBasics/index.html
+++ b/docs/topics/RestAnnotatedClassBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Rest-Annotated Class Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content=" [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestClient/index.html b/docs/topics/RestClient/index.html
index 11814f3412..b1639a3857 100644
--- a/docs/topics/RestClient/index.html
+++ b/docs/topics/RestClient/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST Client | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestClientLoggingAndDebugging/index.html b/docs/topics/RestClientLoggingAndDebugging/index.html
index a8d2a369aa..a91dd63008 100644
--- a/docs/topics/RestClientLoggingAndDebugging/index.html
+++ b/docs/topics/RestClientLoggingAndDebugging/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Logging and Debugging | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestContext/index.html b/docs/topics/RestContext/index.html
index e0c205b1df..3723541500 100644
--- a/docs/topics/RestContext/index.html
+++ b/docs/topics/RestContext/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">RestContext | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestOpAnnotatedMethodBasics/index.html b/docs/topics/RestOpAnnotatedMethodBasics/index.html
index faa22c52be..91221ace33 100644
--- a/docs/topics/RestOpAnnotatedMethodBasics/index.html
+++ b/docs/topics/RestOpAnnotatedMethodBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@RestOp-Annotated Method Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestOpContext/index.html b/docs/topics/RestOpContext/index.html
index 0713b800ad..9c27adf3b8 100644
--- a/docs/topics/RestOpContext/index.html
+++ b/docs/topics/RestOpContext/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">RestOpContext | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestProxyBasics/index.html b/docs/topics/RestProxyBasics/index.html
index ecbb30d7d0..8bc45710fd 100644
--- a/docs/topics/RestProxyBasics/index.html
+++ b/docs/topics/RestProxyBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST Proxy Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestRpc/index.html b/docs/topics/RestRpc/index.html
index a3cce46fb4..dd139ccf5f 100644
--- a/docs/topics/RestRpc/index.html
+++ b/docs/topics/RestRpc/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST/RPC | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestSecurity/index.html b/docs/topics/RestSecurity/index.html
index 4297c4db4a..926ceef696 100644
--- a/docs/topics/RestSecurity/index.html
+++ b/docs/topics/RestSecurity/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST Security | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestServer/index.html b/docs/topics/RestServer/index.html
index de034f18bc..089a2cd779 100644
--- a/docs/topics/RestServer/index.html
+++ b/docs/topics/RestServer/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST Server | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestServerEncoders/index.html b/docs/topics/RestServerEncoders/index.html
index d172dab67e..77c9c3b3d2 100644
--- a/docs/topics/RestServerEncoders/index.html
+++ b/docs/topics/RestServerEncoders/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Encoders | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestServerLoggingAndDebugging/index.html b/docs/topics/RestServerLoggingAndDebugging/index.html
index eb64223d99..49b3f262c2 100644
--- a/docs/topics/RestServerLoggingAndDebugging/index.html
+++ b/docs/topics/RestServerLoggingAndDebugging/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Logging / Debugging | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestServerOverview/index.html b/docs/topics/RestServerOverview/index.html
index d92360471c..22a1a482a8 100644
--- a/docs/topics/RestServerOverview/index.html
+++ b/docs/topics/RestServerOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">REST Server Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/RestServerSvlVariables/index.html b/docs/topics/RestServerSvlVariables/index.html
index 0c356319be..10ce3bd782 100644
--- a/docs/topics/RestServerSvlVariables/index.html
+++ b/docs/topics/RestServerSvlVariables/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">SVL Variables | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Sections/index.html b/docs/topics/Sections/index.html
index f5a2584501..c50775db3c 100644
--- a/docs/topics/Sections/index.html
+++ b/docs/topics/Sections/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Sections | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SecurityBasics/index.html b/docs/topics/SecurityBasics/index.html
index 549b9fdba7..8f25bd6c0f 100644
--- a/docs/topics/SecurityBasics/index.html
+++ b/docs/topics/SecurityBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Security Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SerializerSetsParserSets/index.html b/docs/topics/SerializerSetsParserSets/index.html
index bba83f3a12..798dfef538 100644
--- a/docs/topics/SerializerSetsParserSets/index.html
+++ b/docs/topics/SerializerSetsParserSets/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">SerializerSets and ParserSets | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content= [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SerializersAndParsers/index.html b/docs/topics/SerializersAndParsers/index.html
index 332e87aabb..57642c3ed9 100644
--- a/docs/topics/SerializersAndParsers/index.html
+++ b/docs/topics/SerializersAndParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Serializers and Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SerializingConfigs/index.html b/docs/topics/SerializingConfigs/index.html
index 56e90be2d7..cdda01a220 100644
--- a/docs/topics/SerializingConfigs/index.html
+++ b/docs/topics/SerializingConfigs/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Serializing | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SerializingUris/index.html b/docs/topics/SerializingUris/index.html
index 88ef517fe2..96780c55b7 100644
--- a/docs/topics/SerializingUris/index.html
+++ b/docs/topics/SerializingUris/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Serializing URIs | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SettingValuesBasics/index.html b/docs/topics/SettingValuesBasics/index.html
index 5575ae5433..b801b1591d 100644
--- a/docs/topics/SettingValuesBasics/index.html
+++ b/docs/topics/SettingValuesBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Setting Values Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SimpleVariableLanguageBasics/index.html b/docs/topics/SimpleVariableLanguageBasics/index.html
index aacbb88334..f28bdfb79c 100644
--- a/docs/topics/SimpleVariableLanguageBasics/index.html
+++ b/docs/topics/SimpleVariableLanguageBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Simple Variable Language Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" conten [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SpringBootOverview/index.html b/docs/topics/SpringBootOverview/index.html
index 2ef5e3d7c5..bceb994d77 100644
--- a/docs/topics/SpringBootOverview/index.html
+++ b/docs/topics/SpringBootOverview/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Spring Boot Overview | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/StaticFiles/index.html b/docs/topics/StaticFiles/index.html
index e7e8592253..deaacb7c81 100644
--- a/docs/topics/StaticFiles/index.html
+++ b/docs/topics/StaticFiles/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Static files | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/StoreListeners/index.html b/docs/topics/StoreListeners/index.html
index b46cdc3307..ec89f9d869 100644
--- a/docs/topics/StoreListeners/index.html
+++ b/docs/topics/StoreListeners/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">ConfigStore Listeners | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Stringifiers/index.html b/docs/topics/Stringifiers/index.html
index 5281638eef..5649ceece9 100644
--- a/docs/topics/Stringifiers/index.html
+++ b/docs/topics/Stringifiers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Stringifiers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SurrogateClasses/index.html b/docs/topics/SurrogateClasses/index.html
index be9c7b6df8..8bed8313d2 100644
--- a/docs/topics/SurrogateClasses/index.html
+++ b/docs/topics/SurrogateClasses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Surrogate Classes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SvlOtherNotes/index.html b/docs/topics/SvlOtherNotes/index.html
index 8b249c3b6e..5008784861 100644
--- a/docs/topics/SvlOtherNotes/index.html
+++ b/docs/topics/SvlOtherNotes/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Other Notes | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SvlSecurity/index.html b/docs/topics/SvlSecurity/index.html
index e0e1c59aad..566aebf607 100644
--- a/docs/topics/SvlSecurity/index.html
+++ b/docs/topics/SvlSecurity/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">SVL Security | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerBasics/index.html b/docs/topics/SwaggerBasics/index.html
index 0a7c9c7aa3..a78b3a4b3f 100644
--- a/docs/topics/SwaggerBasics/index.html
+++ b/docs/topics/SwaggerBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerModels/index.html b/docs/topics/SwaggerModels/index.html
index f89051f333..a0f031280c 100644
--- a/docs/topics/SwaggerModels/index.html
+++ b/docs/topics/SwaggerModels/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Models | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerOperations/index.html b/docs/topics/SwaggerOperations/index.html
index dfb7b37180..4faa311509 100644
--- a/docs/topics/SwaggerOperations/index.html
+++ b/docs/topics/SwaggerOperations/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Operations | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerParameters/index.html b/docs/topics/SwaggerParameters/index.html
index ae4efc5593..78ff285e9d 100644
--- a/docs/topics/SwaggerParameters/index.html
+++ b/docs/topics/SwaggerParameters/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Parameters | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerResponses/index.html b/docs/topics/SwaggerResponses/index.html
index 129073b0e3..b750cda5da 100644
--- a/docs/topics/SwaggerResponses/index.html
+++ b/docs/topics/SwaggerResponses/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Responses | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerStylesheet/index.html b/docs/topics/SwaggerStylesheet/index.html
index 8c657300ce..87f8437a93 100644
--- a/docs/topics/SwaggerStylesheet/index.html
+++ b/docs/topics/SwaggerStylesheet/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">SwaggerUI.css | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwaggerTags/index.html b/docs/topics/SwaggerTags/index.html
index e4488f5eb5..cdc73a18ac 100644
--- a/docs/topics/SwaggerTags/index.html
+++ b/docs/topics/SwaggerTags/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swagger Tags | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwapAnnotation/index.html b/docs/topics/SwapAnnotation/index.html
index 37838ae70b..faa74f0349 100644
--- a/docs/topics/SwapAnnotation/index.html
+++ b/docs/topics/SwapAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Swap Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SwapBasics/index.html b/docs/topics/SwapBasics/index.html
index b5b142273d..2e75e19fcd 100644
--- a/docs/topics/SwapBasics/index.html
+++ b/docs/topics/SwapBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swap Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/Swappers/index.html b/docs/topics/Swappers/index.html
index fc4da8365b..80b3e03b4c 100644
--- a/docs/topics/Swappers/index.html
+++ b/docs/topics/Swappers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Swappers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apach [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SyntaxRules/index.html b/docs/topics/SyntaxRules/index.html
index 1d62837b8c..41c931832e 100644
--- a/docs/topics/SyntaxRules/index.html
+++ b/docs/topics/SyntaxRules/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Syntax Rules | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.a [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SystemDefaultConfig/index.html b/docs/topics/SystemDefaultConfig/index.html
index 50f587d0e8..bc1a423970 100644
--- a/docs/topics/SystemDefaultConfig/index.html
+++ b/docs/topics/SystemDefaultConfig/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">System Default Config | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/SystemProperties/index.html b/docs/topics/SystemProperties/index.html
index f4c0045a67..03b3484c80 100644
--- a/docs/topics/SystemProperties/index.html
+++ b/docs/topics/SystemProperties/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">System properties | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/TemplatedSwaps/index.html b/docs/topics/TemplatedSwaps/index.html
index 28832b3da4..401c1ed365 100644
--- a/docs/topics/TemplatedSwaps/index.html
+++ b/docs/topics/TemplatedSwaps/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Templated Swaps | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UiCustomization/index.html b/docs/topics/UiCustomization/index.html
index 35a7bb37e2..3fdacdc5ab 100644
--- a/docs/topics/UiCustomization/index.html
+++ b/docs/topics/UiCustomization/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UI Customization | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://june [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UonBasics/index.html b/docs/topics/UonBasics/index.html
index b5df086353..8c609dbf9c 100644
--- a/docs/topics/UonBasics/index.html
+++ b/docs/topics/UonBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UON Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UonMethodology/index.html b/docs/topics/UonMethodology/index.html
index 011a0e6449..1beea11621 100644
--- a/docs/topics/UonMethodology/index.html
+++ b/docs/topics/UonMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UON Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UonParsers/index.html b/docs/topics/UonParsers/index.html
index f442727cf2..953396e54d 100644
--- a/docs/topics/UonParsers/index.html
+++ b/docs/topics/UonParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UON Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UonSerializers/index.html b/docs/topics/UonSerializers/index.html
index 4c15ed438a..216d5716df 100644
--- a/docs/topics/UonSerializers/index.html
+++ b/docs/topics/UonSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">UON Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UrlEncMethodology/index.html b/docs/topics/UrlEncMethodology/index.html
index 0347867b99..7eaa82a5ca 100644
--- a/docs/topics/UrlEncMethodology/index.html
+++ b/docs/topics/UrlEncMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">URL-Encoding Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UrlEncParsers/index.html b/docs/topics/UrlEncParsers/index.html
index 672403e5cd..b73e3e2f0c 100644
--- a/docs/topics/UrlEncParsers/index.html
+++ b/docs/topics/UrlEncParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">URL-Encoding Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UrlEncSerializers/index.html b/docs/topics/UrlEncSerializers/index.html
index a16c05cc90..1fdb944309 100644
--- a/docs/topics/UrlEncSerializers/index.html
+++ b/docs/topics/UrlEncSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">URL-Encoding Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="http [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UrlEncodingAnnotation/index.html b/docs/topics/UrlEncodingAnnotation/index.html
index 94c295fc39..585ed4fae2 100644
--- a/docs/topics/UrlEncodingAnnotation/index.html
+++ b/docs/topics/UrlEncodingAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@UrlEncoding Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UrlEncodingBasics/index.html b/docs/topics/UrlEncodingBasics/index.html
index 6acc961ac0..dae571988e 100644
--- a/docs/topics/UrlEncodingBasics/index.html
+++ b/docs/topics/UrlEncodingBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">URL-Encoding Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://j [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UsingWithOsgi/index.html b/docs/topics/UsingWithOsgi/index.html
index 3f0a471436..be300d7fe1 100644
--- a/docs/topics/UsingWithOsgi/index.html
+++ b/docs/topics/UsingWithOsgi/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Using with OSGi | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/UtilityBeans/index.html b/docs/topics/UtilityBeans/index.html
index 4062337d94..7c782ea7ff 100644
--- a/docs/topics/UtilityBeans/index.html
+++ b/docs/topics/UtilityBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Utility Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/V9.0-migration-guide/index.html b/docs/topics/V9.0-migration-guide/index.html
index 870be5acb9..e2975dc55e 100644
--- a/docs/topics/V9.0-migration-guide/index.html
+++ b/docs/topics/V9.0-migration-guide/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">v9.0 Migration Guide | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:// [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/VarResolver/index.html b/docs/topics/VarResolver/index.html
index ea0c783588..0f414913ea 100644
--- a/docs/topics/VarResolver/index.html
+++ b/docs/topics/VarResolver/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">VarResolver | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/VarResolvers/index.html b/docs/topics/VarResolvers/index.html
index f1752d2f60..71f51df7d7 100644
--- a/docs/topics/VarResolvers/index.html
+++ b/docs/topics/VarResolvers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">VarResolvers and VarResolverSessions | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" c [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/VariableBasics/index.html b/docs/topics/VariableBasics/index.html
index 3f26215c17..76c0aeb925 100644
--- a/docs/topics/VariableBasics/index.html
+++ b/docs/topics/VariableBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Variable Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/VirtualBeans/index.html b/docs/topics/VirtualBeans/index.html
index 0d153e457e..fb0680bf49 100644
--- a/docs/topics/VirtualBeans/index.html
+++ b/docs/topics/VirtualBeans/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Virtual Beans | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau. [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/WhyJuneau/index.html b/docs/topics/WhyJuneau/index.html
index 0255a75390..e3cd00dfbd 100644
--- a/docs/topics/WhyJuneau/index.html
+++ b/docs/topics/WhyJuneau/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Why Choose Juneau? | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://ju [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlBasics/index.html b/docs/topics/XmlBasics/index.html
index bb252fea5a..fed59c9999 100644
--- a/docs/topics/XmlBasics/index.html
+++ b/docs/topics/XmlBasics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">XML Basics | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlBeanTypeNameAnnotation/index.html b/docs/topics/XmlBeanTypeNameAnnotation/index.html
index a3ab51eea8..6cb1c8519c 100644
--- a/docs/topics/XmlBeanTypeNameAnnotation/index.html
+++ b/docs/topics/XmlBeanTypeNameAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Bean(typeName) Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlChildNameAnnotation/index.html b/docs/topics/XmlChildNameAnnotation/index.html
index d02223e41b..3ae17b46a5 100644
--- a/docs/topics/XmlChildNameAnnotation/index.html
+++ b/docs/topics/XmlChildNameAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Xml(childName) Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="ht [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlFormatAnnotation/index.html b/docs/topics/XmlFormatAnnotation/index.html
index 51492cfe8a..b092846e9c 100644
--- a/docs/topics/XmlFormatAnnotation/index.html
+++ b/docs/topics/XmlFormatAnnotation/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">@Xml(format) Annotation | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlMethodology/index.html b/docs/topics/XmlMethodology/index.html
index df3a4c0dc9..d2a1443bbe 100644
--- a/docs/topics/XmlMethodology/index.html
+++ b/docs/topics/XmlMethodology/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">XML Methodology | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlNamespaces/index.html b/docs/topics/XmlNamespaces/index.html
index dbc8f15af7..bf0aabf826 100644
--- a/docs/topics/XmlNamespaces/index.html
+++ b/docs/topics/XmlNamespaces/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Namespaces | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apa [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlParsers/index.html b/docs/topics/XmlParsers/index.html
index 2258cb2bf4..b450c6165b 100644
--- a/docs/topics/XmlParsers/index.html
+++ b/docs/topics/XmlParsers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">XML Parsers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.ap [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/XmlSerializers/index.html b/docs/topics/XmlSerializers/index.html
index 07f4b07b0e..9e3c208081 100644
--- a/docs/topics/XmlSerializers/index.html
+++ b/docs/topics/XmlSerializers/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">XML Serializers | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://junea [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/docs/topics/index.html b/docs/topics/index.html
index 3e5ca31dac..b18a95f9a1 100644
--- a/docs/topics/index.html
+++ b/docs/topics/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Test deployment Mon Sep 29 09:39:50 EDT 2025 | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="o [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/downloads/index.html b/downloads/index.html
index 918f9f3caa..968f305ee8 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Downloads | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://juneau.apac [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/index.html b/index.html
index 1e8df8d4b4..3abe595db4 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Apache Juneau</title><meta data-rh="true" property="og:title" content="Apache Juneau"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh= [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/markdown-page/index.html b/markdown-page/index.html
index 0605c11b30..d868afb779 100644
--- a/markdown-page/index.html
+++ b/markdown-page/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Markdown page example | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https:/ [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/security/index.html b/security/index.html
index 6442765f5e..c0e8772db4 100644
--- a/security/index.html
+++ b/security/index.html
@@ -4,7 +4,7 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v3.8.1">
 <title data-rh="true">Security Analysis | Apache Juneau</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://juneau.apache.org/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://jun [...]
-<script src="/assets/js/runtime~main.076c50ee.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.09192986.js" defer="defer"></script>
 <script src="/assets/js/main.cf1ad55f.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
diff --git a/site/dependency-convergence.html b/site/dependency-convergence.html
index c9d5eb5179..62c0a01183 100644
--- a/site/dependency-convergence.html
+++ b/site/dependency-convergence.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
@@ -94,19 +94,19 @@
 <td>43</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>110</td></tr>
+<td>107</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>116</td></tr>
+<td>112</td></tr>
 <tr class="b">
 <th>Number of version-conflicting artifacts (NOC):</th>
-<td>4</td></tr>
+<td>3</td></tr>
 <tr class="a">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
 <tr class="b">
 <th>Convergence (NOD/NOA):</th>
-<td><img src="images/icon_error_sml.gif" alt="[Error]" />&#160;<b>94 %</b></td></tr>
+<td><img src="images/icon_error_sml.gif" alt="[Error]" />&#160;<b>95 %</b></td></tr>
 <tr class="a">
 <th>Ready for release (100% convergence and no SNAPSHOTS):</th>
 <td><img src="images/icon_error_sml.gif" alt="[Error]" />&#160;<b>Error</b><br />You do not have 100% convergence.</td></tr></table></section><section>
@@ -127,82 +127,6 @@
 <td>
 <ol style="list-style-type: decimal;">
 <li>org.apache.juneau:juneau-sc-server:jar:9.2.0-SNAPSHOT<br />\-&#160;org.eclipse.jgit:org.eclipse.jgit:jar:7.3.0.202506031305-r:compile<br />&#160;&#160;&#160;\-&#160;commons-codec:commons-codec:jar:1.18.0:compile<br /></li><br /></ol></td></tr></table></td></tr></table></section><section>
-<h3>jakarta.activation:jakarta.activation-api</h3>
-<table class="table table-striped">
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="[Error]" /></td>
-<td>
-<table class="table table-striped">
-<tr class="b">
-<td>2.1.3</td>
-<td>
-<ol style="list-style-type: decimal;">
-<li>org.apache.juneau:juneau-assertions:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-atom:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-html5:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-jsonschema:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-openapi-v3:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-swagger-v2:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-config:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-examples-core:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-examples-rest-jetty-ftest:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160 [...]
-<li>org.apache.juneau:juneau-examples-rest-jetty:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-rest:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#16 [...]
-<li>org.apache.juneau:juneau-examples-rest-springboot:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-rest:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&# [...]
-<li>org.apache.juneau:juneau-examples-rest:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160 [...]
-<li>org.apache.juneau:juneau-marshall:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-microservice-core:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#16 [...]
-<li>org.apache.juneau:juneau-microservice-jetty:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-microservice-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />& [...]
-<li>org.apache.juneau:juneau-my-jetty-microservice:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-microservice-jetty:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-microservice-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:c [...]
-<li>org.apache.juneau:juneau-my-springboot-microservice:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server-springboot:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:c [...]
-<li>org.apache.juneau:juneau-rest-client:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#1 [...]
-<li>org.apache.juneau:juneau-rest-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-rest-mock:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160; [...]
-<li>org.apache.juneau:juneau-rest-server-springboot:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160 [...]
-<li>org.apache.juneau:juneau-rest-server:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#1 [...]
-<li>org.apache.juneau:juneau-sc-server:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#1 [...]
-<li>org.apache.juneau:juneau-shaded-all:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-bean-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;& [...]
-<li>org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-shaded-rest-client:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-shaded-rest-server-springboot:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&# [...]
-<li>org.apache.juneau:juneau-shaded-rest-server:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br />
-<li>org.apache.juneau:juneau-utest:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.eclipse.angus:angus-activation:jar:2.0.2:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.3:compile<br /></li><br /></ol></td></tr>
-<tr class="a">
-<td>2.1.4</td>
-<td>
-<ol style="list-style-type: decimal;">
-<li>org.apache.juneau:juneau-assertions:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-atom:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-html5:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-jsonschema:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-openapi-v3:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-bean-swagger-v2:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-config:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-examples-core:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-examples-rest-jetty-ftest:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160 [...]
-<li>org.apache.juneau:juneau-examples-rest-jetty:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-rest:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#16 [...]
-<li>org.apache.juneau:juneau-examples-rest-springboot:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-rest:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&# [...]
-<li>org.apache.juneau:juneau-examples-rest:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-examples-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&# [...]
-<li>org.apache.juneau:juneau-marshall:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-microservice-core:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#16 [...]
-<li>org.apache.juneau:juneau-microservice-jetty:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-microservice-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />& [...]
-<li>org.apache.juneau:juneau-my-jetty-microservice:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-microservice-jetty:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-microservice-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:c [...]
-<li>org.apache.juneau:juneau-my-springboot-microservice:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server-springboot:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:c [...]
-<li>org.apache.juneau:juneau-rest-client:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160; [...]
-<li>org.apache.juneau:juneau-rest-common:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-rest-mock:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160; [...]
-<li>org.apache.juneau:juneau-rest-server-springboot:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160 [...]
-<li>org.apache.juneau:juneau-rest-server:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160; [...]
-<li>org.apache.juneau:juneau-sc-server:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-rest-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#1 [...]
-<li>org.apache.juneau:juneau-shaded-all:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-bean-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#16 [...]
-<li>org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-shaded-rest-client:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-shaded-rest-server-springboot:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-rest-server:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br / [...]
-<li>org.apache.juneau:juneau-shaded-rest-server:jar:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-shaded-core:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br />
-<li>org.apache.juneau:juneau-utest:bundle:9.2.0-SNAPSHOT<br />\-&#160;org.apache.juneau:juneau-marshall:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.apache.juneau:juneau-common:jar:9.2.0-SNAPSHOT:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.4:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;jakarta.activation:jakarta.activation-api:jar:2.1.4:compile<br /></li><br /></ol></td></tr></table> [...]
 <h3>org.jboss.logging:jboss-logging</h3>
 <table class="table table-striped">
 <tr class="a">
diff --git a/site/dependency-info.html b/site/dependency-info.html
index 61330a0d34..9277c9bfca 100644
--- a/site/dependency-info.html
+++ b/site/dependency-info.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/distribution-management.html b/site/distribution-management.html
index 3d8041308a..bde301febc 100644
--- a/site/distribution-management.html
+++ b/site/distribution-management.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:distribution-management at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:distribution-management at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/index.html b/site/index.html
index 4f981a2f79..d49165e7a1 100644
--- a/site/index.html
+++ b/site/index.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/issue-management.html b/site/issue-management.html
index 609a288953..3c3117fbd5 100644
--- a/site/issue-management.html
+++ b/site/issue-management.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/licenses.html b/site/licenses.html
index 5e08005da2..2efda0ef79 100644
--- a/site/licenses.html
+++ b/site/licenses.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/mailing-lists.html b/site/mailing-lists.html
index 54b21ebc6d..b7333d8de1 100644
--- a/site/mailing-lists.html
+++ b/site/mailing-lists.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/modules.html b/site/modules.html
index d5c077c7ac..f2a4da5f64 100644
--- a/site/modules.html
+++ b/site/modules.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:modules at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:modules at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/plugin-management.html b/site/plugin-management.html
index 7c224e9189..c4691537e6 100644
--- a/site/plugin-management.html
+++ b/site/plugin-management.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/plugins.html b/site/plugins.html
index 9db7ae33d5..329449a582 100644
--- a/site/plugins.html
+++ b/site/plugins.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/project-info.html b/site/project-info.html
index e9ca6b8f46..000b9ddc4a 100644
--- a/site/project-info.html
+++ b/site/project-info.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-info at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/project-reports.html b/site/project-reports.html
index ef838254be..e141b2176d 100644
--- a/site/project-reports.html
+++ b/site/project-reports.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-reports at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-site-plugin:3.21.0:project-reports at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/scm.html b/site/scm.html
index c83824d216..640a8fa3cb 100644
--- a/site/scm.html
+++ b/site/scm.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/summary.html b/site/summary.html
index 3b6d6366c7..6e4f32cec2 100644
--- a/site/summary.html
+++ b/site/summary.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/surefire.html b/site/surefire.html
index f14c51a614..03bb9f5381 100644
--- a/site/surefire.html
+++ b/site/surefire.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-surefire-report-plugin:3.5.3:report at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-surefire-report-plugin:3.5.3:report at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/team.html b/site/team.html
index 1f90f4df8e..b8e2e5794f 100644
--- a/site/team.html
+++ b/site/team.html
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2025-10-21
+ | Generated by Apache Maven Doxia Site Renderer 2.0.0 from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 2025-10-22
  | Rendered using Apache Maven Fluido Skin 2.0.0-M9
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
diff --git a/site/xref-test/allclasses-frame.html b/site/xref-test/allclasses-frame.html
index dce33ca777..248c387733 100644
--- a/site/xref-test/allclasses-frame.html
+++ b/site/xref-test/allclasses-frame.html
@@ -1340,6 +1340,7 @@
                 <li><a href="org/apache/juneau/utils/MethodInvokerTest.html#MethodInvokerTest.A" target="classFrame">MethodInvokerTest.A</a></li>
                 <li><a href="org/apache/juneau/http/response/MethodNotAllowed_Test.html#MethodNotAllowed_Test" target="classFrame">MethodNotAllowed_Test</a></li>
                 <li><a href="org/apache/juneau/http/response/MethodNotAllowed_Test.html#MethodNotAllowed_Test.A" target="classFrame">MethodNotAllowed_Test.A</a></li>
+                <li><a href="org/apache/juneau/common/utils/MimeTypeDetector_Test.html#MimeTypeDetector_Test" target="classFrame">MimeTypeDetector_Test</a></li>
                 <li><a href="org/apache/juneau/http/response/MisdirectedRequest_Test.html#MisdirectedRequest_Test" target="classFrame">MisdirectedRequest_Test</a></li>
                 <li><a href="org/apache/juneau/http/response/MisdirectedRequest_Test.html#MisdirectedRequest_Test.A" target="classFrame">MisdirectedRequest_Test.A</a></li>
                 <li><a href="org/apache/juneau/rest/mock/MockRestClient_PathVars_Test.html#MockRestClient_PathVars_Test" target="classFrame">MockRestClient_PathVars_Test</a></li>
diff --git a/site/xref-test/org/apache/juneau/common/utils/MimeTypeDetector_Test.html b/site/xref-test/org/apache/juneau/common/utils/MimeTypeDetector_Test.html
new file mode 100644
index 0000000000..629f7fa2c5
--- /dev/null
+++ b/site/xref-test/org/apache/juneau/common/utils/MimeTypeDetector_Test.html
@@ -0,0 +1,500 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
+<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>MimeTypeDetector_Test xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<div id="overview"><a href="../../../../../../testapidocs/org/apache/juneau/common/utils/MimeTypeDetector_Test.html">View Javadoc</a></div><pre>
+<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
+<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
+<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
+<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
+<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
+<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
+<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
+<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
+<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juneau.common.utils;
+<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.jupiter.api.Assertions.*;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.io.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.nio.file.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.junit.jupiter.api.*;
+<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.junit.jupiter.api.io.*;
+<a class="jxr_linenumber" name="L26" href="#L26">26</a>  
+<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> * Test class for {@link MimeTypeDetector}.</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="MimeTypeDetector_Test" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector_Test.html#MimeTypeDetector_Test">MimeTypeDetector_Test</a> {
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  	@TempDir
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  	Path tempDir;
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  	@Test
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultInstance() {
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>  		MimeTypeDetector detector = MimeTypeDetector.DEFAULT;
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  		assertNotNull(detector);
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  		
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  		<em class="jxr_comment">// Test some default mappings</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>  		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>  		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>  		assertEquals(<span class="jxr_string">"application/pdf"</span>, detector.getContentType(<span class="jxr_string">"test.pdf"</span>));
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>  		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>  	}
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>  
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  	@Test
+<a class="jxr_linenumber" name="L49" href="#L49">49</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBuilder() {
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>  		MimeTypeDetector.Builder builder = MimeTypeDetector.builder();
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>  		assertNotNull(builder);
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>  		
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>  		MimeTypeDetector detector = builder.build();
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>  		assertNotNull(detector);
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  	}
+<a class="jxr_linenumber" name="L56" href="#L56">56</a>  
+<a class="jxr_linenumber" name="L57" href="#L57">57</a>  	@Test
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddFileType() {
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>  		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>  			.addFileType(<span class="jxr_string">"special.txt"</span>, <span class="jxr_string">"text/special"</span>)
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>  			.build();
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>  		
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>  		<em class="jxr_comment">// File type mapping should work</em>
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>  		assertEquals(<span class="jxr_string">"text/special"</span>, detector.getContentType(<span class="jxr_string">"special.txt"</span>));
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>  		assertEquals(<span class="jxr_string">"application/octet-stream"</span>, detector.getContentType(<span class="jxr_string">"test.txt"</span>));
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>  	}
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>  
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>  	@Test
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddFileType_validation() {
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>  		MimeTypeDetector.Builder builder = MimeTypeDetector.builder();
+<a class="jxr_linenumber" name="L71" href="#L71">71</a>  		
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>  		<em class="jxr_comment">// Test null name</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L74" href="#L74">74</a>  		
+<a class="jxr_linenumber" name="L75" href="#L75">75</a>  		<em class="jxr_comment">// Test blank name</em>
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<span class="jxr_string">""</span>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L77" href="#L77">77</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<span class="jxr_string">"   "</span>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>  		
+<a class="jxr_linenumber" name="L79" href="#L79">79</a>  		<em class="jxr_comment">// Test null type</em>
+<a class="jxr_linenumber" name="L80" href="#L80">80</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<span class="jxr_string">"test.txt"</span>, <strong class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>  		
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>  		<em class="jxr_comment">// Test blank type</em>
+<a class="jxr_linenumber" name="L83" href="#L83">83</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<span class="jxr_string">"test.txt"</span>, <span class="jxr_string">""</span>));
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>  		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addFileType(<span class="jxr_string">"test.txt"</span>, <span class="jxr_string">"   "</span>));
+<a class="jxr_linenumber" name="L85" href="#L85">85</a>  	}
+<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
+<a class="jxr_linenumber" name="L87" href="#L87">87</a>  	@Test
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddExtensionType() {
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>  		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>  			.addExtensionType(<span class="jxr_string">"custom"</span>, <span class="jxr_string">"application/x-custom"</span>)
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>  			.addExtensionType(<span class="jxr_string">"CUSTOM"</span>, <span class="jxr_string">"application/x-custom-upper"</span>)  <em class="jxr_comment">// Should be lowercased</em>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>  			.build();
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>  		
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>  		<em class="jxr_comment">// The second addExtensionType call overwrites the first one since both are lowercased to "custom"</em>
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>  		assertEquals(<span class="jxr_string">"application/x-custom-upper"</span>, detector.getContentType(<span class="jxr_string">"test.custom"</span>));
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>  		assertEquals(<span class="jxr_string">"application/x-custom-upper"</span>, detector.getContentType(<span class="jxr_string">"test.CUSTOM"</span>));
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>  		assertEquals(<span class="jxr_string">"application/octet-stream"</span>, detector.getContentType(<span class="jxr_string">"test.unknown"</span>));
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>  	}
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>  
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> 	@Test
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddExtensionType_validation() {
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> 		MimeTypeDetector.Builder builder = MimeTypeDetector.builder();
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> 		
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> 		<em class="jxr_comment">// Test null extension</em>
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> 		
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> 		<em class="jxr_comment">// Test blank extension</em>
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<span class="jxr_string">""</span>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<span class="jxr_string">"   "</span>, <span class="jxr_string">"text/plain"</span>));
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> 		
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> 		<em class="jxr_comment">// Test null type</em>
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<span class="jxr_string">"txt"</span>, <strong class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> 		
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> 		<em class="jxr_comment">// Test blank type</em>
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<span class="jxr_string">"txt"</span>, <span class="jxr_string">""</span>));
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> 		assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -&gt; builder.addExtensionType(<span class="jxr_string">"txt"</span>, <span class="jxr_string">"   "</span>));
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> 	}
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	@Test
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddNioContentBasedDetection() {
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> 			.addNioContentBasedDetection(false)
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> 			.build();
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> 		
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> 		<em class="jxr_comment">// Should not use NIO detection, should fall back to extension</em>
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> 		assertEquals(<span class="jxr_string">"application/x-test"</span>, detector.getContentType(<span class="jxr_string">"test.test"</span>));
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> 	}
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> 	@Test
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetCacheSize() {
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> 			.setCacheSize(50)
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> 			.build();
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> 		
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> 		<em class="jxr_comment">// Test that cache works</em>
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> 		assertEquals(1, detector.getCacheSize());
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> 	}
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> 	@Test
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetCacheDisabled() {
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> 			.setCacheDisabled(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> 			.build();
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> 		
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> 		<em class="jxr_comment">// Cache should be disabled</em>
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> 		assertEquals(0, detector.getCacheSize());
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> 	}
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> 	@Test
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetCacheLogOnExit() {
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> 			.setCacheLogOnExit(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> 			.build();
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> 		
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> 		<em class="jxr_comment">// This should not throw an exception</em>
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> 		assertNotNull(detector);
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> 	}
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> 
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> 	@Test
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSetDefaultType() {
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> 			.setDefaultType(<span class="jxr_string">"application/unknown"</span>)
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> 			.build();
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> 		
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<span class="jxr_string">"test.unknown"</span>));
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<span class="jxr_string">""</span>));
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<strong class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> 	}
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> 	@Test
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddTypesIndividualLines() {
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L178" href="#L178">178</a> 			.addTypes(
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> 				<span class="jxr_string">"text/html        html htm"</span>,
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> 				<span class="jxr_string">"image/png        png"</span>,
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> 				<span class="jxr_string">"application/json json"</span>
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> 			)
+<a class="jxr_linenumber" name="L183" href="#L183">183</a> 			.build();
+<a class="jxr_linenumber" name="L184" href="#L184">184</a> 		
+<a class="jxr_linenumber" name="L185" href="#L185">185</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L186" href="#L186">186</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L188" href="#L188">188</a> 		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L189" href="#L189">189</a> 	}
+<a class="jxr_linenumber" name="L190" href="#L190">190</a> 
+<a class="jxr_linenumber" name="L191" href="#L191">191</a> 	@Test
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddTypesFileContents() {
+<a class="jxr_linenumber" name="L193" href="#L193">193</a> 		String mimeTypesFile = 
+<a class="jxr_linenumber" name="L194" href="#L194">194</a> 			<span class="jxr_string">"# Custom MIME types file\n"</span> +
+<a class="jxr_linenumber" name="L195" href="#L195">195</a> 			<span class="jxr_string">"text/html        html htm\n"</span> +
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> 			<span class="jxr_string">"image/png        png\n"</span> +
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> 			<span class="jxr_string">"application/json json\n"</span> +
+<a class="jxr_linenumber" name="L198" href="#L198">198</a> 			<span class="jxr_string">"text/plain       txt log\n"</span> +
+<a class="jxr_linenumber" name="L199" href="#L199">199</a> 			<span class="jxr_string">"# Another comment\n"</span> +
+<a class="jxr_linenumber" name="L200" href="#L200">200</a> 			<span class="jxr_string">"application/x-custom custom cst"</span>;
+<a class="jxr_linenumber" name="L201" href="#L201">201</a> 			
+<a class="jxr_linenumber" name="L202" href="#L202">202</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L203" href="#L203">203</a> 			.addTypes(mimeTypesFile)
+<a class="jxr_linenumber" name="L204" href="#L204">204</a> 			.build();
+<a class="jxr_linenumber" name="L205" href="#L205">205</a> 		
+<a class="jxr_linenumber" name="L206" href="#L206">206</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L207" href="#L207">207</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L208" href="#L208">208</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L209" href="#L209">209</a> 		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L210" href="#L210">210</a> 		assertEquals(<span class="jxr_string">"text/plain"</span>, detector.getContentType(<span class="jxr_string">"test.txt"</span>));
+<a class="jxr_linenumber" name="L211" href="#L211">211</a> 		assertEquals(<span class="jxr_string">"text/plain"</span>, detector.getContentType(<span class="jxr_string">"test.log"</span>));
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> 		assertEquals(<span class="jxr_string">"application/x-custom"</span>, detector.getContentType(<span class="jxr_string">"test.custom"</span>));
+<a class="jxr_linenumber" name="L213" href="#L213">213</a> 		assertEquals(<span class="jxr_string">"application/x-custom"</span>, detector.getContentType(<span class="jxr_string">"test.cst"</span>));
+<a class="jxr_linenumber" name="L214" href="#L214">214</a> 	}
+<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> 	@Test
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddTypesMixedUsage() {
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> 			.addTypes(<span class="jxr_string">"text/html html htm"</span>)  <em class="jxr_comment">// Single line</em>
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> 			.addTypes(<span class="jxr_string">"image/png png\napplication/json json"</span>)  <em class="jxr_comment">// File contents</em>
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> 			.addTypes(<span class="jxr_string">"application/x-foo foo bar"</span>)  <em class="jxr_comment">// Another single line</em>
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> 			.build();
+<a class="jxr_linenumber" name="L223" href="#L223">223</a> 		
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L226" href="#L226">226</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> 		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L228" href="#L228">228</a> 		assertEquals(<span class="jxr_string">"application/x-foo"</span>, detector.getContentType(<span class="jxr_string">"test.foo"</span>));
+<a class="jxr_linenumber" name="L229" href="#L229">229</a> 		assertEquals(<span class="jxr_string">"application/x-foo"</span>, detector.getContentType(<span class="jxr_string">"test.bar"</span>));
+<a class="jxr_linenumber" name="L230" href="#L230">230</a> 	}
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> 
+<a class="jxr_linenumber" name="L232" href="#L232">232</a> 	@Test
+<a class="jxr_linenumber" name="L233" href="#L233">233</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddTypesEmptyAndInvalidLines() {
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L235" href="#L235">235</a> 			.addTypes(
+<a class="jxr_linenumber" name="L236" href="#L236">236</a> 				<span class="jxr_string">""</span>,  <em class="jxr_comment">// Empty line</em>
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> 				<span class="jxr_string">"   "</span>,  <em class="jxr_comment">// Whitespace only</em>
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> 				<span class="jxr_string">"# Comment line"</span>,  <em class="jxr_comment">// Comment</em>
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> 				<span class="jxr_string">"invalid"</span>,  <em class="jxr_comment">// Invalid format (no extensions)</em>
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> 				<span class="jxr_string">"text/html html htm"</span>  <em class="jxr_comment">// Valid line</em>
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> 			)
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> 			.build();
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> 		
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L246" href="#L246">246</a> 		assertEquals(<span class="jxr_string">"application/octet-stream"</span>, detector.getContentType(<span class="jxr_string">"test.unknown"</span>));
+<a class="jxr_linenumber" name="L247" href="#L247">247</a> 	}
+<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
+<a class="jxr_linenumber" name="L249" href="#L249">249</a> 	@Test
+<a class="jxr_linenumber" name="L250" href="#L250">250</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAddDefaultMappings() {
+<a class="jxr_linenumber" name="L251" href="#L251">251</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> 			.addDefaultMappings()
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> 			.build();
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> 		
+<a class="jxr_linenumber" name="L255" href="#L255">255</a> 		<em class="jxr_comment">// Test some default mappings</em>
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L257" href="#L257">257</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L258" href="#L258">258</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> 		assertEquals(<span class="jxr_string">"application/pdf"</span>, detector.getContentType(<span class="jxr_string">"test.pdf"</span>));
+<a class="jxr_linenumber" name="L260" href="#L260">260</a> 		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> 		assertEquals(<span class="jxr_string">"text/plain"</span>, detector.getContentType(<span class="jxr_string">"test.txt"</span>));
+<a class="jxr_linenumber" name="L262" href="#L262">262</a> 		assertEquals(<span class="jxr_string">"application/zip"</span>, detector.getContentType(<span class="jxr_string">"test.zip"</span>));
+<a class="jxr_linenumber" name="L263" href="#L263">263</a> 	}
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> 
+<a class="jxr_linenumber" name="L265" href="#L265">265</a> 	@Test
+<a class="jxr_linenumber" name="L266" href="#L266">266</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetContentTypeWithNioDetection() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="L267" href="#L267">267</a> 		<em class="jxr_comment">// Create a temporary file</em>
+<a class="jxr_linenumber" name="L268" href="#L268">268</a> 		Path testFile = tempDir.resolve(<span class="jxr_string">"test.txt"</span>);
+<a class="jxr_linenumber" name="L269" href="#L269">269</a> 		Files.write(testFile, <span class="jxr_string">"Hello World"</span>.getBytes());
+<a class="jxr_linenumber" name="L270" href="#L270">270</a> 		
+<a class="jxr_linenumber" name="L271" href="#L271">271</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L272" href="#L272">272</a> 			.addNioContentBasedDetection(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L273" href="#L273">273</a> 			.build();
+<a class="jxr_linenumber" name="L274" href="#L274">274</a> 		
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> 		<em class="jxr_comment">// Should use NIO detection for existing file</em>
+<a class="jxr_linenumber" name="L276" href="#L276">276</a> 		String mimeType = detector.getContentType(testFile.toString());
+<a class="jxr_linenumber" name="L277" href="#L277">277</a> 		assertNotNull(mimeType);
+<a class="jxr_linenumber" name="L278" href="#L278">278</a> 		assertTrue(mimeType.startsWith(<span class="jxr_string">"text/"</span>));
+<a class="jxr_linenumber" name="L279" href="#L279">279</a> 	}
+<a class="jxr_linenumber" name="L280" href="#L280">280</a> 
+<a class="jxr_linenumber" name="L281" href="#L281">281</a> 	@Test
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetContentTypeWithNioDetectionDisabled() <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="L283" href="#L283">283</a> 		<em class="jxr_comment">// Create a temporary file</em>
+<a class="jxr_linenumber" name="L284" href="#L284">284</a> 		Path testFile = tempDir.resolve(<span class="jxr_string">"test.txt"</span>);
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> 		Files.write(testFile, <span class="jxr_string">"Hello World"</span>.getBytes());
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> 		
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L288" href="#L288">288</a> 			.addNioContentBasedDetection(false)
+<a class="jxr_linenumber" name="L289" href="#L289">289</a> 			.addExtensionType(<span class="jxr_string">"txt"</span>, <span class="jxr_string">"text/plain"</span>)
+<a class="jxr_linenumber" name="L290" href="#L290">290</a> 			.build();
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> 		
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> 		<em class="jxr_comment">// Should use extension mapping instead of NIO detection</em>
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> 		assertEquals(<span class="jxr_string">"text/plain"</span>, detector.getContentType(testFile.toString()));
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> 	}
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> 
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> 	@Test
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetContentTypeWithNioException() {
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L299" href="#L299">299</a> 			.addNioContentBasedDetection(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L300" href="#L300">300</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> 			.build();
+<a class="jxr_linenumber" name="L302" href="#L302">302</a> 		
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> 		<em class="jxr_comment">// Should fall back to extension mapping when NIO fails</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> 		assertEquals(<span class="jxr_string">"application/x-test"</span>, detector.getContentType(<span class="jxr_string">"test.test"</span>));
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> 	}
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> 
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> 	@Test
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetContentTypeEmptyAndNull() {
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> 			.setDefaultType(<span class="jxr_string">"application/unknown"</span>)
+<a class="jxr_linenumber" name="L311" href="#L311">311</a> 			.build();
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> 		
+<a class="jxr_linenumber" name="L313" href="#L313">313</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<span class="jxr_string">""</span>));
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<strong class="jxr_keyword">null</strong>));
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> 	}
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> 
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> 	@Test
+<a class="jxr_linenumber" name="L318" href="#L318">318</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetContentTypeFallbackToDefault() {
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> 			.setDefaultType(<span class="jxr_string">"application/unknown"</span>)
+<a class="jxr_linenumber" name="L321" href="#L321">321</a> 			.build();
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> 		
+<a class="jxr_linenumber" name="L323" href="#L323">323</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<span class="jxr_string">"test.unknown"</span>));
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> 	}
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> 
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> 	@Test
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCacheBehavior() {
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> 			.build();
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> 		
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> 		<em class="jxr_comment">// Initial state</em>
+<a class="jxr_linenumber" name="L333" href="#L333">333</a> 		assertEquals(0, detector.getCacheSize());
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> 		assertEquals(0, detector.getCacheHits());
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> 		
+<a class="jxr_linenumber" name="L336" href="#L336">336</a> 		<em class="jxr_comment">// First call - cache miss</em>
+<a class="jxr_linenumber" name="L337" href="#L337">337</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L338" href="#L338">338</a> 		assertEquals(1, detector.getCacheSize());
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> 		assertEquals(0, detector.getCacheHits());
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> 		
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> 		<em class="jxr_comment">// Second call - cache hit</em>
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> 		assertEquals(1, detector.getCacheSize());
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> 		assertEquals(1, detector.getCacheHits());
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> 		
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> 		<em class="jxr_comment">// Third call - another cache hit</em>
+<a class="jxr_linenumber" name="L347" href="#L347">347</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> 		assertEquals(1, detector.getCacheSize());
+<a class="jxr_linenumber" name="L349" href="#L349">349</a> 		assertEquals(2, detector.getCacheHits());
+<a class="jxr_linenumber" name="L350" href="#L350">350</a> 	}
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> 
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> 	@Test
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testClearCache() {
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L355" href="#L355">355</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> 			.build();
+<a class="jxr_linenumber" name="L357" href="#L357">357</a> 		
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> 		<em class="jxr_comment">// Add some entries to cache</em>
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L360" href="#L360">360</a> 		detector.getContentType(<span class="jxr_string">"test.other"</span>);
+<a class="jxr_linenumber" name="L361" href="#L361">361</a> 		assertEquals(2, detector.getCacheSize());
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> 		
+<a class="jxr_linenumber" name="L363" href="#L363">363</a> 		<em class="jxr_comment">// Clear cache</em>
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> 		detector.clearCache();
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> 		assertEquals(0, detector.getCacheSize());
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> 		
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> 		<em class="jxr_comment">// Cache hits should remain (not reset by clear)</em>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> 		assertTrue(detector.getCacheHits() &gt;= 0);
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> 	}
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> 
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> 	@Test
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCacheDisabled() {
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> 			.setCacheDisabled(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> 			.build();
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> 		
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> 		<em class="jxr_comment">// Cache should be disabled</em>
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> 		detector.getContentType(<span class="jxr_string">"test.test"</span>);
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> 		assertEquals(0, detector.getCacheSize());
+<a class="jxr_linenumber" name="L381" href="#L381">381</a> 		assertEquals(0, detector.getCacheHits());
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> 	}
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> 
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> 	@Test
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCacheSizeLimit() {
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> 			.setCacheSize(2)
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> 			.addExtensionType(<span class="jxr_string">"test"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L389" href="#L389">389</a> 			.build();
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> 		
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> 		<em class="jxr_comment">// Add more entries than cache size</em>
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> 		detector.getContentType(<span class="jxr_string">"test1.test"</span>);
+<a class="jxr_linenumber" name="L393" href="#L393">393</a> 		detector.getContentType(<span class="jxr_string">"test2.test"</span>);
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> 		detector.getContentType(<span class="jxr_string">"test3.test"</span>);
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> 		detector.getContentType(<span class="jxr_string">"test4.test"</span>);
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> 		
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> 		<em class="jxr_comment">// Cache should not exceed max size</em>
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> 		assertTrue(detector.getCacheSize() &lt;= 2);
+<a class="jxr_linenumber" name="L399" href="#L399">399</a> 	}
+<a class="jxr_linenumber" name="L400" href="#L400">400</a> 
+<a class="jxr_linenumber" name="L401" href="#L401">401</a> 	@Test
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBuilderChaining() {
+<a class="jxr_linenumber" name="L403" href="#L403">403</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> 			.addFileType(<span class="jxr_string">"special.txt"</span>, <span class="jxr_string">"text/special"</span>)
+<a class="jxr_linenumber" name="L405" href="#L405">405</a> 			.addExtensionType(<span class="jxr_string">"custom"</span>, <span class="jxr_string">"application/x-custom"</span>)
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> 			.addNioContentBasedDetection(false)
+<a class="jxr_linenumber" name="L407" href="#L407">407</a> 			.setCacheSize(100)
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> 			.setCacheDisabled(false)
+<a class="jxr_linenumber" name="L409" href="#L409">409</a> 			.setCacheLogOnExit(<strong class="jxr_keyword">true</strong>)
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> 			.setDefaultType(<span class="jxr_string">"application/unknown"</span>)
+<a class="jxr_linenumber" name="L411" href="#L411">411</a> 			.addTypes(<span class="jxr_string">"text/html html htm"</span>)
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> 			.addDefaultMappings()
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> 			.build();
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> 		
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> 		assertNotNull(detector);
+<a class="jxr_linenumber" name="L416" href="#L416">416</a> 		<em class="jxr_comment">// File type mapping should work (takes precedence over extension mapping)</em>
+<a class="jxr_linenumber" name="L417" href="#L417">417</a> 		assertEquals(<span class="jxr_string">"text/special"</span>, detector.getContentType(<span class="jxr_string">"special.txt"</span>));
+<a class="jxr_linenumber" name="L418" href="#L418">418</a> 		assertEquals(<span class="jxr_string">"application/x-custom"</span>, detector.getContentType(<span class="jxr_string">"test.custom"</span>));
+<a class="jxr_linenumber" name="L419" href="#L419">419</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L420" href="#L420">420</a> 		assertEquals(<span class="jxr_string">"application/unknown"</span>, detector.getContentType(<span class="jxr_string">"test.unknown"</span>));
+<a class="jxr_linenumber" name="L421" href="#L421">421</a> 	}
+<a class="jxr_linenumber" name="L422" href="#L422">422</a> 
+<a class="jxr_linenumber" name="L423" href="#L423">423</a> 	@Test
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testExtensionCaseInsensitive() {
+<a class="jxr_linenumber" name="L425" href="#L425">425</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L426" href="#L426">426</a> 			.addExtensionType(<span class="jxr_string">"TEST"</span>, <span class="jxr_string">"application/x-test"</span>)
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> 			.build();
+<a class="jxr_linenumber" name="L428" href="#L428">428</a> 		
+<a class="jxr_linenumber" name="L429" href="#L429">429</a> 		<em class="jxr_comment">// Should work with different cases</em>
+<a class="jxr_linenumber" name="L430" href="#L430">430</a> 		assertEquals(<span class="jxr_string">"application/x-test"</span>, detector.getContentType(<span class="jxr_string">"test.TEST"</span>));
+<a class="jxr_linenumber" name="L431" href="#L431">431</a> 		assertEquals(<span class="jxr_string">"application/x-test"</span>, detector.getContentType(<span class="jxr_string">"test.test"</span>));
+<a class="jxr_linenumber" name="L432" href="#L432">432</a> 		assertEquals(<span class="jxr_string">"application/x-test"</span>, detector.getContentType(<span class="jxr_string">"test.Test"</span>));
+<a class="jxr_linenumber" name="L433" href="#L433">433</a> 	}
+<a class="jxr_linenumber" name="L434" href="#L434">434</a> 
+<a class="jxr_linenumber" name="L435" href="#L435">435</a> 	@Test
+<a class="jxr_linenumber" name="L436" href="#L436">436</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMultipleExtensionsPerMimeType() {
+<a class="jxr_linenumber" name="L437" href="#L437">437</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L438" href="#L438">438</a> 			.addTypes(<span class="jxr_string">"text/html html htm HTML HTM"</span>)
+<a class="jxr_linenumber" name="L439" href="#L439">439</a> 			.build();
+<a class="jxr_linenumber" name="L440" href="#L440">440</a> 		
+<a class="jxr_linenumber" name="L441" href="#L441">441</a> 		<em class="jxr_comment">// All variations should work</em>
+<a class="jxr_linenumber" name="L442" href="#L442">442</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L443" href="#L443">443</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.HTML"</span>));
+<a class="jxr_linenumber" name="L445" href="#L445">445</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.HTM"</span>));
+<a class="jxr_linenumber" name="L446" href="#L446">446</a> 	}
+<a class="jxr_linenumber" name="L447" href="#L447">447</a> 
+<a class="jxr_linenumber" name="L448" href="#L448">448</a> 	@Test
+<a class="jxr_linenumber" name="L449" href="#L449">449</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testWindowsLineEndings() {
+<a class="jxr_linenumber" name="L450" href="#L450">450</a> 		String mimeTypesFile = <span class="jxr_string">"text/html\thtml\thtm\r\nimage/png\tpng\r\n"</span>;
+<a class="jxr_linenumber" name="L451" href="#L451">451</a> 		
+<a class="jxr_linenumber" name="L452" href="#L452">452</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L453" href="#L453">453</a> 			.addTypes(mimeTypesFile)
+<a class="jxr_linenumber" name="L454" href="#L454">454</a> 			.build();
+<a class="jxr_linenumber" name="L455" href="#L455">455</a> 		
+<a class="jxr_linenumber" name="L456" href="#L456">456</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L457" href="#L457">457</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L458" href="#L458">458</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L459" href="#L459">459</a> 	}
+<a class="jxr_linenumber" name="L460" href="#L460">460</a> 
+<a class="jxr_linenumber" name="L461" href="#L461">461</a> 	@Test
+<a class="jxr_linenumber" name="L462" href="#L462">462</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testUnixLineEndings() {
+<a class="jxr_linenumber" name="L463" href="#L463">463</a> 		String mimeTypesFile = <span class="jxr_string">"text/html\thtml\thtm\nimage/png\tpng\n"</span>;
+<a class="jxr_linenumber" name="L464" href="#L464">464</a> 		
+<a class="jxr_linenumber" name="L465" href="#L465">465</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L466" href="#L466">466</a> 			.addTypes(mimeTypesFile)
+<a class="jxr_linenumber" name="L467" href="#L467">467</a> 			.build();
+<a class="jxr_linenumber" name="L468" href="#L468">468</a> 		
+<a class="jxr_linenumber" name="L469" href="#L469">469</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L470" href="#L470">470</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L471" href="#L471">471</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L472" href="#L472">472</a> 	}
+<a class="jxr_linenumber" name="L473" href="#L473">473</a> 
+<a class="jxr_linenumber" name="L474" href="#L474">474</a> 	@Test
+<a class="jxr_linenumber" name="L475" href="#L475">475</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testMixedLineEndings() {
+<a class="jxr_linenumber" name="L476" href="#L476">476</a> 		String mimeTypesFile = <span class="jxr_string">"text/html\thtml\thtm\r\nimage/png\tpng\napplication/json\tjson\r\n"</span>;
+<a class="jxr_linenumber" name="L477" href="#L477">477</a> 		
+<a class="jxr_linenumber" name="L478" href="#L478">478</a> 		MimeTypeDetector detector = MimeTypeDetector.builder()
+<a class="jxr_linenumber" name="L479" href="#L479">479</a> 			.addTypes(mimeTypesFile)
+<a class="jxr_linenumber" name="L480" href="#L480">480</a> 			.build();
+<a class="jxr_linenumber" name="L481" href="#L481">481</a> 		
+<a class="jxr_linenumber" name="L482" href="#L482">482</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.html"</span>));
+<a class="jxr_linenumber" name="L483" href="#L483">483</a> 		assertEquals(<span class="jxr_string">"text/html"</span>, detector.getContentType(<span class="jxr_string">"test.htm"</span>));
+<a class="jxr_linenumber" name="L484" href="#L484">484</a> 		assertEquals(<span class="jxr_string">"image/png"</span>, detector.getContentType(<span class="jxr_string">"test.png"</span>));
+<a class="jxr_linenumber" name="L485" href="#L485">485</a> 		assertEquals(<span class="jxr_string">"application/json"</span>, detector.getContentType(<span class="jxr_string">"test.json"</span>));
+<a class="jxr_linenumber" name="L486" href="#L486">486</a> 	}
+<a class="jxr_linenumber" name="L487" href="#L487">487</a> }
+</pre>
+<hr/>
+<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
+</body>
+</html>
diff --git a/site/xref-test/org/apache/juneau/common/utils/package-frame.html b/site/xref-test/org/apache/juneau/common/utils/package-frame.html
index e590069000..f87d24bcc9 100644
--- a/site/xref-test/org/apache/juneau/common/utils/package-frame.html
+++ b/site/xref-test/org/apache/juneau/common/utils/package-frame.html
@@ -18,6 +18,9 @@
                 <li>
                     <a href="MapBuilder_Test.html#MapBuilder_Test" target="classFrame">MapBuilder_Test</a>
                 </li>
+                <li>
+                    <a href="MimeTypeDetector_Test.html#MimeTypeDetector_Test" target="classFrame">MimeTypeDetector_Test</a>
+                </li>
                 <li>
                     <a href="PredicateUtils_Test.html#PredicateUtils_Test" target="classFrame">PredicateUtils_Test</a>
                 </li>
diff --git a/site/xref-test/org/apache/juneau/common/utils/package-summary.html b/site/xref-test/org/apache/juneau/common/utils/package-summary.html
index 05ada99ed5..97c67ad5d1 100644
--- a/site/xref-test/org/apache/juneau/common/utils/package-summary.html
+++ b/site/xref-test/org/apache/juneau/common/utils/package-summary.html
@@ -68,10 +68,15 @@
                             </tr>
                             <tr class="altColor">
                                 <td class="colFirst colLast">
-                                    <a href="PredicateUtils_Test.html#PredicateUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test</a>
+                                    <a href="MimeTypeDetector_Test.html#MimeTypeDetector_Test" target="classFrame" title="class in org.apache.juneau.common.utils">MimeTypeDetector_Test</a>
                                 </td>
                             </tr>
                             <tr class="rowColor">
+                                <td class="colFirst colLast">
+                                    <a href="PredicateUtils_Test.html#PredicateUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test</a>
+                                </td>
+                            </tr>
+                            <tr class="altColor">
                                 <td class="colFirst colLast">
                                     <a href="SetBuilder_Test.html#SetBuilder_Test" target="classFrame" title="class in org.apache.juneau.common.utils">SetBuilder_Test</a>
                                 </td>
diff --git a/site/xref/allclasses-frame.html b/site/xref/allclasses-frame.html
index 8d55ce69cc..2ed3639295 100644
--- a/site/xref/allclasses-frame.html
+++ b/site/xref/allclasses-frame.html
@@ -424,7 +424,6 @@
                 <li><a href="org/apache/juneau/ExtendedBeanPropertyMeta.html#ExtendedBeanPropertyMeta" target="classFrame">ExtendedBeanPropertyMeta</a></li>
                 <li><a href="org/apache/juneau/ExtendedClassMeta.html#ExtendedClassMeta" target="classFrame">ExtendedClassMeta</a></li>
                 <li><a href="org/apache/juneau/ExtendedMeta.html#ExtendedMeta" target="classFrame">ExtendedMeta</a></li>
-                <li><a href="org/apache/juneau/utils/ExtendedMimetypesFileTypeMap.html#ExtendedMimetypesFileTypeMap" target="classFrame">ExtendedMimetypesFileTypeMap</a></li>
                 <li><a href="org/apache/juneau/annotation/ExternalDocs.html#ExternalDocs" target="classFrame">ExternalDocs</a></li>
                 <li><a href="org/apache/juneau/annotation/ExternalDocsAnnotation.html#ExternalDocsAnnotation" target="classFrame">ExternalDocsAnnotation</a></li>
                 <li><a href="org/apache/juneau/annotation/ExternalDocsAnnotation.html#ExternalDocsAnnotation.Builder" target="classFrame">ExternalDocsAnnotation.Builder</a></li>
@@ -845,6 +844,8 @@
                 <li><a href="org/apache/juneau/microservice/Microservice.html#Microservice" target="classFrame">Microservice</a></li>
                 <li><a href="org/apache/juneau/microservice/Microservice.html#Microservice.Builder" target="classFrame">Microservice.Builder</a></li>
                 <li><a href="org/apache/juneau/microservice/MicroserviceListener.html#MicroserviceListener" target="classFrame">MicroserviceListener</a></li>
+                <li><a href="org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector" target="classFrame">MimeTypeDetector</a></li>
+                <li><a href="org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector.Builder" target="classFrame">MimeTypeDetector.Builder</a></li>
                 <li><a href="org/apache/juneau/http/response/MisdirectedRequest.html#MisdirectedRequest" target="classFrame">MisdirectedRequest</a></li>
                 <li><a href="org/apache/juneau/rest/mock/MockConsole.html#MockConsole" target="classFrame">MockConsole</a></li>
                 <li><a href="org/apache/juneau/rest/mock/MockHttpClientConnectionManager.html#MockHttpClientConnectionManager" target="classFrame">MockHttpClientConnectionManager</a></li>
@@ -1697,7 +1698,6 @@
                 <li><a href="org/apache/juneau/rest/vars/UrlVar.html#UrlVar" target="classFrame">UrlVar</a></li>
                 <li><a href="org/apache/juneau/http/response/UseProxy.html#UseProxy" target="classFrame">UseProxy</a></li>
                 <li><a href="org/apache/juneau/http/header/UserAgent.html#UserAgent" target="classFrame">UserAgent</a></li>
-                <li><a href="org/apache/juneau/bean/atom/Utils.html#Utils" target="classFrame">Utils</a></li>
                 <li><a href="org/apache/juneau/common/utils/Utils.html#Utils" target="classFrame">Utils</a></li>
                 <li><a href="org/apache/juneau/junit/bct/Utils.html#Utils" target="classFrame">Utils</a></li>
                 <li><a href="org/apache/juneau/internal/Utils2.html#Utils2" target="classFrame">Utils2</a></li>
diff --git a/site/xref/org/apache/juneau/bean/atom/CommonEntry.html b/site/xref/org/apache/juneau/bean/atom/CommonEntry.html
index d769d1eec5..5896f6c228 100644
--- a/site/xref/org/apache/juneau/bean/atom/CommonEntry.html
+++ b/site/xref/org/apache/juneau/bean/atom/CommonEntry.html
@@ -24,11 +24,11 @@
 <a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juneau.bean.atom;
 <a class="jxr_linenumber" name="L18" href="#L18">18</a>  
-<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.bean.atom.Utils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.xml.annotation.XmlFormat.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.xml.annotation.XmlFormat.*;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.common.utils.*;
 <a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.xml.annotation.*;
 <a class="jxr_linenumber" name="L25" href="#L25">25</a>  
 <a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment">/**</em>
@@ -380,7 +380,7 @@
 <a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
 <a class="jxr_linenumber" name="L373" href="#L373">373</a> <em class="jxr_javadoccomment">	 */</em>
 <a class="jxr_linenumber" name="L374" href="#L374">374</a> 	<strong class="jxr_keyword">public</strong> <a name="CommonEntry" href="../../../../../org/apache/juneau/bean/atom/CommonEntry.html#CommonEntry">CommonEntry</a> setUpdated(String value) {
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> 		setUpdated(parseDateTime(value));
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> 		setUpdated(DateUtils.fromIso8601Calendar(value));
 <a class="jxr_linenumber" name="L376" href="#L376">376</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="L377" href="#L377">377</a> 	}
 <a class="jxr_linenumber" name="L378" href="#L378">378</a> }
diff --git a/site/xref/org/apache/juneau/bean/atom/Entry.html b/site/xref/org/apache/juneau/bean/atom/Entry.html
index 028939111e..b504910f45 100644
--- a/site/xref/org/apache/juneau/bean/atom/Entry.html
+++ b/site/xref/org/apache/juneau/bean/atom/Entry.html
@@ -24,427 +24,426 @@
 <a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
 <a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juneau.bean.atom;
 <a class="jxr_linenumber" name="L18" href="#L18">18</a>  
-<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.bean.atom.Utils.*;
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.util.*;
 <a class="jxr_linenumber" name="L20" href="#L20">20</a>  
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.annotation.*;
-<a class="jxr_linenumber" name="L24" href="#L24">24</a>  
-<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment"> * Represents an individual entry within an Atom feed or as a standalone Atom document.</em>
-<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <em class="jxr_javadoccomment"> * An Atom entry is a discrete item of content within a feed, such as a blog post, news article,</em>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <em class="jxr_javadoccomment"> * podcast episode, or other individual piece of content. Entries can exist within a feed or be</em>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <em class="jxr_javadoccomment"> * published as standalone Atom documents.</em>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * Each entry contains metadata about the content (title, authors, timestamps) and optionally the</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> * content itself or links to it. Entries are designed to be independently meaningful and may be</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> * consumed separately from their containing feed.</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='figure'&gt;Schema&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * &lt;p class='bschema'&gt;</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> * 	atomEntry =</em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * 		element atom:entry {</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> * 			atomCommonAttributes,</em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * 			(atomAuthor*</em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomCategory*</em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomContent?</em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomContributor*</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomId</em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomLink*</em>
-<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomPublished?</em>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomRights?</em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomSource?</em>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomSummary?</em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomTitle</em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomUpdated</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; extensionElement*)</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment"> * 		}</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Required Elements:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <em class="jxr_javadoccomment"> * Per RFC 4287, the following elements are required in an entry:</em>
-<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <em class="jxr_javadoccomment"> * &lt;ul class='spaced-list'&gt;</em>
-<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:id&lt;/c&gt; - A permanent, universally unique identifier for the entry.</em>
-<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:title&lt;/c&gt; - A human-readable title for the entry.</em>
-<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:updated&lt;/c&gt; - The most recent instant in time when the entry was modified.</em>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Recommended Elements:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment"> * The following elements are recommended:</em>
-<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment"> * &lt;ul class='spaced-list'&gt;</em>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:author&lt;/c&gt; - Authors of the entry (required if feed doesn't have authors).</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:content&lt;/c&gt; or &lt;c&gt;atom:link[@rel="alternate"]&lt;/c&gt; - Either content or alternate link.</em>
-<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:summary&lt;/c&gt; - Brief summary of the entry (required if content is not inline).</em>
-<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment"> * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment"> * 	&lt;jc&gt;// Create an entry&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment"> * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(</em>
-<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"tag:example.org,2024:entry1"&lt;/js&gt;,</em>
-<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"My First Blog Post"&lt;/js&gt;,</em>
-<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"2024-01-15T12:00:00Z"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment"> * 	)</em>
-<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <em class="jxr_javadoccomment"> * 	.setAuthors(</em>
-<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Person(&lt;js&gt;"Jane Doe"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <em class="jxr_javadoccomment"> * 			.setEmail(&lt;js&gt;"jane@example.org"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <em class="jxr_javadoccomment"> * 	)</em>
-<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment"> * 	.setContent(</em>
-<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"html"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment"> * 			.setText(&lt;js&gt;"&amp;lt;p&amp;gt;This is my first blog post!&amp;lt;/p&amp;gt;"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment"> * 	)</em>
-<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment"> * 	.setSummary(&lt;js&gt;"An introduction to my new blog"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment"> * 	.setPublished(&lt;js&gt;"2024-01-15T10:00:00Z"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment"> * 	.setLinks(</em>
-<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Link(&lt;js&gt;"alternate"&lt;/js&gt;, &lt;js&gt;"text/html"&lt;/js&gt;, &lt;js&gt;"<a href="http://example.org/posts/1" target="alexandria_uri">http://example.org/posts/1</a>"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment"> * 	);</em>
-<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Specification:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> * Represents an &lt;c&gt;atomEntry&lt;/c&gt; construct in the</em>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment"> * &lt;a class="doclink" href="<a href="https://tools.ietf.org/html/rfc4287" target="alexandria_uri">https://tools.ietf.org/html/rfc4287</a>#section-4.1.2"&gt;RFC 4287 - Section 4.1.2&lt;/a&gt; specification.</em>
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment"> * 	&lt;li class='link'&gt;&lt;a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/JuneauBeanAtom" target="alexandria_uri">https://juneau.apache.org/docs/topics/JuneauBeanAtom</a>"&gt;juneau-bean-atom&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment"> * 	&lt;li class='extlink'&gt;&lt;a class="doclink" href="<a href="https://tools.ietf.org/html/rfc4287" target="alexandria_uri">https://tools.ietf.org/html/rfc4287</a>"&gt;RFC 4287 - The Atom Syndication Format&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> @Bean(typeName = <span class="jxr_string">"entry"</span>)
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> <strong class="jxr_keyword">extends</strong> <a name="CommonEntry" href="../../../../../org/apache/juneau/bean/atom/CommonEntry.html#CommonEntry">CommonEntry</a> {
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> 	<strong class="jxr_keyword">private</strong> <a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> content;
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> 	<strong class="jxr_keyword">private</strong> Calendar published;
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> 	<strong class="jxr_keyword">private</strong> <a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> source;
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> 	<strong class="jxr_keyword">private</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> summary;
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> 	<em class="jxr_javadoccomment">/** Bean constructor. */</em>
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>() {}
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> 
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">	 * Normal constructor.</em>
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">	 * @param id The ID of this entry.</em>
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">	 * @param title The title of this entry.</em>
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment">	 * @param updated The updated timestamp of this entry.</em>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>(<a name="Id" href="../../../../../org/apache/juneau/bean/atom/Id.html#Id">Id</a> id, <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> title, Calendar updated) {
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> 		<strong class="jxr_keyword">super</strong>(id, title, updated);
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> 	}
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment">	 * Normal constructor.</em>
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment">	 * @param id The ID of this entry.</em>
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment">	 * @param title The title of this entry.</em>
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment">	 * @param updated The updated timestamp of this entry.</em>
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>(String id, String title, String updated) {
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> 		<strong class="jxr_keyword">super</strong>(id, title, updated);
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> 	}
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> 
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;content&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment">	 * Returns the content of this entry, or a link to it.</em>
-<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_javadoccomment">	 * The content element contains or links to the complete content of the entry. It can contain</em>
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> <em class="jxr_javadoccomment">	 * text, HTML, XHTML, or other media types. When not present, the entry must have an alternate</em>
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em class="jxr_javadoccomment">	 * link pointing to the content.</em>
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
-<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L156" href="#L156">156</a> 	<strong class="jxr_keyword">public</strong> <a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> getContent() { <strong class="jxr_keyword">return</strong> content; }
-<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
-<a class="jxr_linenumber" name="L158" href="#L158">158</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;published&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment">	 * Returns the time when this entry was first published or made available.</em>
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">	 * This differs from the updated time in that it represents the original publication date,</em>
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">	 * which typically doesn't change even when the entry is modified. The updated timestamp</em>
-<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">	 * reflects the last modification time.</em>
-<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
-<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L171" href="#L171">171</a> 	<strong class="jxr_keyword">public</strong> Calendar getPublished() { <strong class="jxr_keyword">return</strong> published; }
-<a class="jxr_linenumber" name="L172" href="#L172">172</a> 
-<a class="jxr_linenumber" name="L173" href="#L173">173</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;source&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 * Returns metadata about the source feed if this entry was copied from another feed.</em>
-<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">	 * When an entry is copied or aggregated from another feed, the source element preserves</em>
-<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">	 * metadata from the original feed. This is useful for attribution and tracking the origin</em>
-<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">	 * of syndicated content.</em>
-<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
-<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L186" href="#L186">186</a> 	<strong class="jxr_keyword">public</strong> <a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> getSource() { <strong class="jxr_keyword">return</strong> source; }
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> 
-<a class="jxr_linenumber" name="L188" href="#L188">188</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;summary&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">	 * Returns a short summary, abstract, or excerpt of the entry.</em>
-<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">	 * The summary is typically used in feed readers to give users a preview of the entry's</em>
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment">	 * content without loading the full content. It's especially useful when content is not</em>
-<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment">	 * inline or is very long.</em>
-<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
-<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L201" href="#L201">201</a> 	<strong class="jxr_keyword">public</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> getSummary() { <strong class="jxr_keyword">return</strong> summary; }
-<a class="jxr_linenumber" name="L202" href="#L202">202</a> 
-<a class="jxr_linenumber" name="L203" href="#L203">203</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L204" href="#L204">204</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setAuthors(Person...value) {
-<a class="jxr_linenumber" name="L205" href="#L205">205</a> 		<strong class="jxr_keyword">super</strong>.setAuthors(value);
-<a class="jxr_linenumber" name="L206" href="#L206">206</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L207" href="#L207">207</a> 	}
-<a class="jxr_linenumber" name="L208" href="#L208">208</a> 
-<a class="jxr_linenumber" name="L209" href="#L209">209</a> 	@Override <em class="jxr_comment">/* Overridden from Common */</em>
-<a class="jxr_linenumber" name="L210" href="#L210">210</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setBase(Object value) {
-<a class="jxr_linenumber" name="L211" href="#L211">211</a> 		<strong class="jxr_keyword">super</strong>.setBase(value);
-<a class="jxr_linenumber" name="L212" href="#L212">212</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L213" href="#L213">213</a> 	}
-<a class="jxr_linenumber" name="L214" href="#L214">214</a> 
-<a class="jxr_linenumber" name="L215" href="#L215">215</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L216" href="#L216">216</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setCategories(Category...value) {
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> 		<strong class="jxr_keyword">super</strong>.setCategories(value);
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L219" href="#L219">219</a> 	}
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;content&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L225" href="#L225">225</a> <em class="jxr_javadoccomment">	 * Sets the content of this entry.</em>
-<a class="jxr_linenumber" name="L226" href="#L226">226</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L228" href="#L228">228</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Plain text content&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"text"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"This is plain text content"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">	 * 		);</em>
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// HTML content&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry2&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
-<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"html"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"&amp;lt;p&amp;gt;This is &amp;lt;strong&amp;gt;HTML&amp;lt;/strong&amp;gt; content&amp;lt;/p&amp;gt;"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">	 * 		);</em>
-<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Link to external content&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry3&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
-<a class="jxr_linenumber" name="L246" href="#L246">246</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content()</em>
-<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">	 * 				.setType(&lt;js&gt;"video/mp4"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">	 * 				.setSrc(&lt;js&gt;"<a href="http://example.org/video.mp4" target="alexandria_uri">http://example.org/video.mp4</a>"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">	 * 		);</em>
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
-<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L256" href="#L256">256</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L257" href="#L257">257</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setContent(<a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> value) {
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> 		<strong class="jxr_keyword">this</strong>.content = value;
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> 	}
-<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
-<a class="jxr_linenumber" name="L262" href="#L262">262</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L263" href="#L263">263</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setContributors(Person...value) {
-<a class="jxr_linenumber" name="L264" href="#L264">264</a> 		<strong class="jxr_keyword">super</strong>.setContributors(value);
-<a class="jxr_linenumber" name="L265" href="#L265">265</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L266" href="#L266">266</a> 	}
-<a class="jxr_linenumber" name="L267" href="#L267">267</a> 
-<a class="jxr_linenumber" name="L268" href="#L268">268</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L269" href="#L269">269</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setId(<a name="Id" href="../../../../../org/apache/juneau/bean/atom/Id.html#Id">Id</a> value) {
-<a class="jxr_linenumber" name="L270" href="#L270">270</a> 		<strong class="jxr_keyword">super</strong>.setId(value);
-<a class="jxr_linenumber" name="L271" href="#L271">271</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L272" href="#L272">272</a> 	}
-<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
-<a class="jxr_linenumber" name="L274" href="#L274">274</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setId(String value) {
-<a class="jxr_linenumber" name="L276" href="#L276">276</a> 		<strong class="jxr_keyword">super</strong>.setId(value);
-<a class="jxr_linenumber" name="L277" href="#L277">277</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L278" href="#L278">278</a> 	}
-<a class="jxr_linenumber" name="L279" href="#L279">279</a> 
-<a class="jxr_linenumber" name="L280" href="#L280">280</a> 	@Override <em class="jxr_comment">/* Overridden from Common */</em>
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setLang(String value) {
-<a class="jxr_linenumber" name="L282" href="#L282">282</a> 		<strong class="jxr_keyword">super</strong>.setLang(value);
-<a class="jxr_linenumber" name="L283" href="#L283">283</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L284" href="#L284">284</a> 	}
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> 
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L287" href="#L287">287</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setLinks(Link...value) {
-<a class="jxr_linenumber" name="L288" href="#L288">288</a> 		<strong class="jxr_keyword">super</strong>.setLinks(value);
-<a class="jxr_linenumber" name="L289" href="#L289">289</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L290" href="#L290">290</a> 	}
-<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
-<a class="jxr_linenumber" name="L292" href="#L292">292</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;published&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">	 * Sets the time when this entry was first published or made available.</em>
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L298" href="#L298">298</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">	 * 		.setPublished(Calendar.&lt;jsm&gt;getInstance&lt;/jsm&gt;());</em>
-<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L309" href="#L309">309</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setPublished(Calendar value) {
-<a class="jxr_linenumber" name="L310" href="#L310">310</a> 		<strong class="jxr_keyword">this</strong>.published = value;
-<a class="jxr_linenumber" name="L311" href="#L311">311</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> 	}
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> 
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em class="jxr_javadoccomment">	 * Bean property fluent setter:  &lt;property&gt;published&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">	 * Sets the time when this entry was first published using an ISO-8601 date string.</em>
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L323" href="#L323">323</a> <em class="jxr_javadoccomment">	 * 		.setPublished(&lt;js&gt;"2024-01-15T10:00:00Z"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">	 * 	The new value for this property in ISO-8601 format.</em>
-<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setPublished(String value) {
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> 		setPublished(parseDateTime(value));
-<a class="jxr_linenumber" name="L333" href="#L333">333</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> 	}
-<a class="jxr_linenumber" name="L335" href="#L335">335</a> 
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setRights(String value) {
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> 		<strong class="jxr_keyword">super</strong>.setRights(value);
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L340" href="#L340">340</a> 	}
-<a class="jxr_linenumber" name="L341" href="#L341">341</a> 
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setRights(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> 		<strong class="jxr_keyword">super</strong>.setRights(value);
-<a class="jxr_linenumber" name="L345" href="#L345">345</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> 	}
-<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;source&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L350" href="#L350">350</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">	 * Sets metadata about the source feed if this entry was copied from another feed.</em>
-<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L357" href="#L357">357</a> <em class="jxr_javadoccomment">	 * 		.setSource(</em>
-<a class="jxr_linenumber" name="L358" href="#L358">358</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Source()</em>
-<a class="jxr_linenumber" name="L359" href="#L359">359</a> <em class="jxr_javadoccomment">	 * 				.setId(&lt;js&gt;"tag:originalblog.example.com,2024:feed"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_javadoccomment">	 * 				.setTitle(&lt;js&gt;"Original Blog"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L361" href="#L361">361</a> <em class="jxr_javadoccomment">	 * 				.setUpdated(&lt;js&gt;"2024-01-15T12:00:00Z"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> <em class="jxr_javadoccomment">	 * 		);</em>
-<a class="jxr_linenumber" name="L363" href="#L363">363</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L365" href="#L365">365</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
-<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L370" href="#L370">370</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSource(<a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> value) {
-<a class="jxr_linenumber" name="L371" href="#L371">371</a> 		<strong class="jxr_keyword">this</strong>.source = value;
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L373" href="#L373">373</a> 	}
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> 
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment">	 * Bean property fluent setter:  &lt;property&gt;summary&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L377" href="#L377">377</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L379" href="#L379">379</a> <em class="jxr_javadoccomment">	 * Sets a short summary, abstract, or excerpt of the entry as plain text.</em>
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L381" href="#L381">381</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
-<a class="jxr_linenumber" name="L383" href="#L383">383</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L384" href="#L384">384</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L385" href="#L385">385</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSummary(String value) {
-<a class="jxr_linenumber" name="L387" href="#L387">387</a> 		setSummary(<strong class="jxr_keyword">new</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a>(value));
-<a class="jxr_linenumber" name="L388" href="#L388">388</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L389" href="#L389">389</a> 	}
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> 
-<a class="jxr_linenumber" name="L391" href="#L391">391</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;summary&lt;/property&gt;.</em>
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L395" href="#L395">395</a> <em class="jxr_javadoccomment">	 * Sets a short summary, abstract, or excerpt of the entry.</em>
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L397" href="#L397">397</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L399" href="#L399">399</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
-<a class="jxr_linenumber" name="L400" href="#L400">400</a> <em class="jxr_javadoccomment">	 * 		.setSummary(</em>
-<a class="jxr_linenumber" name="L401" href="#L401">401</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Text(&lt;js&gt;"text"&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"This entry discusses the benefits of Atom feeds..."&lt;/js&gt;)</em>
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> <em class="jxr_javadoccomment">	 * 		);</em>
-<a class="jxr_linenumber" name="L404" href="#L404">404</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L405" href="#L405">405</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">	 * @param value</em>
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSummary(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> 		<strong class="jxr_keyword">this</strong>.summary = value;
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> 	}
-<a class="jxr_linenumber" name="L415" href="#L415">415</a> 
-<a class="jxr_linenumber" name="L416" href="#L416">416</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L417" href="#L417">417</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setTitle(String value) {
-<a class="jxr_linenumber" name="L418" href="#L418">418</a> 		<strong class="jxr_keyword">super</strong>.setTitle(value);
-<a class="jxr_linenumber" name="L419" href="#L419">419</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L420" href="#L420">420</a> 	}
-<a class="jxr_linenumber" name="L421" href="#L421">421</a> 
-<a class="jxr_linenumber" name="L422" href="#L422">422</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L423" href="#L423">423</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setTitle(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> 		<strong class="jxr_keyword">super</strong>.setTitle(value);
-<a class="jxr_linenumber" name="L425" href="#L425">425</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L426" href="#L426">426</a> 	}
-<a class="jxr_linenumber" name="L427" href="#L427">427</a> 
-<a class="jxr_linenumber" name="L428" href="#L428">428</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L429" href="#L429">429</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setUpdated(Calendar value) {
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> 		<strong class="jxr_keyword">super</strong>.setUpdated(value);
-<a class="jxr_linenumber" name="L431" href="#L431">431</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L432" href="#L432">432</a> 	}
-<a class="jxr_linenumber" name="L433" href="#L433">433</a> 
-<a class="jxr_linenumber" name="L434" href="#L434">434</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
-<a class="jxr_linenumber" name="L435" href="#L435">435</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setUpdated(String value) {
-<a class="jxr_linenumber" name="L436" href="#L436">436</a> 		<strong class="jxr_keyword">super</strong>.setUpdated(value);
-<a class="jxr_linenumber" name="L437" href="#L437">437</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L438" href="#L438">438</a> 	}
-<a class="jxr_linenumber" name="L439" href="#L439">439</a> }
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.annotation.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.common.utils.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment"> * Represents an individual entry within an Atom feed or as a standalone Atom document.</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> * An Atom entry is a discrete item of content within a feed, such as a blog post, news article,</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <em class="jxr_javadoccomment"> * podcast episode, or other individual piece of content. Entries can exist within a feed or be</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <em class="jxr_javadoccomment"> * published as standalone Atom documents.</em>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> * Each entry contains metadata about the content (title, authors, timestamps) and optionally the</em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * content itself or links to it. Entries are designed to be independently meaningful and may be</em>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> * consumed separately from their containing feed.</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='figure'&gt;Schema&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * &lt;p class='bschema'&gt;</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * 	atomEntry =</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> * 		element atom:entry {</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * 			atomCommonAttributes,</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> * 			(atomAuthor*</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomCategory*</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomContent?</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomContributor*</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomId</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomLink*</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomPublished?</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomRights?</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomSource?</em>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomSummary?</em>
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomTitle</em>
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; atomUpdated</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment"> * 			&amp;amp; extensionElement*)</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment"> * 		}</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Required Elements:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment"> * Per RFC 4287, the following elements are required in an entry:</em>
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <em class="jxr_javadoccomment"> * &lt;ul class='spaced-list'&gt;</em>
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:id&lt;/c&gt; - A permanent, universally unique identifier for the entry.</em>
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:title&lt;/c&gt; - A human-readable title for the entry.</em>
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:updated&lt;/c&gt; - The most recent instant in time when the entry was modified.</em>
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Recommended Elements:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <em class="jxr_javadoccomment"> * The following elements are recommended:</em>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment"> * &lt;ul class='spaced-list'&gt;</em>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:author&lt;/c&gt; - Authors of the entry (required if feed doesn't have authors).</em>
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:content&lt;/c&gt; or &lt;c&gt;atom:link[@rel="alternate"]&lt;/c&gt; - Either content or alternate link.</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment"> * 	&lt;li&gt;&lt;c&gt;atom:summary&lt;/c&gt; - Brief summary of the entry (required if content is not inline).</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment"> * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment"> * 	&lt;jc&gt;// Create an entry&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment"> * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(</em>
+<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"tag:example.org,2024:entry1"&lt;/js&gt;,</em>
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"My First Blog Post"&lt;/js&gt;,</em>
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <em class="jxr_javadoccomment"> * 		&lt;js&gt;"2024-01-15T12:00:00Z"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment"> * 	)</em>
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment"> * 	.setAuthors(</em>
+<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Person(&lt;js&gt;"Jane Doe"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <em class="jxr_javadoccomment"> * 			.setEmail(&lt;js&gt;"jane@example.org"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <em class="jxr_javadoccomment"> * 	)</em>
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <em class="jxr_javadoccomment"> * 	.setContent(</em>
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"html"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment"> * 			.setText(&lt;js&gt;"&amp;lt;p&amp;gt;This is my first blog post!&amp;lt;/p&amp;gt;"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment"> * 	)</em>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment"> * 	.setSummary(&lt;js&gt;"An introduction to my new blog"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment"> * 	.setPublished(&lt;js&gt;"2024-01-15T10:00:00Z"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment"> * 	.setLinks(</em>
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment"> * 		&lt;jk&gt;new&lt;/jk&gt; Link(&lt;js&gt;"alternate"&lt;/js&gt;, &lt;js&gt;"text/html"&lt;/js&gt;, &lt;js&gt;"<a href="http://example.org/posts/1" target="alexandria_uri">http://example.org/posts/1</a>"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment"> * 	);</em>
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Specification:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> * Represents an &lt;c&gt;atomEntry&lt;/c&gt; construct in the</em>
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> * &lt;a class="doclink" href="<a href="https://tools.ietf.org/html/rfc4287" target="alexandria_uri">https://tools.ietf.org/html/rfc4287</a>#section-4.1.2"&gt;RFC 4287 - Section 4.1.2&lt;/a&gt; specification.</em>
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment"> * 	&lt;li class='link'&gt;&lt;a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/JuneauBeanAtom" target="alexandria_uri">https://juneau.apache.org/docs/topics/JuneauBeanAtom</a>"&gt;juneau-bean-atom&lt;/a&gt;</em>
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment"> * 	&lt;li class='extlink'&gt;&lt;a class="doclink" href="<a href="https://tools.ietf.org/html/rfc4287" target="alexandria_uri">https://tools.ietf.org/html/rfc4287</a>"&gt;RFC 4287 - The Atom Syndication Format&lt;/a&gt;</em>
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> @Bean(typeName = <span class="jxr_string">"entry"</span>)
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> <strong class="jxr_keyword">extends</strong> <a name="CommonEntry" href="../../../../../org/apache/juneau/bean/atom/CommonEntry.html#CommonEntry">CommonEntry</a> {
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> 
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> 	<strong class="jxr_keyword">private</strong> <a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> content;
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> 	<strong class="jxr_keyword">private</strong> Calendar published;
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> 	<strong class="jxr_keyword">private</strong> <a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> source;
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> 	<strong class="jxr_keyword">private</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> summary;
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> 	<em class="jxr_javadoccomment">/** Bean constructor. */</em>
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>() {}
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment">	 * Normal constructor.</em>
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">	 * @param id The ID of this entry.</em>
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">	 * @param title The title of this entry.</em>
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">	 * @param updated The updated timestamp of this entry.</em>
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>(<a name="Id" href="../../../../../org/apache/juneau/bean/atom/Id.html#Id">Id</a> id, <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> title, Calendar updated) {
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> 		<strong class="jxr_keyword">super</strong>(id, title, updated);
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> 	}
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> 
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment">	 * Normal constructor.</em>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment">	 * @param id The ID of this entry.</em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment">	 * @param title The title of this entry.</em>
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment">	 * @param updated The updated timestamp of this entry.</em>
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a>(String id, String title, String updated) {
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> 		<strong class="jxr_keyword">super</strong>(id, title, updated);
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> 	}
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;content&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment">	 * Returns the content of this entry, or a link to it.</em>
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment">	 * The content element contains or links to the complete content of the entry. It can contain</em>
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_javadoccomment">	 * text, HTML, XHTML, or other media types. When not present, the entry must have an alternate</em>
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> <em class="jxr_javadoccomment">	 * link pointing to the content.</em>
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> 	<strong class="jxr_keyword">public</strong> <a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> getContent() { <strong class="jxr_keyword">return</strong> content; }
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;published&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">	 * Returns the time when this entry was first published or made available.</em>
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">	 * This differs from the updated time in that it represents the original publication date,</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">	 * which typically doesn't change even when the entry is modified. The updated timestamp</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">	 * reflects the last modification time.</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> 	<strong class="jxr_keyword">public</strong> Calendar getPublished() { <strong class="jxr_keyword">return</strong> published; }
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;source&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">	 * Returns metadata about the source feed if this entry was copied from another feed.</em>
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">	 * When an entry is copied or aggregated from another feed, the source element preserves</em>
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">	 * metadata from the original feed. This is useful for attribution and tracking the origin</em>
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">	 * of syndicated content.</em>
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
+<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L185" href="#L185">185</a> 	<strong class="jxr_keyword">public</strong> <a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> getSource() { <strong class="jxr_keyword">return</strong> source; }
+<a class="jxr_linenumber" name="L186" href="#L186">186</a> 
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment">	 * Bean property getter:  &lt;property&gt;summary&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">	 * Returns a short summary, abstract, or excerpt of the entry.</em>
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">	 * The summary is typically used in feed readers to give users a preview of the entry's</em>
+<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">	 * content without loading the full content. It's especially useful when content is not</em>
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment">	 * inline or is very long.</em>
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">	 * @return The property value, or &lt;jk&gt;null&lt;/jk&gt; if it is not set.</em>
+<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L200" href="#L200">200</a> 	<strong class="jxr_keyword">public</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> getSummary() { <strong class="jxr_keyword">return</strong> summary; }
+<a class="jxr_linenumber" name="L201" href="#L201">201</a> 
+<a class="jxr_linenumber" name="L202" href="#L202">202</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L203" href="#L203">203</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setAuthors(Person...value) {
+<a class="jxr_linenumber" name="L204" href="#L204">204</a> 		<strong class="jxr_keyword">super</strong>.setAuthors(value);
+<a class="jxr_linenumber" name="L205" href="#L205">205</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L206" href="#L206">206</a> 	}
+<a class="jxr_linenumber" name="L207" href="#L207">207</a> 
+<a class="jxr_linenumber" name="L208" href="#L208">208</a> 	@Override <em class="jxr_comment">/* Overridden from Common */</em>
+<a class="jxr_linenumber" name="L209" href="#L209">209</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setBase(Object value) {
+<a class="jxr_linenumber" name="L210" href="#L210">210</a> 		<strong class="jxr_keyword">super</strong>.setBase(value);
+<a class="jxr_linenumber" name="L211" href="#L211">211</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> 	}
+<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
+<a class="jxr_linenumber" name="L214" href="#L214">214</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L215" href="#L215">215</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setCategories(Category...value) {
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> 		<strong class="jxr_keyword">super</strong>.setCategories(value);
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> 	}
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;content&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment">	 * Sets the content of this entry.</em>
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L226" href="#L226">226</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L228" href="#L228">228</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Plain text content&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"text"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"This is plain text content"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">	 * 		);</em>
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L235" href="#L235">235</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// HTML content&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry2&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content(&lt;js&gt;"html"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"&amp;lt;p&amp;gt;This is &amp;lt;strong&amp;gt;HTML&amp;lt;/strong&amp;gt; content&amp;lt;/p&amp;gt;"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">	 * 		);</em>
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Link to external content&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry3&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment">	 * 		.setContent(</em>
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Content()</em>
+<a class="jxr_linenumber" name="L246" href="#L246">246</a> <em class="jxr_javadoccomment">	 * 				.setType(&lt;js&gt;"video/mp4"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">	 * 				.setSrc(&lt;js&gt;"<a href="http://example.org/video.mp4" target="alexandria_uri">http://example.org/video.mp4</a>"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">	 * 		);</em>
+<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setContent(<a name="Content" href="../../../../../org/apache/juneau/bean/atom/Content.html#Content">Content</a> value) {
+<a class="jxr_linenumber" name="L257" href="#L257">257</a> 		<strong class="jxr_keyword">this</strong>.content = value;
+<a class="jxr_linenumber" name="L258" href="#L258">258</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> 	}
+<a class="jxr_linenumber" name="L260" href="#L260">260</a> 
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L262" href="#L262">262</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setContributors(Person...value) {
+<a class="jxr_linenumber" name="L263" href="#L263">263</a> 		<strong class="jxr_keyword">super</strong>.setContributors(value);
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L265" href="#L265">265</a> 	}
+<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
+<a class="jxr_linenumber" name="L267" href="#L267">267</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L268" href="#L268">268</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setId(<a name="Id" href="../../../../../org/apache/juneau/bean/atom/Id.html#Id">Id</a> value) {
+<a class="jxr_linenumber" name="L269" href="#L269">269</a> 		<strong class="jxr_keyword">super</strong>.setId(value);
+<a class="jxr_linenumber" name="L270" href="#L270">270</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L271" href="#L271">271</a> 	}
+<a class="jxr_linenumber" name="L272" href="#L272">272</a> 
+<a class="jxr_linenumber" name="L273" href="#L273">273</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L274" href="#L274">274</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setId(String value) {
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> 		<strong class="jxr_keyword">super</strong>.setId(value);
+<a class="jxr_linenumber" name="L276" href="#L276">276</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L277" href="#L277">277</a> 	}
+<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
+<a class="jxr_linenumber" name="L279" href="#L279">279</a> 	@Override <em class="jxr_comment">/* Overridden from Common */</em>
+<a class="jxr_linenumber" name="L280" href="#L280">280</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setLang(String value) {
+<a class="jxr_linenumber" name="L281" href="#L281">281</a> 		<strong class="jxr_keyword">super</strong>.setLang(value);
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L283" href="#L283">283</a> 	}
+<a class="jxr_linenumber" name="L284" href="#L284">284</a> 
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setLinks(Link...value) {
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> 		<strong class="jxr_keyword">super</strong>.setLinks(value);
+<a class="jxr_linenumber" name="L288" href="#L288">288</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L289" href="#L289">289</a> 	}
+<a class="jxr_linenumber" name="L290" href="#L290">290</a> 
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;published&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment">	 * Sets the time when this entry was first published or made available.</em>
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">	 * 		.setPublished(Calendar.&lt;jsm&gt;getInstance&lt;/jsm&gt;());</em>
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setPublished(Calendar value) {
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> 		<strong class="jxr_keyword">this</strong>.published = value;
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L311" href="#L311">311</a> 	}
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> 
+<a class="jxr_linenumber" name="L313" href="#L313">313</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em class="jxr_javadoccomment">	 * Bean property fluent setter:  &lt;property&gt;published&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">	 * Sets the time when this entry was first published using an ISO-8601 date string.</em>
+<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">	 * 		.setPublished(&lt;js&gt;"2024-01-15T10:00:00Z"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L323" href="#L323">323</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">	 * 	The new value for this property in ISO-8601 format.</em>
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setPublished(String value) {
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> 		setPublished(DateUtils.fromIso8601Calendar(value));
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L333" href="#L333">333</a> 	}
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> 
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L336" href="#L336">336</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setRights(String value) {
+<a class="jxr_linenumber" name="L337" href="#L337">337</a> 		<strong class="jxr_keyword">super</strong>.setRights(value);
+<a class="jxr_linenumber" name="L338" href="#L338">338</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> 	}
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setRights(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> 		<strong class="jxr_keyword">super</strong>.setRights(value);
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> 	}
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> 
+<a class="jxr_linenumber" name="L347" href="#L347">347</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;source&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L349" href="#L349">349</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L350" href="#L350">350</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">	 * Sets metadata about the source feed if this entry was copied from another feed.</em>
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_javadoccomment">	 * 		.setSource(</em>
+<a class="jxr_linenumber" name="L357" href="#L357">357</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Source()</em>
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> <em class="jxr_javadoccomment">	 * 				.setId(&lt;js&gt;"tag:originalblog.example.com,2024:feed"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> <em class="jxr_javadoccomment">	 * 				.setTitle(&lt;js&gt;"Original Blog"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_javadoccomment">	 * 				.setUpdated(&lt;js&gt;"2024-01-15T12:00:00Z"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L361" href="#L361">361</a> <em class="jxr_javadoccomment">	 * 		);</em>
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L363" href="#L363">363</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSource(<a name="Source" href="../../../../../org/apache/juneau/bean/atom/Source.html#Source">Source</a> value) {
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> 		<strong class="jxr_keyword">this</strong>.source = value;
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> 	}
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> 
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em class="jxr_javadoccomment">	 * Bean property fluent setter:  &lt;property&gt;summary&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em class="jxr_javadoccomment">	 * Sets a short summary, abstract, or excerpt of the entry as plain text.</em>
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L381" href="#L381">381</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSummary(String value) {
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> 		setSummary(<strong class="jxr_keyword">new</strong> <a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a>(value));
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> 	}
+<a class="jxr_linenumber" name="L389" href="#L389">389</a> 
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> <em class="jxr_javadoccomment">	 * Bean property setter:  &lt;property&gt;summary&lt;/property&gt;.</em>
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L393" href="#L393">393</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> <em class="jxr_javadoccomment">	 * Sets a short summary, abstract, or excerpt of the entry.</em>
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> <em class="jxr_javadoccomment">	 * 	Entry &lt;jv&gt;entry&lt;/jv&gt; = &lt;jk&gt;new&lt;/jk&gt; Entry(...)</em>
+<a class="jxr_linenumber" name="L399" href="#L399">399</a> <em class="jxr_javadoccomment">	 * 		.setSummary(</em>
+<a class="jxr_linenumber" name="L400" href="#L400">400</a> <em class="jxr_javadoccomment">	 * 			&lt;jk&gt;new&lt;/jk&gt; Text(&lt;js&gt;"text"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L401" href="#L401">401</a> <em class="jxr_javadoccomment">	 * 				.setText(&lt;js&gt;"This entry discusses the benefits of Atom feeds..."&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> <em class="jxr_javadoccomment">	 * 		);</em>
+<a class="jxr_linenumber" name="L403" href="#L403">403</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L405" href="#L405">405</a> <em class="jxr_javadoccomment">	 * @param value</em>
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">	 * 	The new value for this property.</em>
+<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">	 * 	&lt;br&gt;Can be &lt;jk&gt;null&lt;/jk&gt; to unset the property.</em>
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_javadoccomment">	 * @return This object.</em>
+<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setSummary(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
+<a class="jxr_linenumber" name="L411" href="#L411">411</a> 		<strong class="jxr_keyword">this</strong>.summary = value;
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> 	}
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> 
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L416" href="#L416">416</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setTitle(String value) {
+<a class="jxr_linenumber" name="L417" href="#L417">417</a> 		<strong class="jxr_keyword">super</strong>.setTitle(value);
+<a class="jxr_linenumber" name="L418" href="#L418">418</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L419" href="#L419">419</a> 	}
+<a class="jxr_linenumber" name="L420" href="#L420">420</a> 
+<a class="jxr_linenumber" name="L421" href="#L421">421</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L422" href="#L422">422</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setTitle(<a name="Text" href="../../../../../org/apache/juneau/bean/atom/Text.html#Text">Text</a> value) {
+<a class="jxr_linenumber" name="L423" href="#L423">423</a> 		<strong class="jxr_keyword">super</strong>.setTitle(value);
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L425" href="#L425">425</a> 	}
+<a class="jxr_linenumber" name="L426" href="#L426">426</a> 
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L428" href="#L428">428</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setUpdated(Calendar value) {
+<a class="jxr_linenumber" name="L429" href="#L429">429</a> 		<strong class="jxr_keyword">super</strong>.setUpdated(value);
+<a class="jxr_linenumber" name="L430" href="#L430">430</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L431" href="#L431">431</a> 	}
+<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
+<a class="jxr_linenumber" name="L433" href="#L433">433</a> 	@Override <em class="jxr_comment">/* Overridden from CommonEntry */</em>
+<a class="jxr_linenumber" name="L434" href="#L434">434</a> 	<strong class="jxr_keyword">public</strong> <a name="Entry" href="../../../../../org/apache/juneau/bean/atom/Entry.html#Entry">Entry</a> setUpdated(String value) {
+<a class="jxr_linenumber" name="L435" href="#L435">435</a> 		<strong class="jxr_keyword">super</strong>.setUpdated(value);
+<a class="jxr_linenumber" name="L436" href="#L436">436</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L437" href="#L437">437</a> 	}
+<a class="jxr_linenumber" name="L438" href="#L438">438</a> }
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/bean/atom/Utils.html b/site/xref/org/apache/juneau/bean/atom/Utils.html
deleted file mode 100644
index ef70453da0..0000000000
--- a/site/xref/org/apache/juneau/bean/atom/Utils.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
-<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<title>Utils xref</title>
-<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
-</head>
-<body>
-<div id="overview"><a href="../../../../../../apidocs/org/apache/juneau/bean/atom/Utils.html">View Javadoc</a></div><pre>
-<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
-<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
-<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
-<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
-<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
-<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
-<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
-<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
-<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
-<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
-<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
-<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
-<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
-<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juneau.bean.atom;
-<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
-<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> jakarta.xml.bind.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <em class="jxr_javadoccomment"> * Static utility methods for ATOM marshalling code.</em>
-<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> * 	&lt;li class='link'&gt;&lt;a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/JuneauBeanAtom" target="alexandria_uri">https://juneau.apache.org/docs/topics/JuneauBeanAtom</a>"&gt;juneau-bean-atom&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a name="Utils" href="../../../../../org/apache/juneau/bean/atom/Utils.html#Utils">Utils</a> {
-<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
-<a class="jxr_linenumber" name="L32" href="#L32">32</a>  	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment">	 * Converts an ISO8601 date-time string to a {@link Calendar}.</em>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment">	 * @param lexicalXSDDateTime The ISO8601 date-time string.</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment">	 * @return A new {@link Calendar} object.</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>  	<strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Calendar parseDateTime(String lexicalXSDDateTime) {
-<a class="jxr_linenumber" name="L39" href="#L39">39</a>  		<strong class="jxr_keyword">return</strong> DatatypeConverter.parseDateTime(lexicalXSDDateTime);
-<a class="jxr_linenumber" name="L40" href="#L40">40</a>  	}
-<a class="jxr_linenumber" name="L41" href="#L41">41</a>  
-<a class="jxr_linenumber" name="L42" href="#L42">42</a>  	<strong class="jxr_keyword">private</strong> <a name="Utils" href="../../../../../org/apache/juneau/bean/atom/Utils.html#Utils">Utils</a>() {}
-<a class="jxr_linenumber" name="L43" href="#L43">43</a>  }
-</pre>
-<hr/>
-<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
-</body>
-</html>
diff --git a/site/xref/org/apache/juneau/bean/atom/package-frame.html b/site/xref/org/apache/juneau/bean/atom/package-frame.html
index 99bd7d69ff..e109d17847 100644
--- a/site/xref/org/apache/juneau/bean/atom/package-frame.html
+++ b/site/xref/org/apache/juneau/bean/atom/package-frame.html
@@ -57,9 +57,6 @@
                 <li>
                     <a href="Text.html#Text" target="classFrame">Text</a>
                 </li>
-                <li>
-                    <a href="Utils.html#Utils" target="classFrame">Utils</a>
-                </li>
             </ul>
         </div>
     </body>
diff --git a/site/xref/org/apache/juneau/bean/atom/package-summary.html b/site/xref/org/apache/juneau/bean/atom/package-summary.html
index 0efada86a6..d018c8e009 100644
--- a/site/xref/org/apache/juneau/bean/atom/package-summary.html
+++ b/site/xref/org/apache/juneau/bean/atom/package-summary.html
@@ -131,11 +131,6 @@
                                     <a href="Text.html#Text" target="classFrame" title="class in org.apache.juneau.bean.atom">Text</a>
                                 </td>
                             </tr>
-                            <tr class="rowColor">
-                                <td class="colFirst colLast">
-                                    <a href="Utils.html#Utils" target="classFrame" title="class in org.apache.juneau.bean.atom">Utils</a>
-                                </td>
-                            </tr>
                         </tbody>
                     </table>
                 </li>
diff --git a/site/xref/org/apache/juneau/common/collections/Cache.html b/site/xref/org/apache/juneau/common/collections/Cache.html
index 360b843464..318c6ff0fe 100644
--- a/site/xref/org/apache/juneau/common/collections/Cache.html
+++ b/site/xref/org/apache/juneau/common/collections/Cache.html
@@ -155,7 +155,38 @@
 <a class="jxr_linenumber" name="L147" href="#L147">147</a> 		}
 <a class="jxr_linenumber" name="L148" href="#L148">148</a> 		<strong class="jxr_keyword">return</strong> v;
 <a class="jxr_linenumber" name="L149" href="#L149">149</a> 	}
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> }
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> 
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em class="jxr_javadoccomment">	 * Returns the current number of entries in this cache.</em>
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">	 * @return The cache size.</em>
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> size() {
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> 		<strong class="jxr_keyword">return</strong> cache == <strong class="jxr_keyword">null</strong> ? 0 : cache.size();
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> 	}
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> 
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">	 * Clears all entries from this cache.</em>
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">	 * This method can be called to free memory or when you want to ensure</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">	 * fresh lookups (e.g., after data has been modified).</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clear() {
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> 		<strong class="jxr_keyword">if</strong> (cache != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> 			cache.clear();
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> 		}
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> 	}
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> 
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">	 * Returns the number of cache hits since this cache was created.</em>
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">	 * @return The number of cache hits.</em>
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L178" href="#L178">178</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getCacheHits() {
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> 		<strong class="jxr_keyword">return</strong> cacheHits.get();
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> 	}
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> }
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/common/utils/DateUtils.html b/site/xref/org/apache/juneau/common/utils/DateUtils.html
index bb26a0ceb4..0012b859d2 100644
--- a/site/xref/org/apache/juneau/common/utils/DateUtils.html
+++ b/site/xref/org/apache/juneau/common/utils/DateUtils.html
@@ -35,725 +35,723 @@
 <a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.time.temporal.*;
 <a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.*;
 <a class="jxr_linenumber" name="L29" href="#L29">29</a>  
-<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> jakarta.xml.bind.*;
-<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
-<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> * A utility class for parsing and formatting HTTP dates as used in cookies and other headers.</em>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> * This class handles dates as defined by RFC 2616 section 3.3.1 as well as some other common non-standard formats.</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * This class was copied from HttpClient 4.3.</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="DateUtils" href="../../../../../org/apache/juneau/common/utils/DateUtils.html#DateUtils">DateUtils</a> {
-<a class="jxr_linenumber" name="L45" href="#L45">45</a>  
-<a class="jxr_linenumber" name="L46" href="#L46">46</a>  	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">	 * A factory for {@link SimpleDateFormat}s.</em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment">	 * The instances are stored in a thread-local way because SimpleDateFormat is not thread-safe as noted in</em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment">	 * {@link SimpleDateFormat its javadoc}.</em>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a>  	<strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> DateFormatHolder {
-<a class="jxr_linenumber" name="L54" href="#L54">54</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ThreadLocal&lt;SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt;&gt; THREADLOCAL_FORMATS = <strong class="jxr_keyword">new</strong> ThreadLocal&lt;&gt;() {
-<a class="jxr_linenumber" name="L55" href="#L55">55</a>  			@Override
-<a class="jxr_linenumber" name="L56" href="#L56">56</a>  			<strong class="jxr_keyword">protected</strong> SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt; initialValue() {
-<a class="jxr_linenumber" name="L57" href="#L57">57</a>  				Map&lt;String,SimpleDateFormat&gt; m = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
-<a class="jxr_linenumber" name="L58" href="#L58">58</a>  				<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> SoftReference&lt;&gt;(m);
-<a class="jxr_linenumber" name="L59" href="#L59">59</a>  			}
-<a class="jxr_linenumber" name="L60" href="#L60">60</a>  		};
-<a class="jxr_linenumber" name="L61" href="#L61">61</a>  
-<a class="jxr_linenumber" name="L62" href="#L62">62</a>  		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> clearThreadLocal() {
-<a class="jxr_linenumber" name="L63" href="#L63">63</a>  			THREADLOCAL_FORMATS.remove();
-<a class="jxr_linenumber" name="L64" href="#L64">64</a>  		}
-<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
-<a class="jxr_linenumber" name="L66" href="#L66">66</a>  		<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment">		 * Creates a {@link SimpleDateFormat} for the requested format string.</em>
-<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment">		 *</em>
-<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <em class="jxr_javadoccomment">		 * @param pattern</em>
-<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">		 * 	A non-&lt;c&gt;null&lt;/c&gt; format String according to {@link SimpleDateFormat}.</em>
-<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">		 * 	The format is not checked against &lt;c&gt;null&lt;/c&gt; since all paths go through {@link DateUtils}.</em>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment">		 * @return</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment">		 * 	The requested format.</em>
-<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment">		 * 	This simple date-format should not be used to {@link SimpleDateFormat#applyPattern(String) apply} to a</em>
-<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment">		 * 	different pattern.</em>
-<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment">		 */</em>
-<a class="jxr_linenumber" name="L77" href="#L77">77</a>  		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> SimpleDateFormat formatFor(<strong class="jxr_keyword">final</strong> String pattern) {
-<a class="jxr_linenumber" name="L78" href="#L78">78</a>  			<strong class="jxr_keyword">final</strong> SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt; ref = THREADLOCAL_FORMATS.get();
-<a class="jxr_linenumber" name="L79" href="#L79">79</a>  			Map&lt;String,SimpleDateFormat&gt; formats = ref.get();
-<a class="jxr_linenumber" name="L80" href="#L80">80</a>  			<strong class="jxr_keyword">if</strong> (formats == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L81" href="#L81">81</a>  				formats = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
-<a class="jxr_linenumber" name="L82" href="#L82">82</a>  				THREADLOCAL_FORMATS.set(<strong class="jxr_keyword">new</strong> SoftReference&lt;&gt;(formats));
-<a class="jxr_linenumber" name="L83" href="#L83">83</a>  			}
-<a class="jxr_linenumber" name="L84" href="#L84">84</a>  			SimpleDateFormat format = formats.get(pattern);
-<a class="jxr_linenumber" name="L85" href="#L85">85</a>  			<strong class="jxr_keyword">if</strong> (format == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L86" href="#L86">86</a>  				format = <strong class="jxr_keyword">new</strong> SimpleDateFormat(pattern, Locale.US);
-<a class="jxr_linenumber" name="L87" href="#L87">87</a>  				format.setTimeZone(TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>));
-<a class="jxr_linenumber" name="L88" href="#L88">88</a>  				formats.put(pattern, format);
-<a class="jxr_linenumber" name="L89" href="#L89">89</a>  			}
-<a class="jxr_linenumber" name="L90" href="#L90">90</a>  			<strong class="jxr_keyword">return</strong> format;
-<a class="jxr_linenumber" name="L91" href="#L91">91</a>  		}
-<a class="jxr_linenumber" name="L92" href="#L92">92</a>  	}
-<a class="jxr_linenumber" name="L93" href="#L93">93</a>  
-<a class="jxr_linenumber" name="L94" href="#L94">94</a>  	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in RFC 1123 format.</em>
-<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L97" href="#L97">97</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_RFC1123 = <span class="jxr_string">"EEE, dd MMM yyyy HH:mm:ss zzz"</span>;
-<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
-<a class="jxr_linenumber" name="L99" href="#L99">99</a>  	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in RFC 1036 format.</em>
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_RFC1036 = <span class="jxr_string">"EEE, dd-MMM-yy HH:mm:ss zzz"</span>;
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in ANSI C &lt;c&gt;asctime()&lt;/c&gt; format.</em>
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_ASCTIME = <span class="jxr_string">"EEE MMM d HH:mm:ss yyyy"</span>;
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TimeZone GMT = TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>);
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> 
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> 	<strong class="jxr_keyword">static</strong> {
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> 		<strong class="jxr_keyword">final</strong> Calendar calendar = Calendar.getInstance();
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> 		calendar.setTimeZone(GMT);
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> 		calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0);
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> 		calendar.set(Calendar.MILLISECOND, 0);
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> 	}
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> 
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment">	 * Clears thread-local variable containing {@link java.text.DateFormat} cache.</em>
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> clearThreadLocal() {
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> 		DateFormatHolder.clearThreadLocal();
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> 	}
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">	 * Formats the given date according to the specified pattern.</em>
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment">	 * The pattern must conform to that used by the {@link SimpleDateFormat simple date format} class.</em>
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment">	 * @param date The date to format.</em>
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment">	 * @param pattern The pattern to use for formatting the date.</em>
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment">	 * @return A formatted date string.</em>
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment">	 * @throws IllegalArgumentException If the given date pattern is invalid.</em>
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment">	 * @see SimpleDateFormat</em>
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String formatDate(<strong class="jxr_keyword">final</strong> Date date, <strong class="jxr_keyword">final</strong> String pattern) {
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> 		<strong class="jxr_keyword">final</strong> SimpleDateFormat formatter = DateFormatHolder.formatFor(pattern);
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> 		<strong class="jxr_keyword">return</strong> formatter.format(date);
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> 	}
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> 
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment">	 * Returns a {@link DateTimeFormatter} using either a pattern or predefined pattern name.</em>
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">	 * @param pattern The pattern (e.g. &lt;js&gt;"yyyy-MM-dd"&lt;/js&gt;) or pattern name (e.g. &lt;js&gt;"ISO_INSTANT"&lt;/js&gt;).</em>
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">	 * @return The formatter.</em>
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> DateTimeFormatter getFormatter(String pattern) {
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmpty(pattern))
-<a class="jxr_linenumber" name="L148" href="#L148">148</a> 			<strong class="jxr_keyword">return</strong> DateTimeFormatter.ISO_INSTANT;
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> 		<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> 			<strong class="jxr_keyword">for</strong> (Field f : DateTimeFormatter.<strong class="jxr_keyword">class</strong>.getFields()) {
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> 				<strong class="jxr_keyword">if</strong> (f.getName().equals(pattern)) {
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> 					<strong class="jxr_keyword">return</strong> (DateTimeFormatter)f.get(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> 				}
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> 			}
-<a class="jxr_linenumber" name="L155" href="#L155">155</a> 			<strong class="jxr_keyword">return</strong> DateTimeFormatter.ofPattern(pattern);
-<a class="jxr_linenumber" name="L156" href="#L156">156</a> 		} <strong class="jxr_keyword">catch</strong> (IllegalArgumentException | IllegalAccessException e) {
-<a class="jxr_linenumber" name="L157" href="#L157">157</a> 			<strong class="jxr_keyword">throw</strong> asRuntimeException(e);
-<a class="jxr_linenumber" name="L158" href="#L158">158</a> 		}
-<a class="jxr_linenumber" name="L159" href="#L159">159</a> 	}
-<a class="jxr_linenumber" name="L160" href="#L160">160</a> 
-<a class="jxr_linenumber" name="L161" href="#L161">161</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment">	 * Parses an ISO8601 date string into a Calendar object.</em>
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">	 * This method converts an ISO8601 formatted date/time string into a Calendar object,</em>
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">	 * preserving timezone information and handling various ISO8601 formats. The method</em>
-<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">	 * automatically normalizes the input string to ensure it can be parsed correctly.</em>
-<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment">	 * The method supports the following ISO8601 formats:</em>
-<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt; - UTC timezone</em>
-<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt; - Offset timezone</em>
-<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45+09:00"&lt;/js&gt; - Positive offset timezone</em>
-<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15"&lt;/js&gt; - Date only (time defaults to 00:00:00)</em>
-<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30"&lt;/js&gt; - Date and time (seconds default to 00)</em>
-<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45.123"&lt;/js&gt; - With milliseconds</em>
-<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse UTC timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;utcCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with UTC timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse offset timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;estCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with EST timezone (-05:00)&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse date only&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;dateCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with time set to 00:00:00 in system timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse with milliseconds&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;msCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45.123Z"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with 123 milliseconds&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment">	 * The method preserves the original timezone information from the ISO8601 string.</em>
-<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_javadoccomment">	 * If no timezone is specified, the system's default timezone is used. The resulting</em>
-<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">	 * Calendar object will have the appropriate timezone set.</em>
-<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Input Normalization:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L207" href="#L207">207</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L208" href="#L208">208</a> <em class="jxr_javadoccomment">	 * The method automatically normalizes incomplete ISO8601 strings by:</em>
-<a class="jxr_linenumber" name="L209" href="#L209">209</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L210" href="#L210">210</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding missing time components (defaults to 00:00:00)</em>
-<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding timezone information if missing (uses system default)</em>
-<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Ensuring proper format compliance</em>
-<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L214" href="#L214">214</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <em class="jxr_javadoccomment"> * A utility class for parsing and formatting HTTP dates as used in cookies and other headers.</em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * This class handles dates as defined by RFC 2616 section 3.3.1 as well as some other common non-standard formats.</em>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * This class was copied from HttpClient 4.3.</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="DateUtils" href="../../../../../org/apache/juneau/common/utils/DateUtils.html#DateUtils">DateUtils</a> {
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>  
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>  	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment">	 * A factory for {@link SimpleDateFormat}s.</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">	 * The instances are stored in a thread-local way because SimpleDateFormat is not thread-safe as noted in</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment">	 * {@link SimpleDateFormat its javadoc}.</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>  	<strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> DateFormatHolder {
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ThreadLocal&lt;SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt;&gt; THREADLOCAL_FORMATS = <strong class="jxr_keyword">new</strong> ThreadLocal&lt;&gt;() {
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>  			@Override
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>  			<strong class="jxr_keyword">protected</strong> SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt; initialValue() {
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  				Map&lt;String,SimpleDateFormat&gt; m = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="L56" href="#L56">56</a>  				<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> SoftReference&lt;&gt;(m);
+<a class="jxr_linenumber" name="L57" href="#L57">57</a>  			}
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>  		};
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>  
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>  		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> clearThreadLocal() {
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>  			THREADLOCAL_FORMATS.remove();
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>  		}
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>  		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <em class="jxr_javadoccomment">		 * Creates a {@link SimpleDateFormat} for the requested format string.</em>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment">		 * @param pattern</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment">		 * 	A non-&lt;c&gt;null&lt;/c&gt; format String according to {@link SimpleDateFormat}.</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <em class="jxr_javadoccomment">		 * 	The format is not checked against &lt;c&gt;null&lt;/c&gt; since all paths go through {@link DateUtils}.</em>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">		 * @return</em>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">		 * 	The requested format.</em>
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment">		 * 	This simple date-format should not be used to {@link SimpleDateFormat#applyPattern(String) apply} to a</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment">		 * 	different pattern.</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L75" href="#L75">75</a>  		<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> SimpleDateFormat formatFor(<strong class="jxr_keyword">final</strong> String pattern) {
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>  			<strong class="jxr_keyword">final</strong> SoftReference&lt;Map&lt;String,SimpleDateFormat&gt;&gt; ref = THREADLOCAL_FORMATS.get();
+<a class="jxr_linenumber" name="L77" href="#L77">77</a>  			Map&lt;String,SimpleDateFormat&gt; formats = ref.get();
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>  			<strong class="jxr_keyword">if</strong> (formats == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L79" href="#L79">79</a>  				formats = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="L80" href="#L80">80</a>  				THREADLOCAL_FORMATS.set(<strong class="jxr_keyword">new</strong> SoftReference&lt;&gt;(formats));
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>  			}
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>  			SimpleDateFormat format = formats.get(pattern);
+<a class="jxr_linenumber" name="L83" href="#L83">83</a>  			<strong class="jxr_keyword">if</strong> (format == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>  				format = <strong class="jxr_keyword">new</strong> SimpleDateFormat(pattern, Locale.US);
+<a class="jxr_linenumber" name="L85" href="#L85">85</a>  				format.setTimeZone(TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>));
+<a class="jxr_linenumber" name="L86" href="#L86">86</a>  				formats.put(pattern, format);
+<a class="jxr_linenumber" name="L87" href="#L87">87</a>  			}
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>  			<strong class="jxr_keyword">return</strong> format;
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>  		}
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>  	}
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>  	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in RFC 1123 format.</em>
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_RFC1123 = <span class="jxr_string">"EEE, dd MMM yyyy HH:mm:ss zzz"</span>;
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>  
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>  	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in RFC 1036 format.</em>
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_RFC1036 = <span class="jxr_string">"EEE, dd-MMM-yy HH:mm:ss zzz"</span>;
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment">	 * Date format pattern used to parse HTTP date headers in ANSI C &lt;c&gt;asctime()&lt;/c&gt; format.</em>
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PATTERN_ASCTIME = <span class="jxr_string">"EEE MMM d HH:mm:ss yyyy"</span>;
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> TimeZone GMT = TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>);
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> 
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> 	<strong class="jxr_keyword">static</strong> {
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> 		<strong class="jxr_keyword">final</strong> Calendar calendar = Calendar.getInstance();
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> 		calendar.setTimeZone(GMT);
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> 		calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0);
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> 		calendar.set(Calendar.MILLISECOND, 0);
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> 	}
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> 
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment">	 * Clears thread-local variable containing {@link java.text.DateFormat} cache.</em>
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> clearThreadLocal() {
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> 		DateFormatHolder.clearThreadLocal();
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> 	}
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> 
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">	 * Formats the given date according to the specified pattern.</em>
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">	 * The pattern must conform to that used by the {@link SimpleDateFormat simple date format} class.</em>
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment">	 * @param date The date to format.</em>
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment">	 * @param pattern The pattern to use for formatting the date.</em>
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment">	 * @return A formatted date string.</em>
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment">	 * @throws IllegalArgumentException If the given date pattern is invalid.</em>
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment">	 * @see SimpleDateFormat</em>
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String formatDate(<strong class="jxr_keyword">final</strong> Date date, <strong class="jxr_keyword">final</strong> String pattern) {
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> 		<strong class="jxr_keyword">final</strong> SimpleDateFormat formatter = DateFormatHolder.formatFor(pattern);
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> 		<strong class="jxr_keyword">return</strong> formatter.format(date);
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> 	}
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_javadoccomment">	 * Returns a {@link DateTimeFormatter} using either a pattern or predefined pattern name.</em>
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment">	 * @param pattern The pattern (e.g. &lt;js&gt;"yyyy-MM-dd"&lt;/js&gt;) or pattern name (e.g. &lt;js&gt;"ISO_INSTANT"&lt;/js&gt;).</em>
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">	 * @return The formatter.</em>
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> DateTimeFormatter getFormatter(String pattern) {
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmpty(pattern))
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> 			<strong class="jxr_keyword">return</strong> DateTimeFormatter.ISO_INSTANT;
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> 		<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> 			<strong class="jxr_keyword">for</strong> (Field f : DateTimeFormatter.<strong class="jxr_keyword">class</strong>.getFields()) {
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> 				<strong class="jxr_keyword">if</strong> (f.getName().equals(pattern)) {
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> 					<strong class="jxr_keyword">return</strong> (DateTimeFormatter)f.get(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> 				}
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> 			}
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> 			<strong class="jxr_keyword">return</strong> DateTimeFormatter.ofPattern(pattern);
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> 		} <strong class="jxr_keyword">catch</strong> (IllegalArgumentException | IllegalAccessException e) {
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> 			<strong class="jxr_keyword">throw</strong> asRuntimeException(e);
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> 		}
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> 	}
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment">	 * Parses an ISO8601 date string into a Calendar object.</em>
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">	 * This method converts an ISO8601 formatted date/time string into a Calendar object,</em>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">	 * preserving timezone information and handling various ISO8601 formats. The method</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">	 * automatically normalizes the input string to ensure it can be parsed correctly.</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">	 * The method supports the following ISO8601 formats:</em>
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt; - UTC timezone</em>
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt; - Offset timezone</em>
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45+09:00"&lt;/js&gt; - Positive offset timezone</em>
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15"&lt;/js&gt; - Date only (time defaults to 00:00:00)</em>
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30"&lt;/js&gt; - Date and time (seconds default to 00)</em>
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2024-01-15T14:30:45.123"&lt;/js&gt; - With milliseconds</em>
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse UTC timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;utcCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with UTC timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse offset timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;estCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with EST timezone (-05:00)&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse date only&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;dateCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with time set to 00:00:00 in system timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse with milliseconds&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;msCal&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601Calendar&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45.123Z"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: Calendar with 123 milliseconds&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">	 * The method preserves the original timezone information from the ISO8601 string.</em>
+<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">	 * If no timezone is specified, the system's default timezone is used. The resulting</em>
+<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment">	 * Calendar object will have the appropriate timezone set.</em>
+<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Input Normalization:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_javadoccomment">	 * The method automatically normalizes incomplete ISO8601 strings by:</em>
+<a class="jxr_linenumber" name="L207" href="#L207">207</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L208" href="#L208">208</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding missing time components (defaults to 00:00:00)</em>
+<a class="jxr_linenumber" name="L209" href="#L209">209</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding timezone information if missing (uses system default)</em>
+<a class="jxr_linenumber" name="L210" href="#L210">210</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Ensuring proper format compliance</em>
+<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L214" href="#L214">214</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
 <a class="jxr_linenumber" name="L215" href="#L215">215</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L216" href="#L216">216</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> <em class="jxr_javadoccomment">	 * @param s The ISO8601 formatted string to parse (can be null or empty)</em>
-<a class="jxr_linenumber" name="L219" href="#L219">219</a> <em class="jxr_javadoccomment">	 * @return Calendar object representing the parsed date/time, or null if input is null/empty</em>
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">	 * @throws DateTimeParseException if the string cannot be parsed as a valid ISO8601 date</em>
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment">	 * @see #fromIso8601(String)</em>
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">	 * @see #toIso8601(Calendar)</em>
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L224" href="#L224">224</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Calendar fromIso8601Calendar(String s) {
-<a class="jxr_linenumber" name="L225" href="#L225">225</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmptyOrBlank(s))
-<a class="jxr_linenumber" name="L226" href="#L226">226</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> 		<strong class="jxr_keyword">return</strong> GregorianCalendar.from(fromIso8601(s));
-<a class="jxr_linenumber" name="L228" href="#L228">228</a> 	}
-<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
-<a class="jxr_linenumber" name="L230" href="#L230">230</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">	 * Parses an ISO8601 date string into a ZonedDateTime object.</em>
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">	 * This method converts an ISO8601 formatted date/time string into a ZonedDateTime object,</em>
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> <em class="jxr_javadoccomment">	 * which provides full timezone context including DST handling. The method automatically</em>
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em class="jxr_javadoccomment">	 * normalizes the input string to ensure it can be parsed correctly.</em>
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em class="jxr_javadoccomment">	 * The method supports the same ISO8601 formats as {@link #fromIso8601Calendar(String)},</em>
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">	 * but returns a modern {@link ZonedDateTime} instead of a legacy {@link Calendar}.</em>
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse UTC timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;utcZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L246" href="#L246">246</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with UTC timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse offset timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;estZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with EST timezone (-05:00)&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse date only&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;dateZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with time set to 00:00:00 in system timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L256" href="#L256">256</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L257" href="#L257">257</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Advantages over Calendar:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Immutable&lt;/c&gt; - Thread-safe by design</em>
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;DST Aware&lt;/c&gt; - Automatic Daylight Saving Time handling</em>
-<a class="jxr_linenumber" name="L261" href="#L261">261</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Modern API&lt;/c&gt; - Part of Java 8+ time package</em>
-<a class="jxr_linenumber" name="L262" href="#L262">262</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Better Performance&lt;/c&gt; - Optimized for modern JVMs</em>
-<a class="jxr_linenumber" name="L263" href="#L263">263</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Type Safety&lt;/c&gt; - Compile-time validation of operations</em>
-<a class="jxr_linenumber" name="L264" href="#L264">264</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L265" href="#L265">265</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L266" href="#L266">266</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L267" href="#L267">267</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L268" href="#L268">268</a> <em class="jxr_javadoccomment">	 * The method preserves the original timezone information from the ISO8601 string.</em>
-<a class="jxr_linenumber" name="L269" href="#L269">269</a> <em class="jxr_javadoccomment">	 * If no timezone is specified, the system's default timezone is used. The resulting</em>
-<a class="jxr_linenumber" name="L270" href="#L270">270</a> <em class="jxr_javadoccomment">	 * ZonedDateTime object will have the appropriate timezone set and will automatically</em>
-<a class="jxr_linenumber" name="L271" href="#L271">271</a> <em class="jxr_javadoccomment">	 * handle DST transitions.</em>
-<a class="jxr_linenumber" name="L272" href="#L272">272</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L273" href="#L273">273</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L274" href="#L274">274</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Input Normalization:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L276" href="#L276">276</a> <em class="jxr_javadoccomment">	 * The method automatically normalizes incomplete ISO8601 strings by:</em>
-<a class="jxr_linenumber" name="L277" href="#L277">277</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L278" href="#L278">278</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding missing time components (defaults to 00:00:00)</em>
-<a class="jxr_linenumber" name="L279" href="#L279">279</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding timezone information if missing (uses system default)</em>
-<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Ensuring proper format compliance</em>
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L282" href="#L282">282</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> <em class="jxr_javadoccomment">	 * @param s The ISO8601 formatted string to parse (can be null or empty)</em>
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_javadoccomment">	 * @return Calendar object representing the parsed date/time, or null if input is null/empty</em>
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> <em class="jxr_javadoccomment">	 * @throws DateTimeParseException if the string cannot be parsed as a valid ISO8601 date</em>
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> <em class="jxr_javadoccomment">	 * @see #fromIso8601(String)</em>
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">	 * @see #toIso8601(Calendar)</em>
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Calendar fromIso8601Calendar(String s) {
+<a class="jxr_linenumber" name="L223" href="#L223">223</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmptyOrBlank(s))
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> 		<strong class="jxr_keyword">return</strong> GregorianCalendar.from(fromIso8601(s));
+<a class="jxr_linenumber" name="L226" href="#L226">226</a> 	}
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
+<a class="jxr_linenumber" name="L228" href="#L228">228</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment">	 * Parses an ISO8601 date string into a ZonedDateTime object.</em>
+<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">	 * This method converts an ISO8601 formatted date/time string into a ZonedDateTime object,</em>
+<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">	 * which provides full timezone context including DST handling. The method automatically</em>
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">	 * normalizes the input string to ensure it can be parsed correctly.</em>
+<a class="jxr_linenumber" name="L235" href="#L235">235</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L236" href="#L236">236</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_javadoccomment">	 * The method supports the same ISO8601 formats as {@link #fromIso8601Calendar(String)},</em>
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em class="jxr_javadoccomment">	 * but returns a modern {@link ZonedDateTime} instead of a legacy {@link Calendar}.</em>
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse UTC timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;utcZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45Z"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with UTC timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L246" href="#L246">246</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse offset timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;estZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15T14:30:45-05:00"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with EST timezone (-05:00)&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Parse date only&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">	 * 	ZonedDateTime &lt;jv&gt;dateZdt&lt;/jv&gt; = DateUtils.&lt;jsm&gt;fromIso8601&lt;/jsm&gt;(&lt;js&gt;"2024-01-15"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: ZonedDateTime with time set to 00:00:00 in system timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Advantages over Calendar:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L257" href="#L257">257</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Immutable&lt;/c&gt; - Thread-safe by design</em>
+<a class="jxr_linenumber" name="L258" href="#L258">258</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;DST Aware&lt;/c&gt; - Automatic Daylight Saving Time handling</em>
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Modern API&lt;/c&gt; - Part of Java 8+ time package</em>
+<a class="jxr_linenumber" name="L260" href="#L260">260</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Better Performance&lt;/c&gt; - Optimized for modern JVMs</em>
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;Type Safety&lt;/c&gt; - Compile-time validation of operations</em>
+<a class="jxr_linenumber" name="L262" href="#L262">262</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L263" href="#L263">263</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L265" href="#L265">265</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L266" href="#L266">266</a> <em class="jxr_javadoccomment">	 * The method preserves the original timezone information from the ISO8601 string.</em>
+<a class="jxr_linenumber" name="L267" href="#L267">267</a> <em class="jxr_javadoccomment">	 * If no timezone is specified, the system's default timezone is used. The resulting</em>
+<a class="jxr_linenumber" name="L268" href="#L268">268</a> <em class="jxr_javadoccomment">	 * ZonedDateTime object will have the appropriate timezone set and will automatically</em>
+<a class="jxr_linenumber" name="L269" href="#L269">269</a> <em class="jxr_javadoccomment">	 * handle DST transitions.</em>
+<a class="jxr_linenumber" name="L270" href="#L270">270</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L271" href="#L271">271</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L272" href="#L272">272</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Input Normalization:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L273" href="#L273">273</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L274" href="#L274">274</a> <em class="jxr_javadoccomment">	 * The method automatically normalizes incomplete ISO8601 strings by:</em>
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L276" href="#L276">276</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding missing time components (defaults to 00:00:00)</em>
+<a class="jxr_linenumber" name="L277" href="#L277">277</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Adding timezone information if missing (uses system default)</em>
+<a class="jxr_linenumber" name="L278" href="#L278">278</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;Ensuring proper format compliance</em>
+<a class="jxr_linenumber" name="L279" href="#L279">279</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
 <a class="jxr_linenumber" name="L283" href="#L283">283</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L284" href="#L284">284</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em class="jxr_javadoccomment">	 * @param s The ISO8601 formatted string to parse (can be null or empty)</em>
-<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em class="jxr_javadoccomment">	 * @return ZonedDateTime object representing the parsed date/time, or null if input is null/empty</em>
-<a class="jxr_linenumber" name="L288" href="#L288">288</a> <em class="jxr_javadoccomment">	 * @throws DateTimeParseException if the string cannot be parsed as a valid ISO8601 date</em>
-<a class="jxr_linenumber" name="L289" href="#L289">289</a> <em class="jxr_javadoccomment">	 * @see #fromIso8601Calendar(String)</em>
-<a class="jxr_linenumber" name="L290" href="#L290">290</a> <em class="jxr_javadoccomment">	 * @see ZonedDateTime</em>
-<a class="jxr_linenumber" name="L291" href="#L291">291</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L292" href="#L292">292</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ZonedDateTime fromIso8601(String s) {
-<a class="jxr_linenumber" name="L293" href="#L293">293</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmptyOrBlank(s))
-<a class="jxr_linenumber" name="L294" href="#L294">294</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L295" href="#L295">295</a> 		String validDate = toValidIso8601DT(s);
-<a class="jxr_linenumber" name="L296" href="#L296">296</a> 		<strong class="jxr_keyword">return</strong> ZonedDateTime.parse(validDate, DateTimeFormatter.ISO_DATE_TIME);
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> 	}
-<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
-<a class="jxr_linenumber" name="L299" href="#L299">299</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">	 * Converts a Calendar object to an ISO8601 formatted string.</em>
-<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment">	 * This method formats a Calendar object into a standard ISO8601 date/time string</em>
-<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">	 * with timezone information. The output format follows the pattern:</em>
-<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">	 * &lt;code&gt;yyyy-MM-dd'T'HH:mm:ssXXX&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_javadoccomment">	 * The method preserves the timezone information from the Calendar object and</em>
-<a class="jxr_linenumber" name="L309" href="#L309">309</a> <em class="jxr_javadoccomment">	 * formats it according to ISO8601 standards, including the timezone offset.</em>
-<a class="jxr_linenumber" name="L310" href="#L310">310</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L311" href="#L311">311</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Create a Calendar with a specific timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;cal&lt;/jv&gt; = Calendar.getInstance(TimeZone.getTimeZone(&lt;js&gt;"America/New_York"&lt;/js&gt;));</em>
-<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;cal&lt;/jv&gt;.set(2024, Calendar.JANUARY, 15, 14, 30, 45);</em>
-<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;cal&lt;/jv&gt;.set(Calendar.MILLISECOND, 123);</em>
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Convert to ISO8601 string&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">	 * 	String &lt;jv&gt;iso8601&lt;/jv&gt; = DateUtils.&lt;jsm&gt;toIso8601&lt;/jsm&gt;(&lt;jv&gt;cal&lt;/jv&gt;);</em>
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: "2024-01-15T14:30:45-05:00" (or -04:00 during DST)&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// UTC timezone example&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L323" href="#L323">323</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;utcCal&lt;/jv&gt; = Calendar.getInstance(TimeZone.getTimeZone(&lt;js&gt;"UTC"&lt;/js&gt;));</em>
-<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;utcCal&lt;/jv&gt;.set(2024, Calendar.JANUARY, 15, 19, 30, 45);</em>
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">	 * 	String &lt;jv&gt;utcIso&lt;/jv&gt; = DateUtils.&lt;jsm&gt;toIso8601&lt;/jsm&gt;(&lt;jv&gt;utcCal&lt;/jv&gt;);</em>
-<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: "2024-01-15T19:30:45Z"&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Format Details:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;yyyy&lt;/c&gt; - 4-digit year</em>
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;MM&lt;/c&gt; - 2-digit month (01-12)</em>
-<a class="jxr_linenumber" name="L333" href="#L333">333</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;dd&lt;/c&gt; - 2-digit day of month (01-31)</em>
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;T&lt;/c&gt; - Literal 'T' separator between date and time</em>
-<a class="jxr_linenumber" name="L335" href="#L335">335</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;HH&lt;/c&gt; - 2-digit hour in 24-hour format (00-23)</em>
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;mm&lt;/c&gt; - 2-digit minute (00-59)</em>
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;ss&lt;/c&gt; - 2-digit second (00-59)</em>
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;XXX&lt;/c&gt; - Timezone offset (+HH:mm, -HH:mm, or Z for UTC)</em>
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L340" href="#L340">340</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L341" href="#L341">341</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> <em class="jxr_javadoccomment">	 * The method uses the Calendar's timezone to determine the appropriate offset.</em>
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> <em class="jxr_javadoccomment">	 * UTC timezones are represented as 'Z', while other timezones show their</em>
-<a class="jxr_linenumber" name="L345" href="#L345">345</a> <em class="jxr_javadoccomment">	 * offset from UTC (e.g., -05:00 for EST, -04:00 for EDT).</em>
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L284" href="#L284">284</a> <em class="jxr_javadoccomment">	 * @param s The ISO8601 formatted string to parse (can be null or empty)</em>
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> <em class="jxr_javadoccomment">	 * @return ZonedDateTime object representing the parsed date/time, or null if input is null/empty</em>
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em class="jxr_javadoccomment">	 * @throws DateTimeParseException if the string cannot be parsed as a valid ISO8601 date</em>
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em class="jxr_javadoccomment">	 * @see #fromIso8601Calendar(String)</em>
+<a class="jxr_linenumber" name="L288" href="#L288">288</a> <em class="jxr_javadoccomment">	 * @see ZonedDateTime</em>
+<a class="jxr_linenumber" name="L289" href="#L289">289</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L290" href="#L290">290</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ZonedDateTime fromIso8601(String s) {
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmptyOrBlank(s))
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> 		String validDate = toValidIso8601DT(s);
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> 		<strong class="jxr_keyword">return</strong> ZonedDateTime.parse(validDate, DateTimeFormatter.ISO_DATE_TIME);
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> 	}
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> 
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> <em class="jxr_javadoccomment">	 * Converts a Calendar object to an ISO8601 formatted string.</em>
+<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">	 * This method formats a Calendar object into a standard ISO8601 date/time string</em>
+<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">	 * with timezone information. The output format follows the pattern:</em>
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment">	 * &lt;code&gt;yyyy-MM-dd'T'HH:mm:ssXXX&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">	 * The method preserves the timezone information from the Calendar object and</em>
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">	 * formats it according to ISO8601 standards, including the timezone offset.</em>
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L311" href="#L311">311</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Create a Calendar with a specific timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;cal&lt;/jv&gt; = Calendar.getInstance(TimeZone.getTimeZone(&lt;js&gt;"America/New_York"&lt;/js&gt;));</em>
+<a class="jxr_linenumber" name="L313" href="#L313">313</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;cal&lt;/jv&gt;.set(2024, Calendar.JANUARY, 15, 14, 30, 45);</em>
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;cal&lt;/jv&gt;.set(Calendar.MILLISECOND, 123);</em>
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Convert to ISO8601 string&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">	 * 	String &lt;jv&gt;iso8601&lt;/jv&gt; = DateUtils.&lt;jsm&gt;toIso8601&lt;/jsm&gt;(&lt;jv&gt;cal&lt;/jv&gt;);</em>
+<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: "2024-01-15T14:30:45-05:00" (or -04:00 during DST)&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// UTC timezone example&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">	 * 	Calendar &lt;jv&gt;utcCal&lt;/jv&gt; = Calendar.getInstance(TimeZone.getTimeZone(&lt;js&gt;"UTC"&lt;/js&gt;));</em>
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">	 * 	&lt;jv&gt;utcCal&lt;/jv&gt;.set(2024, Calendar.JANUARY, 15, 19, 30, 45);</em>
+<a class="jxr_linenumber" name="L323" href="#L323">323</a> <em class="jxr_javadoccomment">	 * 	String &lt;jv&gt;utcIso&lt;/jv&gt; = DateUtils.&lt;jsm&gt;toIso8601&lt;/jsm&gt;(&lt;jv&gt;utcCal&lt;/jv&gt;);</em>
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Result: "2024-01-15T19:30:45Z"&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Format Details:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;yyyy&lt;/c&gt; - 4-digit year</em>
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;MM&lt;/c&gt; - 2-digit month (01-12)</em>
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;dd&lt;/c&gt; - 2-digit day of month (01-31)</em>
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;T&lt;/c&gt; - Literal 'T' separator between date and time</em>
+<a class="jxr_linenumber" name="L333" href="#L333">333</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;HH&lt;/c&gt; - 2-digit hour in 24-hour format (00-23)</em>
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;mm&lt;/c&gt; - 2-digit minute (00-59)</em>
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;ss&lt;/c&gt; - 2-digit second (00-59)</em>
+<a class="jxr_linenumber" name="L336" href="#L336">336</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;c&gt;XXX&lt;/c&gt; - Timezone offset (+HH:mm, -HH:mm, or Z for UTC)</em>
+<a class="jxr_linenumber" name="L337" href="#L337">337</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L338" href="#L338">338</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Timezone Handling:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> <em class="jxr_javadoccomment">	 * The method uses the Calendar's timezone to determine the appropriate offset.</em>
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> <em class="jxr_javadoccomment">	 * UTC timezones are represented as 'Z', while other timezones show their</em>
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> <em class="jxr_javadoccomment">	 * offset from UTC (e.g., -05:00 for EST, -04:00 for EDT).</em>
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
 <a class="jxr_linenumber" name="L347" href="#L347">347</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> <em class="jxr_javadoccomment">	 * See Also:  &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L350" href="#L350">350</a> <em class="jxr_javadoccomment">	 * @param c The Calendar object to convert (cannot be null)</em>
-<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">	 * @return ISO8601 formatted string representation of the Calendar</em>
-<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">	 * @throws NullPointerException if the Calendar parameter is null</em>
-<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">	 * @see SimpleDateFormat</em>
-<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">	 * @see Calendar#getTimeZone()</em>
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L356" href="#L356">356</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toIso8601(Calendar c) {
-<a class="jxr_linenumber" name="L357" href="#L357">357</a> 		SimpleDateFormat sdf = <strong class="jxr_keyword">new</strong> SimpleDateFormat(<span class="jxr_string">"yyyy-MM-dd'T'HH:mm:ssXXX"</span>);
-<a class="jxr_linenumber" name="L358" href="#L358">358</a> 		sdf.setTimeZone(c.getTimeZone());
-<a class="jxr_linenumber" name="L359" href="#L359">359</a> 		<strong class="jxr_keyword">return</strong> sdf.format(c.getTime());
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> 	}
-<a class="jxr_linenumber" name="L361" href="#L361">361</a> 
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L363" href="#L363">363</a> <em class="jxr_javadoccomment">	 * Pads out an ISO8601 string so that it can be parsed using {@link DatatypeConverter#parseDateTime(String)}.</em>
-<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L365" href="#L365">365</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45-05:00"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45-05:00"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45Z"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45.1Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45.1Z"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:00Z"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L370" href="#L370">370</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:00"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04"&lt;/js&gt; -&amp;gt; &lt;li&gt;&lt;js&gt;"2001-07-04T00:00:00"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-01T00:00:00"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L373" href="#L373">373</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-01-01T00:00:00"&lt;/js&gt;</em>
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment">	 * @param in The string to pad.</em>
-<a class="jxr_linenumber" name="L377" href="#L377">377</a> <em class="jxr_javadoccomment">	 * @return The padded string.</em>
-<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L379" href="#L379">379</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toValidIso8601DT(String in) {
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> 		Utils.assertArgNotNull(<span class="jxr_string">"in"</span>, in);
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> <em class="jxr_javadoccomment">	 * @param c The Calendar object to convert (cannot be null)</em>
+<a class="jxr_linenumber" name="L349" href="#L349">349</a> <em class="jxr_javadoccomment">	 * @return ISO8601 formatted string representation of the Calendar</em>
+<a class="jxr_linenumber" name="L350" href="#L350">350</a> <em class="jxr_javadoccomment">	 * @throws NullPointerException if the Calendar parameter is null</em>
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">	 * @see SimpleDateFormat</em>
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">	 * @see Calendar#getTimeZone()</em>
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toIso8601(Calendar c) {
+<a class="jxr_linenumber" name="L355" href="#L355">355</a> 		SimpleDateFormat sdf = <strong class="jxr_keyword">new</strong> SimpleDateFormat(<span class="jxr_string">"yyyy-MM-dd'T'HH:mm:ssXXX"</span>);
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> 		sdf.setTimeZone(c.getTimeZone());
+<a class="jxr_linenumber" name="L357" href="#L357">357</a> 		<strong class="jxr_keyword">return</strong> sdf.format(c.getTime());
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> 	}
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> 
+<a class="jxr_linenumber" name="L360" href="#L360">360</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L361" href="#L361">361</a> <em class="jxr_javadoccomment">	 * Pads out an ISO8601 string so that it can be parsed using {@link DatatypeConverter#parseDateTime(String)}.</em>
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L363" href="#L363">363</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45-05:00"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45-05:00"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45Z"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30:45.1Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:45.1Z"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30Z"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:00Z"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04T15:30"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-04T15:30:00"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07-04"&lt;/js&gt; -&amp;gt; &lt;li&gt;&lt;js&gt;"2001-07-04T00:00:00"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001-07"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-07-01T00:00:00"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"2001"&lt;/js&gt; -&amp;gt; &lt;js&gt;"2001-01-01T00:00:00"&lt;/js&gt;</em>
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em class="jxr_javadoccomment">	 * @param in The string to pad.</em>
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em class="jxr_javadoccomment">	 * @return The padded string.</em>
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toValidIso8601DT(String in) {
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> 		Utils.assertArgNotNull(<span class="jxr_string">"in"</span>, in);
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> 
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> 		in = in.trim();
 <a class="jxr_linenumber" name="L381" href="#L381">381</a> 
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> 		in = in.trim();
-<a class="jxr_linenumber" name="L383" href="#L383">383</a> 
-<a class="jxr_linenumber" name="L384" href="#L384">384</a> 		<em class="jxr_comment">// "2001-07-04T15:30:45Z"</em>
-<a class="jxr_linenumber" name="L385" href="#L385">385</a> 		<em class="jxr_comment">// S1: Looking for -</em>
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> 		<em class="jxr_comment">// S2: Found -, looking for -</em>
-<a class="jxr_linenumber" name="L387" href="#L387">387</a> 		<em class="jxr_comment">// S3: Found -, looking for T</em>
-<a class="jxr_linenumber" name="L388" href="#L388">388</a> 		<em class="jxr_comment">// S4: Found T, looking for :</em>
-<a class="jxr_linenumber" name="L389" href="#L389">389</a> 		<em class="jxr_comment">// S5: Found :, looking for :</em>
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> 		<em class="jxr_comment">// S6: Found :, looking for Z or - or +</em>
-<a class="jxr_linenumber" name="L391" href="#L391">391</a> 		<em class="jxr_comment">// S7: Found time zone</em>
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> 
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> 		<strong class="jxr_keyword">var</strong> state = S1;
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> 		<strong class="jxr_keyword">boolean</strong> needsT = false;
-<a class="jxr_linenumber" name="L395" href="#L395">395</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; in.length(); i++) {
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> 			<strong class="jxr_keyword">char</strong> c = in.charAt(i);
-<a class="jxr_linenumber" name="L397" href="#L397">397</a> 			<strong class="jxr_keyword">if</strong> (state == S1) {
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> 				<strong class="jxr_keyword">if</strong> (c == '-')
-<a class="jxr_linenumber" name="L399" href="#L399">399</a> 					state = S2;
-<a class="jxr_linenumber" name="L400" href="#L400">400</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
-<a class="jxr_linenumber" name="L401" href="#L401">401</a> 				<strong class="jxr_keyword">if</strong> (c == '-')
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> 					state = S3;
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
-<a class="jxr_linenumber" name="L404" href="#L404">404</a> 				<strong class="jxr_keyword">if</strong> (c == 'T')
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> 		<em class="jxr_comment">// "2001-07-04T15:30:45Z"</em>
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> 		<em class="jxr_comment">// S1: Looking for -</em>
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> 		<em class="jxr_comment">// S2: Found -, looking for -</em>
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> 		<em class="jxr_comment">// S3: Found -, looking for T</em>
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> 		<em class="jxr_comment">// S4: Found T, looking for :</em>
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> 		<em class="jxr_comment">// S5: Found :, looking for :</em>
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> 		<em class="jxr_comment">// S6: Found :, looking for Z or - or +</em>
+<a class="jxr_linenumber" name="L389" href="#L389">389</a> 		<em class="jxr_comment">// S7: Found time zone</em>
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> 
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> 		<strong class="jxr_keyword">var</strong> state = S1;
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> 		<strong class="jxr_keyword">boolean</strong> needsT = false;
+<a class="jxr_linenumber" name="L393" href="#L393">393</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; in.length(); i++) {
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> 			<strong class="jxr_keyword">char</strong> c = in.charAt(i);
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> 			<strong class="jxr_keyword">if</strong> (state == S1) {
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> 				<strong class="jxr_keyword">if</strong> (c == '-')
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> 					state = S2;
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
+<a class="jxr_linenumber" name="L399" href="#L399">399</a> 				<strong class="jxr_keyword">if</strong> (c == '-')
+<a class="jxr_linenumber" name="L400" href="#L400">400</a> 					state = S3;
+<a class="jxr_linenumber" name="L401" href="#L401">401</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> 				<strong class="jxr_keyword">if</strong> (c == 'T')
+<a class="jxr_linenumber" name="L403" href="#L403">403</a> 					state = S4;
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> 				<strong class="jxr_keyword">if</strong> (c == ' ') {
 <a class="jxr_linenumber" name="L405" href="#L405">405</a> 					state = S4;
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> 				<strong class="jxr_keyword">if</strong> (c == ' ') {
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> 					state = S4;
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> 					needsT = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> 				}
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S4) {
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> 				<strong class="jxr_keyword">if</strong> (c == ':')
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> 					state = S5;
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S5) {
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> 				<strong class="jxr_keyword">if</strong> (c == ':')
-<a class="jxr_linenumber" name="L415" href="#L415">415</a> 					state = S6;
-<a class="jxr_linenumber" name="L416" href="#L416">416</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S6) {
-<a class="jxr_linenumber" name="L417" href="#L417">417</a> 				<strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-')
-<a class="jxr_linenumber" name="L418" href="#L418">418</a> 					state = S7;
-<a class="jxr_linenumber" name="L419" href="#L419">419</a> 			}
-<a class="jxr_linenumber" name="L420" href="#L420">420</a> 		}
-<a class="jxr_linenumber" name="L421" href="#L421">421</a> 
-<a class="jxr_linenumber" name="L422" href="#L422">422</a> 		<strong class="jxr_keyword">if</strong> (needsT)
-<a class="jxr_linenumber" name="L423" href="#L423">423</a> 			in = in.replace(' ', 'T');
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> 
-<a class="jxr_linenumber" name="L425" href="#L425">425</a> 		String result = <strong class="jxr_keyword">switch</strong>(state) {
-<a class="jxr_linenumber" name="L426" href="#L426">426</a> 			<strong class="jxr_keyword">case</strong> S1 -&gt; in + <span class="jxr_string">"-01-01T00:00:00"</span>;
-<a class="jxr_linenumber" name="L427" href="#L427">427</a> 			<strong class="jxr_keyword">case</strong> S2 -&gt; in + <span class="jxr_string">"-01T00:00:00"</span>;
-<a class="jxr_linenumber" name="L428" href="#L428">428</a> 			<strong class="jxr_keyword">case</strong> S3 -&gt; in + <span class="jxr_string">"T00:00:00"</span>;
-<a class="jxr_linenumber" name="L429" href="#L429">429</a> 			<strong class="jxr_keyword">case</strong> S4 -&gt; in + <span class="jxr_string">":00:00"</span>;
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> 			<strong class="jxr_keyword">case</strong> S5 -&gt; in + <span class="jxr_string">":00"</span>;
-<a class="jxr_linenumber" name="L431" href="#L431">431</a> 			<strong class="jxr_keyword">case</strong> S6 -&gt; in;  <em class="jxr_comment">// Complete time, no timezone</em>
-<a class="jxr_linenumber" name="L432" href="#L432">432</a> 			<strong class="jxr_keyword">case</strong> S7 -&gt; in;  <em class="jxr_comment">// Complete time with timezone</em>
-<a class="jxr_linenumber" name="L433" href="#L433">433</a> 			<strong class="jxr_keyword">default</strong> -&gt; in;
-<a class="jxr_linenumber" name="L434" href="#L434">434</a> 		};
-<a class="jxr_linenumber" name="L435" href="#L435">435</a> 
-<a class="jxr_linenumber" name="L436" href="#L436">436</a> 		<strong class="jxr_keyword">if</strong> (state != S7)
-<a class="jxr_linenumber" name="L437" href="#L437">437</a> 			result += ZonedDateTime.now(ZoneId.systemDefault()).getOffset().toString();
-<a class="jxr_linenumber" name="L438" href="#L438">438</a> 
-<a class="jxr_linenumber" name="L439" href="#L439">439</a> 		<strong class="jxr_keyword">return</strong> result;
-<a class="jxr_linenumber" name="L440" href="#L440">440</a> 	}
-<a class="jxr_linenumber" name="L441" href="#L441">441</a> 
-<a class="jxr_linenumber" name="L442" href="#L442">442</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L443" href="#L443">443</a> <em class="jxr_javadoccomment">	 * Determines the precision level of an ISO8601 date/time string using a state machine.</em>
-<a class="jxr_linenumber" name="L444" href="#L444">444</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L445" href="#L445">445</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L446" href="#L446">446</a> <em class="jxr_javadoccomment">	 * This method analyzes the structure of a date/time string to determine the finest level of precision</em>
-<a class="jxr_linenumber" name="L447" href="#L447">447</a> <em class="jxr_javadoccomment">	 * represented. It uses a state machine to parse the string character by character, tracking the precision</em>
-<a class="jxr_linenumber" name="L448" href="#L448">448</a> <em class="jxr_javadoccomment">	 * level as it encounters different components.</em>
-<a class="jxr_linenumber" name="L449" href="#L449">449</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L451" href="#L451">451</a> <em class="jxr_javadoccomment">	 * The method supports the following ISO8601 formats:</em>
-<a class="jxr_linenumber" name="L452" href="#L452">452</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L453" href="#L453">453</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY"&lt;/js&gt; → {@link ChronoField#YEAR}</em>
-<a class="jxr_linenumber" name="L454" href="#L454">454</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM"&lt;/js&gt; → {@link ChronoField#MONTH_OF_YEAR}</em>
-<a class="jxr_linenumber" name="L455" href="#L455">455</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DD"&lt;/js&gt; → {@link ChronoField#DAY_OF_MONTH}</em>
-<a class="jxr_linenumber" name="L456" href="#L456">456</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH"&lt;/js&gt; → {@link ChronoField#HOUR_OF_DAY}</em>
-<a class="jxr_linenumber" name="L457" href="#L457">457</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM"&lt;/js&gt; → {@link ChronoField#MINUTE_OF_HOUR}</em>
-<a class="jxr_linenumber" name="L458" href="#L458">458</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM:SS"&lt;/js&gt; → {@link ChronoField#SECOND_OF_MINUTE}</em>
-<a class="jxr_linenumber" name="L459" href="#L459">459</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM:SS.SSS"&lt;/js&gt; → {@link ChronoField#MILLI_OF_SECOND}</em>
-<a class="jxr_linenumber" name="L460" href="#L460">460</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L461" href="#L461">461</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L463" href="#L463">463</a> <em class="jxr_javadoccomment">	 * Timezone information (Z, +HH:mm, -HH:mm) is preserved but doesn't affect the precision level.</em>
-<a class="jxr_linenumber" name="L464" href="#L464">464</a> <em class="jxr_javadoccomment">	 * Invalid or unrecognized formats default to {@link ChronoField#MILLI_OF_SECOND}.</em>
-<a class="jxr_linenumber" name="L465" href="#L465">465</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Year precision&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L469" href="#L469">469</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision1&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L470" href="#L470">470</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.YEAR&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L471" href="#L471">471</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L472" href="#L472">472</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Month precision&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L473" href="#L473">473</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision2&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L474" href="#L474">474</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.MONTH_OF_YEAR&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L475" href="#L475">475</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L476" href="#L476">476</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Day precision&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L477" href="#L477">477</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision3&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L478" href="#L478">478</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.DAY_OF_MONTH&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L479" href="#L479">479</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L480" href="#L480">480</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Hour precision with timezone&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L481" href="#L481">481</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision4&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01T12Z"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L482" href="#L482">482</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.HOUR_OF_DAY&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L484" href="#L484">484</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Millisecond precision&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L485" href="#L485">485</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision5&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01T12:30:45.123"&lt;/js&gt;);</em>
-<a class="jxr_linenumber" name="L486" href="#L486">486</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.MILLI_OF_SECOND&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L487" href="#L487">487</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> 					needsT = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L407" href="#L407">407</a> 				}
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S4) {
+<a class="jxr_linenumber" name="L409" href="#L409">409</a> 				<strong class="jxr_keyword">if</strong> (c == ':')
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> 					state = S5;
+<a class="jxr_linenumber" name="L411" href="#L411">411</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S5) {
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> 				<strong class="jxr_keyword">if</strong> (c == ':')
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> 					state = S6;
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S6) {
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> 				<strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-')
+<a class="jxr_linenumber" name="L416" href="#L416">416</a> 					state = S7;
+<a class="jxr_linenumber" name="L417" href="#L417">417</a> 			}
+<a class="jxr_linenumber" name="L418" href="#L418">418</a> 		}
+<a class="jxr_linenumber" name="L419" href="#L419">419</a> 
+<a class="jxr_linenumber" name="L420" href="#L420">420</a> 		<strong class="jxr_keyword">if</strong> (needsT)
+<a class="jxr_linenumber" name="L421" href="#L421">421</a> 			in = in.replace(' ', 'T');
+<a class="jxr_linenumber" name="L422" href="#L422">422</a> 
+<a class="jxr_linenumber" name="L423" href="#L423">423</a> 		String result = <strong class="jxr_keyword">switch</strong>(state) {
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> 			<strong class="jxr_keyword">case</strong> S1 -&gt; in + <span class="jxr_string">"-01-01T00:00:00"</span>;
+<a class="jxr_linenumber" name="L425" href="#L425">425</a> 			<strong class="jxr_keyword">case</strong> S2 -&gt; in + <span class="jxr_string">"-01T00:00:00"</span>;
+<a class="jxr_linenumber" name="L426" href="#L426">426</a> 			<strong class="jxr_keyword">case</strong> S3 -&gt; in + <span class="jxr_string">"T00:00:00"</span>;
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> 			<strong class="jxr_keyword">case</strong> S4 -&gt; in + <span class="jxr_string">":00:00"</span>;
+<a class="jxr_linenumber" name="L428" href="#L428">428</a> 			<strong class="jxr_keyword">case</strong> S5 -&gt; in + <span class="jxr_string">":00"</span>;
+<a class="jxr_linenumber" name="L429" href="#L429">429</a> 			<strong class="jxr_keyword">case</strong> S6 -&gt; in;  <em class="jxr_comment">// Complete time, no timezone</em>
+<a class="jxr_linenumber" name="L430" href="#L430">430</a> 			<strong class="jxr_keyword">case</strong> S7 -&gt; in;  <em class="jxr_comment">// Complete time with timezone</em>
+<a class="jxr_linenumber" name="L431" href="#L431">431</a> 			<strong class="jxr_keyword">default</strong> -&gt; in;
+<a class="jxr_linenumber" name="L432" href="#L432">432</a> 		};
+<a class="jxr_linenumber" name="L433" href="#L433">433</a> 
+<a class="jxr_linenumber" name="L434" href="#L434">434</a> 		<strong class="jxr_keyword">if</strong> (state != S7)
+<a class="jxr_linenumber" name="L435" href="#L435">435</a> 			result += ZonedDateTime.now(ZoneId.systemDefault()).getOffset().toString();
+<a class="jxr_linenumber" name="L436" href="#L436">436</a> 
+<a class="jxr_linenumber" name="L437" href="#L437">437</a> 		<strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L438" href="#L438">438</a> 	}
+<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
+<a class="jxr_linenumber" name="L440" href="#L440">440</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L441" href="#L441">441</a> <em class="jxr_javadoccomment">	 * Determines the precision level of an ISO8601 date/time string using a state machine.</em>
+<a class="jxr_linenumber" name="L442" href="#L442">442</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L443" href="#L443">443</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> <em class="jxr_javadoccomment">	 * This method analyzes the structure of a date/time string to determine the finest level of precision</em>
+<a class="jxr_linenumber" name="L445" href="#L445">445</a> <em class="jxr_javadoccomment">	 * represented. It uses a state machine to parse the string character by character, tracking the precision</em>
+<a class="jxr_linenumber" name="L446" href="#L446">446</a> <em class="jxr_javadoccomment">	 * level as it encounters different components.</em>
+<a class="jxr_linenumber" name="L447" href="#L447">447</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L448" href="#L448">448</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L449" href="#L449">449</a> <em class="jxr_javadoccomment">	 * The method supports the following ISO8601 formats:</em>
+<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em class="jxr_javadoccomment">	 * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L451" href="#L451">451</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY"&lt;/js&gt; → {@link ChronoField#YEAR}</em>
+<a class="jxr_linenumber" name="L452" href="#L452">452</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM"&lt;/js&gt; → {@link ChronoField#MONTH_OF_YEAR}</em>
+<a class="jxr_linenumber" name="L453" href="#L453">453</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DD"&lt;/js&gt; → {@link ChronoField#DAY_OF_MONTH}</em>
+<a class="jxr_linenumber" name="L454" href="#L454">454</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH"&lt;/js&gt; → {@link ChronoField#HOUR_OF_DAY}</em>
+<a class="jxr_linenumber" name="L455" href="#L455">455</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM"&lt;/js&gt; → {@link ChronoField#MINUTE_OF_HOUR}</em>
+<a class="jxr_linenumber" name="L456" href="#L456">456</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM:SS"&lt;/js&gt; → {@link ChronoField#SECOND_OF_MINUTE}</em>
+<a class="jxr_linenumber" name="L457" href="#L457">457</a> <em class="jxr_javadoccomment">	 * 	&lt;li&gt;&lt;js&gt;"YYYY-MM-DDTHH:MM:SS.SSS"&lt;/js&gt; → {@link ChronoField#MILLI_OF_SECOND}</em>
+<a class="jxr_linenumber" name="L458" href="#L458">458</a> <em class="jxr_javadoccomment">	 * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L459" href="#L459">459</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L460" href="#L460">460</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L461" href="#L461">461</a> <em class="jxr_javadoccomment">	 * Timezone information (Z, +HH:mm, -HH:mm) is preserved but doesn't affect the precision level.</em>
+<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em class="jxr_javadoccomment">	 * Invalid or unrecognized formats default to {@link ChronoField#MILLI_OF_SECOND}.</em>
+<a class="jxr_linenumber" name="L463" href="#L463">463</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L464" href="#L464">464</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Examples:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L465" href="#L465">465</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Year precision&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision1&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.YEAR&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L469" href="#L469">469</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L470" href="#L470">470</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Month precision&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L471" href="#L471">471</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision2&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L472" href="#L472">472</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.MONTH_OF_YEAR&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L473" href="#L473">473</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L474" href="#L474">474</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Day precision&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L475" href="#L475">475</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision3&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L476" href="#L476">476</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.DAY_OF_MONTH&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L477" href="#L477">477</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L478" href="#L478">478</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Hour precision with timezone&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L479" href="#L479">479</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision4&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01T12Z"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L480" href="#L480">480</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.HOUR_OF_DAY&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L481" href="#L481">481</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L482" href="#L482">482</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Millisecond precision&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_javadoccomment">	 * 	ChronoField &lt;jv&gt;precision5&lt;/jv&gt; = DateUtils.&lt;jsm&gt;getPrecisionFromString&lt;/jsm&gt;(&lt;js&gt;"2011-01-01T12:30:45.123"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L484" href="#L484">484</a> <em class="jxr_javadoccomment">	 * 	&lt;jc&gt;// Returns ChronoField.MILLI_OF_SECOND&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L485" href="#L485">485</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L486" href="#L486">486</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L487" href="#L487">487</a> <em class="jxr_javadoccomment">	 * See Also: &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
 <a class="jxr_linenumber" name="L488" href="#L488">488</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L489" href="#L489">489</a> <em class="jxr_javadoccomment">	 * See Also: &lt;a class="doclink" href="<a href="https://en.wikipedia.org/wiki/ISO_8601" target="alexandria_uri">https://en.wikipedia.org/wiki/ISO_8601</a>"&gt;ISO 8601 - Wikipedia&lt;/a&gt;</em>
-<a class="jxr_linenumber" name="L490" href="#L490">490</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L491" href="#L491">491</a> <em class="jxr_javadoccomment">	 * @param seg The date/time string to analyze (can be null or empty)</em>
-<a class="jxr_linenumber" name="L492" href="#L492">492</a> <em class="jxr_javadoccomment">	 * @return The ChronoField representing the precision level, or {@link ChronoField#MILLI_OF_SECOND} for invalid/empty strings</em>
-<a class="jxr_linenumber" name="L493" href="#L493">493</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
-<a class="jxr_linenumber" name="L494" href="#L494">494</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L495" href="#L495">495</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoField getPrecisionFromString(String seg) {
-<a class="jxr_linenumber" name="L496" href="#L496">496</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmpty(seg))
-<a class="jxr_linenumber" name="L497" href="#L497">497</a> 			<strong class="jxr_keyword">return</strong> ChronoField.MILLI_OF_SECOND;
-<a class="jxr_linenumber" name="L498" href="#L498">498</a> 
-<a class="jxr_linenumber" name="L499" href="#L499">499</a> 		<em class="jxr_comment">// States:</em>
-<a class="jxr_linenumber" name="L500" href="#L500">500</a> 		<em class="jxr_comment">// S1: Looking for year digits (YYYY)</em>
-<a class="jxr_linenumber" name="L501" href="#L501">501</a> 		<em class="jxr_comment">// S2: Found year, looking for - or T or end (YYYY)</em>
-<a class="jxr_linenumber" name="L502" href="#L502">502</a> 		<em class="jxr_comment">// S3: Found -, looking for month digits (YYYY-MM)</em>
-<a class="jxr_linenumber" name="L503" href="#L503">503</a> 		<em class="jxr_comment">// S4: Found month, looking for - or T or end (YYYY-MM)</em>
-<a class="jxr_linenumber" name="L504" href="#L504">504</a> 		<em class="jxr_comment">// S5: Found -, looking for day digits (YYYY-MM-DD)</em>
-<a class="jxr_linenumber" name="L505" href="#L505">505</a> 		<em class="jxr_comment">// S6: Found day, looking for T or end (YYYY-MM-DD)</em>
-<a class="jxr_linenumber" name="L506" href="#L506">506</a> 		<em class="jxr_comment">// S7: Found T, looking for hour digits (YYYY-MM-DDTHH)</em>
-<a class="jxr_linenumber" name="L507" href="#L507">507</a> 		<em class="jxr_comment">// S8: Found hour, looking for : or end (YYYY-MM-DDTHH)</em>
-<a class="jxr_linenumber" name="L508" href="#L508">508</a> 		<em class="jxr_comment">// S9: Found :, looking for minute digits (YYYY-MM-DDTHH:MM)</em>
-<a class="jxr_linenumber" name="L509" href="#L509">509</a> 		<em class="jxr_comment">// S10: Found minute, looking for : or end (YYYY-MM-DDTHH:MM)</em>
-<a class="jxr_linenumber" name="L510" href="#L510">510</a> 		<em class="jxr_comment">// S11: Found :, looking for second digits (YYYY-MM-DDTHH:MM:SS)</em>
-<a class="jxr_linenumber" name="L511" href="#L511">511</a> 		<em class="jxr_comment">// S12: Found second, looking for . or end (YYYY-MM-DDTHH:MM:SS)</em>
-<a class="jxr_linenumber" name="L512" href="#L512">512</a> 		<em class="jxr_comment">// S13: Found ., looking for millisecond digits (YYYY-MM-DDTHH:MM:SS.SSS)</em>
-<a class="jxr_linenumber" name="L513" href="#L513">513</a> 		<em class="jxr_comment">// S14: Found timezone (Z, +HH:mm, -HH:mm)</em>
-<a class="jxr_linenumber" name="L514" href="#L514">514</a> 
-<a class="jxr_linenumber" name="L515" href="#L515">515</a> 		StateEnum state = S1;
-<a class="jxr_linenumber" name="L516" href="#L516">516</a> 		ChronoField precision = ChronoField.YEAR; <em class="jxr_comment">// Track precision as we go</em>
-<a class="jxr_linenumber" name="L517" href="#L517">517</a> 
-<a class="jxr_linenumber" name="L518" href="#L518">518</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; seg.length(); i++) {
-<a class="jxr_linenumber" name="L519" href="#L519">519</a> 			<strong class="jxr_keyword">char</strong> c = seg.charAt(i);
-<a class="jxr_linenumber" name="L520" href="#L520">520</a> 
-<a class="jxr_linenumber" name="L521" href="#L521">521</a> 			<strong class="jxr_keyword">if</strong> (state == S1) {
-<a class="jxr_linenumber" name="L522" href="#L522">522</a> 				<em class="jxr_comment">// S1: Looking for year digits (YYYY)</em>
-<a class="jxr_linenumber" name="L523" href="#L523">523</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L524" href="#L524">524</a> 					state = S2;
-<a class="jxr_linenumber" name="L525" href="#L525">525</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '-') {
-<a class="jxr_linenumber" name="L526" href="#L526">526</a> 					state = S3;
-<a class="jxr_linenumber" name="L527" href="#L527">527</a> 					precision = ChronoField.MONTH_OF_YEAR;
-<a class="jxr_linenumber" name="L528" href="#L528">528</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L529" href="#L529">529</a> 					state = S7;
-<a class="jxr_linenumber" name="L530" href="#L530">530</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L531" href="#L531">531</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L532" href="#L532">532</a> 					state = S14;
-<a class="jxr_linenumber" name="L533" href="#L533">533</a> 					<em class="jxr_comment">// Keep current precision (YEAR)</em>
-<a class="jxr_linenumber" name="L534" href="#L534">534</a> 				}
-<a class="jxr_linenumber" name="L535" href="#L535">535</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
-<a class="jxr_linenumber" name="L536" href="#L536">536</a> 				<em class="jxr_comment">// S2: Found year, looking for - or T or end (YYYY)</em>
-<a class="jxr_linenumber" name="L537" href="#L537">537</a> 				<strong class="jxr_keyword">if</strong> (c == '-') {
-<a class="jxr_linenumber" name="L538" href="#L538">538</a> 					state = S3;
-<a class="jxr_linenumber" name="L539" href="#L539">539</a> 					precision = ChronoField.MONTH_OF_YEAR;
-<a class="jxr_linenumber" name="L540" href="#L540">540</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L541" href="#L541">541</a> 					state = S7;
-<a class="jxr_linenumber" name="L542" href="#L542">542</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L543" href="#L543">543</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L544" href="#L544">544</a> 					state = S14;
-<a class="jxr_linenumber" name="L545" href="#L545">545</a> 					<em class="jxr_comment">// Keep current precision (YEAR)</em>
-<a class="jxr_linenumber" name="L546" href="#L546">546</a> 				}
-<a class="jxr_linenumber" name="L547" href="#L547">547</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
-<a class="jxr_linenumber" name="L548" href="#L548">548</a> 				<em class="jxr_comment">// S3: Found -, looking for month digits (YYYY-MM)</em>
-<a class="jxr_linenumber" name="L549" href="#L549">549</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L550" href="#L550">550</a> 					state = S4;
-<a class="jxr_linenumber" name="L551" href="#L551">551</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '-') {
-<a class="jxr_linenumber" name="L552" href="#L552">552</a> 					state = S5;
-<a class="jxr_linenumber" name="L553" href="#L553">553</a> 					precision = ChronoField.DAY_OF_MONTH;
-<a class="jxr_linenumber" name="L554" href="#L554">554</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L555" href="#L555">555</a> 					state = S7;
-<a class="jxr_linenumber" name="L556" href="#L556">556</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L557" href="#L557">557</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L558" href="#L558">558</a> 					state = S14;
-<a class="jxr_linenumber" name="L559" href="#L559">559</a> 					<em class="jxr_comment">// Keep current precision (MONTH_OF_YEAR)</em>
-<a class="jxr_linenumber" name="L560" href="#L560">560</a> 				}
-<a class="jxr_linenumber" name="L561" href="#L561">561</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S4) {
-<a class="jxr_linenumber" name="L562" href="#L562">562</a> 				<em class="jxr_comment">// S4: Found month, looking for - or T or end (YYYY-MM)</em>
-<a class="jxr_linenumber" name="L563" href="#L563">563</a> 				<strong class="jxr_keyword">if</strong> (c == '-') {
-<a class="jxr_linenumber" name="L564" href="#L564">564</a> 					state = S5;
-<a class="jxr_linenumber" name="L565" href="#L565">565</a> 					precision = ChronoField.DAY_OF_MONTH;
-<a class="jxr_linenumber" name="L566" href="#L566">566</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L567" href="#L567">567</a> 					state = S7;
-<a class="jxr_linenumber" name="L568" href="#L568">568</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L569" href="#L569">569</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L570" href="#L570">570</a> 					state = S14;
-<a class="jxr_linenumber" name="L571" href="#L571">571</a> 					<em class="jxr_comment">// Keep current precision (MONTH_OF_YEAR)</em>
-<a class="jxr_linenumber" name="L572" href="#L572">572</a> 				}
-<a class="jxr_linenumber" name="L573" href="#L573">573</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S5) {
-<a class="jxr_linenumber" name="L574" href="#L574">574</a> 				<em class="jxr_comment">// S5: Found -, looking for day digits (YYYY-MM-DD)</em>
-<a class="jxr_linenumber" name="L575" href="#L575">575</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L576" href="#L576">576</a> 					state = S6;
-<a class="jxr_linenumber" name="L577" href="#L577">577</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L578" href="#L578">578</a> 					state = S7;
-<a class="jxr_linenumber" name="L579" href="#L579">579</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L580" href="#L580">580</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L581" href="#L581">581</a> 					state = S14;
-<a class="jxr_linenumber" name="L582" href="#L582">582</a> 					<em class="jxr_comment">// Keep current precision (DAY_OF_MONTH)</em>
-<a class="jxr_linenumber" name="L583" href="#L583">583</a> 				}
-<a class="jxr_linenumber" name="L584" href="#L584">584</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S6) {
-<a class="jxr_linenumber" name="L585" href="#L585">585</a> 				<em class="jxr_comment">// S6: Found day, looking for T or end (YYYY-MM-DD)</em>
-<a class="jxr_linenumber" name="L586" href="#L586">586</a> 				<strong class="jxr_keyword">if</strong> (c == 'T') {
-<a class="jxr_linenumber" name="L587" href="#L587">587</a> 					state = S7;
-<a class="jxr_linenumber" name="L588" href="#L588">588</a> 					precision = ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L589" href="#L589">589</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L590" href="#L590">590</a> 					state = S14;
-<a class="jxr_linenumber" name="L591" href="#L591">591</a> 					<em class="jxr_comment">// Keep current precision (DAY_OF_MONTH)</em>
-<a class="jxr_linenumber" name="L592" href="#L592">592</a> 				}
-<a class="jxr_linenumber" name="L593" href="#L593">593</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S7) {
-<a class="jxr_linenumber" name="L594" href="#L594">594</a> 				<em class="jxr_comment">// S7: Found T, looking for hour digits (YYYY-MM-DDTHH)</em>
-<a class="jxr_linenumber" name="L595" href="#L595">595</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L596" href="#L596">596</a> 					state = S8;
-<a class="jxr_linenumber" name="L597" href="#L597">597</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ':') {
-<a class="jxr_linenumber" name="L598" href="#L598">598</a> 					state = S9;
-<a class="jxr_linenumber" name="L599" href="#L599">599</a> 					precision = ChronoField.MINUTE_OF_HOUR;
-<a class="jxr_linenumber" name="L600" href="#L600">600</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L601" href="#L601">601</a> 					state = S14;
-<a class="jxr_linenumber" name="L602" href="#L602">602</a> 					<em class="jxr_comment">// Keep current precision (HOUR_OF_DAY)</em>
-<a class="jxr_linenumber" name="L603" href="#L603">603</a> 				}
-<a class="jxr_linenumber" name="L604" href="#L604">604</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S8) {
-<a class="jxr_linenumber" name="L605" href="#L605">605</a> 				<em class="jxr_comment">// S8: Found hour, looking for : or end (YYYY-MM-DDTHH)</em>
-<a class="jxr_linenumber" name="L606" href="#L606">606</a> 				<strong class="jxr_keyword">if</strong> (c == ':') {
-<a class="jxr_linenumber" name="L607" href="#L607">607</a> 					state = S9;
-<a class="jxr_linenumber" name="L608" href="#L608">608</a> 					precision = ChronoField.MINUTE_OF_HOUR;
-<a class="jxr_linenumber" name="L609" href="#L609">609</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L610" href="#L610">610</a> 					state = S14;
-<a class="jxr_linenumber" name="L611" href="#L611">611</a> 					<em class="jxr_comment">// Keep current precision (HOUR_OF_DAY)</em>
-<a class="jxr_linenumber" name="L612" href="#L612">612</a> 				}
-<a class="jxr_linenumber" name="L613" href="#L613">613</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S9) {
-<a class="jxr_linenumber" name="L614" href="#L614">614</a> 				<em class="jxr_comment">// S9: Found :, looking for minute digits (YYYY-MM-DDTHH:MM)</em>
-<a class="jxr_linenumber" name="L615" href="#L615">615</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L616" href="#L616">616</a> 					state = S10;
-<a class="jxr_linenumber" name="L617" href="#L617">617</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ':') {
-<a class="jxr_linenumber" name="L618" href="#L618">618</a> 					state = S11;
-<a class="jxr_linenumber" name="L619" href="#L619">619</a> 					precision = ChronoField.SECOND_OF_MINUTE;
-<a class="jxr_linenumber" name="L620" href="#L620">620</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L621" href="#L621">621</a> 					state = S14;
-<a class="jxr_linenumber" name="L622" href="#L622">622</a> 					<em class="jxr_comment">// Keep current precision (MINUTE_OF_HOUR)</em>
-<a class="jxr_linenumber" name="L623" href="#L623">623</a> 				}
-<a class="jxr_linenumber" name="L624" href="#L624">624</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S10) {
-<a class="jxr_linenumber" name="L625" href="#L625">625</a> 				<em class="jxr_comment">// S10: Found minute, looking for : or end (YYYY-MM-DDTHH:MM)</em>
-<a class="jxr_linenumber" name="L626" href="#L626">626</a> 				<strong class="jxr_keyword">if</strong> (c == ':') {
-<a class="jxr_linenumber" name="L627" href="#L627">627</a> 					state = S11;
-<a class="jxr_linenumber" name="L628" href="#L628">628</a> 					precision = ChronoField.SECOND_OF_MINUTE;
-<a class="jxr_linenumber" name="L629" href="#L629">629</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L630" href="#L630">630</a> 					state = S14;
-<a class="jxr_linenumber" name="L631" href="#L631">631</a> 					<em class="jxr_comment">// Keep current precision (MINUTE_OF_HOUR)</em>
-<a class="jxr_linenumber" name="L632" href="#L632">632</a> 				}
-<a class="jxr_linenumber" name="L633" href="#L633">633</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S11) {
-<a class="jxr_linenumber" name="L634" href="#L634">634</a> 				<em class="jxr_comment">// S11: Found :, looking for second digits (YYYY-MM-DDTHH:MM:SS)</em>
-<a class="jxr_linenumber" name="L635" href="#L635">635</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L636" href="#L636">636</a> 					state = S12;
-<a class="jxr_linenumber" name="L637" href="#L637">637</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '.') {
-<a class="jxr_linenumber" name="L638" href="#L638">638</a> 					state = S13;
-<a class="jxr_linenumber" name="L639" href="#L639">639</a> 					precision = ChronoField.MILLI_OF_SECOND;
-<a class="jxr_linenumber" name="L640" href="#L640">640</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L641" href="#L641">641</a> 					state = S14;
-<a class="jxr_linenumber" name="L642" href="#L642">642</a> 					<em class="jxr_comment">// Keep current precision (SECOND_OF_MINUTE)</em>
-<a class="jxr_linenumber" name="L643" href="#L643">643</a> 				}
-<a class="jxr_linenumber" name="L644" href="#L644">644</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S12) {
-<a class="jxr_linenumber" name="L645" href="#L645">645</a> 				<em class="jxr_comment">// S12: Found second, looking for . or end (YYYY-MM-DDTHH:MM:SS)</em>
-<a class="jxr_linenumber" name="L646" href="#L646">646</a> 				<strong class="jxr_keyword">if</strong> (c == '.') {
-<a class="jxr_linenumber" name="L647" href="#L647">647</a> 					state = S13;
-<a class="jxr_linenumber" name="L648" href="#L648">648</a> 					precision = ChronoField.MILLI_OF_SECOND;
-<a class="jxr_linenumber" name="L649" href="#L649">649</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L650" href="#L650">650</a> 					state = S14;
-<a class="jxr_linenumber" name="L651" href="#L651">651</a> 					<em class="jxr_comment">// Keep current precision (SECOND_OF_MINUTE)</em>
-<a class="jxr_linenumber" name="L652" href="#L652">652</a> 				}
-<a class="jxr_linenumber" name="L653" href="#L653">653</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S13) {
-<a class="jxr_linenumber" name="L654" href="#L654">654</a> 				<em class="jxr_comment">// S13: Found ., looking for millisecond digits (YYYY-MM-DDTHH:MM:SS.SSS)</em>
-<a class="jxr_linenumber" name="L655" href="#L655">655</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
-<a class="jxr_linenumber" name="L656" href="#L656">656</a> 					<em class="jxr_comment">// Continue reading millisecond digits</em>
-<a class="jxr_linenumber" name="L657" href="#L657">657</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
-<a class="jxr_linenumber" name="L658" href="#L658">658</a> 					state = S14;
-<a class="jxr_linenumber" name="L659" href="#L659">659</a> 					<em class="jxr_comment">// Keep current precision (MILLI_OF_SECOND)</em>
-<a class="jxr_linenumber" name="L660" href="#L660">660</a> 				}
-<a class="jxr_linenumber" name="L661" href="#L661">661</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S14) {
-<a class="jxr_linenumber" name="L662" href="#L662">662</a> 				<em class="jxr_comment">// S14: Found timezone (Z, +HH:mm, -HH:mm) - precision already determined</em>
-<a class="jxr_linenumber" name="L663" href="#L663">663</a> 				<em class="jxr_comment">// Just continue reading timezone characters</em>
-<a class="jxr_linenumber" name="L664" href="#L664">664</a> 			}
-<a class="jxr_linenumber" name="L665" href="#L665">665</a> 		}
-<a class="jxr_linenumber" name="L666" href="#L666">666</a> 
-<a class="jxr_linenumber" name="L667" href="#L667">667</a> 		<strong class="jxr_keyword">return</strong> precision;
-<a class="jxr_linenumber" name="L668" href="#L668">668</a> 	}
-<a class="jxr_linenumber" name="L669" href="#L669">669</a> 
+<a class="jxr_linenumber" name="L489" href="#L489">489</a> <em class="jxr_javadoccomment">	 * @param seg The date/time string to analyze (can be null or empty)</em>
+<a class="jxr_linenumber" name="L490" href="#L490">490</a> <em class="jxr_javadoccomment">	 * @return The ChronoField representing the precision level, or {@link ChronoField#MILLI_OF_SECOND} for invalid/empty strings</em>
+<a class="jxr_linenumber" name="L491" href="#L491">491</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
+<a class="jxr_linenumber" name="L492" href="#L492">492</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L493" href="#L493">493</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoField getPrecisionFromString(String seg) {
+<a class="jxr_linenumber" name="L494" href="#L494">494</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmpty(seg))
+<a class="jxr_linenumber" name="L495" href="#L495">495</a> 			<strong class="jxr_keyword">return</strong> ChronoField.MILLI_OF_SECOND;
+<a class="jxr_linenumber" name="L496" href="#L496">496</a> 
+<a class="jxr_linenumber" name="L497" href="#L497">497</a> 		<em class="jxr_comment">// States:</em>
+<a class="jxr_linenumber" name="L498" href="#L498">498</a> 		<em class="jxr_comment">// S1: Looking for year digits (YYYY)</em>
+<a class="jxr_linenumber" name="L499" href="#L499">499</a> 		<em class="jxr_comment">// S2: Found year, looking for - or T or end (YYYY)</em>
+<a class="jxr_linenumber" name="L500" href="#L500">500</a> 		<em class="jxr_comment">// S3: Found -, looking for month digits (YYYY-MM)</em>
+<a class="jxr_linenumber" name="L501" href="#L501">501</a> 		<em class="jxr_comment">// S4: Found month, looking for - or T or end (YYYY-MM)</em>
+<a class="jxr_linenumber" name="L502" href="#L502">502</a> 		<em class="jxr_comment">// S5: Found -, looking for day digits (YYYY-MM-DD)</em>
+<a class="jxr_linenumber" name="L503" href="#L503">503</a> 		<em class="jxr_comment">// S6: Found day, looking for T or end (YYYY-MM-DD)</em>
+<a class="jxr_linenumber" name="L504" href="#L504">504</a> 		<em class="jxr_comment">// S7: Found T, looking for hour digits (YYYY-MM-DDTHH)</em>
+<a class="jxr_linenumber" name="L505" href="#L505">505</a> 		<em class="jxr_comment">// S8: Found hour, looking for : or end (YYYY-MM-DDTHH)</em>
+<a class="jxr_linenumber" name="L506" href="#L506">506</a> 		<em class="jxr_comment">// S9: Found :, looking for minute digits (YYYY-MM-DDTHH:MM)</em>
+<a class="jxr_linenumber" name="L507" href="#L507">507</a> 		<em class="jxr_comment">// S10: Found minute, looking for : or end (YYYY-MM-DDTHH:MM)</em>
+<a class="jxr_linenumber" name="L508" href="#L508">508</a> 		<em class="jxr_comment">// S11: Found :, looking for second digits (YYYY-MM-DDTHH:MM:SS)</em>
+<a class="jxr_linenumber" name="L509" href="#L509">509</a> 		<em class="jxr_comment">// S12: Found second, looking for . or end (YYYY-MM-DDTHH:MM:SS)</em>
+<a class="jxr_linenumber" name="L510" href="#L510">510</a> 		<em class="jxr_comment">// S13: Found ., looking for millisecond digits (YYYY-MM-DDTHH:MM:SS.SSS)</em>
+<a class="jxr_linenumber" name="L511" href="#L511">511</a> 		<em class="jxr_comment">// S14: Found timezone (Z, +HH:mm, -HH:mm)</em>
+<a class="jxr_linenumber" name="L512" href="#L512">512</a> 
+<a class="jxr_linenumber" name="L513" href="#L513">513</a> 		StateEnum state = S1;
+<a class="jxr_linenumber" name="L514" href="#L514">514</a> 		ChronoField precision = ChronoField.YEAR; <em class="jxr_comment">// Track precision as we go</em>
+<a class="jxr_linenumber" name="L515" href="#L515">515</a> 
+<a class="jxr_linenumber" name="L516" href="#L516">516</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; seg.length(); i++) {
+<a class="jxr_linenumber" name="L517" href="#L517">517</a> 			<strong class="jxr_keyword">char</strong> c = seg.charAt(i);
+<a class="jxr_linenumber" name="L518" href="#L518">518</a> 
+<a class="jxr_linenumber" name="L519" href="#L519">519</a> 			<strong class="jxr_keyword">if</strong> (state == S1) {
+<a class="jxr_linenumber" name="L520" href="#L520">520</a> 				<em class="jxr_comment">// S1: Looking for year digits (YYYY)</em>
+<a class="jxr_linenumber" name="L521" href="#L521">521</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L522" href="#L522">522</a> 					state = S2;
+<a class="jxr_linenumber" name="L523" href="#L523">523</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '-') {
+<a class="jxr_linenumber" name="L524" href="#L524">524</a> 					state = S3;
+<a class="jxr_linenumber" name="L525" href="#L525">525</a> 					precision = ChronoField.MONTH_OF_YEAR;
+<a class="jxr_linenumber" name="L526" href="#L526">526</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L527" href="#L527">527</a> 					state = S7;
+<a class="jxr_linenumber" name="L528" href="#L528">528</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L529" href="#L529">529</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L530" href="#L530">530</a> 					state = S14;
+<a class="jxr_linenumber" name="L531" href="#L531">531</a> 					<em class="jxr_comment">// Keep current precision (YEAR)</em>
+<a class="jxr_linenumber" name="L532" href="#L532">532</a> 				}
+<a class="jxr_linenumber" name="L533" href="#L533">533</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
+<a class="jxr_linenumber" name="L534" href="#L534">534</a> 				<em class="jxr_comment">// S2: Found year, looking for - or T or end (YYYY)</em>
+<a class="jxr_linenumber" name="L535" href="#L535">535</a> 				<strong class="jxr_keyword">if</strong> (c == '-') {
+<a class="jxr_linenumber" name="L536" href="#L536">536</a> 					state = S3;
+<a class="jxr_linenumber" name="L537" href="#L537">537</a> 					precision = ChronoField.MONTH_OF_YEAR;
+<a class="jxr_linenumber" name="L538" href="#L538">538</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L539" href="#L539">539</a> 					state = S7;
+<a class="jxr_linenumber" name="L540" href="#L540">540</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L541" href="#L541">541</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L542" href="#L542">542</a> 					state = S14;
+<a class="jxr_linenumber" name="L543" href="#L543">543</a> 					<em class="jxr_comment">// Keep current precision (YEAR)</em>
+<a class="jxr_linenumber" name="L544" href="#L544">544</a> 				}
+<a class="jxr_linenumber" name="L545" href="#L545">545</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
+<a class="jxr_linenumber" name="L546" href="#L546">546</a> 				<em class="jxr_comment">// S3: Found -, looking for month digits (YYYY-MM)</em>
+<a class="jxr_linenumber" name="L547" href="#L547">547</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L548" href="#L548">548</a> 					state = S4;
+<a class="jxr_linenumber" name="L549" href="#L549">549</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '-') {
+<a class="jxr_linenumber" name="L550" href="#L550">550</a> 					state = S5;
+<a class="jxr_linenumber" name="L551" href="#L551">551</a> 					precision = ChronoField.DAY_OF_MONTH;
+<a class="jxr_linenumber" name="L552" href="#L552">552</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L553" href="#L553">553</a> 					state = S7;
+<a class="jxr_linenumber" name="L554" href="#L554">554</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L555" href="#L555">555</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L556" href="#L556">556</a> 					state = S14;
+<a class="jxr_linenumber" name="L557" href="#L557">557</a> 					<em class="jxr_comment">// Keep current precision (MONTH_OF_YEAR)</em>
+<a class="jxr_linenumber" name="L558" href="#L558">558</a> 				}
+<a class="jxr_linenumber" name="L559" href="#L559">559</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S4) {
+<a class="jxr_linenumber" name="L560" href="#L560">560</a> 				<em class="jxr_comment">// S4: Found month, looking for - or T or end (YYYY-MM)</em>
+<a class="jxr_linenumber" name="L561" href="#L561">561</a> 				<strong class="jxr_keyword">if</strong> (c == '-') {
+<a class="jxr_linenumber" name="L562" href="#L562">562</a> 					state = S5;
+<a class="jxr_linenumber" name="L563" href="#L563">563</a> 					precision = ChronoField.DAY_OF_MONTH;
+<a class="jxr_linenumber" name="L564" href="#L564">564</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L565" href="#L565">565</a> 					state = S7;
+<a class="jxr_linenumber" name="L566" href="#L566">566</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L567" href="#L567">567</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L568" href="#L568">568</a> 					state = S14;
+<a class="jxr_linenumber" name="L569" href="#L569">569</a> 					<em class="jxr_comment">// Keep current precision (MONTH_OF_YEAR)</em>
+<a class="jxr_linenumber" name="L570" href="#L570">570</a> 				}
+<a class="jxr_linenumber" name="L571" href="#L571">571</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S5) {
+<a class="jxr_linenumber" name="L572" href="#L572">572</a> 				<em class="jxr_comment">// S5: Found -, looking for day digits (YYYY-MM-DD)</em>
+<a class="jxr_linenumber" name="L573" href="#L573">573</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L574" href="#L574">574</a> 					state = S6;
+<a class="jxr_linenumber" name="L575" href="#L575">575</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L576" href="#L576">576</a> 					state = S7;
+<a class="jxr_linenumber" name="L577" href="#L577">577</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L578" href="#L578">578</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L579" href="#L579">579</a> 					state = S14;
+<a class="jxr_linenumber" name="L580" href="#L580">580</a> 					<em class="jxr_comment">// Keep current precision (DAY_OF_MONTH)</em>
+<a class="jxr_linenumber" name="L581" href="#L581">581</a> 				}
+<a class="jxr_linenumber" name="L582" href="#L582">582</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S6) {
+<a class="jxr_linenumber" name="L583" href="#L583">583</a> 				<em class="jxr_comment">// S6: Found day, looking for T or end (YYYY-MM-DD)</em>
+<a class="jxr_linenumber" name="L584" href="#L584">584</a> 				<strong class="jxr_keyword">if</strong> (c == 'T') {
+<a class="jxr_linenumber" name="L585" href="#L585">585</a> 					state = S7;
+<a class="jxr_linenumber" name="L586" href="#L586">586</a> 					precision = ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L587" href="#L587">587</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L588" href="#L588">588</a> 					state = S14;
+<a class="jxr_linenumber" name="L589" href="#L589">589</a> 					<em class="jxr_comment">// Keep current precision (DAY_OF_MONTH)</em>
+<a class="jxr_linenumber" name="L590" href="#L590">590</a> 				}
+<a class="jxr_linenumber" name="L591" href="#L591">591</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S7) {
+<a class="jxr_linenumber" name="L592" href="#L592">592</a> 				<em class="jxr_comment">// S7: Found T, looking for hour digits (YYYY-MM-DDTHH)</em>
+<a class="jxr_linenumber" name="L593" href="#L593">593</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L594" href="#L594">594</a> 					state = S8;
+<a class="jxr_linenumber" name="L595" href="#L595">595</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ':') {
+<a class="jxr_linenumber" name="L596" href="#L596">596</a> 					state = S9;
+<a class="jxr_linenumber" name="L597" href="#L597">597</a> 					precision = ChronoField.MINUTE_OF_HOUR;
+<a class="jxr_linenumber" name="L598" href="#L598">598</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L599" href="#L599">599</a> 					state = S14;
+<a class="jxr_linenumber" name="L600" href="#L600">600</a> 					<em class="jxr_comment">// Keep current precision (HOUR_OF_DAY)</em>
+<a class="jxr_linenumber" name="L601" href="#L601">601</a> 				}
+<a class="jxr_linenumber" name="L602" href="#L602">602</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S8) {
+<a class="jxr_linenumber" name="L603" href="#L603">603</a> 				<em class="jxr_comment">// S8: Found hour, looking for : or end (YYYY-MM-DDTHH)</em>
+<a class="jxr_linenumber" name="L604" href="#L604">604</a> 				<strong class="jxr_keyword">if</strong> (c == ':') {
+<a class="jxr_linenumber" name="L605" href="#L605">605</a> 					state = S9;
+<a class="jxr_linenumber" name="L606" href="#L606">606</a> 					precision = ChronoField.MINUTE_OF_HOUR;
+<a class="jxr_linenumber" name="L607" href="#L607">607</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L608" href="#L608">608</a> 					state = S14;
+<a class="jxr_linenumber" name="L609" href="#L609">609</a> 					<em class="jxr_comment">// Keep current precision (HOUR_OF_DAY)</em>
+<a class="jxr_linenumber" name="L610" href="#L610">610</a> 				}
+<a class="jxr_linenumber" name="L611" href="#L611">611</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S9) {
+<a class="jxr_linenumber" name="L612" href="#L612">612</a> 				<em class="jxr_comment">// S9: Found :, looking for minute digits (YYYY-MM-DDTHH:MM)</em>
+<a class="jxr_linenumber" name="L613" href="#L613">613</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L614" href="#L614">614</a> 					state = S10;
+<a class="jxr_linenumber" name="L615" href="#L615">615</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ':') {
+<a class="jxr_linenumber" name="L616" href="#L616">616</a> 					state = S11;
+<a class="jxr_linenumber" name="L617" href="#L617">617</a> 					precision = ChronoField.SECOND_OF_MINUTE;
+<a class="jxr_linenumber" name="L618" href="#L618">618</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L619" href="#L619">619</a> 					state = S14;
+<a class="jxr_linenumber" name="L620" href="#L620">620</a> 					<em class="jxr_comment">// Keep current precision (MINUTE_OF_HOUR)</em>
+<a class="jxr_linenumber" name="L621" href="#L621">621</a> 				}
+<a class="jxr_linenumber" name="L622" href="#L622">622</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S10) {
+<a class="jxr_linenumber" name="L623" href="#L623">623</a> 				<em class="jxr_comment">// S10: Found minute, looking for : or end (YYYY-MM-DDTHH:MM)</em>
+<a class="jxr_linenumber" name="L624" href="#L624">624</a> 				<strong class="jxr_keyword">if</strong> (c == ':') {
+<a class="jxr_linenumber" name="L625" href="#L625">625</a> 					state = S11;
+<a class="jxr_linenumber" name="L626" href="#L626">626</a> 					precision = ChronoField.SECOND_OF_MINUTE;
+<a class="jxr_linenumber" name="L627" href="#L627">627</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L628" href="#L628">628</a> 					state = S14;
+<a class="jxr_linenumber" name="L629" href="#L629">629</a> 					<em class="jxr_comment">// Keep current precision (MINUTE_OF_HOUR)</em>
+<a class="jxr_linenumber" name="L630" href="#L630">630</a> 				}
+<a class="jxr_linenumber" name="L631" href="#L631">631</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S11) {
+<a class="jxr_linenumber" name="L632" href="#L632">632</a> 				<em class="jxr_comment">// S11: Found :, looking for second digits (YYYY-MM-DDTHH:MM:SS)</em>
+<a class="jxr_linenumber" name="L633" href="#L633">633</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L634" href="#L634">634</a> 					state = S12;
+<a class="jxr_linenumber" name="L635" href="#L635">635</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == '.') {
+<a class="jxr_linenumber" name="L636" href="#L636">636</a> 					state = S13;
+<a class="jxr_linenumber" name="L637" href="#L637">637</a> 					precision = ChronoField.MILLI_OF_SECOND;
+<a class="jxr_linenumber" name="L638" href="#L638">638</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L639" href="#L639">639</a> 					state = S14;
+<a class="jxr_linenumber" name="L640" href="#L640">640</a> 					<em class="jxr_comment">// Keep current precision (SECOND_OF_MINUTE)</em>
+<a class="jxr_linenumber" name="L641" href="#L641">641</a> 				}
+<a class="jxr_linenumber" name="L642" href="#L642">642</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S12) {
+<a class="jxr_linenumber" name="L643" href="#L643">643</a> 				<em class="jxr_comment">// S12: Found second, looking for . or end (YYYY-MM-DDTHH:MM:SS)</em>
+<a class="jxr_linenumber" name="L644" href="#L644">644</a> 				<strong class="jxr_keyword">if</strong> (c == '.') {
+<a class="jxr_linenumber" name="L645" href="#L645">645</a> 					state = S13;
+<a class="jxr_linenumber" name="L646" href="#L646">646</a> 					precision = ChronoField.MILLI_OF_SECOND;
+<a class="jxr_linenumber" name="L647" href="#L647">647</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L648" href="#L648">648</a> 					state = S14;
+<a class="jxr_linenumber" name="L649" href="#L649">649</a> 					<em class="jxr_comment">// Keep current precision (SECOND_OF_MINUTE)</em>
+<a class="jxr_linenumber" name="L650" href="#L650">650</a> 				}
+<a class="jxr_linenumber" name="L651" href="#L651">651</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S13) {
+<a class="jxr_linenumber" name="L652" href="#L652">652</a> 				<em class="jxr_comment">// S13: Found ., looking for millisecond digits (YYYY-MM-DDTHH:MM:SS.SSS)</em>
+<a class="jxr_linenumber" name="L653" href="#L653">653</a> 				<strong class="jxr_keyword">if</strong> (Character.isDigit(c)) {
+<a class="jxr_linenumber" name="L654" href="#L654">654</a> 					<em class="jxr_comment">// Continue reading millisecond digits</em>
+<a class="jxr_linenumber" name="L655" href="#L655">655</a> 				} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == 'Z' || c == '+' || c == '-') {
+<a class="jxr_linenumber" name="L656" href="#L656">656</a> 					state = S14;
+<a class="jxr_linenumber" name="L657" href="#L657">657</a> 					<em class="jxr_comment">// Keep current precision (MILLI_OF_SECOND)</em>
+<a class="jxr_linenumber" name="L658" href="#L658">658</a> 				}
+<a class="jxr_linenumber" name="L659" href="#L659">659</a> 			} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S14) {
+<a class="jxr_linenumber" name="L660" href="#L660">660</a> 				<em class="jxr_comment">// S14: Found timezone (Z, +HH:mm, -HH:mm) - precision already determined</em>
+<a class="jxr_linenumber" name="L661" href="#L661">661</a> 				<em class="jxr_comment">// Just continue reading timezone characters</em>
+<a class="jxr_linenumber" name="L662" href="#L662">662</a> 			}
+<a class="jxr_linenumber" name="L663" href="#L663">663</a> 		}
+<a class="jxr_linenumber" name="L664" href="#L664">664</a> 
+<a class="jxr_linenumber" name="L665" href="#L665">665</a> 		<strong class="jxr_keyword">return</strong> precision;
+<a class="jxr_linenumber" name="L666" href="#L666">666</a> 	}
+<a class="jxr_linenumber" name="L667" href="#L667">667</a> 
+<a class="jxr_linenumber" name="L668" href="#L668">668</a> 	<em class="jxr_comment">// ================================================================================================================</em>
+<a class="jxr_linenumber" name="L669" href="#L669">669</a> 	<em class="jxr_comment">// ChronoField/ChronoUnit/Calendar conversion utilities</em>
 <a class="jxr_linenumber" name="L670" href="#L670">670</a> 	<em class="jxr_comment">// ================================================================================================================</em>
-<a class="jxr_linenumber" name="L671" href="#L671">671</a> 	<em class="jxr_comment">// ChronoField/ChronoUnit/Calendar conversion utilities</em>
-<a class="jxr_linenumber" name="L672" href="#L672">672</a> 	<em class="jxr_comment">// ================================================================================================================</em>
-<a class="jxr_linenumber" name="L673" href="#L673">673</a> 
-<a class="jxr_linenumber" name="L674" href="#L674">674</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L675" href="#L675">675</a> <em class="jxr_javadoccomment">	 * Converts a ChronoUnit to its corresponding ChronoField.</em>
-<a class="jxr_linenumber" name="L676" href="#L676">676</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L677" href="#L677">677</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L678" href="#L678">678</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from time units to date/time fields.</em>
-<a class="jxr_linenumber" name="L679" href="#L679">679</a> <em class="jxr_javadoccomment">	 * Not all ChronoUnit values have direct ChronoField equivalents.</em>
-<a class="jxr_linenumber" name="L680" href="#L680">680</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L681" href="#L681">681</a> <em class="jxr_javadoccomment">	 * @param unit The ChronoUnit to convert</em>
-<a class="jxr_linenumber" name="L682" href="#L682">682</a> <em class="jxr_javadoccomment">	 * @return The corresponding ChronoField, or null if no direct mapping exists</em>
-<a class="jxr_linenumber" name="L683" href="#L683">683</a> <em class="jxr_javadoccomment">	 * @see ChronoUnit</em>
-<a class="jxr_linenumber" name="L684" href="#L684">684</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
-<a class="jxr_linenumber" name="L685" href="#L685">685</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L686" href="#L686">686</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoField toChronoField(ChronoUnit unit) {
-<a class="jxr_linenumber" name="L687" href="#L687">687</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(unit) {
-<a class="jxr_linenumber" name="L688" href="#L688">688</a> 			<strong class="jxr_keyword">case</strong> YEARS -&gt; ChronoField.YEAR;
-<a class="jxr_linenumber" name="L689" href="#L689">689</a> 			<strong class="jxr_keyword">case</strong> MONTHS -&gt; ChronoField.MONTH_OF_YEAR;
-<a class="jxr_linenumber" name="L690" href="#L690">690</a> 			<strong class="jxr_keyword">case</strong> DAYS -&gt; ChronoField.DAY_OF_MONTH;
-<a class="jxr_linenumber" name="L691" href="#L691">691</a> 			<strong class="jxr_keyword">case</strong> HOURS -&gt; ChronoField.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L692" href="#L692">692</a> 			<strong class="jxr_keyword">case</strong> MINUTES -&gt; ChronoField.MINUTE_OF_HOUR;
-<a class="jxr_linenumber" name="L693" href="#L693">693</a> 			<strong class="jxr_keyword">case</strong> SECONDS -&gt; ChronoField.SECOND_OF_MINUTE;
-<a class="jxr_linenumber" name="L694" href="#L694">694</a> 			<strong class="jxr_keyword">case</strong> MILLIS -&gt; ChronoField.MILLI_OF_SECOND;
-<a class="jxr_linenumber" name="L695" href="#L695">695</a> 			<strong class="jxr_keyword">default</strong> -&gt; <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L696" href="#L696">696</a> 		};
-<a class="jxr_linenumber" name="L697" href="#L697">697</a> 	}
-<a class="jxr_linenumber" name="L698" href="#L698">698</a> 
-<a class="jxr_linenumber" name="L699" href="#L699">699</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L700" href="#L700">700</a> <em class="jxr_javadoccomment">	 * Converts a ChronoField to its corresponding ChronoUnit.</em>
-<a class="jxr_linenumber" name="L701" href="#L701">701</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L702" href="#L702">702</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L703" href="#L703">703</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from date/time fields to time units.</em>
-<a class="jxr_linenumber" name="L704" href="#L704">704</a> <em class="jxr_javadoccomment">	 * Not all ChronoField values have direct ChronoUnit equivalents.</em>
-<a class="jxr_linenumber" name="L705" href="#L705">705</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L706" href="#L706">706</a> <em class="jxr_javadoccomment">	 * @param field The ChronoField to convert</em>
-<a class="jxr_linenumber" name="L707" href="#L707">707</a> <em class="jxr_javadoccomment">	 * @return The corresponding ChronoUnit, or null if no direct mapping exists</em>
-<a class="jxr_linenumber" name="L708" href="#L708">708</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
-<a class="jxr_linenumber" name="L709" href="#L709">709</a> <em class="jxr_javadoccomment">	 * @see ChronoUnit</em>
-<a class="jxr_linenumber" name="L710" href="#L710">710</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L711" href="#L711">711</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoUnit toChronoUnit(ChronoField field) {
-<a class="jxr_linenumber" name="L712" href="#L712">712</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(field) {
-<a class="jxr_linenumber" name="L713" href="#L713">713</a> 			<strong class="jxr_keyword">case</strong> YEAR -&gt; ChronoUnit.YEARS;
-<a class="jxr_linenumber" name="L714" href="#L714">714</a> 			<strong class="jxr_keyword">case</strong> MONTH_OF_YEAR -&gt; ChronoUnit.MONTHS;
-<a class="jxr_linenumber" name="L715" href="#L715">715</a> 			<strong class="jxr_keyword">case</strong> DAY_OF_MONTH -&gt; ChronoUnit.DAYS;
-<a class="jxr_linenumber" name="L716" href="#L716">716</a> 			<strong class="jxr_keyword">case</strong> HOUR_OF_DAY -&gt; ChronoUnit.HOURS;
-<a class="jxr_linenumber" name="L717" href="#L717">717</a> 			<strong class="jxr_keyword">case</strong> MINUTE_OF_HOUR -&gt; ChronoUnit.MINUTES;
-<a class="jxr_linenumber" name="L718" href="#L718">718</a> 			<strong class="jxr_keyword">case</strong> SECOND_OF_MINUTE -&gt; ChronoUnit.SECONDS;
-<a class="jxr_linenumber" name="L719" href="#L719">719</a> 			<strong class="jxr_keyword">case</strong> MILLI_OF_SECOND -&gt; ChronoUnit.MILLIS;
-<a class="jxr_linenumber" name="L720" href="#L720">720</a> 			<strong class="jxr_keyword">default</strong> -&gt; <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L721" href="#L721">721</a> 		};
-<a class="jxr_linenumber" name="L722" href="#L722">722</a> 	}
-<a class="jxr_linenumber" name="L723" href="#L723">723</a> 
-<a class="jxr_linenumber" name="L724" href="#L724">724</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L725" href="#L725">725</a> <em class="jxr_javadoccomment">	 * Converts a ChronoField to its corresponding Calendar field constant.</em>
-<a class="jxr_linenumber" name="L726" href="#L726">726</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L727" href="#L727">727</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="L728" href="#L728">728</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from modern ChronoField values to legacy</em>
-<a class="jxr_linenumber" name="L729" href="#L729">729</a> <em class="jxr_javadoccomment">	 * Calendar field constants for use with Calendar.add() and similar methods.</em>
-<a class="jxr_linenumber" name="L730" href="#L730">730</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L731" href="#L731">731</a> <em class="jxr_javadoccomment">	 * @param field The ChronoField to convert</em>
-<a class="jxr_linenumber" name="L732" href="#L732">732</a> <em class="jxr_javadoccomment">	 * @return The corresponding Calendar field constant</em>
-<a class="jxr_linenumber" name="L733" href="#L733">733</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
-<a class="jxr_linenumber" name="L734" href="#L734">734</a> <em class="jxr_javadoccomment">	 * @see Calendar</em>
-<a class="jxr_linenumber" name="L735" href="#L735">735</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L736" href="#L736">736</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> toCalendarField(ChronoField field) {
-<a class="jxr_linenumber" name="L737" href="#L737">737</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(field) {
-<a class="jxr_linenumber" name="L738" href="#L738">738</a> 			<strong class="jxr_keyword">case</strong> YEAR -&gt; Calendar.YEAR;
-<a class="jxr_linenumber" name="L739" href="#L739">739</a> 			<strong class="jxr_keyword">case</strong> MONTH_OF_YEAR -&gt; Calendar.MONTH;
-<a class="jxr_linenumber" name="L740" href="#L740">740</a> 			<strong class="jxr_keyword">case</strong> DAY_OF_MONTH -&gt; Calendar.DAY_OF_MONTH;
-<a class="jxr_linenumber" name="L741" href="#L741">741</a> 			<strong class="jxr_keyword">case</strong> HOUR_OF_DAY -&gt; Calendar.HOUR_OF_DAY;
-<a class="jxr_linenumber" name="L742" href="#L742">742</a> 			<strong class="jxr_keyword">case</strong> MINUTE_OF_HOUR -&gt; Calendar.MINUTE;
-<a class="jxr_linenumber" name="L743" href="#L743">743</a> 			<strong class="jxr_keyword">case</strong> SECOND_OF_MINUTE -&gt; Calendar.SECOND;
-<a class="jxr_linenumber" name="L744" href="#L744">744</a> 			<strong class="jxr_keyword">case</strong> MILLI_OF_SECOND -&gt; Calendar.MILLISECOND;
-<a class="jxr_linenumber" name="L745" href="#L745">745</a> 			<strong class="jxr_keyword">default</strong> -&gt; Calendar.MILLISECOND;
-<a class="jxr_linenumber" name="L746" href="#L746">746</a> 		};
-<a class="jxr_linenumber" name="L747" href="#L747">747</a> 	}
-<a class="jxr_linenumber" name="L748" href="#L748">748</a> }
+<a class="jxr_linenumber" name="L671" href="#L671">671</a> 
+<a class="jxr_linenumber" name="L672" href="#L672">672</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L673" href="#L673">673</a> <em class="jxr_javadoccomment">	 * Converts a ChronoUnit to its corresponding ChronoField.</em>
+<a class="jxr_linenumber" name="L674" href="#L674">674</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L675" href="#L675">675</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L676" href="#L676">676</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from time units to date/time fields.</em>
+<a class="jxr_linenumber" name="L677" href="#L677">677</a> <em class="jxr_javadoccomment">	 * Not all ChronoUnit values have direct ChronoField equivalents.</em>
+<a class="jxr_linenumber" name="L678" href="#L678">678</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L679" href="#L679">679</a> <em class="jxr_javadoccomment">	 * @param unit The ChronoUnit to convert</em>
+<a class="jxr_linenumber" name="L680" href="#L680">680</a> <em class="jxr_javadoccomment">	 * @return The corresponding ChronoField, or null if no direct mapping exists</em>
+<a class="jxr_linenumber" name="L681" href="#L681">681</a> <em class="jxr_javadoccomment">	 * @see ChronoUnit</em>
+<a class="jxr_linenumber" name="L682" href="#L682">682</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
+<a class="jxr_linenumber" name="L683" href="#L683">683</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L684" href="#L684">684</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoField toChronoField(ChronoUnit unit) {
+<a class="jxr_linenumber" name="L685" href="#L685">685</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(unit) {
+<a class="jxr_linenumber" name="L686" href="#L686">686</a> 			<strong class="jxr_keyword">case</strong> YEARS -&gt; ChronoField.YEAR;
+<a class="jxr_linenumber" name="L687" href="#L687">687</a> 			<strong class="jxr_keyword">case</strong> MONTHS -&gt; ChronoField.MONTH_OF_YEAR;
+<a class="jxr_linenumber" name="L688" href="#L688">688</a> 			<strong class="jxr_keyword">case</strong> DAYS -&gt; ChronoField.DAY_OF_MONTH;
+<a class="jxr_linenumber" name="L689" href="#L689">689</a> 			<strong class="jxr_keyword">case</strong> HOURS -&gt; ChronoField.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L690" href="#L690">690</a> 			<strong class="jxr_keyword">case</strong> MINUTES -&gt; ChronoField.MINUTE_OF_HOUR;
+<a class="jxr_linenumber" name="L691" href="#L691">691</a> 			<strong class="jxr_keyword">case</strong> SECONDS -&gt; ChronoField.SECOND_OF_MINUTE;
+<a class="jxr_linenumber" name="L692" href="#L692">692</a> 			<strong class="jxr_keyword">case</strong> MILLIS -&gt; ChronoField.MILLI_OF_SECOND;
+<a class="jxr_linenumber" name="L693" href="#L693">693</a> 			<strong class="jxr_keyword">default</strong> -&gt; <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L694" href="#L694">694</a> 		};
+<a class="jxr_linenumber" name="L695" href="#L695">695</a> 	}
+<a class="jxr_linenumber" name="L696" href="#L696">696</a> 
+<a class="jxr_linenumber" name="L697" href="#L697">697</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L698" href="#L698">698</a> <em class="jxr_javadoccomment">	 * Converts a ChronoField to its corresponding ChronoUnit.</em>
+<a class="jxr_linenumber" name="L699" href="#L699">699</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L700" href="#L700">700</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L701" href="#L701">701</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from date/time fields to time units.</em>
+<a class="jxr_linenumber" name="L702" href="#L702">702</a> <em class="jxr_javadoccomment">	 * Not all ChronoField values have direct ChronoUnit equivalents.</em>
+<a class="jxr_linenumber" name="L703" href="#L703">703</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L704" href="#L704">704</a> <em class="jxr_javadoccomment">	 * @param field The ChronoField to convert</em>
+<a class="jxr_linenumber" name="L705" href="#L705">705</a> <em class="jxr_javadoccomment">	 * @return The corresponding ChronoUnit, or null if no direct mapping exists</em>
+<a class="jxr_linenumber" name="L706" href="#L706">706</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
+<a class="jxr_linenumber" name="L707" href="#L707">707</a> <em class="jxr_javadoccomment">	 * @see ChronoUnit</em>
+<a class="jxr_linenumber" name="L708" href="#L708">708</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L709" href="#L709">709</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ChronoUnit toChronoUnit(ChronoField field) {
+<a class="jxr_linenumber" name="L710" href="#L710">710</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(field) {
+<a class="jxr_linenumber" name="L711" href="#L711">711</a> 			<strong class="jxr_keyword">case</strong> YEAR -&gt; ChronoUnit.YEARS;
+<a class="jxr_linenumber" name="L712" href="#L712">712</a> 			<strong class="jxr_keyword">case</strong> MONTH_OF_YEAR -&gt; ChronoUnit.MONTHS;
+<a class="jxr_linenumber" name="L713" href="#L713">713</a> 			<strong class="jxr_keyword">case</strong> DAY_OF_MONTH -&gt; ChronoUnit.DAYS;
+<a class="jxr_linenumber" name="L714" href="#L714">714</a> 			<strong class="jxr_keyword">case</strong> HOUR_OF_DAY -&gt; ChronoUnit.HOURS;
+<a class="jxr_linenumber" name="L715" href="#L715">715</a> 			<strong class="jxr_keyword">case</strong> MINUTE_OF_HOUR -&gt; ChronoUnit.MINUTES;
+<a class="jxr_linenumber" name="L716" href="#L716">716</a> 			<strong class="jxr_keyword">case</strong> SECOND_OF_MINUTE -&gt; ChronoUnit.SECONDS;
+<a class="jxr_linenumber" name="L717" href="#L717">717</a> 			<strong class="jxr_keyword">case</strong> MILLI_OF_SECOND -&gt; ChronoUnit.MILLIS;
+<a class="jxr_linenumber" name="L718" href="#L718">718</a> 			<strong class="jxr_keyword">default</strong> -&gt; <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L719" href="#L719">719</a> 		};
+<a class="jxr_linenumber" name="L720" href="#L720">720</a> 	}
+<a class="jxr_linenumber" name="L721" href="#L721">721</a> 
+<a class="jxr_linenumber" name="L722" href="#L722">722</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L723" href="#L723">723</a> <em class="jxr_javadoccomment">	 * Converts a ChronoField to its corresponding Calendar field constant.</em>
+<a class="jxr_linenumber" name="L724" href="#L724">724</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L725" href="#L725">725</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L726" href="#L726">726</a> <em class="jxr_javadoccomment">	 * This method provides a mapping from modern ChronoField values to legacy</em>
+<a class="jxr_linenumber" name="L727" href="#L727">727</a> <em class="jxr_javadoccomment">	 * Calendar field constants for use with Calendar.add() and similar methods.</em>
+<a class="jxr_linenumber" name="L728" href="#L728">728</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L729" href="#L729">729</a> <em class="jxr_javadoccomment">	 * @param field The ChronoField to convert</em>
+<a class="jxr_linenumber" name="L730" href="#L730">730</a> <em class="jxr_javadoccomment">	 * @return The corresponding Calendar field constant</em>
+<a class="jxr_linenumber" name="L731" href="#L731">731</a> <em class="jxr_javadoccomment">	 * @see ChronoField</em>
+<a class="jxr_linenumber" name="L732" href="#L732">732</a> <em class="jxr_javadoccomment">	 * @see Calendar</em>
+<a class="jxr_linenumber" name="L733" href="#L733">733</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L734" href="#L734">734</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> toCalendarField(ChronoField field) {
+<a class="jxr_linenumber" name="L735" href="#L735">735</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">switch</strong>(field) {
+<a class="jxr_linenumber" name="L736" href="#L736">736</a> 			<strong class="jxr_keyword">case</strong> YEAR -&gt; Calendar.YEAR;
+<a class="jxr_linenumber" name="L737" href="#L737">737</a> 			<strong class="jxr_keyword">case</strong> MONTH_OF_YEAR -&gt; Calendar.MONTH;
+<a class="jxr_linenumber" name="L738" href="#L738">738</a> 			<strong class="jxr_keyword">case</strong> DAY_OF_MONTH -&gt; Calendar.DAY_OF_MONTH;
+<a class="jxr_linenumber" name="L739" href="#L739">739</a> 			<strong class="jxr_keyword">case</strong> HOUR_OF_DAY -&gt; Calendar.HOUR_OF_DAY;
+<a class="jxr_linenumber" name="L740" href="#L740">740</a> 			<strong class="jxr_keyword">case</strong> MINUTE_OF_HOUR -&gt; Calendar.MINUTE;
+<a class="jxr_linenumber" name="L741" href="#L741">741</a> 			<strong class="jxr_keyword">case</strong> SECOND_OF_MINUTE -&gt; Calendar.SECOND;
+<a class="jxr_linenumber" name="L742" href="#L742">742</a> 			<strong class="jxr_keyword">case</strong> MILLI_OF_SECOND -&gt; Calendar.MILLISECOND;
+<a class="jxr_linenumber" name="L743" href="#L743">743</a> 			<strong class="jxr_keyword">default</strong> -&gt; Calendar.MILLISECOND;
+<a class="jxr_linenumber" name="L744" href="#L744">744</a> 		};
+<a class="jxr_linenumber" name="L745" href="#L745">745</a> 	}
+<a class="jxr_linenumber" name="L746" href="#L746">746</a> }
 </pre>
 <hr/>
 <div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/common/utils/MimeTypeDetector.html b/site/xref/org/apache/juneau/common/utils/MimeTypeDetector.html
new file mode 100644
index 0000000000..65c0406d52
--- /dev/null
+++ b/site/xref/org/apache/juneau/common/utils/MimeTypeDetector.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
+<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>MimeTypeDetector xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<div id="overview"><a href="../../../../../../apidocs/org/apache/juneau/common/utils/MimeTypeDetector.html">View Javadoc</a></div><pre>
+<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
+<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
+<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
+<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
+<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
+<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
+<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
+<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
+<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.juneau.common.utils;
+<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.nio.file.*;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.*;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.juneau.common.collections.*;
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>  
+<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment"> * A lightweight MIME type detector that doesn't require Jakarta Activation.</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <em class="jxr_javadoccomment"> * This class provides MIME type detection using multiple strategies:</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <em class="jxr_javadoccomment"> * &lt;ol&gt;</em>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <em class="jxr_javadoccomment"> *   &lt;li&gt;Java NIO's {@link Files#probeContentType(Path)} for content-based detection</em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment"> *   &lt;li&gt;Extension-based mapping for common file types</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> *   &lt;li&gt;Configurable MIME type mappings</em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * &lt;/ol&gt;</em>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * This class is thread-safe and can be used as a drop-in replacement for</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * {@link MimetypesFileTypeMap} without requiring Jakarta Activation.</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> * 	&lt;jc&gt;// Basic usage&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * 	MimeTypeDetector &lt;jv&gt;detector&lt;/jv&gt; = MimeTypeDetector.builder().build();</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <em class="jxr_javadoccomment"> * 	String &lt;jv&gt;mimeType&lt;/jv&gt; = &lt;jv&gt;detector&lt;/jv&gt;.getContentType(&lt;js&gt;"document.pdf"&lt;/js&gt;);</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment"> * 	&lt;jc&gt;// mimeType = "application/pdf"&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> * 	&lt;jc&gt;// Custom configuration&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment"> * 	MimeTypeDetector &lt;jv&gt;custom&lt;/jv&gt; = MimeTypeDetector.builder()</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * 		.addExtensionType(&lt;js&gt;"custom"&lt;/js&gt;, &lt;js&gt;"application/x-custom"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> * 		.addTypes(&lt;js&gt;"application/x-foo:foo,bar"&lt;/js&gt;)</em>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> * 		.setCacheSize(500)</em>
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> * 		.build();</em>
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment"> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;&lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment"> * 	&lt;li class='jm'&gt;{@link Files#probeContentType(Path)}</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <em class="jxr_javadoccomment"> * 	&lt;li class='jm'&gt;{@link MimetypesFileTypeMap}</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="MimeTypeDetector" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector">MimeTypeDetector</a> {
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>  	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <em class="jxr_javadoccomment">	 * Default MIME type detector instance.</em>
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a name="MimeTypeDetector" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector">MimeTypeDetector</a> DEFAULT = builder().addDefaultMappings().build();
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>  	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment">	 * Builder class for creating MimeTypeDetector instances.</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>  	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> Builder {
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; extMap = <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;();
+<a class="jxr_linenumber" name="L71" href="#L71">71</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; fileMap = <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;();
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> nioContentBasedDetection = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L73" href="#L73">73</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> cacheSize = 1000;
+<a class="jxr_linenumber" name="L74" href="#L74">74</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> cacheDisabled = false;
+<a class="jxr_linenumber" name="L75" href="#L75">75</a>  		<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> cacheLogOnExit = false;
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>  		<strong class="jxr_keyword">private</strong> String defaultType = <span class="jxr_string">"application/octet-stream"</span>;
+<a class="jxr_linenumber" name="L77" href="#L77">77</a>  
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>  		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment">		 * Adds a file type mapping.</em>
+<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <em class="jxr_javadoccomment">		 * @param name The file name or path pattern.</em>
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <em class="jxr_javadoccomment">		 * @param type The MIME type.</em>
+<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment">		 * @throws IllegalArgumentException If name or type is null or blank.</em>
+<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L86" href="#L86">86</a>  		<strong class="jxr_keyword">public</strong> Builder addFileType(String name, String type) {
+<a class="jxr_linenumber" name="L87" href="#L87">87</a>  			Utils.assertArgNotNullOrBlank(<span class="jxr_string">"name"</span>, name);
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>  			Utils.assertArgNotNullOrBlank(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>  			fileMap.put(name, type);
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>  			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>  		}
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>  
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>  		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment">		 * Adds an extension type mapping.</em>
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">		 * @param ext The file extension.</em>
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment">		 * @param type The MIME type.</em>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <em class="jxr_javadoccomment">		 * @throws IllegalArgumentException If ext or type is null or blank.</em>
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> 		<strong class="jxr_keyword">public</strong> Builder addExtensionType(String ext, String type) {
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> 			Utils.assertArgNotNullOrBlank(<span class="jxr_string">"ext"</span>, ext);
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> 			Utils.assertArgNotNullOrBlank(<span class="jxr_string">"type"</span>, type);
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> 			extMap.put(ext.toLowerCase(), type);
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> 		}
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment">		 * Enables or disables NIO content-based detection.</em>
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment">		 * @param value Whether to enable NIO content-based detection.</em>
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> 		<strong class="jxr_keyword">public</strong> Builder addNioContentBasedDetection(<strong class="jxr_keyword">boolean</strong> value) {
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> 			nioContentBasedDetection = value;
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> 		}
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment">		 * Sets the cache size.</em>
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">		 * @param value The maximum cache size.</em>
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> 		<strong class="jxr_keyword">public</strong> Builder setCacheSize(<strong class="jxr_keyword">int</strong> value) {
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> 			cacheSize = value;
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> 		}
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment">		 * Enables or disables the cache.</em>
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment">		 * @param value Whether to disable the cache.</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> 		<strong class="jxr_keyword">public</strong> Builder setCacheDisabled(<strong class="jxr_keyword">boolean</strong> value) {
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> 			cacheDisabled = value;
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> 		}
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">		 * Enables or disables cache logging on exit.</em>
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">		 * @param value Whether to log cache statistics on exit.</em>
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> 		<strong class="jxr_keyword">public</strong> Builder setCacheLogOnExit(<strong class="jxr_keyword">boolean</strong> value) {
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> 			cacheLogOnExit = value;
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> 		}
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment">		 * Sets the default MIME type for unknown files.</em>
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">		 * @param value The default MIME type.</em>
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> 		<strong class="jxr_keyword">public</strong> Builder setDefaultType(String value) {
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> 			defaultType = value;
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> 		}
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">		 * Adds MIME type mappings from mime.types file format.</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">		 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">		 * Each line should follow the format:</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">		 * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">		 * text/html        html htm</em>
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment">		 * image/png        png</em>
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment">		 * application/json json</em>
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment">		 * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">		 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">		 * This method supports both individual lines as varargs and entire</em>
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">		 * mime.types file contents as a single string (which will be split on newlines).</em>
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">		 * @param mimeTypesLines The MIME types lines or file contents.</em>
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> 		<strong class="jxr_keyword">public</strong> Builder addTypes(String... mimeTypesLines) {
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> 			<strong class="jxr_keyword">for</strong> (String input : mimeTypesLines) {
+<a class="jxr_linenumber" name="L183" href="#L183">183</a> 				<strong class="jxr_keyword">if</strong> (Utils.isNotEmpty(input)) {
+<a class="jxr_linenumber" name="L184" href="#L184">184</a> 					<em class="jxr_comment">// Split on newlines to handle both individual lines and file contents</em>
+<a class="jxr_linenumber" name="L185" href="#L185">185</a> 					<strong class="jxr_keyword">var</strong> lines = input.split(<span class="jxr_string">"&#92;&#92;r?&#92;&#92;n"</span>);
+<a class="jxr_linenumber" name="L186" href="#L186">186</a> 					<strong class="jxr_keyword">for</strong> (String line : lines) {
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> 						<strong class="jxr_keyword">if</strong> (Utils.isNotEmpty(line) &amp;&amp; !line.trim().startsWith(<span class="jxr_string">"#"</span>)) {
+<a class="jxr_linenumber" name="L188" href="#L188">188</a> 							<strong class="jxr_keyword">var</strong> parts = line.trim().split(<span class="jxr_string">"&#92;&#92;s+"</span>);
+<a class="jxr_linenumber" name="L189" href="#L189">189</a> 							<strong class="jxr_keyword">if</strong> (parts.length &gt;= 2) {
+<a class="jxr_linenumber" name="L190" href="#L190">190</a> 								<strong class="jxr_keyword">var</strong> mimeType = parts[0];
+<a class="jxr_linenumber" name="L191" href="#L191">191</a> 								<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 1; i &lt; parts.length; i++) {
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> 									addExtensionType(parts[i], mimeType);
+<a class="jxr_linenumber" name="L193" href="#L193">193</a> 								}
+<a class="jxr_linenumber" name="L194" href="#L194">194</a> 							}
+<a class="jxr_linenumber" name="L195" href="#L195">195</a> 						}
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> 					}
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> 				}
+<a class="jxr_linenumber" name="L198" href="#L198">198</a> 			}
+<a class="jxr_linenumber" name="L199" href="#L199">199</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L200" href="#L200">200</a> 		}
+<a class="jxr_linenumber" name="L201" href="#L201">201</a> 
+<a class="jxr_linenumber" name="L202" href="#L202">202</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">		 * Adds the default MIME type mappings.</em>
+<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment">		 * @return This builder.</em>
+<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L207" href="#L207">207</a> 		<strong class="jxr_keyword">public</strong> Builder addDefaultMappings() {
+<a class="jxr_linenumber" name="L208" href="#L208">208</a> 			<strong class="jxr_keyword">return</strong> addTypes(
+<a class="jxr_linenumber" name="L209" href="#L209">209</a> 				<span class="jxr_string">"application/epub+zip epub"</span>,
+<a class="jxr_linenumber" name="L210" href="#L210">210</a> 				<span class="jxr_string">"application/java-archive jar"</span>,
+<a class="jxr_linenumber" name="L211" href="#L211">211</a> 				<span class="jxr_string">"application/javascript js"</span>,
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> 				<span class="jxr_string">"application/json json"</span>,
+<a class="jxr_linenumber" name="L213" href="#L213">213</a> 				<span class="jxr_string">"application/msword doc"</span>,
+<a class="jxr_linenumber" name="L214" href="#L214">214</a> 				<span class="jxr_string">"application/ogg ogx"</span>,
+<a class="jxr_linenumber" name="L215" href="#L215">215</a> 				<span class="jxr_string">"application/pdf pdf"</span>,
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> 				<span class="jxr_string">"application/rtf rtf"</span>,
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> 				<span class="jxr_string">"application/vnd.amazon.ebook azw"</span>,
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> 				<span class="jxr_string">"application/vnd.apple.installer+xml mpkg"</span>,
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> 				<span class="jxr_string">"application/vnd.mozilla.xul+xml xul"</span>,
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> 				<span class="jxr_string">"application/vnd.ms-excel xls"</span>,
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> 				<span class="jxr_string">"application/vnd.ms-powerpoint ppt"</span>,
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> 				<span class="jxr_string">"application/vnd.oasis.opendocument.presentation odp"</span>,
+<a class="jxr_linenumber" name="L223" href="#L223">223</a> 				<span class="jxr_string">"application/vnd.oasis.opendocument.spreadsheet ods"</span>,
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> 				<span class="jxr_string">"application/vnd.oasis.opendocument.text odt"</span>,
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> 				<span class="jxr_string">"application/vnd.visio vsd"</span>,
+<a class="jxr_linenumber" name="L226" href="#L226">226</a> 				<span class="jxr_string">"application/x-7z-compressed 7z"</span>,
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> 				<span class="jxr_string">"application/x-abiword abw"</span>,
+<a class="jxr_linenumber" name="L228" href="#L228">228</a> 				<span class="jxr_string">"application/x-bzip bz"</span>,
+<a class="jxr_linenumber" name="L229" href="#L229">229</a> 				<span class="jxr_string">"application/x-bzip2 bz2"</span>,
+<a class="jxr_linenumber" name="L230" href="#L230">230</a> 				<span class="jxr_string">"application/x-csh csh"</span>,
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> 				<span class="jxr_string">"application/x-rar-compressed rar"</span>,
+<a class="jxr_linenumber" name="L232" href="#L232">232</a> 				<span class="jxr_string">"application/x-sh sh"</span>,
+<a class="jxr_linenumber" name="L233" href="#L233">233</a> 				<span class="jxr_string">"application/x-shockwave-flash swf"</span>,
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> 				<span class="jxr_string">"application/x-tar tar"</span>,
+<a class="jxr_linenumber" name="L235" href="#L235">235</a> 				<span class="jxr_string">"application/xhtml+xml xhtml"</span>,
+<a class="jxr_linenumber" name="L236" href="#L236">236</a> 				<span class="jxr_string">"application/xml xml"</span>,
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> 				<span class="jxr_string">"application/zip zip"</span>,
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> 				<span class="jxr_string">"audio/aac aac"</span>,
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> 				<span class="jxr_string">"audio/midi mid midi"</span>,
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> 				<span class="jxr_string">"audio/ogg oga"</span>,
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> 				<span class="jxr_string">"audio/webm weba"</span>,
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> 				<span class="jxr_string">"audio/x-wav wav"</span>,
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> 				<span class="jxr_string">"font/ttf ttf"</span>,
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> 				<span class="jxr_string">"font/woff woff"</span>,
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> 				<span class="jxr_string">"font/woff2 woff2"</span>,
+<a class="jxr_linenumber" name="L246" href="#L246">246</a> 				<span class="jxr_string">"image/gif gif"</span>,
+<a class="jxr_linenumber" name="L247" href="#L247">247</a> 				<span class="jxr_string">"image/jpeg jpeg jpg"</span>,
+<a class="jxr_linenumber" name="L248" href="#L248">248</a> 				<span class="jxr_string">"image/png png"</span>,
+<a class="jxr_linenumber" name="L249" href="#L249">249</a> 				<span class="jxr_string">"image/svg+xml svg"</span>,
+<a class="jxr_linenumber" name="L250" href="#L250">250</a> 				<span class="jxr_string">"image/tiff tif tiff"</span>,
+<a class="jxr_linenumber" name="L251" href="#L251">251</a> 				<span class="jxr_string">"image/webp webp"</span>,
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> 				<span class="jxr_string">"image/x-icon ico"</span>,
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> 				<span class="jxr_string">"text/calendar ics"</span>,
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> 				<span class="jxr_string">"text/css css"</span>,
+<a class="jxr_linenumber" name="L255" href="#L255">255</a> 				<span class="jxr_string">"text/csv csv"</span>,
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> 				<span class="jxr_string">"text/html htm html"</span>,
+<a class="jxr_linenumber" name="L257" href="#L257">257</a> 				<span class="jxr_string">"text/plain txt"</span>,
+<a class="jxr_linenumber" name="L258" href="#L258">258</a> 				<span class="jxr_string">"video/3gpp 3gp"</span>,
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> 				<span class="jxr_string">"video/3gpp2 3g2"</span>,
+<a class="jxr_linenumber" name="L260" href="#L260">260</a> 				<span class="jxr_string">"video/mpeg mpeg"</span>,
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> 				<span class="jxr_string">"video/ogg ogv"</span>,
+<a class="jxr_linenumber" name="L262" href="#L262">262</a> 				<span class="jxr_string">"video/webm webm"</span>,
+<a class="jxr_linenumber" name="L263" href="#L263">263</a> 				<span class="jxr_string">"video/x-msvideo avi"</span>
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> 			);
+<a class="jxr_linenumber" name="L265" href="#L265">265</a> 		}
+<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
+<a class="jxr_linenumber" name="L267" href="#L267">267</a> 		<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L268" href="#L268">268</a> <em class="jxr_javadoccomment">		 * Builds the MimeTypeDetector instance.</em>
+<a class="jxr_linenumber" name="L269" href="#L269">269</a> <em class="jxr_javadoccomment">		 *</em>
+<a class="jxr_linenumber" name="L270" href="#L270">270</a> <em class="jxr_javadoccomment">		 * @return A new MimeTypeDetector instance.</em>
+<a class="jxr_linenumber" name="L271" href="#L271">271</a> <em class="jxr_javadoccomment">		 */</em>
+<a class="jxr_linenumber" name="L272" href="#L272">272</a> 		<strong class="jxr_keyword">public</strong> <a name="MimeTypeDetector" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector">MimeTypeDetector</a> build() {
+<a class="jxr_linenumber" name="L273" href="#L273">273</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="MimeTypeDetector" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector">MimeTypeDetector</a>(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L274" href="#L274">274</a> 		}
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> 	}
+<a class="jxr_linenumber" name="L276" href="#L276">276</a> 
+<a class="jxr_linenumber" name="L277" href="#L277">277</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L278" href="#L278">278</a> <em class="jxr_javadoccomment">	 * Creates a new builder for MimeTypeDetector.</em>
+<a class="jxr_linenumber" name="L279" href="#L279">279</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">	 * @return A new builder.</em>
+<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Builder builder() {
+<a class="jxr_linenumber" name="L283" href="#L283">283</a> 		<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Builder();
+<a class="jxr_linenumber" name="L284" href="#L284">284</a> 	}
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> 
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; extMap;
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; fileMap;
+<a class="jxr_linenumber" name="L288" href="#L288">288</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Cache&lt;String, String&gt; cache;
+<a class="jxr_linenumber" name="L289" href="#L289">289</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> nioContentBasedDetection;
+<a class="jxr_linenumber" name="L290" href="#L290">290</a> 	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String defaultType;
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em class="jxr_javadoccomment">	 * Constructor.</em>
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment">	 * @param builder The builder.</em>
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> 	<strong class="jxr_keyword">private</strong> <a name="MimeTypeDetector" href="../../../../../org/apache/juneau/common/utils/MimeTypeDetector.html#MimeTypeDetector">MimeTypeDetector</a>(Builder builder) {
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> 		<strong class="jxr_keyword">this</strong>.extMap = <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;(builder.extMap);
+<a class="jxr_linenumber" name="L299" href="#L299">299</a> 		<strong class="jxr_keyword">this</strong>.fileMap = <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;&gt;(builder.fileMap);
+<a class="jxr_linenumber" name="L300" href="#L300">300</a> 		<strong class="jxr_keyword">this</strong>.nioContentBasedDetection = builder.nioContentBasedDetection;
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> 		<strong class="jxr_keyword">this</strong>.defaultType = builder.defaultType;
+<a class="jxr_linenumber" name="L302" href="#L302">302</a> 		
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> 		<em class="jxr_comment">// Create cache for file-based lookups</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> 		<strong class="jxr_keyword">var</strong> cacheBuilder = Cache.of(String.<strong class="jxr_keyword">class</strong>, String.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> 			.maxSize(builder.cacheSize);
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> 		
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> 		<strong class="jxr_keyword">if</strong> (builder.cacheDisabled) {
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> 			cacheBuilder.disabled();
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> 		}
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> 		<strong class="jxr_keyword">if</strong> (builder.cacheLogOnExit) {
+<a class="jxr_linenumber" name="L311" href="#L311">311</a> 			cacheBuilder.logOnExit();
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> 		}
+<a class="jxr_linenumber" name="L313" href="#L313">313</a> 		
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> 		<strong class="jxr_keyword">this</strong>.cache = cacheBuilder.build();
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> 	}
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> 
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">	 * Determines the MIME type of a file based on its name or path.</em>
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">	 * This method uses multiple strategies to determine the MIME type:</em>
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">	 * &lt;ol&gt;</em>
+<a class="jxr_linenumber" name="L323" href="#L323">323</a> <em class="jxr_javadoccomment">	 *   &lt;li&gt;Checks cache first for previously determined MIME types</em>
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">	 *   &lt;li&gt;If the file exists, uses {@link Files#probeContentType(Path)} for content-based detection</em>
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">	 *   &lt;li&gt;Falls back to extension-based mapping for common file types</em>
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">	 *   &lt;li&gt;Returns the configured default type for unknown types</em>
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">	 * &lt;/ol&gt;</em>
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">	 * Results are cached to improve performance for repeated lookups of the same files.</em>
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">	 * @param fileName The name or path of the file.</em>
+<a class="jxr_linenumber" name="L333" href="#L333">333</a> <em class="jxr_javadoccomment">	 * @return The MIME type of the file, or the default type if unknown.</em>
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> 	<strong class="jxr_keyword">public</strong> String getContentType(String fileName) {
+<a class="jxr_linenumber" name="L336" href="#L336">336</a> 		<strong class="jxr_keyword">if</strong> (Utils.isEmpty(fileName)) {
+<a class="jxr_linenumber" name="L337" href="#L337">337</a> 			<strong class="jxr_keyword">return</strong> defaultType;
+<a class="jxr_linenumber" name="L338" href="#L338">338</a> 		}
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> 
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> 		<em class="jxr_comment">// Check file map first (for specific file mappings)</em>
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> 		<strong class="jxr_keyword">var</strong> fileMimeType = fileMap.get(fileName);
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> 		<strong class="jxr_keyword">if</strong> (fileMimeType != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> 			<strong class="jxr_keyword">return</strong> fileMimeType;
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> 		}
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> 
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> 		<em class="jxr_comment">// Use cache with supplier for automatic cache management</em>
+<a class="jxr_linenumber" name="L347" href="#L347">347</a> 		<strong class="jxr_keyword">return</strong> cache.get(fileName, () -&gt; determineMimeType(fileName));
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> 	}
+<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
+<a class="jxr_linenumber" name="L350" href="#L350">350</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">	 * Determines the MIME type without caching (internal method).</em>
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">	 * @param fileName The name or path of the file.</em>
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">	 * @return The MIME type of the file.</em>
+<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> 	<strong class="jxr_keyword">private</strong> String determineMimeType(String fileName) {
+<a class="jxr_linenumber" name="L357" href="#L357">357</a> 		<em class="jxr_comment">// Try Java NIO's content-based detection first</em>
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> 		<strong class="jxr_keyword">if</strong> (nioContentBasedDetection) {
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> 			<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L360" href="#L360">360</a> 				<strong class="jxr_keyword">var</strong> path = Paths.get(fileName);
+<a class="jxr_linenumber" name="L361" href="#L361">361</a> 				<strong class="jxr_keyword">if</strong> (Files.exists(path)) {
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> 					<strong class="jxr_keyword">var</strong> contentType = Files.probeContentType(path);
+<a class="jxr_linenumber" name="L363" href="#L363">363</a> 					<strong class="jxr_keyword">if</strong> (Utils.isNotEmpty(contentType)) {
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> 						<strong class="jxr_keyword">return</strong> contentType;
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> 					}
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> 				}
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> 			} <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> 				<em class="jxr_comment">// Fall back to extension-based detection</em>
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> 			}
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> 		}
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> 
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> 		<em class="jxr_comment">// Fall back to extension-based detection</em>
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> 		<strong class="jxr_keyword">var</strong> extension = FileUtils.getExtension(fileName);
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> 		<strong class="jxr_keyword">if</strong> (Utils.isNotEmpty(extension)) {
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> 			<strong class="jxr_keyword">var</strong> mimeType = extMap.get(extension.toLowerCase());
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> 			<strong class="jxr_keyword">if</strong> (mimeType != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> 				<strong class="jxr_keyword">return</strong> mimeType;
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> 			}
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> 		}
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> 
+<a class="jxr_linenumber" name="L381" href="#L381">381</a> 		<em class="jxr_comment">// Default fallback</em>
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> 		<strong class="jxr_keyword">return</strong> defaultType;
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> 	}
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> 
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> <em class="jxr_javadoccomment">	 * Clears the MIME type cache.</em>
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> <em class="jxr_javadoccomment">	 * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="L389" href="#L389">389</a> <em class="jxr_javadoccomment">	 * This method can be called to free memory or when you want to ensure</em>
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> <em class="jxr_javadoccomment">	 * fresh MIME type detection (e.g., after files have been modified).</em>
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clearCache() {
+<a class="jxr_linenumber" name="L393" href="#L393">393</a> 		cache.clear();
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> 	}
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> <em class="jxr_javadoccomment">	 * Returns the current cache size.</em>
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L399" href="#L399">399</a> <em class="jxr_javadoccomment">	 * @return The number of cached MIME type entries.</em>
+<a class="jxr_linenumber" name="L400" href="#L400">400</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L401" href="#L401">401</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getCacheSize() {
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> 		<strong class="jxr_keyword">return</strong> cache.size();
+<a class="jxr_linenumber" name="L403" href="#L403">403</a> 	}
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
+<a class="jxr_linenumber" name="L405" href="#L405">405</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">	 * Returns the number of cache hits since the cache was created.</em>
+<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_javadoccomment">	 * @return The number of cache hits.</em>
+<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getCacheHits() {
+<a class="jxr_linenumber" name="L411" href="#L411">411</a> 		<strong class="jxr_keyword">return</strong> cache.getCacheHits();
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> 	}
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> }
+</pre>
+<hr/>
+<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
+</body>
+</html>
diff --git a/site/xref/org/apache/juneau/common/utils/StringUtils.html b/site/xref/org/apache/juneau/common/utils/StringUtils.html
index 0153b05a85..fa8ac3f1ea 100644
--- a/site/xref/org/apache/juneau/common/utils/StringUtils.html
+++ b/site/xref/org/apache/juneau/common/utils/StringUtils.html
@@ -37,15 +37,15 @@
 <a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.net.*;
 <a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.nio.*;
 <a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> java.text.*;
-<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.*;
-<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.*;
-<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.util.function.*;
-<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.regex.*;
-<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.util.stream.*;
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.zip.*;
-<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
-<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> jakarta.xml.bind.*;
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.time.*;
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.time.format.*;
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.util.*;
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.*;
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.*;
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.util.function.*;
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.regex.*;
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.util.stream.*;
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.util.zip.*;
 <a class="jxr_linenumber" name="L41" href="#L41">41</a>  
 <a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment">/**</em>
 <a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * Reusable string utility methods.</em>
@@ -1876,7 +1876,7 @@
 <a class="jxr_linenumber" name="L1868" href="#L1868">1868</a> 			date += <span class="jxr_string">":00:00"</span>;
 <a class="jxr_linenumber" name="L1869" href="#L1869">1869</a> 		<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (date.matches(<span class="jxr_string">"&#92;&#92;d{4}&#92;&#92;-&#92;&#92;d{2}&#92;&#92;-&#92;&#92;d{2}T&#92;&#92;d{2}&#92;&#92;:&#92;&#92;d{2}"</span>))
 <a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> 			date += <span class="jxr_string">":00"</span>;
-<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a> 		<strong class="jxr_keyword">return</strong> DatatypeConverter.parseDateTime(date);
+<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a> 		<strong class="jxr_keyword">return</strong> DateUtils.fromIso8601Calendar(date);
 <a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> 	}
 <a class="jxr_linenumber" name="L1873" href="#L1873">1873</a> 
 <a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> 	<em class="jxr_javadoccomment">/**</em>
@@ -3178,579 +3178,589 @@
 <a class="jxr_linenumber" name="L3170" href="#L3170">3170</a> <em class="jxr_javadoccomment">	 * @return The converted object.</em>
 <a class="jxr_linenumber" name="L3171" href="#L3171">3171</a> <em class="jxr_javadoccomment">	 */</em>
 <a class="jxr_linenumber" name="L3172" href="#L3172">3172</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toIsoDate(Calendar c) {
-<a class="jxr_linenumber" name="L3173" href="#L3173">3173</a> 		<strong class="jxr_keyword">return</strong> DatatypeConverter.printDate(c);
-<a class="jxr_linenumber" name="L3174" href="#L3174">3174</a> 	}
-<a class="jxr_linenumber" name="L3175" href="#L3175">3175</a> 
-<a class="jxr_linenumber" name="L3176" href="#L3176">3176</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3177" href="#L3177">3177</a> <em class="jxr_javadoccomment">	 * Converts the specified object to an ISO8601 date-time string.</em>
-<a class="jxr_linenumber" name="L3178" href="#L3178">3178</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3179" href="#L3179">3179</a> <em class="jxr_javadoccomment">	 * @param c The object to convert.</em>
-<a class="jxr_linenumber" name="L3180" href="#L3180">3180</a> <em class="jxr_javadoccomment">	 * @return The converted object.</em>
-<a class="jxr_linenumber" name="L3181" href="#L3181">3181</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3182" href="#L3182">3182</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toIsoDateTime(Calendar c) {
-<a class="jxr_linenumber" name="L3183" href="#L3183">3183</a> 		<strong class="jxr_keyword">return</strong> DatatypeConverter.printDateTime(c);
-<a class="jxr_linenumber" name="L3184" href="#L3184">3184</a> 	}
-<a class="jxr_linenumber" name="L3185" href="#L3185">3185</a> 
-<a class="jxr_linenumber" name="L3186" href="#L3186">3186</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3187" href="#L3187">3187</a> <em class="jxr_javadoccomment">	 * Converts the specified bytes into a readable string.</em>
-<a class="jxr_linenumber" name="L3188" href="#L3188">3188</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3189" href="#L3189">3189</a> <em class="jxr_javadoccomment">	 * @param b The number to convert to hex.</em>
-<a class="jxr_linenumber" name="L3190" href="#L3190">3190</a> <em class="jxr_javadoccomment">	 * @return A &lt;code&gt;&lt;jk&gt;char&lt;/jk&gt;[2]&lt;/code&gt; containing the specified characters.</em>
-<a class="jxr_linenumber" name="L3191" href="#L3191">3191</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3192" href="#L3192">3192</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toReadableBytes(byte[] b) {
-<a class="jxr_linenumber" name="L3193" href="#L3193">3193</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a class="jxr_linenumber" name="L3194" href="#L3194">3194</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> b2 : b)
-<a class="jxr_linenumber" name="L3195" href="#L3195">3195</a> 			sb.append((b2 &lt; ' ' || b2 &gt; 'z') ? String.format(<span class="jxr_string">"[%02X]"</span>, b2) : (<strong class="jxr_keyword">char</strong>)b2 + <span class="jxr_string">"   "</span>);
-<a class="jxr_linenumber" name="L3196" href="#L3196">3196</a> 		sb.append(<span class="jxr_string">"\n"</span>);
-<a class="jxr_linenumber" name="L3197" href="#L3197">3197</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> b2 : b)
-<a class="jxr_linenumber" name="L3198" href="#L3198">3198</a> 			sb.append(String.format(<span class="jxr_string">"[%02X]"</span>, b2));
-<a class="jxr_linenumber" name="L3199" href="#L3199">3199</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L3200" href="#L3200">3200</a> 	}
-<a class="jxr_linenumber" name="L3201" href="#L3201">3201</a> 
-<a class="jxr_linenumber" name="L3202" href="#L3202">3202</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3203" href="#L3203">3203</a> <em class="jxr_javadoccomment">	 * Same as {@link #toHex(byte[])} but puts spaces between the byte strings.</em>
-<a class="jxr_linenumber" name="L3204" href="#L3204">3204</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3205" href="#L3205">3205</a> <em class="jxr_javadoccomment">	 * @param bytes The bytes to convert to hexadecimal.</em>
-<a class="jxr_linenumber" name="L3206" href="#L3206">3206</a> <em class="jxr_javadoccomment">	 * @return A new string consisting of hexadecimal characters.</em>
-<a class="jxr_linenumber" name="L3207" href="#L3207">3207</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3208" href="#L3208">3208</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toSpacedHex(byte[] bytes) {
-<a class="jxr_linenumber" name="L3209" href="#L3209">3209</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(bytes.length * 3);
-<a class="jxr_linenumber" name="L3210" href="#L3210">3210</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> j = 0; j &lt; bytes.length; j++) {
-<a class="jxr_linenumber" name="L3211" href="#L3211">3211</a> 			<strong class="jxr_keyword">if</strong> (j &gt; 0)
-<a class="jxr_linenumber" name="L3212" href="#L3212">3212</a> 				sb.append(' ');
-<a class="jxr_linenumber" name="L3213" href="#L3213">3213</a> 			<strong class="jxr_keyword">var</strong> v = bytes[j] &amp; 0xFF;
-<a class="jxr_linenumber" name="L3214" href="#L3214">3214</a> 			sb.append(HEX[v &gt;&gt;&gt; 4]).append(HEX[v &amp; 0x0F]);
-<a class="jxr_linenumber" name="L3215" href="#L3215">3215</a> 		}
-<a class="jxr_linenumber" name="L3216" href="#L3216">3216</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L3217" href="#L3217">3217</a> 	}
-<a class="jxr_linenumber" name="L3218" href="#L3218">3218</a> 
-<a class="jxr_linenumber" name="L3219" href="#L3219">3219</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3220" href="#L3220">3220</a> <em class="jxr_javadoccomment">	 * Converts the specified object to a URI.</em>
-<a class="jxr_linenumber" name="L3221" href="#L3221">3221</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3222" href="#L3222">3222</a> <em class="jxr_javadoccomment">	 * @param o The object to convert to a URI.</em>
-<a class="jxr_linenumber" name="L3223" href="#L3223">3223</a> <em class="jxr_javadoccomment">	 * @return A new URI, or the same object if the object was already a URI, or</em>
-<a class="jxr_linenumber" name="L3224" href="#L3224">3224</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3225" href="#L3225">3225</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI toURI(Object o) {
-<a class="jxr_linenumber" name="L3226" href="#L3226">3226</a> 		<strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong> || o instanceof URI)
-<a class="jxr_linenumber" name="L3227" href="#L3227">3227</a> 			<strong class="jxr_keyword">return</strong> (URI)o;
-<a class="jxr_linenumber" name="L3228" href="#L3228">3228</a> 		<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L3229" href="#L3229">3229</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> URI(o.toString());
-<a class="jxr_linenumber" name="L3230" href="#L3230">3230</a> 		} <strong class="jxr_keyword">catch</strong> (URISyntaxException e) {
-<a class="jxr_linenumber" name="L3231" href="#L3231">3231</a> 			<strong class="jxr_keyword">throw</strong> asRuntimeException(e);
-<a class="jxr_linenumber" name="L3232" href="#L3232">3232</a> 		}
-<a class="jxr_linenumber" name="L3233" href="#L3233">3233</a> 	}
-<a class="jxr_linenumber" name="L3234" href="#L3234">3234</a> 
-<a class="jxr_linenumber" name="L3235" href="#L3235">3235</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3236" href="#L3236">3236</a> <em class="jxr_javadoccomment">	 * Converts the specified byte array to a UTF-8 string.</em>
-<a class="jxr_linenumber" name="L3237" href="#L3237">3237</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3238" href="#L3238">3238</a> <em class="jxr_javadoccomment">	 * @param b The byte array to convert.</em>
-<a class="jxr_linenumber" name="L3239" href="#L3239">3239</a> <em class="jxr_javadoccomment">	 * @return The UTF-8 string representation, or &lt;jk&gt;null&lt;/jk&gt; if the array is &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3240" href="#L3240">3240</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3241" href="#L3241">3241</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toUtf8(byte[] b) {
-<a class="jxr_linenumber" name="L3242" href="#L3242">3242</a> 		<strong class="jxr_keyword">return</strong> b == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> String(b, IOUtils.UTF8);
+<a class="jxr_linenumber" name="L3173" href="#L3173">3173</a> 		<strong class="jxr_keyword">if</strong> (c == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L3174" href="#L3174">3174</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3175" href="#L3175">3175</a> 	}
+<a class="jxr_linenumber" name="L3176" href="#L3176">3176</a> 		<em class="jxr_comment">// Convert Calendar to ZonedDateTime and format as ISO8601 date (YYYY-MM-DD)</em>
+<a class="jxr_linenumber" name="L3177" href="#L3177">3177</a> 		ZonedDateTime zdt = c.toInstant().atZone(c.getTimeZone().toZoneId());
+<a class="jxr_linenumber" name="L3178" href="#L3178">3178</a> 		<strong class="jxr_keyword">return</strong> zdt.format(DateTimeFormatter.ISO_LOCAL_DATE);
+<a class="jxr_linenumber" name="L3179" href="#L3179">3179</a> 	}
+<a class="jxr_linenumber" name="L3180" href="#L3180">3180</a> 
+<a class="jxr_linenumber" name="L3181" href="#L3181">3181</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3182" href="#L3182">3182</a> <em class="jxr_javadoccomment">	 * Converts the specified object to an ISO8601 date-time string.</em>
+<a class="jxr_linenumber" name="L3183" href="#L3183">3183</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3184" href="#L3184">3184</a> <em class="jxr_javadoccomment">	 * @param c The object to convert.</em>
+<a class="jxr_linenumber" name="L3185" href="#L3185">3185</a> <em class="jxr_javadoccomment">	 * @return The converted object.</em>
+<a class="jxr_linenumber" name="L3186" href="#L3186">3186</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3187" href="#L3187">3187</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toIsoDateTime(Calendar c) {
+<a class="jxr_linenumber" name="L3188" href="#L3188">3188</a> 		<strong class="jxr_keyword">if</strong> (c == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L3189" href="#L3189">3189</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3190" href="#L3190">3190</a> 		}
+<a class="jxr_linenumber" name="L3191" href="#L3191">3191</a> 		<em class="jxr_comment">// Convert Calendar to ZonedDateTime and format as ISO8601 date-time with timezone</em>
+<a class="jxr_linenumber" name="L3192" href="#L3192">3192</a> 		ZonedDateTime zdt = c.toInstant().atZone(c.getTimeZone().toZoneId());
+<a class="jxr_linenumber" name="L3193" href="#L3193">3193</a> 		<strong class="jxr_keyword">return</strong> zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
+<a class="jxr_linenumber" name="L3194" href="#L3194">3194</a> 	}
+<a class="jxr_linenumber" name="L3195" href="#L3195">3195</a> 
+<a class="jxr_linenumber" name="L3196" href="#L3196">3196</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3197" href="#L3197">3197</a> <em class="jxr_javadoccomment">	 * Converts the specified bytes into a readable string.</em>
+<a class="jxr_linenumber" name="L3198" href="#L3198">3198</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3199" href="#L3199">3199</a> <em class="jxr_javadoccomment">	 * @param b The number to convert to hex.</em>
+<a class="jxr_linenumber" name="L3200" href="#L3200">3200</a> <em class="jxr_javadoccomment">	 * @return A &lt;code&gt;&lt;jk&gt;char&lt;/jk&gt;[2]&lt;/code&gt; containing the specified characters.</em>
+<a class="jxr_linenumber" name="L3201" href="#L3201">3201</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3202" href="#L3202">3202</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toReadableBytes(byte[] b) {
+<a class="jxr_linenumber" name="L3203" href="#L3203">3203</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a class="jxr_linenumber" name="L3204" href="#L3204">3204</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> b2 : b)
+<a class="jxr_linenumber" name="L3205" href="#L3205">3205</a> 			sb.append((b2 &lt; ' ' || b2 &gt; 'z') ? String.format(<span class="jxr_string">"[%02X]"</span>, b2) : (<strong class="jxr_keyword">char</strong>)b2 + <span class="jxr_string">"   "</span>);
+<a class="jxr_linenumber" name="L3206" href="#L3206">3206</a> 		sb.append(<span class="jxr_string">"\n"</span>);
+<a class="jxr_linenumber" name="L3207" href="#L3207">3207</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> b2 : b)
+<a class="jxr_linenumber" name="L3208" href="#L3208">3208</a> 			sb.append(String.format(<span class="jxr_string">"[%02X]"</span>, b2));
+<a class="jxr_linenumber" name="L3209" href="#L3209">3209</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
+<a class="jxr_linenumber" name="L3210" href="#L3210">3210</a> 	}
+<a class="jxr_linenumber" name="L3211" href="#L3211">3211</a> 
+<a class="jxr_linenumber" name="L3212" href="#L3212">3212</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3213" href="#L3213">3213</a> <em class="jxr_javadoccomment">	 * Same as {@link #toHex(byte[])} but puts spaces between the byte strings.</em>
+<a class="jxr_linenumber" name="L3214" href="#L3214">3214</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3215" href="#L3215">3215</a> <em class="jxr_javadoccomment">	 * @param bytes The bytes to convert to hexadecimal.</em>
+<a class="jxr_linenumber" name="L3216" href="#L3216">3216</a> <em class="jxr_javadoccomment">	 * @return A new string consisting of hexadecimal characters.</em>
+<a class="jxr_linenumber" name="L3217" href="#L3217">3217</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3218" href="#L3218">3218</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toSpacedHex(byte[] bytes) {
+<a class="jxr_linenumber" name="L3219" href="#L3219">3219</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(bytes.length * 3);
+<a class="jxr_linenumber" name="L3220" href="#L3220">3220</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> j = 0; j &lt; bytes.length; j++) {
+<a class="jxr_linenumber" name="L3221" href="#L3221">3221</a> 			<strong class="jxr_keyword">if</strong> (j &gt; 0)
+<a class="jxr_linenumber" name="L3222" href="#L3222">3222</a> 				sb.append(' ');
+<a class="jxr_linenumber" name="L3223" href="#L3223">3223</a> 			<strong class="jxr_keyword">var</strong> v = bytes[j] &amp; 0xFF;
+<a class="jxr_linenumber" name="L3224" href="#L3224">3224</a> 			sb.append(HEX[v &gt;&gt;&gt; 4]).append(HEX[v &amp; 0x0F]);
+<a class="jxr_linenumber" name="L3225" href="#L3225">3225</a> 		}
+<a class="jxr_linenumber" name="L3226" href="#L3226">3226</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
+<a class="jxr_linenumber" name="L3227" href="#L3227">3227</a> 	}
+<a class="jxr_linenumber" name="L3228" href="#L3228">3228</a> 
+<a class="jxr_linenumber" name="L3229" href="#L3229">3229</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3230" href="#L3230">3230</a> <em class="jxr_javadoccomment">	 * Converts the specified object to a URI.</em>
+<a class="jxr_linenumber" name="L3231" href="#L3231">3231</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3232" href="#L3232">3232</a> <em class="jxr_javadoccomment">	 * @param o The object to convert to a URI.</em>
+<a class="jxr_linenumber" name="L3233" href="#L3233">3233</a> <em class="jxr_javadoccomment">	 * @return A new URI, or the same object if the object was already a URI, or</em>
+<a class="jxr_linenumber" name="L3234" href="#L3234">3234</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3235" href="#L3235">3235</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI toURI(Object o) {
+<a class="jxr_linenumber" name="L3236" href="#L3236">3236</a> 		<strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong> || o instanceof URI)
+<a class="jxr_linenumber" name="L3237" href="#L3237">3237</a> 			<strong class="jxr_keyword">return</strong> (URI)o;
+<a class="jxr_linenumber" name="L3238" href="#L3238">3238</a> 		<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L3239" href="#L3239">3239</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> URI(o.toString());
+<a class="jxr_linenumber" name="L3240" href="#L3240">3240</a> 		} <strong class="jxr_keyword">catch</strong> (URISyntaxException e) {
+<a class="jxr_linenumber" name="L3241" href="#L3241">3241</a> 			<strong class="jxr_keyword">throw</strong> asRuntimeException(e);
+<a class="jxr_linenumber" name="L3242" href="#L3242">3242</a> 		}
 <a class="jxr_linenumber" name="L3243" href="#L3243">3243</a> 	}
 <a class="jxr_linenumber" name="L3244" href="#L3244">3244</a> 
 <a class="jxr_linenumber" name="L3245" href="#L3245">3245</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3246" href="#L3246">3246</a> <em class="jxr_javadoccomment">	 * Converts the contents of the specified input stream to a UTF-8 string.</em>
+<a class="jxr_linenumber" name="L3246" href="#L3246">3246</a> <em class="jxr_javadoccomment">	 * Converts the specified byte array to a UTF-8 string.</em>
 <a class="jxr_linenumber" name="L3247" href="#L3247">3247</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3248" href="#L3248">3248</a> <em class="jxr_javadoccomment">	 * @param is The input stream to convert.</em>
-<a class="jxr_linenumber" name="L3249" href="#L3249">3249</a> <em class="jxr_javadoccomment">	 * @return The UTF-8 string representation of the input stream contents, or &lt;jk&gt;null&lt;/jk&gt; if the stream is &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3248" href="#L3248">3248</a> <em class="jxr_javadoccomment">	 * @param b The byte array to convert.</em>
+<a class="jxr_linenumber" name="L3249" href="#L3249">3249</a> <em class="jxr_javadoccomment">	 * @return The UTF-8 string representation, or &lt;jk&gt;null&lt;/jk&gt; if the array is &lt;jk&gt;null&lt;/jk&gt;.</em>
 <a class="jxr_linenumber" name="L3250" href="#L3250">3250</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3251" href="#L3251">3251</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toUtf8(InputStream is) {
-<a class="jxr_linenumber" name="L3252" href="#L3252">3252</a> 		<strong class="jxr_keyword">return</strong> safe(() -&gt; is == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> String(readBytes(is), IOUtils.UTF8));
+<a class="jxr_linenumber" name="L3251" href="#L3251">3251</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toUtf8(byte[] b) {
+<a class="jxr_linenumber" name="L3252" href="#L3252">3252</a> 		<strong class="jxr_keyword">return</strong> b == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> String(b, IOUtils.UTF8);
 <a class="jxr_linenumber" name="L3253" href="#L3253">3253</a> 	}
 <a class="jxr_linenumber" name="L3254" href="#L3254">3254</a> 
 <a class="jxr_linenumber" name="L3255" href="#L3255">3255</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3256" href="#L3256">3256</a> <em class="jxr_javadoccomment">	 * Same as {@link String#trim()} but prevents &lt;c&gt;NullPointerExceptions&lt;/c&gt;.</em>
+<a class="jxr_linenumber" name="L3256" href="#L3256">3256</a> <em class="jxr_javadoccomment">	 * Converts the contents of the specified input stream to a UTF-8 string.</em>
 <a class="jxr_linenumber" name="L3257" href="#L3257">3257</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3258" href="#L3258">3258</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3259" href="#L3259">3259</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3258" href="#L3258">3258</a> <em class="jxr_javadoccomment">	 * @param is The input stream to convert.</em>
+<a class="jxr_linenumber" name="L3259" href="#L3259">3259</a> <em class="jxr_javadoccomment">	 * @return The UTF-8 string representation of the input stream contents, or &lt;jk&gt;null&lt;/jk&gt; if the stream is &lt;jk&gt;null&lt;/jk&gt;.</em>
 <a class="jxr_linenumber" name="L3260" href="#L3260">3260</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3261" href="#L3261">3261</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trim(String s) {
-<a class="jxr_linenumber" name="L3262" href="#L3262">3262</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3263" href="#L3263">3263</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3264" href="#L3264">3264</a> 		<strong class="jxr_keyword">return</strong> s.trim();
-<a class="jxr_linenumber" name="L3265" href="#L3265">3265</a> 	}
-<a class="jxr_linenumber" name="L3266" href="#L3266">3266</a> 
-<a class="jxr_linenumber" name="L3267" href="#L3267">3267</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3268" href="#L3268">3268</a> <em class="jxr_javadoccomment">	 * Trims whitespace characters from the end of the specified string.</em>
-<a class="jxr_linenumber" name="L3269" href="#L3269">3269</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3270" href="#L3270">3270</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3271" href="#L3271">3271</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3272" href="#L3272">3272</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3273" href="#L3273">3273</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimEnd(String s) {
-<a class="jxr_linenumber" name="L3274" href="#L3274">3274</a> 		<strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3275" href="#L3275">3275</a> 			<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; isWhitespace(s.charAt(s.length() - 1)))
-<a class="jxr_linenumber" name="L3276" href="#L3276">3276</a> 				s = s.substring(0, s.length() - 1);
-<a class="jxr_linenumber" name="L3277" href="#L3277">3277</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3278" href="#L3278">3278</a> 	}
-<a class="jxr_linenumber" name="L3279" href="#L3279">3279</a> 
-<a class="jxr_linenumber" name="L3280" href="#L3280">3280</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3281" href="#L3281">3281</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from the beginning of the specified string.</em>
-<a class="jxr_linenumber" name="L3282" href="#L3282">3282</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3283" href="#L3283">3283</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3284" href="#L3284">3284</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
-<a class="jxr_linenumber" name="L3285" href="#L3285">3285</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3286" href="#L3286">3286</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimLeadingSlashes(String s) {
-<a class="jxr_linenumber" name="L3287" href="#L3287">3287</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3288" href="#L3288">3288</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3289" href="#L3289">3289</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; s.charAt(0) == '/')
-<a class="jxr_linenumber" name="L3290" href="#L3290">3290</a> 			s = s.substring(1);
-<a class="jxr_linenumber" name="L3291" href="#L3291">3291</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3292" href="#L3292">3292</a> 	}
-<a class="jxr_linenumber" name="L3293" href="#L3293">3293</a> 
-<a class="jxr_linenumber" name="L3294" href="#L3294">3294</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3295" href="#L3295">3295</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from both the start and end of the specified string.</em>
-<a class="jxr_linenumber" name="L3296" href="#L3296">3296</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3297" href="#L3297">3297</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3298" href="#L3298">3298</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
-<a class="jxr_linenumber" name="L3299" href="#L3299">3299</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3300" href="#L3300">3300</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimSlashes(String s) {
-<a class="jxr_linenumber" name="L3301" href="#L3301">3301</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3302" href="#L3302">3302</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3303" href="#L3303">3303</a> 		<strong class="jxr_keyword">if</strong> (s.isEmpty())
-<a class="jxr_linenumber" name="L3304" href="#L3304">3304</a> 			<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3305" href="#L3305">3305</a> 		<strong class="jxr_keyword">while</strong> (endsWith(s, '/'))
-<a class="jxr_linenumber" name="L3306" href="#L3306">3306</a> 			s = s.substring(0, s.length() - 1);
-<a class="jxr_linenumber" name="L3307" href="#L3307">3307</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; s.charAt(0) == '/')  <em class="jxr_comment">// NOSONAR - NPE not possible here.</em>
-<a class="jxr_linenumber" name="L3308" href="#L3308">3308</a> 			s = s.substring(1);
-<a class="jxr_linenumber" name="L3309" href="#L3309">3309</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3310" href="#L3310">3310</a> 	}
-<a class="jxr_linenumber" name="L3311" href="#L3311">3311</a> 
-<a class="jxr_linenumber" name="L3312" href="#L3312">3312</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3313" href="#L3313">3313</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; and space characters from both the start and end of the specified string.</em>
-<a class="jxr_linenumber" name="L3314" href="#L3314">3314</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3315" href="#L3315">3315</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3316" href="#L3316">3316</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
-<a class="jxr_linenumber" name="L3317" href="#L3317">3317</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3318" href="#L3318">3318</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimSlashesAndSpaces(String s) {
-<a class="jxr_linenumber" name="L3319" href="#L3319">3319</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3320" href="#L3320">3320</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3321" href="#L3321">3321</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; (s.charAt(s.length() - 1) == '/' || isWhitespace(s.charAt(s.length() - 1))))
-<a class="jxr_linenumber" name="L3322" href="#L3322">3322</a> 			s = s.substring(0, s.length() - 1);
-<a class="jxr_linenumber" name="L3323" href="#L3323">3323</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; (s.charAt(0) == '/' || isWhitespace(s.charAt(0))))
-<a class="jxr_linenumber" name="L3324" href="#L3324">3324</a> 			s = s.substring(1);
-<a class="jxr_linenumber" name="L3325" href="#L3325">3325</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3326" href="#L3326">3326</a> 	}
-<a class="jxr_linenumber" name="L3327" href="#L3327">3327</a> 
-<a class="jxr_linenumber" name="L3328" href="#L3328">3328</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3329" href="#L3329">3329</a> <em class="jxr_javadoccomment">	 * Trims whitespace characters from the beginning of the specified string.</em>
-<a class="jxr_linenumber" name="L3330" href="#L3330">3330</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3331" href="#L3331">3331</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3332" href="#L3332">3332</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3333" href="#L3333">3333</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3334" href="#L3334">3334</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimStart(String s) {
-<a class="jxr_linenumber" name="L3335" href="#L3335">3335</a> 		<strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3336" href="#L3336">3336</a> 			<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; isWhitespace(s.charAt(0)))
-<a class="jxr_linenumber" name="L3337" href="#L3337">3337</a> 				s = s.substring(1);
-<a class="jxr_linenumber" name="L3338" href="#L3338">3338</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3339" href="#L3339">3339</a> 	}
-<a class="jxr_linenumber" name="L3340" href="#L3340">3340</a> 
-<a class="jxr_linenumber" name="L3341" href="#L3341">3341</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3342" href="#L3342">3342</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from the end of the specified string.</em>
-<a class="jxr_linenumber" name="L3343" href="#L3343">3343</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3344" href="#L3344">3344</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
-<a class="jxr_linenumber" name="L3345" href="#L3345">3345</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
-<a class="jxr_linenumber" name="L3346" href="#L3346">3346</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3347" href="#L3347">3347</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimTrailingSlashes(String s) {
-<a class="jxr_linenumber" name="L3348" href="#L3348">3348</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3349" href="#L3349">3349</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3350" href="#L3350">3350</a> 		<strong class="jxr_keyword">while</strong> (endsWith(s, '/'))
-<a class="jxr_linenumber" name="L3351" href="#L3351">3351</a> 			s = s.substring(0, s.length() - 1);
-<a class="jxr_linenumber" name="L3352" href="#L3352">3352</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3353" href="#L3353">3353</a> 	}
-<a class="jxr_linenumber" name="L3354" href="#L3354">3354</a> 
-<a class="jxr_linenumber" name="L3355" href="#L3355">3355</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3356" href="#L3356">3356</a> <em class="jxr_javadoccomment">	 * Uncapitalizes the first character of a string.</em>
-<a class="jxr_linenumber" name="L3357" href="#L3357">3357</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3358" href="#L3358">3358</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
-<a class="jxr_linenumber" name="L3359" href="#L3359">3359</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
-<a class="jxr_linenumber" name="L3360" href="#L3360">3360</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;jk&gt;null&lt;/jk&gt;);          &lt;jc&gt;// null&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L3361" href="#L3361">3361</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;""&lt;/js&gt;);            &lt;jc&gt;// ""&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L3362" href="#L3362">3362</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"Hello"&lt;/js&gt;);       &lt;jc&gt;// "hello"&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L3363" href="#L3363">3363</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"hello"&lt;/js&gt;);       &lt;jc&gt;// "hello"&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L3364" href="#L3364">3364</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"HELLO"&lt;/js&gt;);       &lt;jc&gt;// "hELLO"&lt;/jc&gt;</em>
-<a class="jxr_linenumber" name="L3365" href="#L3365">3365</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L3366" href="#L3366">3366</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3367" href="#L3367">3367</a> <em class="jxr_javadoccomment">	 * @param str The string to uncapitalize.</em>
-<a class="jxr_linenumber" name="L3368" href="#L3368">3368</a> <em class="jxr_javadoccomment">	 * @return The string with the first character uncapitalized, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3369" href="#L3369">3369</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3370" href="#L3370">3370</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String uncapitalize(String str) {
-<a class="jxr_linenumber" name="L3371" href="#L3371">3371</a> 		<strong class="jxr_keyword">if</strong> (isEmpty(str))
-<a class="jxr_linenumber" name="L3372" href="#L3372">3372</a> 			<strong class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L3373" href="#L3373">3373</a> 		<strong class="jxr_keyword">return</strong> Character.toLowerCase(str.charAt(0)) + str.substring(1);
-<a class="jxr_linenumber" name="L3374" href="#L3374">3374</a> 	}
-<a class="jxr_linenumber" name="L3375" href="#L3375">3375</a> 
-<a class="jxr_linenumber" name="L3376" href="#L3376">3376</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3377" href="#L3377">3377</a> <em class="jxr_javadoccomment">	 * Removes escape characters from the specified characters.</em>
-<a class="jxr_linenumber" name="L3378" href="#L3378">3378</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3379" href="#L3379">3379</a> <em class="jxr_javadoccomment">	 * @param s The string to remove escape characters from.</em>
-<a class="jxr_linenumber" name="L3380" href="#L3380">3380</a> <em class="jxr_javadoccomment">	 * @param escaped The characters escaped.</em>
-<a class="jxr_linenumber" name="L3381" href="#L3381">3381</a> <em class="jxr_javadoccomment">	 * @return A new string if characters were removed, or the same string if not or if the input was &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3382" href="#L3382">3382</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3383" href="#L3383">3383</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String unEscapeChars(String s, <a name="AsciiSet" href="../../../../../org/apache/juneau/common/utils/AsciiSet.html#AsciiSet">AsciiSet</a> escaped) {
-<a class="jxr_linenumber" name="L3384" href="#L3384">3384</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong> || s.isEmpty())
-<a class="jxr_linenumber" name="L3385" href="#L3385">3385</a> 			<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3386" href="#L3386">3386</a> 		<strong class="jxr_keyword">var</strong> count = 0;
-<a class="jxr_linenumber" name="L3387" href="#L3387">3387</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++)
-<a class="jxr_linenumber" name="L3388" href="#L3388">3388</a> 			<strong class="jxr_keyword">if</strong> (escaped.contains(s.charAt(i)))
-<a class="jxr_linenumber" name="L3389" href="#L3389">3389</a> 				count++;
-<a class="jxr_linenumber" name="L3390" href="#L3390">3390</a> 		<strong class="jxr_keyword">if</strong> (count == 0)
-<a class="jxr_linenumber" name="L3391" href="#L3391">3391</a> 			<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3392" href="#L3392">3392</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuffer(s.length() - count);
-<a class="jxr_linenumber" name="L3393" href="#L3393">3393</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++) {
-<a class="jxr_linenumber" name="L3394" href="#L3394">3394</a> 			<strong class="jxr_keyword">var</strong> c = s.charAt(i);
-<a class="jxr_linenumber" name="L3395" href="#L3395">3395</a> 
-<a class="jxr_linenumber" name="L3396" href="#L3396">3396</a> 			<strong class="jxr_keyword">if</strong> (c == '&#92;&#92;') {
-<a class="jxr_linenumber" name="L3397" href="#L3397">3397</a> 				<strong class="jxr_keyword">if</strong> (i + 1 != s.length()) {  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3398" href="#L3398">3398</a> 					<strong class="jxr_keyword">var</strong> c2 = s.charAt(i + 1);
-<a class="jxr_linenumber" name="L3399" href="#L3399">3399</a> 					<strong class="jxr_keyword">if</strong> (escaped.contains(c2)) {
-<a class="jxr_linenumber" name="L3400" href="#L3400">3400</a> 						i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3401" href="#L3401">3401</a> 					} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c2 == '&#92;&#92;') {
-<a class="jxr_linenumber" name="L3402" href="#L3402">3402</a> 						sb.append('&#92;&#92;');
-<a class="jxr_linenumber" name="L3403" href="#L3403">3403</a> 						i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3404" href="#L3404">3404</a> 					}
-<a class="jxr_linenumber" name="L3405" href="#L3405">3405</a> 				}
-<a class="jxr_linenumber" name="L3406" href="#L3406">3406</a> 			}
-<a class="jxr_linenumber" name="L3407" href="#L3407">3407</a> 			sb.append(s.charAt(i));
-<a class="jxr_linenumber" name="L3408" href="#L3408">3408</a> 		}
-<a class="jxr_linenumber" name="L3409" href="#L3409">3409</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L3410" href="#L3410">3410</a> 	}
-<a class="jxr_linenumber" name="L3411" href="#L3411">3411</a> 
-<a class="jxr_linenumber" name="L3412" href="#L3412">3412</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3413" href="#L3413">3413</a> <em class="jxr_javadoccomment">	 * Creates an escaped-unicode sequence (e.g. &lt;js&gt;"&#92;&#92;u1234"&lt;/js&gt;) for the specified character.</em>
-<a class="jxr_linenumber" name="L3414" href="#L3414">3414</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3415" href="#L3415">3415</a> <em class="jxr_javadoccomment">	 * @param c The character to create a sequence for.</em>
-<a class="jxr_linenumber" name="L3416" href="#L3416">3416</a> <em class="jxr_javadoccomment">	 * @return An escaped-unicode sequence.</em>
-<a class="jxr_linenumber" name="L3417" href="#L3417">3417</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3418" href="#L3418">3418</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String unicodeSequence(<strong class="jxr_keyword">char</strong> c) {
-<a class="jxr_linenumber" name="L3419" href="#L3419">3419</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(6);
-<a class="jxr_linenumber" name="L3420" href="#L3420">3420</a> 		sb.append('&#92;&#92;').append('u');
-<a class="jxr_linenumber" name="L3421" href="#L3421">3421</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> cc : toHex4(c))
-<a class="jxr_linenumber" name="L3422" href="#L3422">3422</a> 			sb.append(cc);
-<a class="jxr_linenumber" name="L3423" href="#L3423">3423</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L3424" href="#L3424">3424</a> 	}
-<a class="jxr_linenumber" name="L3425" href="#L3425">3425</a> 
-<a class="jxr_linenumber" name="L3426" href="#L3426">3426</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3427" href="#L3427">3427</a> <em class="jxr_javadoccomment">	 * Decodes a &lt;c&gt;application/x-www-form-urlencoded&lt;/c&gt; string using &lt;c&gt;UTF-8&lt;/c&gt; encoding scheme.</em>
-<a class="jxr_linenumber" name="L3428" href="#L3428">3428</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3429" href="#L3429">3429</a> <em class="jxr_javadoccomment">	 * @param s The string to decode.</em>
-<a class="jxr_linenumber" name="L3430" href="#L3430">3430</a> <em class="jxr_javadoccomment">	 * @return The decoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3431" href="#L3431">3431</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3432" href="#L3432">3432</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlDecode(String s) {
-<a class="jxr_linenumber" name="L3433" href="#L3433">3433</a> 
-<a class="jxr_linenumber" name="L3434" href="#L3434">3434</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3435" href="#L3435">3435</a> 			<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3436" href="#L3436">3436</a> 
-<a class="jxr_linenumber" name="L3437" href="#L3437">3437</a> 		<strong class="jxr_keyword">var</strong> needsDecode = false;
-<a class="jxr_linenumber" name="L3438" href="#L3438">3438</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsDecode; i++) {
-<a class="jxr_linenumber" name="L3439" href="#L3439">3439</a> 			<strong class="jxr_keyword">var</strong> c = s.charAt(i);
-<a class="jxr_linenumber" name="L3440" href="#L3440">3440</a> 			<strong class="jxr_keyword">if</strong> (c == '+' || c == '%')
-<a class="jxr_linenumber" name="L3441" href="#L3441">3441</a> 				needsDecode = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L3442" href="#L3442">3442</a> 		}
+<a class="jxr_linenumber" name="L3261" href="#L3261">3261</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toUtf8(InputStream is) {
+<a class="jxr_linenumber" name="L3262" href="#L3262">3262</a> 		<strong class="jxr_keyword">return</strong> safe(() -&gt; is == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> String(readBytes(is), IOUtils.UTF8));
+<a class="jxr_linenumber" name="L3263" href="#L3263">3263</a> 	}
+<a class="jxr_linenumber" name="L3264" href="#L3264">3264</a> 
+<a class="jxr_linenumber" name="L3265" href="#L3265">3265</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3266" href="#L3266">3266</a> <em class="jxr_javadoccomment">	 * Same as {@link String#trim()} but prevents &lt;c&gt;NullPointerExceptions&lt;/c&gt;.</em>
+<a class="jxr_linenumber" name="L3267" href="#L3267">3267</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3268" href="#L3268">3268</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3269" href="#L3269">3269</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3270" href="#L3270">3270</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3271" href="#L3271">3271</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trim(String s) {
+<a class="jxr_linenumber" name="L3272" href="#L3272">3272</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3273" href="#L3273">3273</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3274" href="#L3274">3274</a> 		<strong class="jxr_keyword">return</strong> s.trim();
+<a class="jxr_linenumber" name="L3275" href="#L3275">3275</a> 	}
+<a class="jxr_linenumber" name="L3276" href="#L3276">3276</a> 
+<a class="jxr_linenumber" name="L3277" href="#L3277">3277</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3278" href="#L3278">3278</a> <em class="jxr_javadoccomment">	 * Trims whitespace characters from the end of the specified string.</em>
+<a class="jxr_linenumber" name="L3279" href="#L3279">3279</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3280" href="#L3280">3280</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3281" href="#L3281">3281</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3282" href="#L3282">3282</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3283" href="#L3283">3283</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimEnd(String s) {
+<a class="jxr_linenumber" name="L3284" href="#L3284">3284</a> 		<strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3285" href="#L3285">3285</a> 			<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; isWhitespace(s.charAt(s.length() - 1)))
+<a class="jxr_linenumber" name="L3286" href="#L3286">3286</a> 				s = s.substring(0, s.length() - 1);
+<a class="jxr_linenumber" name="L3287" href="#L3287">3287</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3288" href="#L3288">3288</a> 	}
+<a class="jxr_linenumber" name="L3289" href="#L3289">3289</a> 
+<a class="jxr_linenumber" name="L3290" href="#L3290">3290</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3291" href="#L3291">3291</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from the beginning of the specified string.</em>
+<a class="jxr_linenumber" name="L3292" href="#L3292">3292</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3293" href="#L3293">3293</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3294" href="#L3294">3294</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
+<a class="jxr_linenumber" name="L3295" href="#L3295">3295</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3296" href="#L3296">3296</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimLeadingSlashes(String s) {
+<a class="jxr_linenumber" name="L3297" href="#L3297">3297</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3298" href="#L3298">3298</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3299" href="#L3299">3299</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; s.charAt(0) == '/')
+<a class="jxr_linenumber" name="L3300" href="#L3300">3300</a> 			s = s.substring(1);
+<a class="jxr_linenumber" name="L3301" href="#L3301">3301</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3302" href="#L3302">3302</a> 	}
+<a class="jxr_linenumber" name="L3303" href="#L3303">3303</a> 
+<a class="jxr_linenumber" name="L3304" href="#L3304">3304</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3305" href="#L3305">3305</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from both the start and end of the specified string.</em>
+<a class="jxr_linenumber" name="L3306" href="#L3306">3306</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3307" href="#L3307">3307</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3308" href="#L3308">3308</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
+<a class="jxr_linenumber" name="L3309" href="#L3309">3309</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3310" href="#L3310">3310</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimSlashes(String s) {
+<a class="jxr_linenumber" name="L3311" href="#L3311">3311</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3312" href="#L3312">3312</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3313" href="#L3313">3313</a> 		<strong class="jxr_keyword">if</strong> (s.isEmpty())
+<a class="jxr_linenumber" name="L3314" href="#L3314">3314</a> 			<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3315" href="#L3315">3315</a> 		<strong class="jxr_keyword">while</strong> (endsWith(s, '/'))
+<a class="jxr_linenumber" name="L3316" href="#L3316">3316</a> 			s = s.substring(0, s.length() - 1);
+<a class="jxr_linenumber" name="L3317" href="#L3317">3317</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; s.charAt(0) == '/')  <em class="jxr_comment">// NOSONAR - NPE not possible here.</em>
+<a class="jxr_linenumber" name="L3318" href="#L3318">3318</a> 			s = s.substring(1);
+<a class="jxr_linenumber" name="L3319" href="#L3319">3319</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3320" href="#L3320">3320</a> 	}
+<a class="jxr_linenumber" name="L3321" href="#L3321">3321</a> 
+<a class="jxr_linenumber" name="L3322" href="#L3322">3322</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3323" href="#L3323">3323</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; and space characters from both the start and end of the specified string.</em>
+<a class="jxr_linenumber" name="L3324" href="#L3324">3324</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3325" href="#L3325">3325</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3326" href="#L3326">3326</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
+<a class="jxr_linenumber" name="L3327" href="#L3327">3327</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3328" href="#L3328">3328</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimSlashesAndSpaces(String s) {
+<a class="jxr_linenumber" name="L3329" href="#L3329">3329</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3330" href="#L3330">3330</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3331" href="#L3331">3331</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; (s.charAt(s.length() - 1) == '/' || isWhitespace(s.charAt(s.length() - 1))))
+<a class="jxr_linenumber" name="L3332" href="#L3332">3332</a> 			s = s.substring(0, s.length() - 1);
+<a class="jxr_linenumber" name="L3333" href="#L3333">3333</a> 		<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; (s.charAt(0) == '/' || isWhitespace(s.charAt(0))))
+<a class="jxr_linenumber" name="L3334" href="#L3334">3334</a> 			s = s.substring(1);
+<a class="jxr_linenumber" name="L3335" href="#L3335">3335</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3336" href="#L3336">3336</a> 	}
+<a class="jxr_linenumber" name="L3337" href="#L3337">3337</a> 
+<a class="jxr_linenumber" name="L3338" href="#L3338">3338</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3339" href="#L3339">3339</a> <em class="jxr_javadoccomment">	 * Trims whitespace characters from the beginning of the specified string.</em>
+<a class="jxr_linenumber" name="L3340" href="#L3340">3340</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3341" href="#L3341">3341</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3342" href="#L3342">3342</a> <em class="jxr_javadoccomment">	 * @return The trimmed string, or &lt;jk&gt;null&lt;/jk&gt; if the string was &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3343" href="#L3343">3343</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3344" href="#L3344">3344</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimStart(String s) {
+<a class="jxr_linenumber" name="L3345" href="#L3345">3345</a> 		<strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3346" href="#L3346">3346</a> 			<strong class="jxr_keyword">while</strong> (isNotEmpty(s) &amp;&amp; isWhitespace(s.charAt(0)))
+<a class="jxr_linenumber" name="L3347" href="#L3347">3347</a> 				s = s.substring(1);
+<a class="jxr_linenumber" name="L3348" href="#L3348">3348</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3349" href="#L3349">3349</a> 	}
+<a class="jxr_linenumber" name="L3350" href="#L3350">3350</a> 
+<a class="jxr_linenumber" name="L3351" href="#L3351">3351</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3352" href="#L3352">3352</a> <em class="jxr_javadoccomment">	 * Trims &lt;js&gt;'/'&lt;/js&gt; characters from the end of the specified string.</em>
+<a class="jxr_linenumber" name="L3353" href="#L3353">3353</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3354" href="#L3354">3354</a> <em class="jxr_javadoccomment">	 * @param s The string to trim.</em>
+<a class="jxr_linenumber" name="L3355" href="#L3355">3355</a> <em class="jxr_javadoccomment">	 * @return A new trimmed string, or the same string if no trimming was necessary.</em>
+<a class="jxr_linenumber" name="L3356" href="#L3356">3356</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3357" href="#L3357">3357</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String trimTrailingSlashes(String s) {
+<a class="jxr_linenumber" name="L3358" href="#L3358">3358</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3359" href="#L3359">3359</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3360" href="#L3360">3360</a> 		<strong class="jxr_keyword">while</strong> (endsWith(s, '/'))
+<a class="jxr_linenumber" name="L3361" href="#L3361">3361</a> 			s = s.substring(0, s.length() - 1);
+<a class="jxr_linenumber" name="L3362" href="#L3362">3362</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3363" href="#L3363">3363</a> 	}
+<a class="jxr_linenumber" name="L3364" href="#L3364">3364</a> 
+<a class="jxr_linenumber" name="L3365" href="#L3365">3365</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3366" href="#L3366">3366</a> <em class="jxr_javadoccomment">	 * Uncapitalizes the first character of a string.</em>
+<a class="jxr_linenumber" name="L3367" href="#L3367">3367</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3368" href="#L3368">3368</a> <em class="jxr_javadoccomment">	 * &lt;h5 class='section'&gt;Example:&lt;/h5&gt;</em>
+<a class="jxr_linenumber" name="L3369" href="#L3369">3369</a> <em class="jxr_javadoccomment">	 * &lt;p class='bjava'&gt;</em>
+<a class="jxr_linenumber" name="L3370" href="#L3370">3370</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;jk&gt;null&lt;/jk&gt;);          &lt;jc&gt;// null&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L3371" href="#L3371">3371</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;""&lt;/js&gt;);            &lt;jc&gt;// ""&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L3372" href="#L3372">3372</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"Hello"&lt;/js&gt;);       &lt;jc&gt;// "hello"&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L3373" href="#L3373">3373</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"hello"&lt;/js&gt;);       &lt;jc&gt;// "hello"&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L3374" href="#L3374">3374</a> <em class="jxr_javadoccomment">	 * 	uncapitalize(&lt;js&gt;"HELLO"&lt;/js&gt;);       &lt;jc&gt;// "hELLO"&lt;/jc&gt;</em>
+<a class="jxr_linenumber" name="L3375" href="#L3375">3375</a> <em class="jxr_javadoccomment">	 * &lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L3376" href="#L3376">3376</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3377" href="#L3377">3377</a> <em class="jxr_javadoccomment">	 * @param str The string to uncapitalize.</em>
+<a class="jxr_linenumber" name="L3378" href="#L3378">3378</a> <em class="jxr_javadoccomment">	 * @return The string with the first character uncapitalized, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3379" href="#L3379">3379</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3380" href="#L3380">3380</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String uncapitalize(String str) {
+<a class="jxr_linenumber" name="L3381" href="#L3381">3381</a> 		<strong class="jxr_keyword">if</strong> (isEmpty(str))
+<a class="jxr_linenumber" name="L3382" href="#L3382">3382</a> 			<strong class="jxr_keyword">return</strong> str;
+<a class="jxr_linenumber" name="L3383" href="#L3383">3383</a> 		<strong class="jxr_keyword">return</strong> Character.toLowerCase(str.charAt(0)) + str.substring(1);
+<a class="jxr_linenumber" name="L3384" href="#L3384">3384</a> 	}
+<a class="jxr_linenumber" name="L3385" href="#L3385">3385</a> 
+<a class="jxr_linenumber" name="L3386" href="#L3386">3386</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3387" href="#L3387">3387</a> <em class="jxr_javadoccomment">	 * Removes escape characters from the specified characters.</em>
+<a class="jxr_linenumber" name="L3388" href="#L3388">3388</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3389" href="#L3389">3389</a> <em class="jxr_javadoccomment">	 * @param s The string to remove escape characters from.</em>
+<a class="jxr_linenumber" name="L3390" href="#L3390">3390</a> <em class="jxr_javadoccomment">	 * @param escaped The characters escaped.</em>
+<a class="jxr_linenumber" name="L3391" href="#L3391">3391</a> <em class="jxr_javadoccomment">	 * @return A new string if characters were removed, or the same string if not or if the input was &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3392" href="#L3392">3392</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3393" href="#L3393">3393</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String unEscapeChars(String s, <a name="AsciiSet" href="../../../../../org/apache/juneau/common/utils/AsciiSet.html#AsciiSet">AsciiSet</a> escaped) {
+<a class="jxr_linenumber" name="L3394" href="#L3394">3394</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong> || s.isEmpty())
+<a class="jxr_linenumber" name="L3395" href="#L3395">3395</a> 			<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3396" href="#L3396">3396</a> 		<strong class="jxr_keyword">var</strong> count = 0;
+<a class="jxr_linenumber" name="L3397" href="#L3397">3397</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++)
+<a class="jxr_linenumber" name="L3398" href="#L3398">3398</a> 			<strong class="jxr_keyword">if</strong> (escaped.contains(s.charAt(i)))
+<a class="jxr_linenumber" name="L3399" href="#L3399">3399</a> 				count++;
+<a class="jxr_linenumber" name="L3400" href="#L3400">3400</a> 		<strong class="jxr_keyword">if</strong> (count == 0)
+<a class="jxr_linenumber" name="L3401" href="#L3401">3401</a> 			<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3402" href="#L3402">3402</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuffer(s.length() - count);
+<a class="jxr_linenumber" name="L3403" href="#L3403">3403</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++) {
+<a class="jxr_linenumber" name="L3404" href="#L3404">3404</a> 			<strong class="jxr_keyword">var</strong> c = s.charAt(i);
+<a class="jxr_linenumber" name="L3405" href="#L3405">3405</a> 
+<a class="jxr_linenumber" name="L3406" href="#L3406">3406</a> 			<strong class="jxr_keyword">if</strong> (c == '&#92;&#92;') {
+<a class="jxr_linenumber" name="L3407" href="#L3407">3407</a> 				<strong class="jxr_keyword">if</strong> (i + 1 != s.length()) {  <em class="jxr_comment">// NOSONAR - Intentional.</em>
+<a class="jxr_linenumber" name="L3408" href="#L3408">3408</a> 					<strong class="jxr_keyword">var</strong> c2 = s.charAt(i + 1);
+<a class="jxr_linenumber" name="L3409" href="#L3409">3409</a> 					<strong class="jxr_keyword">if</strong> (escaped.contains(c2)) {
+<a class="jxr_linenumber" name="L3410" href="#L3410">3410</a> 						i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
+<a class="jxr_linenumber" name="L3411" href="#L3411">3411</a> 					} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c2 == '&#92;&#92;') {
+<a class="jxr_linenumber" name="L3412" href="#L3412">3412</a> 						sb.append('&#92;&#92;');
+<a class="jxr_linenumber" name="L3413" href="#L3413">3413</a> 						i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
+<a class="jxr_linenumber" name="L3414" href="#L3414">3414</a> 					}
+<a class="jxr_linenumber" name="L3415" href="#L3415">3415</a> 				}
+<a class="jxr_linenumber" name="L3416" href="#L3416">3416</a> 			}
+<a class="jxr_linenumber" name="L3417" href="#L3417">3417</a> 			sb.append(s.charAt(i));
+<a class="jxr_linenumber" name="L3418" href="#L3418">3418</a> 		}
+<a class="jxr_linenumber" name="L3419" href="#L3419">3419</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
+<a class="jxr_linenumber" name="L3420" href="#L3420">3420</a> 	}
+<a class="jxr_linenumber" name="L3421" href="#L3421">3421</a> 
+<a class="jxr_linenumber" name="L3422" href="#L3422">3422</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3423" href="#L3423">3423</a> <em class="jxr_javadoccomment">	 * Creates an escaped-unicode sequence (e.g. &lt;js&gt;"&#92;&#92;u1234"&lt;/js&gt;) for the specified character.</em>
+<a class="jxr_linenumber" name="L3424" href="#L3424">3424</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3425" href="#L3425">3425</a> <em class="jxr_javadoccomment">	 * @param c The character to create a sequence for.</em>
+<a class="jxr_linenumber" name="L3426" href="#L3426">3426</a> <em class="jxr_javadoccomment">	 * @return An escaped-unicode sequence.</em>
+<a class="jxr_linenumber" name="L3427" href="#L3427">3427</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3428" href="#L3428">3428</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String unicodeSequence(<strong class="jxr_keyword">char</strong> c) {
+<a class="jxr_linenumber" name="L3429" href="#L3429">3429</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(6);
+<a class="jxr_linenumber" name="L3430" href="#L3430">3430</a> 		sb.append('&#92;&#92;').append('u');
+<a class="jxr_linenumber" name="L3431" href="#L3431">3431</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> cc : toHex4(c))
+<a class="jxr_linenumber" name="L3432" href="#L3432">3432</a> 			sb.append(cc);
+<a class="jxr_linenumber" name="L3433" href="#L3433">3433</a> 		<strong class="jxr_keyword">return</strong> sb.toString();
+<a class="jxr_linenumber" name="L3434" href="#L3434">3434</a> 	}
+<a class="jxr_linenumber" name="L3435" href="#L3435">3435</a> 
+<a class="jxr_linenumber" name="L3436" href="#L3436">3436</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3437" href="#L3437">3437</a> <em class="jxr_javadoccomment">	 * Decodes a &lt;c&gt;application/x-www-form-urlencoded&lt;/c&gt; string using &lt;c&gt;UTF-8&lt;/c&gt; encoding scheme.</em>
+<a class="jxr_linenumber" name="L3438" href="#L3438">3438</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3439" href="#L3439">3439</a> <em class="jxr_javadoccomment">	 * @param s The string to decode.</em>
+<a class="jxr_linenumber" name="L3440" href="#L3440">3440</a> <em class="jxr_javadoccomment">	 * @return The decoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3441" href="#L3441">3441</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3442" href="#L3442">3442</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlDecode(String s) {
 <a class="jxr_linenumber" name="L3443" href="#L3443">3443</a> 
-<a class="jxr_linenumber" name="L3444" href="#L3444">3444</a> 		<strong class="jxr_keyword">if</strong> (needsDecode) {
-<a class="jxr_linenumber" name="L3445" href="#L3445">3445</a> 			<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L3446" href="#L3446">3446</a> 				<strong class="jxr_keyword">return</strong> URLDecoder.decode(s, <span class="jxr_string">"UTF-8"</span>);
-<a class="jxr_linenumber" name="L3447" href="#L3447">3447</a> 			} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {<em class="jxr_comment">/* Won't happen */</em>}
-<a class="jxr_linenumber" name="L3448" href="#L3448">3448</a> 		}
-<a class="jxr_linenumber" name="L3449" href="#L3449">3449</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3450" href="#L3450">3450</a> 	}
-<a class="jxr_linenumber" name="L3451" href="#L3451">3451</a> 
-<a class="jxr_linenumber" name="L3452" href="#L3452">3452</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3453" href="#L3453">3453</a> <em class="jxr_javadoccomment">	 * Encodes a &lt;c&gt;application/x-www-form-urlencoded&lt;/c&gt; string using &lt;c&gt;UTF-8&lt;/c&gt; encoding scheme.</em>
-<a class="jxr_linenumber" name="L3454" href="#L3454">3454</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3455" href="#L3455">3455</a> <em class="jxr_javadoccomment">	 * @param s The string to encode.</em>
-<a class="jxr_linenumber" name="L3456" href="#L3456">3456</a> <em class="jxr_javadoccomment">	 * @return The encoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3457" href="#L3457">3457</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3458" href="#L3458">3458</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncode(String s) {
-<a class="jxr_linenumber" name="L3459" href="#L3459">3459</a> 
-<a class="jxr_linenumber" name="L3460" href="#L3460">3460</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3461" href="#L3461">3461</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3462" href="#L3462">3462</a> 
-<a class="jxr_linenumber" name="L3463" href="#L3463">3463</a> 		<strong class="jxr_keyword">var</strong> needsEncode = false;
-<a class="jxr_linenumber" name="L3464" href="#L3464">3464</a> 
-<a class="jxr_linenumber" name="L3465" href="#L3465">3465</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsEncode; i++)
-<a class="jxr_linenumber" name="L3466" href="#L3466">3466</a> 			needsEncode |= (! unencodedChars.contains(s.charAt(i)));
-<a class="jxr_linenumber" name="L3467" href="#L3467">3467</a> 
-<a class="jxr_linenumber" name="L3468" href="#L3468">3468</a> 		<strong class="jxr_keyword">if</strong> (needsEncode) {
-<a class="jxr_linenumber" name="L3469" href="#L3469">3469</a> 			<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L3470" href="#L3470">3470</a> 				<strong class="jxr_keyword">return</strong> URLEncoder.encode(s, <span class="jxr_string">"UTF-8"</span>);
-<a class="jxr_linenumber" name="L3471" href="#L3471">3471</a> 			} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {<em class="jxr_comment">/* Won't happen */</em>}
-<a class="jxr_linenumber" name="L3472" href="#L3472">3472</a> 		}
-<a class="jxr_linenumber" name="L3473" href="#L3473">3473</a> 
-<a class="jxr_linenumber" name="L3474" href="#L3474">3474</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3475" href="#L3475">3475</a> 	}
-<a class="jxr_linenumber" name="L3476" href="#L3476">3476</a> 
-<a class="jxr_linenumber" name="L3477" href="#L3477">3477</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3478" href="#L3478">3478</a> <em class="jxr_javadoccomment">	 * Same as {@link #urlEncode(String)} except only escapes characters that absolutely need to be escaped.</em>
-<a class="jxr_linenumber" name="L3479" href="#L3479">3479</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3480" href="#L3480">3480</a> <em class="jxr_javadoccomment">	 * @param s The string to escape.</em>
-<a class="jxr_linenumber" name="L3481" href="#L3481">3481</a> <em class="jxr_javadoccomment">	 * @return The encoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
-<a class="jxr_linenumber" name="L3482" href="#L3482">3482</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3483" href="#L3483">3483</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncodeLax(String s) {
-<a class="jxr_linenumber" name="L3484" href="#L3484">3484</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3485" href="#L3485">3485</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3486" href="#L3486">3486</a> 		<strong class="jxr_keyword">var</strong> needsEncode = false;
-<a class="jxr_linenumber" name="L3487" href="#L3487">3487</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsEncode; i++)
-<a class="jxr_linenumber" name="L3488" href="#L3488">3488</a> 			needsEncode |= (! unencodedCharsLax.contains(s.charAt(i)));
-<a class="jxr_linenumber" name="L3489" href="#L3489">3489</a> 		<strong class="jxr_keyword">if</strong> (needsEncode) {
-<a class="jxr_linenumber" name="L3490" href="#L3490">3490</a> 			<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(s.length() * 2);
-<a class="jxr_linenumber" name="L3491" href="#L3491">3491</a> 			<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++) {
-<a class="jxr_linenumber" name="L3492" href="#L3492">3492</a> 				<strong class="jxr_keyword">var</strong> c = s.charAt(i);
-<a class="jxr_linenumber" name="L3493" href="#L3493">3493</a> 				<strong class="jxr_keyword">if</strong> (unencodedCharsLax.contains(c))
-<a class="jxr_linenumber" name="L3494" href="#L3494">3494</a> 					sb.append(c);
-<a class="jxr_linenumber" name="L3495" href="#L3495">3495</a> 				<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ' ')
-<a class="jxr_linenumber" name="L3496" href="#L3496">3496</a> 					sb.append(<span class="jxr_string">"+"</span>);
-<a class="jxr_linenumber" name="L3497" href="#L3497">3497</a> 				<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c &lt;= 127)
-<a class="jxr_linenumber" name="L3498" href="#L3498">3498</a> 					sb.append('%').append(toHex2(c));
-<a class="jxr_linenumber" name="L3499" href="#L3499">3499</a> 				<strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="L3500" href="#L3500">3500</a> 					<strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L3501" href="#L3501">3501</a> 						sb.append(URLEncoder.encode(<span class="jxr_string">""</span> + c, <span class="jxr_string">"UTF-8"</span>));  <em class="jxr_comment">// Yuck.</em>
-<a class="jxr_linenumber" name="L3502" href="#L3502">3502</a> 					} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {
-<a class="jxr_linenumber" name="L3503" href="#L3503">3503</a> 						<em class="jxr_comment">// Not possible.</em>
-<a class="jxr_linenumber" name="L3504" href="#L3504">3504</a> 					}
-<a class="jxr_linenumber" name="L3505" href="#L3505">3505</a> 			}
-<a class="jxr_linenumber" name="L3506" href="#L3506">3506</a> 			s = sb.toString();
-<a class="jxr_linenumber" name="L3507" href="#L3507">3507</a> 		}
-<a class="jxr_linenumber" name="L3508" href="#L3508">3508</a> 		<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3509" href="#L3509">3509</a> 	}
-<a class="jxr_linenumber" name="L3510" href="#L3510">3510</a> 
-<a class="jxr_linenumber" name="L3511" href="#L3511">3511</a> 	<em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L3512" href="#L3512">3512</a> <em class="jxr_javadoccomment">	 * Similar to {@link URLEncoder#encode(String, String)} but doesn't encode &lt;js&gt;"/"&lt;/js&gt; characters.</em>
-<a class="jxr_linenumber" name="L3513" href="#L3513">3513</a> <em class="jxr_javadoccomment">	 *</em>
-<a class="jxr_linenumber" name="L3514" href="#L3514">3514</a> <em class="jxr_javadoccomment">	 * @param o The object to encode.</em>
-<a class="jxr_linenumber" name="L3515" href="#L3515">3515</a> <em class="jxr_javadoccomment">	 * @return The URL encoded string, or &lt;jk&gt;null&lt;/jk&gt; if the object was null.</em>
-<a class="jxr_linenumber" name="L3516" href="#L3516">3516</a> <em class="jxr_javadoccomment">	 */</em>
-<a class="jxr_linenumber" name="L3517" href="#L3517">3517</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncodePath(Object o) {
-<a class="jxr_linenumber" name="L3518" href="#L3518">3518</a> 
-<a class="jxr_linenumber" name="L3519" href="#L3519">3519</a> 		<strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>)
-<a class="jxr_linenumber" name="L3520" href="#L3520">3520</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L3521" href="#L3521">3521</a> 
-<a class="jxr_linenumber" name="L3522" href="#L3522">3522</a> 		<strong class="jxr_keyword">var</strong> s = s(o);
-<a class="jxr_linenumber" name="L3523" href="#L3523">3523</a> 
-<a class="jxr_linenumber" name="L3524" href="#L3524">3524</a> 		<strong class="jxr_keyword">var</strong> needsEncode = false;
-<a class="jxr_linenumber" name="L3525" href="#L3525">3525</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsEncode; i++)
-<a class="jxr_linenumber" name="L3526" href="#L3526">3526</a> 			needsEncode = URL_ENCODE_PATHINFO_VALIDCHARS.contains(s.charAt(i));
-<a class="jxr_linenumber" name="L3527" href="#L3527">3527</a> 		<strong class="jxr_keyword">if</strong> (! needsEncode)
-<a class="jxr_linenumber" name="L3528" href="#L3528">3528</a> 			<strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L3529" href="#L3529">3529</a> 
-<a class="jxr_linenumber" name="L3530" href="#L3530">3530</a> 		<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a class="jxr_linenumber" name="L3531" href="#L3531">3531</a> 		<strong class="jxr_keyword">var</strong> caw = <strong class="jxr_keyword">new</strong> CharArrayWriter();
-<a class="jxr_linenumber" name="L3532" href="#L3532">3532</a> 		<strong class="jxr_keyword">var</strong> caseDiff = ('a' - 'A');
+<a class="jxr_linenumber" name="L3444" href="#L3444">3444</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3445" href="#L3445">3445</a> 			<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3446" href="#L3446">3446</a> 
+<a class="jxr_linenumber" name="L3447" href="#L3447">3447</a> 		<strong class="jxr_keyword">var</strong> needsDecode = false;
+<a class="jxr_linenumber" name="L3448" href="#L3448">3448</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsDecode; i++) {
+<a class="jxr_linenumber" name="L3449" href="#L3449">3449</a> 			<strong class="jxr_keyword">var</strong> c = s.charAt(i);
+<a class="jxr_linenumber" name="L3450" href="#L3450">3450</a> 			<strong class="jxr_keyword">if</strong> (c == '+' || c == '%')
+<a class="jxr_linenumber" name="L3451" href="#L3451">3451</a> 				needsDecode = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L3452" href="#L3452">3452</a> 		}
+<a class="jxr_linenumber" name="L3453" href="#L3453">3453</a> 
+<a class="jxr_linenumber" name="L3454" href="#L3454">3454</a> 		<strong class="jxr_keyword">if</strong> (needsDecode) {
+<a class="jxr_linenumber" name="L3455" href="#L3455">3455</a> 			<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L3456" href="#L3456">3456</a> 				<strong class="jxr_keyword">return</strong> URLDecoder.decode(s, <span class="jxr_string">"UTF-8"</span>);
+<a class="jxr_linenumber" name="L3457" href="#L3457">3457</a> 			} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {<em class="jxr_comment">/* Won't happen */</em>}
+<a class="jxr_linenumber" name="L3458" href="#L3458">3458</a> 		}
+<a class="jxr_linenumber" name="L3459" href="#L3459">3459</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3460" href="#L3460">3460</a> 	}
+<a class="jxr_linenumber" name="L3461" href="#L3461">3461</a> 
+<a class="jxr_linenumber" name="L3462" href="#L3462">3462</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3463" href="#L3463">3463</a> <em class="jxr_javadoccomment">	 * Encodes a &lt;c&gt;application/x-www-form-urlencoded&lt;/c&gt; string using &lt;c&gt;UTF-8&lt;/c&gt; encoding scheme.</em>
+<a class="jxr_linenumber" name="L3464" href="#L3464">3464</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3465" href="#L3465">3465</a> <em class="jxr_javadoccomment">	 * @param s The string to encode.</em>
+<a class="jxr_linenumber" name="L3466" href="#L3466">3466</a> <em class="jxr_javadoccomment">	 * @return The encoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3467" href="#L3467">3467</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3468" href="#L3468">3468</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncode(String s) {
+<a class="jxr_linenumber" name="L3469" href="#L3469">3469</a> 
+<a class="jxr_linenumber" name="L3470" href="#L3470">3470</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3471" href="#L3471">3471</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3472" href="#L3472">3472</a> 
+<a class="jxr_linenumber" name="L3473" href="#L3473">3473</a> 		<strong class="jxr_keyword">var</strong> needsEncode = false;
+<a class="jxr_linenumber" name="L3474" href="#L3474">3474</a> 
+<a class="jxr_linenumber" name="L3475" href="#L3475">3475</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsEncode; i++)
+<a class="jxr_linenumber" name="L3476" href="#L3476">3476</a> 			needsEncode |= (! unencodedChars.contains(s.charAt(i)));
+<a class="jxr_linenumber" name="L3477" href="#L3477">3477</a> 
+<a class="jxr_linenumber" name="L3478" href="#L3478">3478</a> 		<strong class="jxr_keyword">if</strong> (needsEncode) {
+<a class="jxr_linenumber" name="L3479" href="#L3479">3479</a> 			<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L3480" href="#L3480">3480</a> 				<strong class="jxr_keyword">return</strong> URLEncoder.encode(s, <span class="jxr_string">"UTF-8"</span>);
+<a class="jxr_linenumber" name="L3481" href="#L3481">3481</a> 			} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {<em class="jxr_comment">/* Won't happen */</em>}
+<a class="jxr_linenumber" name="L3482" href="#L3482">3482</a> 		}
+<a class="jxr_linenumber" name="L3483" href="#L3483">3483</a> 
+<a class="jxr_linenumber" name="L3484" href="#L3484">3484</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3485" href="#L3485">3485</a> 	}
+<a class="jxr_linenumber" name="L3486" href="#L3486">3486</a> 
+<a class="jxr_linenumber" name="L3487" href="#L3487">3487</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3488" href="#L3488">3488</a> <em class="jxr_javadoccomment">	 * Same as {@link #urlEncode(String)} except only escapes characters that absolutely need to be escaped.</em>
+<a class="jxr_linenumber" name="L3489" href="#L3489">3489</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3490" href="#L3490">3490</a> <em class="jxr_javadoccomment">	 * @param s The string to escape.</em>
+<a class="jxr_linenumber" name="L3491" href="#L3491">3491</a> <em class="jxr_javadoccomment">	 * @return The encoded string, or &lt;jk&gt;null&lt;/jk&gt; if input is &lt;jk&gt;null&lt;/jk&gt;.</em>
+<a class="jxr_linenumber" name="L3492" href="#L3492">3492</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3493" href="#L3493">3493</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncodeLax(String s) {
+<a class="jxr_linenumber" name="L3494" href="#L3494">3494</a> 		<strong class="jxr_keyword">if</strong> (s == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3495" href="#L3495">3495</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3496" href="#L3496">3496</a> 		<strong class="jxr_keyword">var</strong> needsEncode = false;
+<a class="jxr_linenumber" name="L3497" href="#L3497">3497</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length() &amp;&amp; ! needsEncode; i++)
+<a class="jxr_linenumber" name="L3498" href="#L3498">3498</a> 			needsEncode |= (! unencodedCharsLax.contains(s.charAt(i)));
+<a class="jxr_linenumber" name="L3499" href="#L3499">3499</a> 		<strong class="jxr_keyword">if</strong> (needsEncode) {
+<a class="jxr_linenumber" name="L3500" href="#L3500">3500</a> 			<strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(s.length() * 2);
+<a class="jxr_linenumber" name="L3501" href="#L3501">3501</a> 			<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length(); i++) {
+<a class="jxr_linenumber" name="L3502" href="#L3502">3502</a> 				<strong class="jxr_keyword">var</strong> c = s.charAt(i);
+<a class="jxr_linenumber" name="L3503" href="#L3503">3503</a> 				<strong class="jxr_keyword">if</strong> (unencodedCharsLax.contains(c))
+<a class="jxr_linenumber" name="L3504" href="#L3504">3504</a> 					sb.append(c);
+<a class="jxr_linenumber" name="L3505" href="#L3505">3505</a> 				<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c == ' ')
+<a class="jxr_linenumber" name="L3506" href="#L3506">3506</a> 					sb.append(<span class="jxr_string">"+"</span>);
+<a class="jxr_linenumber" name="L3507" href="#L3507">3507</a> 				<strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (c &lt;= 127)
+<a class="jxr_linenumber" name="L3508" href="#L3508">3508</a> 					sb.append('%').append(toHex2(c));
+<a class="jxr_linenumber" name="L3509" href="#L3509">3509</a> 				<strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L3510" href="#L3510">3510</a> 					<strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L3511" href="#L3511">3511</a> 						sb.append(URLEncoder.encode(<span class="jxr_string">""</span> + c, <span class="jxr_string">"UTF-8"</span>));  <em class="jxr_comment">// Yuck.</em>
+<a class="jxr_linenumber" name="L3512" href="#L3512">3512</a> 					} <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) UnsupportedEncodingException e) {
+<a class="jxr_linenumber" name="L3513" href="#L3513">3513</a> 						<em class="jxr_comment">// Not possible.</em>
+<a class="jxr_linenumber" name="L3514" href="#L3514">3514</a> 					}
+<a class="jxr_linenumber" name="L3515" href="#L3515">3515</a> 			}
+<a class="jxr_linenumber" name="L3516" href="#L3516">3516</a> 			s = sb.toString();
+<a class="jxr_linenumber" name="L3517" href="#L3517">3517</a> 		}
+<a class="jxr_linenumber" name="L3518" href="#L3518">3518</a> 		<strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L3519" href="#L3519">3519</a> 	}
+<a class="jxr_linenumber" name="L3520" href="#L3520">3520</a> 
+<a class="jxr_linenumber" name="L3521" href="#L3521">3521</a> 	<em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L3522" href="#L3522">3522</a> <em class="jxr_javadoccomment">	 * Similar to {@link URLEncoder#encode(String, String)} but doesn't encode &lt;js&gt;"/"&lt;/js&gt; characters.</em>
+<a class="jxr_linenumber" name="L3523" href="#L3523">3523</a> <em class="jxr_javadoccomment">	 *</em>
+<a class="jxr_linenumber" name="L3524" href="#L3524">3524</a> <em class="jxr_javadoccomment">	 * @param o The object to encode.</em>
+<a class="jxr_linenumber" name="L3525" href="#L3525">3525</a> <em class="jxr_javadoccomment">	 * @return The URL encoded string, or &lt;jk&gt;null&lt;/jk&gt; if the object was null.</em>
+<a class="jxr_linenumber" name="L3526" href="#L3526">3526</a> <em class="jxr_javadoccomment">	 */</em>
+<a class="jxr_linenumber" name="L3527" href="#L3527">3527</a> 	<strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String urlEncodePath(Object o) {
+<a class="jxr_linenumber" name="L3528" href="#L3528">3528</a> 
+<a class="jxr_linenumber" name="L3529" href="#L3529">3529</a> 		<strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>)
+<a class="jxr_linenumber" name="L3530" href="#L3530">3530</a> 			<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L3531" href="#L3531">3531</a> 
+<a class="jxr_linenumber" name="L3532" href="#L3532">3532</a> 		<strong class="jxr_keyword">var</strong> s = s(o);
 <a class="jxr_linenumber" name="L3533" href="#L3533">3533</a> 
-<a class="jxr_linenumber" name="L3534" href="#L3534">3534</a> 		<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i &lt; s.length();) {
-<a class="jxr_linenumber" name="L3535" href="#L3535">3535</a> 			<strong class="jxr_keyword">var</strong> c = s.charAt(i);
-<a class="jxr_linenumber" name="L3536" href="#L3536">3536</a> 			<strong class="jxr_keyword">if</strong> (URL_ENCODE_PATHINFO_VALIDCHARS.contains(c)) {
-<a class="jxr_linenumber" name="L3537" href="#L3537">3537</a> 				sb.append(c);
-<a class="jxr_linenumber" name="L3538" href="#L3538">3538</a> 				i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3539" href="#L3539">3539</a> 			} <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L3540" href="#L3540">3540</a> 				<strong class="jxr_keyword">if</strong> (c == ' ') {
-<a class="jxr_linenumber" name="L3541" href="#L3541">3541</a> 					sb.append('+');
-<a class="jxr_linenumber" name="L3542" href="#L3542">3542</a> 					i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3543" href="#L3543">3543</a> 				} <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L3544" href="#L3544">3544</a> 					<strong class="jxr_keyword">do</strong> {
-<a class="jxr_linenumber" name="L3545" href="#L3545">3545</a> 						caw.write(c);
-<a class="jxr_linenumber" name="L3546" href="#L3546">3546</a> 						<strong class="jxr_keyword">if</strong> (c &gt;= 0xD800 &amp;&amp; c &lt;= 0xDBFF) {
-<a class="jxr_linenumber" name="L3547" href="#L3547">3547</a> 							<strong class="jxr_keyword">if</strong> ((i + 1) &lt; s.length()) {  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3548" href="#L3548">3548</a> 								<strong class="jxr_keyword">int</strong> d = s.charAt(i + 1);
-<a class="jxr_linenumber" name="L3549" href="#L3549">3549</a> 								<strong class="jxr_keyword">if</strong> (d &gt;= 0xDC00 &amp;&amp; d &lt;= 0xDFFF) {
-<a class="jxr_linenumber" name="L3550" href="#L3550">3550</a> 									caw.write(d);
-<a class="jxr_linenumber" name="L3551" href="#L3551">3551</a> 									i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3552" href="#L3552">3552</a> 								}
-<a class="jxr_linenumber" name="L3553" href="#L3553">3553</a> 							}
-<a class="jxr_linenumber" name="L3554" href="#L3554">3554</a> 						}
-<a class="jxr_linenumber" name="L3555" href="#L3555">3555</a> 						i++;  <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3556" href="#L3556">3556</a> 					} <strong class="jxr_keyword">while</strong> (i &lt; s.length() &amp;&amp; ! URL_ENCODE_PATHINFO_VALIDCHARS.contains((c = s.charAt(i))));   <em class="jxr_comment">// NOSONAR - Intentional.</em>
-<a class="jxr_linenumber" name="L3557" href="#L3557">3557</a> 
-<a class="jxr_linenumber" name="L3558" href="#L3558">3558</a> 					caw.flush();
-<a class="jxr_linenumber" name="L3559" href="#L3559">3559</a> 					<strong class="jxr_keyword">var</strong> s2 = <strong class="jxr_keyword">new</strong> String(caw.toCharArray());
-<a class="jxr_linenumber" name="L3560" href="#L3560">3560</a> 					<strong class="jxr_keyword">var</strong> ba = s2.getBytes(IOUtils.UTF8);
-<a class="jxr_linenumber" name="L3561" href="#L3561">3561</a> 					<strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> element : ba) {
-<a class="jxr_linenumber" name="L3562" href="#L3562">3562</a> 						sb.append('%');
-<a class="jxr_linenumber" name="L3563" href="#L3563">3563</a> 						<strong class="jxr_keyword">var</strong> ch = forDigit((element &gt;&gt; 4) &amp; 0xF, 16);
-<a class="jxr_linenumber" name="L3564" href="#L3564">3564</a> 						<strong class="jxr_keyword">if</strong> (isLetter(ch)) {
-<a class="jxr_linenumber" name="L3565" href="#L3565">3565</a> 							ch -= caseDiff;
-<a class="jxr_linenumber" name="L3566" href="#L3566">3566</a> 						}
-<a class="jxr_linenumber" name="L3567" href="#L3567">3567</a> 						sb.append(ch);
-<a class="jxr_linenumber" name="L3568" href="#L3568">3568</a> 						ch = forDigit(element &amp; 0xF, 16);
-<a class="jxr_linenumber" name="L3569" href="#L3569">3569</a> 						<strong class="jxr_keyword">if</strong> (isLetter(ch)) {
-<a class="jxr_linenumber" name="L3570" href="#L3570">3570</a> 							ch -= caseDiff;
-<a class="jxr_linenumber" name="L3571" href="#L3571">3571</a> 						}
-<a class="jxr_linenumber" name="L3572" href="#L3572">3572</a> 						sb.append(ch);
-<a class="jxr_linenumber" name="L3573" href="#L3573">3573</a> 					}
-<a class="jxr_linenumber" name="L3574" href="#L3574">3574</a> 					caw.reset();
-<a class="jxr_linenumber" name="L3575" href="#L3575">3575</a> 				}
... 1310 lines suppressed ...