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 4440855e49 docs: release-notes entry for TODO-104 mixin path liberal
input normalization
4440855e49 is described below
commit 4440855e492f304406e60cacdd16d2d1c75c9553
Author: James Bognar <[email protected]>
AuthorDate: Wed May 27 10:06:59 2026 -0400
docs: release-notes entry for TODO-104 mixin path liberal input
normalization
Co-authored-by: Cursor <[email protected]>
---
pages/release-notes/9.5.0.md | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/pages/release-notes/9.5.0.md b/pages/release-notes/9.5.0.md
index 42311de31e..55e49aa48a 100644
--- a/pages/release-notes/9.5.0.md
+++ b/pages/release-notes/9.5.0.md
@@ -2654,6 +2654,35 @@ SVL resolution happens once at `RestContext`
construction time (see TODO-99 abov
resolution chain). Each configurable mixin ships with a
`*_SvlPathOverride_Test` in
`juneau-utest` that exercises the override end-to-end via `MockRestClient`.
+#### Mixin path overrides now accept liberal input forms (TODO-104)
+
+Building on TODO-101 (SVL-configurable mixin paths) and TODO-102
(`pathToken()` in the SVL
+scripting catalog), all 10 SVL-configurable mixin op-paths now wrap their
override token in
+`#{pathToken(...)}` so users can supply any of the following forms and the
framework always
+produces a clean mount:
+
+| Input form | Example | Effective mount |
+|---|---|---|
+| Bare token | `jsp` | `/jsp/*` |
+| Leading slash | `/jsp` | `/jsp/*` |
+| Trailing slash | `jsp/` | `/jsp/*` |
+| Both slashes | `/jsp/` | `/jsp/*` |
+| Wildcard suffix | `/jsp/*` | `/jsp/*` |
+| Multi-segment | `/api/v1/jsp/*` | `/api/v1/jsp/*` |
+
+Before this change, setting `juneau.jsp.path=/jsp` resulted in a double-slash
path `//jsp/*`
+that silently failed to match any request. After this change, all of the above
input forms
+resolve identically to the canonical mount.
+
+The `pathToken()` function (added in TODO-102's Phase D string catalog) strips
leading/trailing
+slashes and a trailing `/*` wildcard suffix while preserving multi-segment
paths. It is
+registered on `VarResolver.DEFAULT` via `defaultFunctions()` and is available
to any SVL
+template. See the SVL scripting section above for the full function catalog.
+
+Each mixin's `*_SvlPathOverride_Test` has been extended with 5–6 new
equivalence test cases
+(bare token, leading slash, trailing slash, both slashes, wildcard suffix, and
multi-segment)
+covering all input forms per class.
+
#### OpenAPI 3.1 Emission + API-docs Mixin Pack (TODO-63 + TODO-74)
`juneau-rest-server` now ships first-class OpenAPI 3.1 document generation
alongside the existing Swagger v2 path, with the public surface composed via
four small `@Rest(mixins=...)` mixins instead of a `apiFormat` string knob: