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 34a2c30e1094851d1b637c6b2837496072223b26
Author: James Bognar <[email protected]>
AuthorDate: Mon May 11 11:56:09 2026 -0400

    refactor(inject): post-TODO-15 API cleanup and type-correctness pass
    
    - Rename SpringBeanStore2 -> SpringBeanStore (consistent with 
BasicBeanStore rename)
    - Widen builder beanStore fields/params from WritableBeanStore to BeanStore 
in
      EncoderSet, SerializerSet, ParserSet, ResponseProcessorList, 
RestOpArgList,
      RestMatcherList, RestGuardList, RestConverterList, RestOperations, 
RestChildren
      (these builders only read from the store; callers that pass 
WritableBeanStore still compile)
    - Add BeanInstantiator convenience statics: createOrNull, optionalOf, 
createOrDefault
    - Simplify ParserSession/SerializerSession listener init with createOrNull
    - Simplify RemoteOperationArg serializer init with optionalOf
    - Simplify RequestBeanPropertyMeta with createOrDefault; 
ResponseBeanPropertyMeta
      with Optional.or() + optionalOf
    - Fix FQN java.util.LinkedHashMap references in VarResolver (java.util.* 
already imported)
    - Narrow 
RestContext.createBeanStore/findRestOperationArgs/invokeRestInitMethod params
      to BeanStore (parentBs/beanStore only used as read-only parent or inject 
source)
    - Narrow RestOpContext.beanStore() accessor to BeanStore; remove misleading 
comment
    
    Co-authored-by: Cursor <[email protected]>
---
 .../juneau/commons/function/package-info.java      |  6 +--
 .../juneau/commons/inject/BeanInstantiator.java    | 53 ++++++++++++++++++++++
 .../main/java/org/apache/juneau/BeanContext.java   |  4 +-
 .../java/org/apache/juneau/annotation/Bean.java    |  2 +-
 .../java/org/apache/juneau/annotation/Named.java   |  2 +-
 .../org/apache/juneau/encoders/EncoderSet.java     |  8 ++--
 .../org/apache/juneau/parser/ParserSession.java    |  3 +-
 .../java/org/apache/juneau/parser/ParserSet.java   | 10 ++--
 .../juneau/serializer/SerializerSession.java       |  3 +-
 .../apache/juneau/serializer/SerializerSet.java    | 10 ++--
 .../java/org/apache/juneau/svl/VarResolver.java    |  6 +--
 .../rest/client/remote/RemoteOperationArg.java     |  8 +---
 .../httppart/bean/RequestBeanPropertyMeta.java     |  4 +-
 .../httppart/bean/ResponseBeanPropertyMeta.java    |  8 +---
 ...{SpringBeanStore2.java => SpringBeanStore.java} |  8 ++--
 .../juneau/rest/springboot/SpringRestServlet.java  |  2 +-
 .../java/org/apache/juneau/rest/RestChildren.java  | 10 ++--
 .../java/org/apache/juneau/rest/RestContext.java   |  6 +--
 .../java/org/apache/juneau/rest/RestOpContext.java |  2 +-
 .../org/apache/juneau/rest/RestOperations.java     | 10 ++--
 .../apache/juneau/rest/annotation/RestInject.java  |  2 +-
 .../org/apache/juneau/rest/arg/RestOpArgList.java  | 10 ++--
 .../juneau/rest/converter/RestConverterList.java   |  8 ++--
 .../apache/juneau/rest/guard/RestGuardList.java    |  8 ++--
 .../juneau/rest/matcher/RestMatcherList.java       |  8 ++--
 .../rest/processor/ResponseProcessorList.java      |  8 ++--
 .../juneau/rest/RestContext_Precedence_Test.java   |  4 +-
 ...nStore2_Test.java => SpringBeanStore_Test.java} | 46 +++++++++----------
 28 files changed, 151 insertions(+), 108 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/function/package-info.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/function/package-info.java
index 165cc72ec2..d4b239e0af 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/function/package-info.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/function/package-info.java
@@ -381,7 +381,7 @@
  *     <p>
  *     Spring-managed beans (e.g. a {@code DataSource}) can be injected into 
streaming implementations
  *     without constructor scanning or reflection. Register the factories as 
Spring beans, then wire
- *     the {@code SpringBeanStore2} into the Juneau context so the marshaller 
can resolve them at
+ *     the {@code SpringBeanStore} into the Juneau context so the marshaller 
can resolve them at
  *     runtime.
  *     </p>
  *
