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 5252b19d76 docs: add TODO-20 debug config migration notes
5252b19d76 is described below
commit 5252b19d769118d83b65f78ab9094a281e60e03d
Author: James Bognar <[email protected]>
AuthorDate: Mon May 25 09:09:42 2026 -0400
docs: add TODO-20 debug config migration notes
Co-authored-by: Cursor <[email protected]>
---
pages/release-notes/9.5.0.md | 17 +++++++++++++++++
pages/topics/23.01.V9.5-migration-guide.md | 1 +
2 files changed, 18 insertions(+)
diff --git a/pages/release-notes/9.5.0.md b/pages/release-notes/9.5.0.md
index 764618aed3..36e453e77c 100644
--- a/pages/release-notes/9.5.0.md
+++ b/pages/release-notes/9.5.0.md
@@ -1986,6 +1986,23 @@ String name
### juneau-rest-server
+#### Rest Debug Rethink (TODO-20)
+
+`juneau-rest-server` now resolves debug behavior through a single
`DebugConfig` model and typed `@Debug` annotation slot, replacing the previous
split model (`debug`, `debugDefault`, `debugEnablement`, `debugOn`) on `@Rest`
/ `@RestOp`.
+
+- New typed annotation surface:
+ - `@Rest(debug=@Debug(...))`
+ - `@RestOp(debug=@Debug(...))`
+- New debug core model under `org.apache.juneau.rest.debug`:
+ - `DebugConfig`, `DebugRule`, `DebugResult`, `DebugFormat`,
`DebugFormatContext`.
+- New built-in formats under `org.apache.juneau.rest.debug.format`:
+ - `BasicTextFormat`, `OneLineFormat`, `JsonFormat`, and Juneau-owned
`CapturingFormat`.
+- `CallLogger` keeps its public surface, but internally resolves effective
debug behavior through `DebugConfig`.
+- Runtime shortcuts remain:
+ - `RestRequest.setDebug()/setDebug(Boolean)/isDebug()` still work and map
into the new debug resolution path.
+
+**Migration note:** This is a hard-break change for annotation members.
Replace any old debug attributes on `@Rest` / `@RestOp` with the typed
`debug=@Debug(...)` form.
+
#### Test-time Bean Injection (TODO-35)
A new JUnit 5 extension and `@TestBean` annotation enable Spring-style
test-time bean substitution for `MockRestClient`, `Microservice`,
`SerializerSet`, `ParserSet`, and `EncoderSet` — without CGLIB, AOT bytecode
generation, or any Mockito dependency. See [REST Server — Test-time Bean
Injection](/docs/topics/RestServerTestBeanInjection) for the full reference.
diff --git a/pages/topics/23.01.V9.5-migration-guide.md
b/pages/topics/23.01.V9.5-migration-guide.md
index 5e72b7b481..63c973e1e6 100644
--- a/pages/topics/23.01.V9.5-migration-guide.md
+++ b/pages/topics/23.01.V9.5-migration-guide.md
@@ -29,6 +29,7 @@ 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 [...]
+| Debug config attributes on `@Rest` / `@RestOp` (`debug`, `debugDefault`,
`debugEnablement`, `debugOn`) | A single typed slot: `debug=@Debug(...)` on
both `@Rest` and `@RestOp`. Use `@Debug("always" | "never" | "conditional")`,
optional `format`, `level`, and `config` members. | **Hard break.** The old
attributes are removed with no deprecation shim. Method-level debug
configuration is now applied only on `@RestOp` methods. Runtime request
shortcuts (`RestRequest.setDebug()/setDebug(Boo [...]
## Health Probe Routing (`mixins` + `paths`)