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

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

commit 0b47f0358c603bd7f0db8cb3ee2d7261b95818c0
Author: James Bognar <[email protected]>
AuthorDate: Fri May 8 15:21:10 2026 -0400

    docs(todo): TODO-15 — record batches 8-12 progress
    
    Co-authored-by: Cursor <[email protected]>
---
 todo/TODO-15-replace-basicbeanstore-with-v2.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/todo/TODO-15-replace-basicbeanstore-with-v2.md 
b/todo/TODO-15-replace-basicbeanstore-with-v2.md
index c58b0202a7..337f1095c9 100644
--- a/todo/TODO-15-replace-basicbeanstore-with-v2.md
+++ b/todo/TODO-15-replace-basicbeanstore-with-v2.md
@@ -18,6 +18,11 @@ Eliminate the legacy injection stack in 
`org.apache.juneau.cp` (`BasicBeanStore`
 - ~~Phase 3 batch-5: flip framework-default ctors + `init()` template methods 
to `BeanStore`; widen `BeanBuilder<T>` to `BeanStore`; unlock 
`RestContext.java:1199`~~ — **DONE (2026-05-08).** Constructor signatures and 
`init(...)` template method parameters of all framework defaults (`CallLogger`, 
`DebugEnablement`, `BasicCallLogger`, `BasicDebugEnablement`, 
`BasicTestCallLogger`, `BasicTestCaptureCallLogger`, `BasicDisabledCallLogger`, 
`BasicStaticFiles`, `BasicSwaggerProvider`) flipped  [...]
 - ~~Phase 3 batch-6: drop `@Rest(beanStore=X.class)` annotation, migrate 
Spring integration to v2, lock in `@RestInject > Spring > defaults` 
precedence~~ — **DONE (2026-05-08).** `SpringRestServlet.createBeanStore()` now 
returns `WritableBeanStore` and instantiates `SpringBeanStore2`. 
`RestContext.createBeanStore()` simplified to `new BasicBeanStore2(parentBs)` 
with optional `@RestInject WritableBeanStore` override (drops legacy 
`BasicBeanStore.create().overridingParent(...).build()` cha [...]
 - ~~Phase 3 batch-7: port `BasicBeanStore.INSTANCE` to v2 + migrate 
consumers~~ — **DONE (2026-05-08).** Added `BasicBeanStore2.INSTANCE` static 
field (typed as the concrete class for compatibility with 
`WritableBeanStore`-typed Builder ctors; documented as "treat as read-only"). 
Migrated 13 consumer references from `BasicBeanStore.INSTANCE` to 
`BasicBeanStore2.INSTANCE`: `BasicTestCaptureCallLogger`, `BasicCallLogger`, 
`CallLogger.DEFAULT_RULE`, `ThrownStore.create()` + parent-less ctor [...]
+- ~~Phase 3 batch-8: retire legacy `SpringBeanStore`~~ — **DONE 
(2026-05-08).** Deleted legacy `SpringBeanStore` and its test after 
`SpringBeanStore2` (v2) coverage was confirmed complete. Javadoc/`@see` 
references updated repo-wide.
+- ~~Phase 3 batch-9: marshall internal `BeanCreator` → `BeanInstantiator` 
migration~~ — **DONE (2026-05-08).** Migrated 8 marshall call sites: 
`BeanContext.java:3743` (ObjectSwap subtype), `BeanMeta.java:976` 
(BeanFactory), `BeanPropertyMeta.java:171/187` (ObjectSwap), 
`ClassMeta.java:1419` (ObjectSwap), `EncoderSet.java:291` (Encoder), 
`HtmlBeanPropertyMeta.java` (HtmlRender, abstract type — relies on the new 
abstract-class fallback fix), `ParserSession.java:326` / `SerializerSession.ja 
[...]
+- ~~Phase 3 batch-10: cascade list helpers `BeanCreator` → 
`BeanInstantiator`~~ — **DONE (2026-05-08).** Migrated `RestConverterList`, 
`RestGuardList`, `RestMatcherList`, `ResponseProcessorList`. Per-entry storage 
retyped to `BeanInstantiator<T>`; `type(v)` -> `beanSubType(v)`; `impl(v)` -> 
`implementation(v)`; `BeanCreator::run` -> `BeanInstantiator::run` in stream 
pipelines. The cascade Builders still extend the legacy `BeanBuilder<T>` (its 
`beanStore()` already returns the v2 `BeanSto [...]
+- ~~Phase 3 batch-11: rest-common / rest-client http-part creators~~ — **DONE 
(2026-05-08).** Migrated `RequestBeanMeta` (Builder fields), 
`RequestBeanPropertyMeta` (per-property override), `ResponseBeanPropertyMeta` 
(added null-guard on `schema.getSerializer()`/`getParser()` since v2 
`beanSubType(null)` throws), 
`RestClient.getPartParser/getPartSerializer(Class)` (simple per-class 
instantiation), `RemoteOperationArg` (both ctors). `BeanCreator.execute()` 
calls rewritten as `asOptional() [...]
+- ~~Phase 3 batch-12: `RestOpContext.createPartSerializer` + `RestContext` 
child resource~~ — **DONE (2026-05-08).** 
`RestOpContext.createPartSerializer(Class<? extends HttpPartSerializer>, 
HttpPartSerializer)` migrated with null short-circuit (legacy `.type(null)` was 
tolerant, v2 throws); `cp.*` import dropped. `RestContext.java:1131` 
(child-resource path) `BeanCreator.of(rc2, bs).run()` -> 
`BeanInstantiator.of(rc2, bs).run()`. **Attempted + reverted:** 
`RestContext.findRestOperationAr [...]
 
 ### Deeper blocker discovered (2026-05-08, batch 4)
 

Reply via email to