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

jamesbognar pushed a commit to branch docs
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/docs by this push:
     new 9d127f6d86 docs: document SVL move to commons and update v9.5 
migration guide
9d127f6d86 is described below

commit 9d127f6d8636858b2c0dcd9f9bb60c457fabcdb4
Author: James Bognar <[email protected]>
AuthorDate: Thu May 14 07:54:45 2026 -0400

    docs: document SVL move to commons and update v9.5 migration guide
    
    Co-authored-by: Cursor <[email protected]>
---
 pages/release-notes/9.5.0.md                       | 59 ++++++++++++++++++++++
 pages/topics/01.02.Marshalling.md                  |  2 +-
 .../02.21.01.SimpleVariableLanguageBasics.md       | 32 ++++++------
 pages/topics/02.21.02.SvlVariables.md              | 46 ++++++++---------
 pages/topics/02.21.03.VarResolvers.md              | 22 ++++----
 pages/topics/02.21.04.DefaultVarResolver.md        | 32 ++++++------
 pages/topics/05.04.01.VariableBasics.md            | 12 ++---
 pages/topics/05.04.02.LogicVariables.md            | 14 ++---
 pages/topics/09.04.HttpHeaders.md                  |  2 +-
 pages/topics/09.05.HttpParts.md                    |  2 +-
 pages/topics/10.04.03.JavaMethodParameters.md      |  2 +-
 pages/topics/10.13.SvlVariables.md                 | 22 ++++----
 pages/topics/14.03.Args.md                         | 32 ++++++------
 pages/topics/14.04.Manifest.md                     | 14 +++--
 pages/topics/14.06.VarResolver.md                  | 22 ++++----
 pages/topics/21.03.SvlSecurity.md                  |  6 +--
 pages/topics/23.01.V9.5-migration-guide.md         | 14 +++++
 17 files changed, 203 insertions(+), 132 deletions(-)

diff --git a/pages/release-notes/9.5.0.md b/pages/release-notes/9.5.0.md
index f525ddb419..7d9bf11593 100644
--- a/pages/release-notes/9.5.0.md
+++ b/pages/release-notes/9.5.0.md
@@ -1319,6 +1319,65 @@ The `Value` family of classes has been expanded:
 
 **`AnnotationInfo.getAnnotatable()`** returns the **`Annotatable`** (class, 
method, field, …) where the annotation was found, for callers that need the 
annotation’s declaration site.
 
+#### Simple Variable Language (SVL) Moved to `juneau-commons` (TODO-14)
+
+The Simple Variable Language (SVL) engine — `VarResolver`, 
`VarResolverSession`, `Var`, and the bundled `vars/*` implementations — has 
been physically moved out of `juneau-marshall` into `juneau-commons` so that 
callers (including `juneau-config`, `juneau-microservice-core`, and downstream 
services) can depend on the variable-resolution engine without pulling in the 
full marshalling stack.
+
+##### Package Moves (breaking)
+
+| Old | New |
+|-----|-----|
+| `org.apache.juneau.svl.*` | `org.apache.juneau.commons.svl.*` |
+| `org.apache.juneau.svl.vars.*` | `org.apache.juneau.commons.svl.vars.*` |
+| `org.apache.juneau.svl.ResolvingJsonMap` | 
`org.apache.juneau.collections.ResolvingJsonMap` |
+
+Source code referencing the old packages must update its import statements. 
`ResolvingJsonMap` stays in `juneau-marshall` (it still depends on `JsonMap`) 
but moves into the existing `org.apache.juneau.collections` package.
+
+##### `Args` and `ManifestFile` Redesigned and Moved (breaking)
+
+The legacy `org.apache.juneau.collections.Args` and 
`org.apache.juneau.utils.ManifestFile` classes — both of which extended 
`JsonMap` — have been replaced with lean, immutable `Optional`-returning 
equivalents in `juneau-commons`:
+
+| Old | New |
+|-----|-----|
+| `org.apache.juneau.collections.Args` (extends `JsonMap`) | 
`org.apache.juneau.commons.runtime.Args` (immutable, no `JsonMap` dependency) |
+| `org.apache.juneau.utils.ManifestFile` (extends `JsonMap`) | 
`org.apache.juneau.commons.runtime.ManifestFile` (immutable, no `JsonMap` 
dependency) |
+
+The new `Args`:
+
+- Returns `Optional<String>` from `get(int)` and `get(String)`; multi-valued 
options are accessed via `getAll(String)`.
+- Provides `positional()`, `argCount()`, `optionCount()`, `has(int)`, 
`has(String)`, `isEmpty()`, and `asMap()` accessors.
+- Exposes a configurable `Args.Builder` (`allowEquals`, `allowShortFlags`, 
`allowLongFlags`, `allowSystemPropStyle`, `caseSensitive`, `customPrefix`) so 
callers can opt into stricter or different grammars (`--key=value`, 
`-Dkey=value`, etc.).
+
+The new `ManifestFile`:
+
+- Returns `Optional<String>` from `get(String)` (main attributes) and 
`get(String section, String key)` (per-section attributes).
+- Provides `sections()`, `asMap()`, and `asMap(String section)` accessors.
+- Constructors accept `Class<?>`, `Manifest`, `File`, `Path`, `InputStream`, 
and `Reader`.
+
+`Microservice.Builder.args(Args)` and `Microservice.Builder.manifest(Object)` 
continue to work; their parameter types now resolve to the new 
`commons.runtime` classes. Direct callers of `args.getArg(...)` / 
`args.hasArg(...)` / `manifest.getString(...)` / `manifest.containsKey(...)` 
must adopt the new `Optional`-returning API.
+
+##### `ArgsVar` and `ManifestFileVar` — `Supplier` Overloads
+
+`ArgsVar` and `ManifestFileVar` retain their static `init(Args)` / 
`init(ManifestFile)` registration for backwards compatibility, and gain new 
factory methods that accept a `Supplier`:
+
+```java
+VarResolver vr = VarResolver.create()
+    .defaultVars()
+    .vars(ArgsVar.create(() -> myArgs), ManifestFileVar.create(() -> 
myManifest))
+    .build();
+```
+
+This lets each `VarResolver` instance carry its own per-resolver `Args` / 
`ManifestFile` state instead of relying on the JVM-wide static. The static 
`init(...)` form is targeted for deprecation in a follow-up release.
+
+##### Removed APIs
+
+| Removed | Replacement |
+|---------|-------------|
+| `org.apache.juneau.collections.Args` | 
`org.apache.juneau.commons.runtime.Args` |
+| `org.apache.juneau.utils.ManifestFile` | 
`org.apache.juneau.commons.runtime.ManifestFile` |
+| `Args.getArg(int)` / `getArg(String)` / `getArgs(String)` / `hasArg(String)` 
/ `size()` | `Args.get(int)` / `get(String)` (returns `Optional<String>`) / 
`getAll(String)` / `has(String)` / `argCount() + optionCount()` |
+| `ManifestFile.getString(...)` / `getWithDefault(...)` / `containsKey(...)` 
(and other `JsonMap` accessors) | `ManifestFile.get(String).orElse(...)` / 
`get(String, String)` |
+
 ### juneau-bct
 
 #### BctAssertions API Changes