@@ -407,7 +407,7 @@
  *     }
  *     </p>
  *
- *     <h5 class='figure'>Wiring the SpringBeanStore2 into a REST resource</h5>
+ *     <h5 class='figure'>Wiring the SpringBeanStore into a REST resource</h5>
  *     <p class='bjava'>
  *     <ja>@Rest</ja>
  *     <jk>public class</jk> EmployeeResource <jk>extends</jk> 
BasicSpringRestServlet {
@@ -418,7 +418,7 @@
  *             <ja>@Override</ja>
  *             <jk>protected</jk> BeanContext.Builder 
createBeanContext(RestContext.Builder <jv>rcBuilder</jv>) {
  *                     <jk>return 
super</jk>.createBeanContext(<jv>rcBuilder</jv>)
- *                             .beanStore(<jk>new</jk> 
SpringBeanStore2(<jv>appCtx</jv>));
+ *                             .beanStore(<jk>new</jk> 
SpringBeanStore(<jv>appCtx</jv>));
  *             }
  *     }
  *     </p>
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
index 59197da8a4..30c79ba452 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
@@ -266,6 +266,59 @@ public class BeanInstantiator<T> {
                return new Builder<>(beanType, parentStore, name, 
enclosingInstance);
        }
 
+       /**
+        * Instantiates a bean of the given type, or returns <jk>null</jk> if 
the type is <jk>null</jk> or instantiation fails.
+        *
+        * <p>
+        * Shorthand for the common pattern:
+        * <p class='bjava'>
+        *      <jv>cls</jv> == <jk>null</jk> ? <jk>null</jk> : 
BeanInstantiator.<jsm>of</jsm>(<jv>cls</jv>).fallback(() -> <jk>null</jk>).run()
+        * </p>
+        *
+        * @param <T> The bean type to create.
+        * @param beanType The bean type to create.  Can be <jk>null</jk>.
+        * @return A new bean instance, or <jk>null</jk> if the type is 
<jk>null</jk> or instantiation fails.
+        */
+       public static <T> T createOrNull(Class<T> beanType) {
+               return beanType == null ? null : of(beanType).fallback(() -> 
null).run();
+       }
+
+       /**
+        * Instantiates a bean of the given type and wraps it in an {@link 
Optional}, or returns {@link Optional#empty()}
+        * if the type is <jk>null</jk> or instantiation fails.
+        *
+        * <p>
+        * Shorthand for the common pattern:
+        * <p class='bjava'>
+        *      <jv>cls</jv> == <jk>null</jk> ? Optional.empty() : 
BeanInstantiator.<jsm>of</jsm>(<jv>cls</jv>).asOptional()
+        * </p>
+        *
+        * @param <T> The bean type to create.
+        * @param beanType The bean type to create.  Can be <jk>null</jk>.
+        * @return An {@link Optional} containing the created bean, or {@link 
Optional#empty()} if the type is <jk>null</jk> or instantiation fails.
+        */
+       public static <T> Optional<T> optionalOf(Class<T> beanType) {
+               return beanType == null ? Optional.empty() : 
of(beanType).asOptional();
+       }
+
+       /**
+        * Instantiates a bean of the given type, or returns a default value if 
the type is <jk>null</jk>.
+        *
+        * <p>
+        * Shorthand for the common pattern:
+        * <p class='bjava'>
+        *      <jv>cls</jv> == <jk>null</jk> ? <jv>defaultValue</jv> : 
BeanInstantiator.<jsm>of</jsm>(<jv>cls</jv>).run()
+        * </p>
+        *
+        * @param <T> The bean type to create.
+        * @param beanType The bean type to create.  Can be <jk>null</jk>.
+        * @param defaultValue The value to return if {@code beanType} is 
<jk>null</jk>.  Can be <jk>null</jk>.
+        * @return A new bean instance, or {@code defaultValue} if the type is 
<jk>null</jk>.
+        */
+       public static <T> T createOrDefault(Class<T> beanType, T defaultValue) {
+               return beanType == null ? defaultValue : of(beanType).run();
+       }
+
        // 
=========================================================================
        // Outer (immutable) wrapper state and methods
        // 
