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 fb59e93464 Add 10.0.0 release note for canonical HTTP stack
immutability (TODO-273)
fb59e93464 is described below
commit fb59e93464b7ca2923a2ed6e3acdb6147bf70fae
Author: James Bognar <[email protected]>
AuthorDate: Tue Jul 21 11:14:29 2026 -0400
Add 10.0.0 release note for canonical HTTP stack immutability (TODO-273)
Co-authored-by: Cursor <[email protected]>
---
pages/release-notes/10.0.0.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/pages/release-notes/10.0.0.md b/pages/release-notes/10.0.0.md
index 61ce798df7..621b425a1e 100644
--- a/pages/release-notes/10.0.0.md
+++ b/pages/release-notes/10.0.0.md
@@ -766,6 +766,7 @@ _TBD — to be filled in as development continues._
- **Two bug fixes bundled with this migration:** the `Thrown` response
header now reports the *logical* (declared) exception type rather than a frozen
`INSTANCE` snapshot's synthetic `$Unmodifiable` subclass name, so client-side
exception reconstruction from a frozen shared instance (e.g.
`BadRequest.INSTANCE`) no longer breaks; and `BasicStatusLine`'s copy
constructor now faithfully copies `reasonPhraseCatalog` (previously dropped on
copy).
- **Migration:** replace every `x.setUnmodifiable()` call with `x =
x.unmodifiable()` (or use the returned snapshot directly), and audit any direct
`new BasicHttpResponse(...)` / `new BasicHttpEntity(...)` construction to
instantiate a concrete leaf instead.
- **`BasicResource` becomes an abstract self-typed (CRTP) root (TODO-274).**
`BasicResource` is now `BasicResource<SELF extends BasicResource<SELF>>`
(mirroring `BasicHttpEntity`/`BasicHttpResponse`) and can no longer be
instantiated directly — use a concrete leaf (`StreamResource`,
`ByteArrayResource`, `StringResource`, `FileResource`, `ReaderResource`). The
breaking surface is narrow: `.as(BasicResource.class)` and `@Remote` methods
declared to return `BasicResource`/`HttpResource` s [...]
+ - **Canonical `juneau-rest-common` HTTP stack brought to the immutable-beans
paradigm (TODO-273).** `BasicHttpResponse` is now an abstract self-typed (CRTP)
root `BasicHttpResponse<SELF extends BasicHttpResponse<SELF>>`;
`BasicHttpException` is a funnel-only root (no CRTP — a generic `Throwable` is
illegal per JLS §8.1.2). The old `setUnmodifiable()` / `assertModifiable()`
flag idiom is removed on these public types and on the `HttpHeaderList` /
`HttpPartList` collections — use `unmodi [...]
_Other entries TBD — to be filled in before release. See also the major
version bump note above._