diff --git a/pages/topics/01.02.Marshalling.md 
b/pages/topics/01.02.Marshalling.md
index 6490f61706..306a6e9e48 100644
--- a/pages/topics/01.02.Marshalling.md
+++ b/pages/topics/01.02.Marshalling.md
@@ -432,7 +432,7 @@ Person person = parserSet
 
 #### SVL Variables
 
-/The <a href="/site/apidocs/org/apache/juneau/svl/package-summary.html" 
target="_blank">org.apache.juneau.svl</a> package defines an API for a language 
called "Simple Variable
+/The <a 
href="/site/apidocs/org/apache/juneau/commons/svl/package-summary.html" 
target="_blank">org.apache.juneau.commons.svl</a> package defines an API for a 
language called "Simple Variable
 Language".
 In a nutshell, Simple Variable Language (or SVL) is text that contains 
variables of the form `$varName{varKey}`.
 
diff --git a/pages/topics/02.21.01.SimpleVariableLanguageBasics.md 
b/pages/topics/02.21.01.SimpleVariableLanguageBasics.md
index 6611d2f21a..98af55b737 100644
--- a/pages/topics/02.21.01.SimpleVariableLanguageBasics.md
+++ b/pages/topics/02.21.01.SimpleVariableLanguageBasics.md
@@ -3,7 +3,7 @@ title: "Simple Variable Language Basics"
 slug: SimpleVariableLanguageBasics
 ---
 
-The <a href="/site/apidocs/org/apache/juneau/svl/package-summary.html" 
target="_blank">org.apache.juneau.svl</a> package defines an API for a language 
called
+The <a href="/site/apidocs/org/apache/juneau/commons/svl/package-summary.html" 
target="_blank">org.apache.juneau.commons.svl</a> package defines an API for a 
language called
 "Simple Variable Language".
 
 In a nutshell, Simple Variable Language (or SVL) is text that contains 
variables of the form `$varName{varKey}`.
@@ -12,30 +12,30 @@ It is used extensively in the Config, REST and Microservice 
APIs.
 Most variables can be recursively nested within the varKey (e.g. 
`$FOO{$BAR{xxx},$BAZ{xxx}}`) and can return values that
 themselves contain more variables.
 
-The <a href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a> class is used to resolve variables.
+The <a href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a> class (in module `juneau-commons`) is used to 
resolve variables.
 
-The <a href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a> resolver is a reusable instance
+The <a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a> resolver is a reusable instance
 of this class configured with the following basic variables:
 
 <tree>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a></java-class> - 
`$S{key[,default]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a></java-class> - `$E{key[,default]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a></java-class> - 
`$S{key[,default]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a></java-class> - `$E{key[,default]}`</node-0>
 </tree>
 
 The following logic variables are also provided:
 
 <tree>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a></java-class> - `$IF{arg,then[,else]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a></java-class> - 
`$SW{arg,pattern1:then1[,pattern2:then2...]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a></java-class> - `$CO{arg1[,arg2...]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a></java-class> - `$PM{arg,pattern}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a></java-class> - 
`$PR{arg,pattern,replace}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a></java-class> - 
`$PE{arg,pattern,groupIndex}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a></java-class> - `$NE{arg}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a></java-class> - `$UC{arg}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a></java-class> - `$LC{arg}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/LenVar.html" 
target="_blank">LenVar</a></java-class> - `$LN{arg[,delimiter]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a></java-class> - `$ST{arg,start[,end]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a></java-class> - `$IF{arg,then[,else]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a></java-class> - 
`$SW{arg,pattern1:then1[,pattern2:then2...]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a></java-class> - `$CO{arg1[,arg2...]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a></java-class> - `$PM{arg,pattern}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a></java-class> - 
`$PR{arg,pattern,replace}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a></java-class> - 
`$PE{arg,pattern,groupIndex}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a></java-class> - `$NE{arg}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a></java-class> - `$UC{arg}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a></java-class> - `$LC{arg}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LenVar.html" 
target="_blank">LenVar</a></java-class> - `$LN{arg[,delimiter]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a></java-class> - `$ST{arg,start[,end]}`</node-0>
 </tree>
 
 :::tip Example
diff --git a/pages/topics/02.21.02.SvlVariables.md 
b/pages/topics/02.21.02.SvlVariables.md
index ad7be4e4bf..c028be81e8 100644
--- a/pages/topics/02.21.02.SvlVariables.md
+++ b/pages/topics/02.21.02.SvlVariables.md
@@ -3,7 +3,7 @@ title: "SVL Variables"
 slug: MarshallSvlVariables
 ---
 
-Variables are defined through the <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html" target="_blank">Var</a> API.
+Variables are defined through the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html" 
target="_blank">Var</a> API.
 The API comes with several predefined variables and is easily extensible.
 
 The following is an example of a variable that performs URL-Encoding on 
strings.
@@ -35,36 +35,36 @@ VarResolver varResolver = VarResolver.DEFAULT
 String myProperty = varResolver.resolve("$UE{$S{my.property}}");
 ```
 
-The following shows the class hierarchy of the <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html" target="_blank">Var</a> 
class:
+The following shows the class hierarchy of the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html" 
target="_blank">Var</a> class:
 
 <tree>
-<node-0><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/Var.html" 
target="_blank">Var</a></java-abstract-class> - Superclass of all vars.</node-0>
-<node-1><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/SimpleVar.html" 
target="_blank">SimpleVar</a></java-abstract-class> - Superclass of all vars 
that return strings.</node-1>
-<node-2><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/DefaultingVar.html" 
target="_blank">DefaultingVar</a></java-abstract-class> - Variables that define 
a default value if the resolve method returns null.</node-2>
-<node-3><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/MapVar.html" 
target="_blank">MapVar</a></java-abstract-class> - Variables that pull values 
from maps.</node-3>
-<node-2><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/MultipartVar.html" 
target="_blank">MultipartVar</a></java-abstract-class> - Variables that consist 
of 2 or more comma-delimited arguments.</node-2>
-<node-1><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/svl/StreamedVar.html" 
target="_blank">StreamedVar</a></java-abstract-class> - Superclass of all vars 
that stream their value to writers.</node-1>
+<node-0><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html" 
target="_blank">Var</a></java-abstract-class> - Superclass of all vars.</node-0>
+<node-1><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/SimpleVar.html" 
target="_blank">SimpleVar</a></java-abstract-class> - Superclass of all vars 
that return strings.</node-1>
+<node-2><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/DefaultingVar.html" 
target="_blank">DefaultingVar</a></java-abstract-class> - Variables that define 
a default value if the resolve method returns null.</node-2>
+<node-3><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/MapVar.html" 
target="_blank">MapVar</a></java-abstract-class> - Variables that pull values 
from maps.</node-3>
+<node-2><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/MultipartVar.html" 
target="_blank">MultipartVar</a></java-abstract-class> - Variables that consist 
of 2 or more comma-delimited arguments.</node-2>
+<node-1><java-abstract-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/StreamedVar.html" 
target="_blank">StreamedVar</a></java-abstract-class> - Superclass of all vars 
that stream their value to writers.</node-1>
 </tree>
 
 The following is the list of default variables defined in all modules:
 
 | Module | Class | Pattern |
 |--------|-------|---------|
-| **juneau-svl** | <a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a> | `$E{key[,default]}` |
-| | <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a> | `$S{key[,default]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a> | `$A{key[,default]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a> | `$MF{key[,default]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a> | `$IF{arg,then[,else]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a> | `$SW{arg,pattern1:then1[,pattern2:then2...]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a> | `$CO{arg1[,arg2...]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a> | `$PM{arg,pattern}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a> | `$PR{arg,pattern,replace}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a> | `$PE{arg,pattern,groupdIndex}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a> | `$NE{arg}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a> | `$UC{arg}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a> | `$LC{arg}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/LenVar.html" 
target="_blank">LenVar</a> | `$LN{arg[,delimiter]}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a> | `$ST{arg,start[,end]}` |
+| **juneau-svl** | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a> | `$E{key[,default]}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a> | `$S{key[,default]}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a> | `$A{key[,default]}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a> | `$MF{key[,default]}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a> | `$IF{arg,then[,else]}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a> | `$SW{arg,pattern1:then1[,pattern2:then2...]}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a> | `$CO{arg1[,arg2...]}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a> | `$PM{arg,pattern}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a> | `$PR{arg,pattern,replace}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a> | `$PE{arg,pattern,groupdIndex}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a> | `$NE{arg}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a> | `$UC{arg}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a> | `$LC{arg}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/LenVar.html" 
target="_blank">LenVar</a> | `$LN{arg[,delimiter]}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a> | `$ST{arg,start[,end]}` |
 | | <a href="/site/apidocs/org/apache/juneau/html/HtmlWidgetVar.html" 
target="_blank">HtmlWidgetVar</a> | `$W{name}` |
 | **juneau-config** | <a 
href="/site/apidocs/org/apache/juneau/config/vars/ConfigVar.html" 
target="_blank">ConfigVar</a> | `$C{key[,default]}` |
 | **juneau-rest-server** | <a 
href="/site/apidocs/org/apache/juneau/rest/vars/FileVar.html" 
target="_blank">FileVar</a> | `$F{path[,default]}` |
diff --git a/pages/topics/02.21.03.VarResolvers.md 
b/pages/topics/02.21.03.VarResolvers.md
index 81e8bf8076..b18e5c6ad8 100644
--- a/pages/topics/02.21.03.VarResolvers.md
+++ b/pages/topics/02.21.03.VarResolvers.md
@@ -3,14 +3,14 @@ title: "VarResolvers and VarResolverSessions"
 slug: VarResolvers
 ---
 
-The main class for performing variable resolution is <a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a>.
+The main class for performing variable resolution is <a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a>.
 
 Two methods are provided for resolving variables:
 
 <tree>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a></java-class></node-0>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#resolve(java.lang.String)"
 target="_blank">resolve(String)</a></java-method></node-1>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#resolveTo(java.lang.String,java.io.Writer)"
 target="_blank">resolveTo(String,Writer)</a></java-method></node-1>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a></java-class></node-0>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#resolve(java.lang.String)"
 target="_blank">resolve(String)</a></java-method></node-1>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#resolveTo(java.lang.String,java.io.Writer)"
 target="_blank">resolveTo(String,Writer)</a></java-method></node-1>
 </tree>
 
 Var resolvers can rely on the existence of other objects.
@@ -18,20 +18,20 @@ For example, <a 
href="/site/apidocs/org/apache/juneau/config/vars/ConfigVar.html
 This is accomplished through the following method:
 
 <tree>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.Builder.html" 
target="_blank">VarResolver.Builder</a></java-class></node-0>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.Builder.html#bean(java.lang.Class,java.lang.Object)"
 target="_blank">bean(Class&lt;T&gt;, T)</a> - Specify a bean for all 
sessions.</java-method></node-1>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolverSession.html" 
target="_blank">VarResolverSession</a></java-class></node-0>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolverSession.html#bean(java.lang.Class,T)"
 target="_blank">bean(Class&lt;T&gt;, T)</a> - Specify a bean for this 
session.</java-method></node-1>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.Builder.html" 
target="_blank">VarResolver.Builder</a></java-class></node-0>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.Builder.html#bean(java.lang.Class,java.lang.Object)"
 target="_blank">bean(Class&lt;T&gt;, T)</a> - Specify a bean for all 
sessions.</java-method></node-1>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolverSession.html" 
target="_blank">VarResolverSession</a></java-class></node-0>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolverSession.html#bean(java.lang.Class,T)"
 target="_blank">bean(Class&lt;T&gt;, T)</a> - Specify a bean for this 
session.</java-method></node-1>
 </tree>
 
 Beans are accessible through the following method:
 
 <tree>
-<node-0><java-method><a 
href="/site/apidocs/org/apache/juneau/svl/VarResolverSession.html#getBean(java.lang.Class)"
 target="_blank">VarResolverSession.getBean(Class)</a></java-method></node-0>
+<node-0><java-method><a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolverSession.html#getBean(java.lang.Class)"
 target="_blank">VarResolverSession.getBean(Class)</a></java-method></node-0>
 </tree>
 
-Var resolvers can be cloned and extended by using the <a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#copy()" 
target="_blank">VarResolver.copy()</a> method.
-Cloning a resolver will copy it's <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html" target="_blank">Var</a> 
class names and context objects.
+Var resolvers can be cloned and extended by using the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#copy()" 
target="_blank">VarResolver.copy()</a> method.
+Cloning a resolver will copy it's <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html" 
target="_blank">Var</a> class names and context objects.
 
 :::tip Example
 ```java
diff --git a/pages/topics/02.21.04.DefaultVarResolver.md 
b/pages/topics/02.21.04.DefaultVarResolver.md
index aae71765e0..f003dcbffc 100644
--- a/pages/topics/02.21.04.DefaultVarResolver.md
+++ b/pages/topics/02.21.04.DefaultVarResolver.md
@@ -3,21 +3,21 @@ title: "VarResolver.DEFAULT"
 slug: DefaultVarResolver
 ---
 
-<a href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a> is a reusable variable resolver with
+<a href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a> is a reusable variable resolver with
 default support for the following variables:
 
-- `$S{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a>
-- `$E{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a>
-- `$A{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a>
-- `$MF{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a>
-- `$SW{stringArg,pattern:thenValue[,pattern:thenValue...]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a>
-- `$IF{arg,then[,else]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a>
-- `$CO{arg[,arg2...]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a>
-- `$PM{arg,pattern}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a>
-- `$PR{stringArg,pattern,replace}`- <a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a>
-- `$PE{arg,pattern,groupIndex}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a>
-- `$UC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a>
-- `$LC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a>
-- `$NE{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a>
-- `$LN{arg[,delimiter]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/LenVar.html" 
target="_blank">LenVar</a>
-- `$ST{arg,start[,end]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a>
\ No newline at end of file
+- `$S{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a>
+- `$E{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a>
+- `$A{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a>
+- `$MF{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a>
+- `$SW{stringArg,pattern:thenValue[,pattern:thenValue...]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a>
+- `$IF{arg,then[,else]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a>
+- `$CO{arg[,arg2...]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a>
+- `$PM{arg,pattern}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a>
+- `$PR{stringArg,pattern,replace}`- <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternReplaceVar.html" 
target="_blank">PatternReplaceVar</a>
+- `$PE{arg,pattern,groupIndex}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternExtractVar.html" 
target="_blank">PatternExtractVar</a>
+- `$UC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a>
+- `$LC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a>
+- `$NE{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a>
+- `$LN{arg[,delimiter]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LenVar.html" 
target="_blank">LenVar</a>
+- `$ST{arg,start[,end]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SubstringVar.html" 
target="_blank">SubstringVar</a>
\ No newline at end of file
diff --git a/pages/topics/05.04.01.VariableBasics.md 
b/pages/topics/05.04.01.VariableBasics.md
index 0302380f8d..5b441a3202 100644
--- a/pages/topics/05.04.01.VariableBasics.md
+++ b/pages/topics/05.04.01.VariableBasics.md
@@ -3,7 +3,7 @@ title: "Variable Basics"
 slug: VariableBasics
 ---
 
-Config files can contain variables that get resolved dynamically using the 
previously-described <a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a> API.
+Config files can contain variables that get resolved dynamically using the 
previously-described <a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a> API.
 
 :::tip Example
 ```ini
@@ -44,12 +44,12 @@ ABean bean = 
config.get("MySection/aBean").as(ABean.class).orElse(null);
 ```
 :::
 
-By default, `Configs` use the <a 
href="/site/apidocs/org/apache/juneau/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a>
+By default, `Configs` use the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html#DEFAULT" 
target="_blank">VarResolver.DEFAULT</a>
 variable resolver which provides support for the following variables and 
constructs:
 
 <tree>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a></java-class> - 
`$S{key[,default]}`</node-0>
-<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a></java-class> - `$E{key[,default]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a></java-class> - 
`$S{key[,default]}`</node-0>
+<node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a></java-class> - `$E{key[,default]}`</node-0>
 <node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/config/vars/ConfigVar.html" 
target="_blank">ConfigVar</a></java-class> - `$C{key[,default]}`</node-0>
 </tree>
 
@@ -57,12 +57,12 @@ The variable resolver is controlled via the following 
setting:
 
 <tree>
 <node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/config/Config.Builder.html" 
target="_blank">Config.Builder</a></java-class></node-0>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/config/Config.Builder.html#varResolver(org.apache.juneau.svl.VarResolver)"
 target="_blank">varResolver(VarResolver)</a></java-method></node-1>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/config/Config.Builder.html#varResolver(org.apache.juneau.commons.svl.VarResolver)"
 target="_blank">varResolver(VarResolver)</a></java-method></node-1>
 </tree>
 
 Additionally, the following method can be used to retrieve a `Config` with a 
different variable resolver:
 
 <tree>
 <node-0><java-class><a 
href="/site/apidocs/org/apache/juneau/config/Config.html" 
target="_blank">Config</a></java-class></node-0>
-<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/config/Config.html#resolving(org.apache.juneau.svl.VarResolverSession)"
 target="_blank">resolving(VarResolverSession)</a></java-method></node-1>
+<node-1><java-method><a 
href="/site/apidocs/org/apache/juneau/config/Config.html#resolving(org.apache.juneau.commons.svl.VarResolverSession)"
 target="_blank">resolving(VarResolverSession)</a></java-method></node-1>
 </tree>
diff --git a/pages/topics/05.04.02.LogicVariables.md 
b/pages/topics/05.04.02.LogicVariables.md
index 6c23fa8aaa..6457d12d5f 100644
--- a/pages/topics/05.04.02.LogicVariables.md
+++ b/pages/topics/05.04.02.LogicVariables.md
@@ -7,13 +7,13 @@ The default variable resolver also provides the following 
logic variables for pe
 
 <tree>
 <node-0>Logic Variables</node-0>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a></java-class> - `$IF{arg,then[,else]}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a></java-class> - 
`$SW{arg,pattern1:then1[,pattern2:then2...]}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a></java-class> - `$CO{arg1[,arg2...]}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a></java-class> - `$PM{arg,pattern}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a></java-class> - `$NE{arg}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a></java-class> - `$UC{arg}`</node-1>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a></java-class> - `$LC{arg}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a></java-class> - `$IF{arg,then[,else]}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a></java-class> - 
`$SW{arg,pattern1:then1[,pattern2:then2...]}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a></java-class> - `$CO{arg1[,arg2...]}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a></java-class> - `$PM{arg,pattern}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a></java-class> - `$NE{arg}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a></java-class> - `$UC{arg}`</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a></java-class> - `$LC{arg}`</node-1>
 </tree>
 
 The `$IF` variable can be used for simple if/else logic:
diff --git a/pages/topics/09.04.HttpHeaders.md 
b/pages/topics/09.04.HttpHeaders.md
index b80023c9ce..b3df7ed782 100644
--- a/pages/topics/09.04.HttpHeaders.md
+++ b/pages/topics/09.04.HttpHeaders.md
@@ -127,7 +127,7 @@ Accept accept = headers.get(Accept.class);
 By default, header names are treated as case-insensitive.
 This can be changed using the <a 
href="/site/apidocs/org/apache/juneau/http/header/HeaderList.html#caseSensitive(boolean)"
 target="_blank">caseSensitive(boolean)</a> method.
 
-A <a href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a> can be associated with this builder to create
+A <a href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a> can be associated with this builder to create
 header values with embedded variables that are resolved at runtime.
 
 :::tip Example
diff --git a/pages/topics/09.05.HttpParts.md b/pages/topics/09.05.HttpParts.md
index c798cc1252..2c6a03b453 100644
--- a/pages/topics/09.05.HttpParts.md
+++ b/pages/topics/09.05.HttpParts.md
@@ -84,7 +84,7 @@ MyQueryBean foo = parts.get(MyQueryBean.class);
 ```
 :::
 
-A <a href="/site/apidocs/org/apache/juneau/svl/VarResolver.html" 
target="_blank">VarResolver</a> can be associated with this builder to create 
part
+A <a href="/site/apidocs/org/apache/juneau/commons/svl/VarResolver.html" 
target="_blank">VarResolver</a> can be associated with this builder to create 
part
 values with embedded variables that are resolved at runtime.
 
 :::tip Example
diff --git a/pages/topics/10.04.03.JavaMethodParameters.md 
b/pages/topics/10.04.03.JavaMethodParameters.md
index 53e44a72b9..c68c15dbb8 100644
--- a/pages/topics/10.04.03.JavaMethodParameters.md
+++ b/pages/topics/10.04.03.JavaMethodParameters.md
@@ -8,7 +8,7 @@ Java methods can contain any of the following parameters in any 
order:
 <tree>
 <node-0>**Parameters based on class types:**</node-0>
 <node-1>**Request objects:**</node-1>
-<node-2><javac-class>`AsyncContext`</javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/rest/arg/CookieList.html" 
target="_blank">CookieList</a></javac-class> 
<javac-class>`DispatcherType`</javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/httppart/HttpPartParserSession.html" 
target="_blank">HttpPartParserSession</a></javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/httppart/HttpPartSerializerSession.html" 
target="_blank">HttpPartSeriali [...]
+<node-2><javac-class>`AsyncContext`</javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/rest/arg/CookieList.html" 
target="_blank">CookieList</a></javac-class> 
<javac-class>`DispatcherType`</javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/httppart/HttpPartParserSession.html" 
target="_blank">HttpPartParserSession</a></javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/httppart/HttpPartSerializerSession.html" 
target="_blank">HttpPartSeriali [...]
 <node-1>**Response objects:**</node-1>
 <node-2><javac-class>`HttpServletResponse`</javac-class> <javac-class><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/OutputStream.html";
 target="_blank">OutputStream</a></javac-class> <javac-class><a 
href="/site/apidocs/org/apache/juneau/rest/RestResponse.html" 
target="_blank">RestResponse</a></javac-class> 
<javac-class>`ServletOutputStream`</javac-class> <javac-class><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Writer.html";
  [...]
 <node-1>**Session objects:**</node-1>
diff --git a/pages/topics/10.13.SvlVariables.md 
b/pages/topics/10.13.SvlVariables.md
index 0e9373f678..c788a66d11 100644
--- a/pages/topics/10.13.SvlVariables.md
+++ b/pages/topics/10.13.SvlVariables.md
@@ -46,17 +46,17 @@ The following is the default list of supported variables:
 
 | Module | Class | Pattern | Initialization time | Request time | Examples |
 |--------|-------|---------|-------------------|--------------|----------|
-| **juneau-svl** | <a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a> | `$E{key[,default]}` | yes | yes | 
`$E{PATH}` |
-| | <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a> | `$S{key[,default]}` | yes | yes | 
`$S{java.home}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a> | `$A{key[,default]}` | yes | yes | `$A{foo,null}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a> | `$MF{key[,default]}` | yes | yes | 
`$MF{Main-Class}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a> | `$IF{arg,then[,else]}` | yes | yes | 
`$IF{$S{my.boolean.property},foo,bar}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a> | `$SW{arg,p1:then1[,p2:then2...]}` | yes | yes | 
`$SW{$S{os.name},*win*:Windows,*:Something else}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a> | `$CO{arg1[,arg2...]}` | yes | yes | 
`$CO{$S{my.property},$E{my.property},n/a}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a> | `$PM{arg,pattern}` | yes | yes | 
`$PM{$S{os.name},*win*}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a> | `$NE{arg}` | yes | yes | `$NE{$S{foo}}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a> | `$UC{arg}` | yes | yes | `$UC{$S{foo}}` |
-| | <a href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a> | `$LC{arg}` | yes | yes | `$LC{$S{foo}}` |
+| **juneau-svl** | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a> | `$E{key[,default]}` | yes | yes | 
`$E{PATH}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a> | `$S{key[,default]}` | yes | yes | 
`$S{java.home}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a> | `$A{key[,default]}` | yes | yes | `$A{foo,null}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a> | `$MF{key[,default]}` | yes | yes | 
`$MF{Main-Class}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a> | `$IF{arg,then[,else]}` | yes | yes | 
`$IF{$S{my.boolean.property},foo,bar}` |
+| | <a href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a> | `$SW{arg,p1:then1[,p2:then2...]}` | yes | yes | 
`$SW{$S{os.name},*win*:Windows,*:Something else}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a> | `$CO{arg1[,arg2...]}` | yes | yes | 
`$CO{$S{my.property},$E{my.property},n/a}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a> | `$PM{arg,pattern}` | yes | yes | 
`$PM{$S{os.name},*win*}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a> | `$NE{arg}` | yes | yes | `$NE{$S{foo}}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a> | `$UC{arg}` | yes | yes | `$UC{$S{foo}}` |
+| | <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a> | `$LC{arg}` | yes | yes | `$LC{$S{foo}}` |
 | **juneau-config** | <a 
href="/site/apidocs/org/apache/juneau/config/vars/ConfigVar.html" 
target="_blank">ConfigVar</a> | `$C{key[,default]}` | yes | yes | 
`$C{REST/staticFiles}` |
 | **juneau-rest-server** | <a 
href="/site/apidocs/org/apache/juneau/rest/vars/FileVar.html" 
target="_blank">FileVar</a> | `$F{path[,default]}` | yes | yes | 
`$F{resources/MyAsideMessage.html, Oops not found!}` |
 | | <a 
href="/site/apidocs/org/apache/juneau/rest/vars/ServletInitParamVar.html" 
target="_blank">ServletInitParamVar</a> | `$I{name[,default]}` | yes | yes | 
`$I{my.param}` |
diff --git a/pages/topics/14.03.Args.md b/pages/topics/14.03.Args.md
index 0bd352a1ea..728ff5d181 100644
--- a/pages/topics/14.03.Args.md
+++ b/pages/topics/14.03.Args.md
@@ -27,39 +27,39 @@ Args args = Microservice.getInstance().getArgs();
 
 // One main argument
 // a1
-String a1 = args.getArg(0); // "a1"
-String a2 = args.getArg(1); // null
+String a1 = args.get(0).orElse(null); // "a1"
+String a2 = args.get(1).orElse(null); // null
 
 // Two main arguments
 // a1 a2
-String a1 = args.getArg(0); // "a1"
-String a2 = args.getArg(1); // "a2"
+String a1 = args.get(0).orElse(null); // "a1"
+String a2 = args.get(1).orElse(null); // "a2"
 
 // One main argument and one optional argument with no value
 // a1 -a2
-String argsa1 = args.getArg(0);
-boolean hasA2 = args.hasArg("a2"); // true
-boolean hasA3 = args.hasArg("a3"); // false
+String argsa1 = args.get(0).orElse(null);
+boolean hasA2 = args.has("a2"); // true
+boolean hasA3 = args.has("a3"); // false
 
 // One main argument and one optional argument with one value
 // a1 -a2 v2
-String a1 = args.getArg(0);
-String a2 = args.getArg("a2"); // "v2"
-String a3 = args.getArg("a3"); // null
+String a1 = args.get(0).orElse(null);
+String a2 = args.get("a2").orElse(null); // "v2"
+String a3 = args.get("a3").orElse(null); // null
 
 // One main argument and one optional argument with two values
 // a1 -a2 v2a v2b
-String a1 = args.getArg(0);
-List a2 = args.getArgs("a2"); // Contains ["v2a","v2b"]
-List a3 = args.getArgs("a3"); // Empty list
+String a1 = args.get(0).orElse(null);
+List<String> a2 = args.getAll("a2"); // Contains ["v2a","v2b"]
+List<String> a3 = args.getAll("a3"); // Empty list
 
 // Same as previous, except specify optional argument name multiple times
 // a1 -a2 v2a -a2 v2b
-String a1 = args.getArg(0);
-List a2 = args.getArgs("a2"); // Contains ["v2a","v2b"]
+String a1 = args.get(0).orElse(null);
+List<String> a2 = args.getAll("a2"); // Contains ["v2a","v2b"]
 ```
 
-Specifying the command-line arguments also makes them available through <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ArgsVar.html" 
target="_blank">$A</a> SVL variables.
+Specifying the command-line arguments also makes them available through <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ArgsVar.html" 
target="_blank">$A</a> SVL variables.
 
 These can be used in the configuration file and throughout various Juneau 
annotations.
 
diff --git a/pages/topics/14.04.Manifest.md b/pages/topics/14.04.Manifest.md
index 3428b1a621..1659e48d67 100644
--- a/pages/topics/14.04.Manifest.md
+++ b/pages/topics/14.04.Manifest.md
@@ -16,7 +16,7 @@ If you do manually specify the manifest file, you can pass in 
any of the followi
 
 <tree>
 <node-0>Manifest File Types</node-0>
-<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/utils/ManifestFile.html" 
target="_blank">ManifestFile</a></java-class> - A pre-parsed manifest 
file</node-1>
+<node-1><java-class><a 
href="/site/apidocs/org/apache/juneau/commons/runtime/ManifestFile.html" 
target="_blank">ManifestFile</a></java-class> - A pre-parsed manifest 
file</node-1>
 <node-1><java-class><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/jar/Manifest.html";
 target="_blank">Manifest</a></java-class> - A pre-parsed manifest file</node-1>
 <node-1><java-class><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Reader.html";
 target="_blank">Reader</a></java-class> - Containing the raw contents of the 
manifest</node-1>
 <node-1><java-class><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/InputStream.html";
 target="_blank">InputStream</a></java-class> - Containing the raw contents of 
the manifest</node-1>
@@ -26,21 +26,19 @@ If you do manually specify the manifest file, you can pass 
in any of the followi
 </tree>
 
 The manifest file can be retrieved using the the <a 
href="/site/apidocs/org/apache/juneau/microservice/Microservice.html#getManifest()"
 target="_blank">Microservice.getManifest()</a> method which provides an API 
for accessing manifest file entries.
-This method returns an instance of <a 
href="/site/apidocs/org/apache/juneau/utils/ManifestFile.html" 
target="_blank">ManifestFile</a> which extends
-from <a href="/site/apidocs/org/apache/juneau/collections/JsonMap.html" 
target="_blank">JsonMap</a> allowing you to retrieve entries as any data
-types supported by that class.
+This method returns an instance of <a 
href="/site/apidocs/org/apache/juneau/commons/runtime/ManifestFile.html" 
target="_blank">ManifestFile</a> — a lean, immutable wrapper around a 
`java.util.jar.Manifest` that returns `Optional<String>` from its `get(...)` 
accessors.
 
 :::tip Example
 ```java
 ManifestFile manifestFile = Microservice.getInstance().getManifest();
 
-String mainClass = manifestFile.getString("Main-Class");
-int myInt = manifestFile.getInt("My-Int", 123);
-boolean myBoolean = manifestFile.getBoolean("My-Boolean");
+String mainClass = manifestFile.get("Main-Class").orElse(null);
+int myInt = manifestFile.get("My-Int").map(Integer::parseInt).orElse(123);
+boolean myBoolean = 
manifestFile.get("My-Boolean").map(Boolean::parseBoolean).orElse(false);
 ```
 :::
 
-The manifest is also used for the <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ManifestFileVar.html" 
target="_blank">$MF</a> SVL variable.
+The manifest is also used for the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ManifestFileVar.html" 
target="_blank">$MF</a> SVL variable.
 
 :::tip Examples
 ```java
diff --git a/pages/topics/14.06.VarResolver.md 
b/pages/topics/14.06.VarResolver.md
index c26932b732..5a054fb1a0 100644
--- a/pages/topics/14.06.VarResolver.md
+++ b/pages/topics/14.06.VarResolver.md
@@ -23,15 +23,15 @@ System.out.println(varResolver.resolve("Main class is set 
to $MF{Main-Class, unk
 The variable resolver becomes much more powerful when used in REST resource 
annotations which will be described latter
 in juneau-microservice-jetty By default, support for the following variables 
are provided:
 
-- `$S{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SystemPropertiesVar.html" 
target="_blank">SystemPropertiesVar</a>
-- `$E{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a>
-- `$A{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a>
+- `$S{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SystemPropertiesVar.html"
 target="_blank">SystemPropertiesVar</a>
+- `$E{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/EnvVariablesVar.html" 
target="_blank">EnvVariablesVar</a>
+- `$A{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ArgsVar.html" 
target="_blank">ArgsVar</a>
 - `$C{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/config/vars/ConfigVar.html" 
target="_blank">ConfigVar</a>
-- `$MF{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a>
-- `$IF{arg,then[,else]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/IfVar.html" 
target="_blank">IfVar</a>
-- `$SW{arg,pattern1:then1[,pattern2:then2...]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a>
-- `$CO{arg[,arg2...]}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a>
-- `$PM{arg,pattern}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a>
-- `$UC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a>
-- `$LC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a>
-- `$NE{arg}` - <a 
href="/site/apidocs/org/apache/juneau/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a>
\ No newline at end of file
+- `$MF{key[,default]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/ManifestFileVar.html" 
target="_blank">ManifestFileVar</a>
+- `$IF{arg,then[,else]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/IfVar.html" 
target="_blank">IfVar</a>
+- `$SW{arg,pattern1:then1[,pattern2:then2...]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/SwitchVar.html" 
target="_blank">SwitchVar</a>
+- `$CO{arg[,arg2...]}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/CoalesceVar.html" 
target="_blank">CoalesceVar</a>
+- `$PM{arg,pattern}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/PatternMatchVar.html" 
target="_blank">PatternMatchVar</a>
+- `$UC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/UpperCaseVar.html" 
target="_blank">UpperCaseVar</a>
+- `$LC{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/LowerCaseVar.html" 
target="_blank">LowerCaseVar</a>
+- `$NE{arg}` - <a 
href="/site/apidocs/org/apache/juneau/commons/svl/vars/NotEmptyVar.html" 
target="_blank">NotEmptyVar</a>
\ No newline at end of file
diff --git a/pages/topics/21.03.SvlSecurity.md 
b/pages/topics/21.03.SvlSecurity.md
index 9cf90cb006..2a17276a5a 100644
--- a/pages/topics/21.03.SvlSecurity.md
+++ b/pages/topics/21.03.SvlSecurity.md
@@ -3,7 +3,7 @@ title: "SVL Security"
 slug: SvlSecurity
 ---
 
-Care must be used when defining new <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html" target="_blank">Vars</a> 
using the SVL API since mistakes
+Care must be used when defining new <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html" 
target="_blank">Vars</a> using the SVL API since mistakes
 could potentially expose system properties, environment variables, or even 
file system files.
 
 For recap, the SVL support allows you to embed variables of the form `$X{key}` 
inside strings that get resolved to other
@@ -31,11 +31,11 @@ variable resolver returned by the `RestRequest` object.
 You've potentially just exposed the contents of that file through your REST 
interface.
 In reality, the above security hole does not exist because of the following 
restrictions:
 
-- `Vars` have two methods <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html#allowNested()" 
target="_blank">Var.allowNested()</a> and <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html#allowRecurse()" 
target="_blank">Var.allowRecurse()</a> that can be overridden to prevent 
recursive processing of string variables.
+- `Vars` have two methods <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html#allowNested()" 
target="_blank">Var.allowNested()</a> and <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html#allowRecurse()" 
target="_blank">Var.allowRecurse()</a> that can be overridden to prevent 
recursive processing of string variables.
   These are both false for the `$R` variable, so the `$F` variable in the 
result will never get processed and instead be
   treated as plain text.
 
 - The `$F` variable only allows you to retrieve files within the JVM starting 
directory.
 
 Even though the built-in Juneau variables are safe, special care is needed 
when defining your own custom variables.
-If your variable resolves user input in any way, it's HIGHLY recommended that 
you override the <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html#allowNested()" 
target="_blank">Var.allowNested()</a> and <a 
href="/site/apidocs/org/apache/juneau/svl/Var.html#allowRecurse()" 
target="_blank">Var.allowRecurse()</a> methods to prevent recursive handling of 
variables.
+If your variable resolves user input in any way, it's HIGHLY recommended that 
you override the <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html#allowNested()" 
target="_blank">Var.allowNested()</a> and <a 
href="/site/apidocs/org/apache/juneau/commons/svl/Var.html#allowRecurse()" 
target="_blank">Var.allowRecurse()</a> methods to prevent recursive handling of 
variables.
diff --git a/pages/topics/23.01.V9.5-migration-guide.md 
b/pages/topics/23.01.V9.5-migration-guide.md
index 32734f593f..4ee792d140 100644
--- a/pages/topics/23.01.V9.5-migration-guide.md
+++ b/pages/topics/23.01.V9.5-migration-guide.md
@@ -30,6 +30,20 @@ teams jumping from 9.1 (or earlier) directly to 9.5 have a 
single reference.
 | Custom annotation appliers — user code that subclassed the internal 
`AnnotationApplier<Rest, RestContext.Builder>` (or `AnnotationApplier<RestOp, 
RestOpContext.Builder>`) to extend the annotation-processing pass (the 
`apply(AnnotationInfo<A>, B builder)` hook invoked once per annotation during 
context construction). | **Removed.** The builder-based apply-pass is gone; 
`RestAnnotation.Apply` (`RestContextApply`) is now a package-private nested 
class inside `RestContext` and is not exten [...]
 | Custom `RestAnnotation.create(...)` / `RestOpAnnotation.create(...)` 
builder-of-builders patterns — programmatic construction of `@Rest` / `@RestOp` 
annotation proxies used to feed synthetic annotations into the builder 
apply-pass (common in test fixtures and extension libraries). | The annotation 
proxy builders still exist for test use (`RestAnnotation.create()` / 
`RestOpAnnotation.create()` are still available via annotation-test helpers), 
but they no longer feed into a builder apply [...]
 
+## SVL and Runtime Input Types Moved to `juneau-commons` (TODO-14)
+
+| Old | New | Notes |
+|-----|-----|-------|
+| `org.apache.juneau.svl.*` | `org.apache.juneau.commons.svl.*` | Update 
imports for `VarResolver`, `VarResolverSession`, `Var`, and related SVL types. |
+| `org.apache.juneau.svl.vars.*` | `org.apache.juneau.commons.svl.vars.*` | 
Update imports for `ArgsVar`, `ManifestFileVar`, `SystemPropertiesVar`, etc. |
+| `org.apache.juneau.svl.ResolvingJsonMap` | 
`org.apache.juneau.collections.ResolvingJsonMap` | `ResolvingJsonMap` remains 
in `juneau-marshall` and now lives in the collections package. |
+| `org.apache.juneau.collections.Args` | <a 
href="/site/apidocs/org/apache/juneau/commons/runtime/Args.html" 
target="_blank">`org.apache.juneau.commons.runtime.Args`</a> | Legacy 
`JsonMap`-based type removed. New type is immutable and `Optional`-based. |
+| `org.apache.juneau.utils.ManifestFile` | <a 
href="/site/apidocs/org/apache/juneau/commons/runtime/ManifestFile.html" 
target="_blank">`org.apache.juneau.commons.runtime.ManifestFile`</a> | Legacy 
`JsonMap`-based type removed. New type is immutable and `Optional`-based. |
+| `Args#getArg(int)` / `getArg(String)` / `getArgs(String)` / `hasArg(String)` 
/ `size()` | `Args#get(int)` / `get(String)` / `getAll(String)` / `has(String)` 
/ `argCount()+optionCount()` | `get(...)` now returns `Optional<String>`. |
+| `ManifestFile#getString(...)` / `getWithDefault(...)` / `containsKey(...)` 
(and other `JsonMap` methods) | `ManifestFile#get(String).orElse(...)`, 
`get(String section, String key)` | Convert callers to explicit `Optional` 
handling and parsing. |
+| `Microservice#getArgs()` / `Builder.args(Args)` / console command signatures 
using old `Args` | Same methods/signatures but now typed to 
`org.apache.juneau.commons.runtime.Args` | Most call sites only need import + 
method rename updates (`getArg` -> `get(...).orElse(...)`). |
+| `Microservice#getManifest()` / `Builder.manifest(Object)` consumers using 
old `ManifestFile` API | Same methods/signatures but now typed to 
`org.apache.juneau.commons.runtime.ManifestFile` | Replace 
`getString()`/`containsKey()` patterns with `Optional`-based `get(...)`. |
+
 ## Bean→Marshalled Renames
 
 ### Annotation Renames

Reply via email to