=========================================================================
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index ef7b370c8d..73679eb2ae 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -1733,7 +1733,7 @@ public class BeanContext extends Context implements 
ConversionFinder {
                 * before attempting direct instantiation.
                 *
                 * <p>
-                * Typically set to a {@code SpringBeanStore2} wrapping the 
application's
+                * Typically set to a {@code SpringBeanStore} wrapping the 
application's
                 * {@code ApplicationContext} so that Spring-managed factories 
are resolved automatically.
                 *
                 * <h5 class='section'>Example:</h5>
@@ -1743,7 +1743,7 @@ public class BeanContext extends Context implements 
ConversionFinder {
                 *
                 *              <ja>@Override</ja>
                 *              <jk>protected</jk> BeanContext 
createBeanContext(BeanContext.Builder <jv>builder</jv>) {
-                *                      <jk>return</jk> 
<jv>builder</jv>.beanStore(<jk>new</jk> SpringBeanStore2(<jv>ctx</jv>)).build();
+                *                      <jk>return</jk> 
<jv>builder</jv>.beanStore(<jk>new</jk> SpringBeanStore(<jv>ctx</jv>)).build();
                 *              }
                 *      }
                 * </p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
index d786ae7953..7e840b8731 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
@@ -68,7 +68,7 @@ public @interface Bean {
         * When a factory class is specified, the framework resolves it in the 
following order:
         * <ol>
         *      <li>Look up the factory class in the configured {@link 
org.apache.juneau.commons.inject.BeanStore}
-        *          (e.g. a Spring {@code ApplicationContext} wrapped in a 
{@code SpringBeanStore2})
+        *          (e.g. a Spring {@code ApplicationContext} wrapped in a 
{@code SpringBeanStore})
         *      <li>Attempt direct instantiation via no-arg constructor or 
{@code getInstance()} static method
         *      <li>Throw {@link IllegalArgumentException} if both fail
         * </ol>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Named.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Named.java
index def1f6d446..92438e7d2b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Named.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Named.java
@@ -61,7 +61,7 @@ import java.lang.annotation.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='ja'>{@link Name}
- *     <li class='jc'>{@link org.apache.juneau.commons.inject.BeanStore}
+ *     <li class='jc'>{@link BeanStore}
  * </ul>
  */
 @Documented
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
index 84a5246280..d074550e87 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
@@ -89,7 +89,7 @@ public class EncoderSet {
                        return "object:" + cns(o);
                }
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                private EncoderSet impl;
 
                List<Object> entries;
@@ -101,7 +101,7 @@ public class EncoderSet {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        entries = list();
                }
@@ -122,7 +122,7 @@ public class EncoderSet {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -294,7 +294,7 @@ public class EncoderSet {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index dec16703ca..bcae571d26 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -323,8 +323,7 @@ public class ParserSession extends BeanSession {
                outer = builder.outer;
                schema = builder.schema;
                trimStrings = builder.trimStrings;
-               var listenerCls = ctx.getListener();
-               listener = listenerCls == null ? null : 
BeanInstantiator.of(listenerCls).fallback(() -> null).run();
+               listener = BeanInstantiator.createOrNull(ctx.getListener());
                sbStack = new ArrayDeque<>();
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
index b3118f62c9..91c920fc29 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
@@ -18,7 +18,7 @@ package org.apache.juneau.parser;
 
 import org.apache.juneau.commons.http.MediaType;
 import org.apache.juneau.commons.inject.BasicBeanStore;
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.BeanStore;
 import static java.util.stream.Collectors.*;
 import static org.apache.juneau.commons.reflect.ReflectionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
@@ -100,7 +100,7 @@ public class ParserSet {
                private static final String CLASS_NoInherit = "NoInherit";
                private static final String CLASS_Inherit = "Inherit";
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                private ParserSet impl;
 
                List<Object> entries;
@@ -111,7 +111,7 @@ public class ParserSet {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        this.entries = list();
                }
@@ -147,7 +147,7 @@ public class ParserSet {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -482,7 +482,7 @@ public class ParserSet {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index af725e0130..26ecec6b86 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -504,8 +504,7 @@ public class SerializerSession extends BeanTraverseSession {
                UriContext uriContext = builder.uriContext;
                uriResolver = UriResolver.of(ctx.getUriResolution(), 
ctx.getUriRelativity(), uriContext);
                vrs = builder.resolver;
-               var listenerCls = ctx.getListener();
-               listener = listenerCls == null ? null : 
BeanInstantiator.of(listenerCls).fallback(() -> null).run();
+               listener = BeanInstantiator.createOrNull(ctx.getListener());
                keepNullProperties = builder.keepNullProperties;
                trimStrings = builder.trimStrings;
                addBeanTypes = builder.addBeanTypes;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index 365924dc8e..2984d456d6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -20,7 +20,7 @@ import org.apache.juneau.commons.http.MediaRanges;
 import org.apache.juneau.commons.http.MediaRange;
 import org.apache.juneau.commons.http.MediaType;
 import org.apache.juneau.commons.inject.BasicBeanStore;
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.BeanStore;
 import static java.util.stream.Collectors.*;
 import static org.apache.juneau.commons.reflect.ReflectionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
@@ -100,7 +100,7 @@ public class SerializerSet {
 
                private static final String CLASS_Inherit = "Inherit";
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                private SerializerSet impl;
 
                List<Object> entries;
@@ -111,7 +111,7 @@ public class SerializerSet {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        this.entries = list();
                }
@@ -147,7 +147,7 @@ public class SerializerSet {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -479,7 +479,7 @@ public class SerializerSet {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
index 2db6b815c9..724bcc1ffe 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolver.java
@@ -78,7 +78,7 @@ public class VarResolver {
 
                private WritableBeanStore beanStore;
                final VarList vars;
-               final java.util.LinkedHashMap<Class<?>,Object> userBeans;
+               final LinkedHashMap<Class<?>,Object> userBeans;
 
                /**
                 * Constructor.
@@ -86,7 +86,7 @@ public class VarResolver {
                protected Builder() {
                        this.beanStore = new BasicBeanStore();
                        vars = VarList.create();
-                       userBeans = new java.util.LinkedHashMap<>();
+                       userBeans = new LinkedHashMap<>();
                }
 
                /**
@@ -97,7 +97,7 @@ public class VarResolver {
                protected Builder(VarResolver copyFrom) {
                        this.beanStore = copyFrom.beanStore;
                        vars = VarList.of(copyFrom.vars);
-                       userBeans = new java.util.LinkedHashMap<>();
+                       userBeans = new LinkedHashMap<>();
                }
 
                /**
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationArg.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationArg.java
index 0e85bcf287..7679b80822 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationArg.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationArg.java
@@ -69,9 +69,7 @@ public class RemoteOperationArg {
        RemoteOperationArg(int index, HttpPartType partType, HttpPartSchema 
schema) {
                this.index = index;
                this.partType = partType;
-               this.serializer = schema.getSerializer() == null
-                       ? Optional.empty()
-                       : 
BeanInstantiator.of(HttpPartSerializer.class).type((Class<? extends 
HttpPartSerializer>) schema.getSerializer()).asOptional();
+               this.serializer = 
BeanInstantiator.optionalOf((Class<HttpPartSerializer>) schema.getSerializer());
                this.schema = schema;
        }
 
@@ -79,9 +77,7 @@ public class RemoteOperationArg {
        RemoteOperationArg(int index, HttpPartType partType, HttpPartSchema 
schema, String overrideName) {
                this.index = index;
                this.partType = partType;
-               this.serializer = schema.getSerializer() == null
-                       ? Optional.empty()
-                       : 
BeanInstantiator.of(HttpPartSerializer.class).type((Class<? extends 
HttpPartSerializer>) schema.getSerializer()).asOptional();
+               this.serializer = 
BeanInstantiator.optionalOf((Class<HttpPartSerializer>) schema.getSerializer());
                // Create a new schema with the overridden name
                this.schema = 
HttpPartSchema.create().name(overrideName).build();
        }
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
index b0497ee275..3c33d2f8bf 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
@@ -86,8 +86,8 @@ public class RequestBeanPropertyMeta {
                partType = b.partType;
                schema = b.schema;
                getter = b.getter;
-               this.serializer = opt(schema.getSerializer() == null ? 
serializer : BeanInstantiator.of(HttpPartSerializer.class).type((Class<? 
extends HttpPartSerializer>) schema.getSerializer()).run());
-               this.parser = schema.getParser() == null ? parser : 
BeanInstantiator.of(HttpPartParser.class).type((Class<? extends 
HttpPartParser>) schema.getParser()).run();
+               this.serializer = 
opt(BeanInstantiator.createOrDefault((Class<HttpPartSerializer>) 
schema.getSerializer(), serializer));
+               this.parser = 
BeanInstantiator.createOrDefault((Class<HttpPartParser>) schema.getParser(), 
parser);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
index 9164788fb4..9dec884706 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
@@ -87,12 +87,8 @@ public class ResponseBeanPropertyMeta {
                partType = b.partType;
                schema = b.schema;
                getter = b.getter;
-               this.serializer = serializer.isPresent() || 
schema.getSerializer() == null
-                       ? serializer
-                       : 
BeanInstantiator.of(HttpPartSerializer.class).type((Class<? extends 
HttpPartSerializer>) schema.getSerializer()).asOptional();
-               this.parser = parser.isPresent() || schema.getParser() == null
-                       ? parser
-                       : 
BeanInstantiator.of(HttpPartParser.class).type((Class<? extends 
HttpPartParser>) schema.getParser()).asOptional();
+               this.serializer = serializer.or(() -> 
BeanInstantiator.optionalOf((Class<HttpPartSerializer>) 
schema.getSerializer()));
+               this.parser = parser.or(() -> 
BeanInstantiator.optionalOf((Class<HttpPartParser>) schema.getParser()));
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore2.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
similarity index 95%
rename from 
juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore2.java
rename to 
juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
index 101cb42ee4..a6d4b123f0 100644
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore2.java
+++ 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
@@ -35,7 +35,7 @@ import org.springframework.context.*;
  * <p class='bjava'>
  *     <jc>// Create a Spring bean store</jc>
  *     ApplicationContext <jv>appContext</jv> = ...;
- *     SpringBeanStore2 <jv>beanStore</jv> = <jk>new</jk> 
SpringBeanStore2(<jv>appContext</jv>, <jk>null</jk>);
+ *     SpringBeanStore <jv>beanStore</jv> = <jk>new</jk> 
SpringBeanStore(<jv>appContext</jv>, <jk>null</jk>);
  *
  *     <jc>// Get bean from Spring context</jc>
  *     Optional&lt;MyService&gt; <jv>service</jv> = 
<jv>beanStore</jv>.getBean(MyService.<jk>class</jk>);
@@ -53,7 +53,7 @@ import org.springframework.context.*;
  *     <li class='jic'>{@link BeanStore}
  * </ul>
  */
-public class SpringBeanStore2 extends BasicBeanStore {
+public class SpringBeanStore extends BasicBeanStore {
 
        private final ApplicationContext appContext;
 
@@ -63,13 +63,13 @@ public class SpringBeanStore2 extends BasicBeanStore {
         * @param appContext The Spring application context used to resolve 
beans. Can be <jk>null</jk>.
         * @param parent The parent bean store. Can be <jk>null</jk>.
         */
-       public SpringBeanStore2(ApplicationContext appContext, BeanStore 
parent) {
+       public SpringBeanStore(ApplicationContext appContext, BeanStore parent) 
{
                super(parent);
                this.appContext = appContext;
        }
 
        @Override
-       public SpringBeanStore2 clear() {
+       public SpringBeanStore clear() {
                super.clear();
                return this;
        }
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
index 7647f9126e..76253efd58 100644
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
@@ -55,6 +55,6 @@ public abstract class SpringRestServlet extends RestServlet {
         */
        @RestInject
        public WritableBeanStore createBeanStore(Optional<BeanStore> parent) {
-               return new SpringBeanStore2(appContext.orElse(null), 
parent.orElse(null));
+               return new SpringBeanStore(appContext.orElse(null), 
parent.orElse(null));
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
index 3444c3e007..928ae30fb9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
@@ -21,7 +21,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.util.*;
 
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.BeanStore;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.util.*;
 
@@ -41,7 +41,7 @@ public class RestChildren {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                final List<RestContext> list;
 
                /**
@@ -49,7 +49,7 @@ public class RestChildren {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        list = list();
                }
@@ -59,7 +59,7 @@ public class RestChildren {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -90,7 +90,7 @@ public class RestChildren {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index b4b856f5c6..d6ba0deca1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -358,7 +358,7 @@ public class RestContext extends Context {
         *      The REST servlet/bean instance that this context is defined 
against.
         * @return The bean store for this context.
         */
-       private WritableBeanStore createBeanStore(WritableBeanStore parentBs, 
Supplier<?> resource) {
+       private WritableBeanStore createBeanStore(BeanStore parentBs, 
Supplier<?> resource) {
                var defaultBs = new BasicBeanStore(parentBs);
                return defaultBs.createBeanFromMethod(WritableBeanStore.class, 
resource.get(), RestContext::isRestInjectMethod)
                        .orElse(defaultBs);
@@ -2680,7 +2680,7 @@ public class RestContext extends Context {
         *      <br>Created during context bootstrap.
         * @return The array of resolvers.
         */
-       protected RestOpArg[] findRestOperationArgs(Method m, WritableBeanStore 
beanStore) {
+       protected RestOpArg[] findRestOperationArgs(Method m, BeanStore 
beanStore) {
 
                var mi = MethodInfo.of(m);
                var params = mi.getParameters();
@@ -2839,7 +2839,7 @@ public class RestContext extends Context {
         * @param session The HTTP call.
         * @throws Exception Any exception can be thrown.
         */
-       void invokeRestInitMethod(MethodInfo m, Supplier<?> resource, 
WritableBeanStore beanStore) throws ServletException {
+       void invokeRestInitMethod(MethodInfo m, Supplier<?> resource, BeanStore 
beanStore) throws ServletException {
                try {
                        m.inject(beanStore, resource.get());
                } catch (Exception e) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 1bd2dec3fb..e396f93e8d 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -173,7 +173,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
        private Method method() { return method; }
        private MethodInfo methodInfo() { return mi; }
        private AnnotationWorkList appliedAnnotations() { return 
appliedAnnotations; }
-       private WritableBeanStore beanStore() { return context.getBeanStore(); 
} // Kept writable for operation-scope bean registrations.
+       private BeanStore beanStore() { return context.getBeanStore(); }
        private WritableBeanStore opBeanStore() { return opBeanStore; }
        private Object resource() { return context.getResource(); }
        private VarResolver varResolver() { return context.getVarResolver(); }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
index bc294d8705..b2b4b80d75 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
@@ -21,7 +21,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.util.*;
 
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.BeanStore;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.rest.annotation.*;
 
@@ -35,7 +35,7 @@ public class RestOperations {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                TreeMap<String,TreeSet<RestOpContext>> map;
                Set<RestOpContext> set;
 
@@ -44,7 +44,7 @@ public class RestOperations {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        map = new TreeMap<>();
                        set = set();
@@ -55,7 +55,7 @@ public class RestOperations {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -123,7 +123,7 @@ public class RestOperations {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInject.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInject.java
index a91d76bc38..96b1228de4 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInject.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInject.java
@@ -147,7 +147,7 @@ import org.apache.juneau.svl.*;
  * </p>
  * <ol>
  *     <li><b>Overriding-parent bean store</b> — Spring beans (in 
<c>juneau-rest-server-springboot</c> deployments,
- *             via <c>SpringBeanStore2</c>), or any bean reachable through the 
configured overriding-parent
+ *             via <c>SpringBeanStore</c>), or any bean reachable through the 
configured overriding-parent
  *             bean-store chain.</li>
  *     <li><b>{@code @RestInject} method/field on the resource class</b> — 
registered as a regular bean-store
  *             entry, beating the framework default.</li>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
index 54bbd21acd..2429daef21 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
@@ -21,7 +21,7 @@ import static 
org.apache.juneau.commons.utils.CollectionUtils.*;
 
 import java.util.*;
 
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.BeanStore;
 
 /**
  * A list of {@link RestOpArg} classes.
@@ -37,7 +37,7 @@ public class RestOpArgList {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                List<Class<? extends RestOpArg>> entries;
 
                /**
@@ -45,7 +45,7 @@ public class RestOpArgList {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        entries = list();
                }
@@ -55,7 +55,7 @@ public class RestOpArgList {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -87,7 +87,7 @@ public class RestOpArgList {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverterList.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverterList.java
index 07b2d8d264..7df4390f30 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverterList.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverterList.java
@@ -36,7 +36,7 @@ public class RestConverterList {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                List<BeanInstantiator.Builder<RestConverter>> entries;
 
                /**
@@ -44,7 +44,7 @@ public class RestConverterList {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        this.entries = list();
                }
@@ -54,7 +54,7 @@ public class RestConverterList {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -101,7 +101,7 @@ public class RestConverterList {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuardList.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuardList.java
index 50b74da85e..7e93b9a790 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuardList.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuardList.java
@@ -36,7 +36,7 @@ public class RestGuardList {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                List<BeanInstantiator.Builder<RestGuard>> entries;
 
                /**
@@ -44,7 +44,7 @@ public class RestGuardList {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        entries = list();
                }
@@ -54,7 +54,7 @@ public class RestGuardList {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -101,7 +101,7 @@ public class RestGuardList {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcherList.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcherList.java
index 46a6c7f21a..292cfb7e82 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcherList.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcherList.java
@@ -36,7 +36,7 @@ public class RestMatcherList {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                List<BeanInstantiator.Builder<RestMatcher>> entries;
 
                /**
@@ -44,7 +44,7 @@ public class RestMatcherList {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        entries = list();
                }
@@ -54,7 +54,7 @@ public class RestMatcherList {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -101,7 +101,7 @@ public class RestMatcherList {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
index 2213552819..189bcf57bb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
@@ -39,7 +39,7 @@ public class ResponseProcessorList {
         */
        public static class Builder {
 
-               private final WritableBeanStore beanStore;
+               private final BeanStore beanStore;
                List<Object> entries;
 
                /**
@@ -47,7 +47,7 @@ public class ResponseProcessorList {
                 *
                 * @param beanStore The bean store to use for creating beans.
                 */
-               protected Builder(WritableBeanStore beanStore) {
+               protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
                        this.entries = list();
                }
@@ -57,7 +57,7 @@ public class ResponseProcessorList {
                 *
                 * @return The bean store used by this builder.
                 */
-               public WritableBeanStore beanStore() {
+               public BeanStore beanStore() {
                        return beanStore;
                }
 
@@ -100,7 +100,7 @@ public class ResponseProcessorList {
         * @param beanStore The bean store to use for creating beans.
         * @return A new builder for this object.
         */
-       public static Builder create(WritableBeanStore beanStore) {
+       public static Builder create(BeanStore beanStore) {
                return new Builder(beanStore);
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Precedence_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Precedence_Test.java
index dded46bfb2..559c46c9a9 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Precedence_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Precedence_Test.java
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.*;
  *             {@code @RestInject} uniformly wins.
  *     <li>User-supplied bean store from
  *             {@code @RestInject WritableBeanStore createBeanStore(...)}, 
including its
- *             {@link 
org.apache.juneau.rest.springboot.SpringBeanStore2}-style fallback to a backing
+ *             {@link org.apache.juneau.rest.springboot.SpringBeanStore}-style 
fallback to a backing
  *             {@code ApplicationContext}.  Consulted only when no {@code 
@RestInject} factory method
  *             exists for the type.
  *     <li>Memoizer-backed framework defaults (e.g. {@link BasicCallLogger}).  
Fire only when neither
@@ -67,7 +67,7 @@ class RestContext_Precedence_Test extends TestBase {
        
//-----------------------------------------------------------------------------------------------------------------
        // Spring-substitute bean store
        //
-       // Simulates SpringBeanStore2: holds bindings in an internal "Spring 
app context" map that's
+       // Simulates SpringBeanStore: holds bindings in an internal "Spring app 
context" map that's
        // only consulted from getBean(...) AFTER super.getBean(...) returns 
empty.  This places the
        // "Spring" layer at the BOTTOM of the resolution chain, below local 
entries and below
        // memoizer-backed default suppliers \u2014 exactly where real Spring 
sits.
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore2_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
similarity index 95%
rename from 
juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore2_Test.java
rename to 
juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
index 02fbc33108..70a298ecee 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore2_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/springboot/SpringBeanStore_Test.java
@@ -28,20 +28,20 @@ import org.springframework.beans.factory.*;
 import org.springframework.context.*;
 
 /**
- * Tests for {@link SpringBeanStore2}.
+ * Tests for {@link SpringBeanStore}.
  */
 @SuppressWarnings({
        "unchecked" // getBean(String, Class) invocation in test
 })
-class SpringBeanStore2_Test extends TestBase {
+class SpringBeanStore_Test extends TestBase {
 
        private ApplicationContext mockAppContext;
-       private SpringBeanStore2 beanStore;
+       private SpringBeanStore beanStore;
 
        @BeforeEach
        void setUp() {
                mockAppContext = mock(ApplicationContext.class);
-               beanStore = new SpringBeanStore2(mockAppContext, null);
+               beanStore = new SpringBeanStore(mockAppContext, null);
        }
 
        
//====================================================================================================
@@ -75,20 +75,20 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void a01_constructorWithNullContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
                assertNotNull(store);
        }
 
        @Test
        void a02_constructorWithNullParent() {
-               var store = new SpringBeanStore2(mockAppContext, null);
+               var store = new SpringBeanStore(mockAppContext, null);
                assertNotNull(store);
        }
 
        @Test
        void a03_constructorWithParent() {
                var parent = new BasicBeanStore(null);
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                assertNotNull(store);
        }
 
@@ -114,7 +114,7 @@ class SpringBeanStore2_Test extends TestBase {
                var service = new TestService("parent");
                parent.addBean(TestService.class, service);
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                var result = store.getBean(TestService.class);
 
                assertTrue(result.isPresent());
@@ -129,7 +129,7 @@ class SpringBeanStore2_Test extends TestBase {
                parent.addBean(TestService.class, parentService);
 
                var localService = new TestService("local");
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                store.addBean(TestService.class, localService);
 
                var result = store.getBean(TestService.class);
@@ -179,7 +179,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void c04_getBean_nullAppContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
 
                var result = store.getBean(TestService.class);
 
@@ -225,7 +225,7 @@ class SpringBeanStore2_Test extends TestBase {
                var service = new TestService("parent");
                parent.addBean(TestService.class, service, "myBean");
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                var result = store.getBean(TestService.class, "myBean");
 
                assertTrue(result.isPresent());
@@ -285,7 +285,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void e04_getBeanNamed_nullNameSkipsSpring() {
-               var store = new SpringBeanStore2(mockAppContext, null);
+               var store = new SpringBeanStore(mockAppContext, null);
 
                var result = store.getBean(TestService.class, null);
 
@@ -364,7 +364,7 @@ class SpringBeanStore2_Test extends TestBase {
                var parentService = new TestService("parent");
                parent.addBean(TestService.class, parentService, "parent");
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                var localService = new TestService("local");
                store.addBean(TestService.class, localService, "local");
 
@@ -410,7 +410,7 @@ class SpringBeanStore2_Test extends TestBase {
                var parent = new BasicBeanStore(null);
                parent.addBean(TestService.class, new TestService("parent"));
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
 
                assertTrue(store.hasBean(TestService.class));
                verifyNoInteractions(mockAppContext);
@@ -439,7 +439,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void g06_hasBean_nullAppContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
 
                assertFalse(store.hasBean(TestService.class));
        }
@@ -461,7 +461,7 @@ class SpringBeanStore2_Test extends TestBase {
                var parent = new BasicBeanStore(null);
                parent.addBean(TestService.class, new TestService("parent"), 
"myBean");
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
 
                assertTrue(store.hasBean(TestService.class, "myBean"));
                verifyNoInteractions(mockAppContext);
@@ -507,7 +507,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void h08_hasBeanNamed_nullAppContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
 
                assertFalse(store.hasBean(TestService.class, "myBean"));
        }
@@ -580,7 +580,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void i06_getBeanSupplier_nullAppContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
 
                var supplier = store.getBeanSupplier(TestService.class);
 
@@ -663,7 +663,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void j07_getBeanSupplierNamed_nullAppContext() {
-               var store = new SpringBeanStore2(null, null);
+               var store = new SpringBeanStore(null, null);
 
                var supplier = store.getBeanSupplier(TestService.class, 
"myBean");
 
@@ -672,7 +672,7 @@ class SpringBeanStore2_Test extends TestBase {
 
        @Test
        void j08_getBeanSupplierNamed_nullName() {
-               var store = new SpringBeanStore2(mockAppContext, null);
+               var store = new SpringBeanStore(mockAppContext, null);
 
                var supplier = store.getBeanSupplier(TestService.class, null);
 
@@ -709,7 +709,7 @@ class SpringBeanStore2_Test extends TestBase {
                var parent = new BasicBeanStore(null);
                parent.addBean(TestService.class, new TestService("parent"));
 
-               var store = new SpringBeanStore2(mockAppContext, parent);
+               var store = new SpringBeanStore(mockAppContext, parent);
                store.addBean(AnotherService.class, new AnotherService(42));
 
                store.clear();
@@ -736,11 +736,11 @@ class SpringBeanStore2_Test extends TestBase {
                var service1 = new TestService("grandparent");
                grandparent.addBean(TestService.class, service1, "bean1");
 
-               var parent = new SpringBeanStore2(null, grandparent);
+               var parent = new SpringBeanStore(null, grandparent);
                var service2 = new TestService("parent");
                parent.addBean(TestService.class, service2, "bean2");
 
-               var child = new SpringBeanStore2(mockAppContext, parent);
+               var child = new SpringBeanStore(mockAppContext, parent);
                var service3 = new TestService("child");
                child.addBean(TestService.class, service3, "bean3");
 

Reply via email to