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


The following commit(s) were added to refs/heads/master by this push:
     new 494b88ba88 Clean up juneau-rest-server
494b88ba88 is described below

commit 494b88ba88ad7b6d49959d782cec22cfd38ff2ba
Author: James Bognar <[email protected]>
AuthorDate: Mon Jan 5 10:56:55 2026 -0500

    Clean up juneau-rest-server
---
 .../org/apache/juneau/assertions/Assertion.java    |  12 +-
 .../main/java/org/apache/juneau/BeanBuilder.java   |   4 +-
 .../java/org/apache/juneau/cp/BeanCreator.java     |  14 ++-
 .../main/java/org/apache/juneau/cp/BeanStore.java  | 131 ++++++++++++++++++---
 .../java/org/apache/juneau/cp/BeanStoreEntry.java  | 130 --------------------
 .../org/apache/juneau/encoders/EncoderSet.java     |   2 +-
 .../java/org/apache/juneau/svl/VarResolver.java    |   2 +-
 .../org/apache/juneau/rest/client/RestClient.java  |   6 +-
 .../java/org/apache/juneau/rest/RestContext.java   |  14 +--
 .../java/org/apache/juneau/rest/RestOpContext.java |   2 +-
 .../juneau/rest/converter/RestConverterList.java   |   4 +-
 .../apache/juneau/rest/debug/DebugEnablement.java  |   2 +-
 .../apache/juneau/rest/guard/RestGuardList.java    |   4 +-
 .../juneau/rest/matcher/RestMatcherList.java       |   4 +-
 .../rest/processor/ResponseProcessorList.java      |   2 +-
 .../org/apache/juneau/rest/stats/ThrownStats.java  |   2 +-
 .../juneau/rest/swagger/SwaggerProvider.java       |   2 +-
 .../java/org/apache/juneau/cp/BeanStore_Test.java  |  80 ++++++-------
 18 files changed, 195 insertions(+), 222 deletions(-)

diff --git 
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/Assertion.java
 
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/Assertion.java
index 29a84b83df..5d21162194 100644
--- 
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/Assertion.java
+++ 
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/Assertion.java
@@ -220,13 +220,11 @@ public class Assertion {
                if (nn(throwable)) {
                        try {
                                // @formatter:off
-                               throw BeanStore
-                                       .create()
-                                       .build()
-                                       .addBean(Throwable.class, cause)
-                                       .addBean(String.class, msg)
-                                       .addBean(Object[].class,new Object[0])
-                                       .createBean(throwable)
+                               throw BeanCreator
+                                       .of(throwable)
+                                       .arg(Throwable.class, cause)
+                                       .arg(String.class, msg)
+                                       .arg(Object[].class,new Object[0])
                                        .run();
                                // @formatter:on
                        } catch (@SuppressWarnings("unused") 
ExecutableException e) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
index 8172f543db..ba663d010d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanBuilder.java
@@ -114,7 +114,7 @@ public class BeanBuilder<T> {
         * @return A new bean.
         */
        protected T buildDefault() {
-               return beanStore.createBean(type().orElseThrow(() -> new 
IllegalStateException("Type not specified."))).builder(BeanBuilder.class, 
this).run();
+               return BeanCreator.of(type().orElseThrow(() -> new 
IllegalStateException("Type not specified.")), 
beanStore).builder(BeanBuilder.class, this).run();
        }
 
        /**
@@ -126,7 +126,7 @@ public class BeanBuilder<T> {
         * @return The creator for this bean.
         */
        protected BeanCreator<? extends T> creator() {
-               return beanStore.createBean(type().orElseThrow(() -> new 
IllegalStateException("Type not specified."))).builder(BeanBuilder.class, this);
+               return BeanCreator.of(type().orElseThrow(() -> new 
IllegalStateException("Type not specified.")), 
beanStore).builder(BeanBuilder.class, this);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
index e4d6365638..2b8ca02f6e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanCreator.java
@@ -39,7 +39,7 @@ import org.apache.juneau.commons.reflect.*;
  * <ul class='javatree'>
  *     <li class='jc'>{@link BeanStore}
  *             <ul class='javatreec'>
- *                     <li class='jm'>{@link BeanStore#createBean(Class)}
+ *                     <li class='jc'>{@link BeanCreator#of(Class,BeanStore)}
  *             </ul>
  *     </li>
  * </ul>
@@ -53,7 +53,8 @@ import org.apache.juneau.commons.reflect.*;
  *             .addBean(Throwable.<jk>class</jk>, <jv>cause</jv>)
  *             .addBean(String.<jk>class</jk>, <jv>msg</jv>)
  *             .addBean(Object[].<jk>class</jk>, <jv>args</jv>)
- *             .createBean(RuntimeException.<jk>class</jk>)
+ *             <ja>// Use BeanCreator.of(RuntimeException.class, 
beanStore)</ja>
+ *             BeanCreator.<jsm>of</jsm>(RuntimeException.<jk>class</jk>, 
<jv>beanStore</jv>)
  *             .run();
  * </p>
  *
@@ -117,6 +118,7 @@ import org.apache.juneau.commons.reflect.*;
  * @param <T> The bean type being created.
  */
 public class BeanCreator<T> {
+
        static class Match<T extends ExecutableInfo> {
                T executable = null;
                int numMatches = -1;
@@ -137,14 +139,18 @@ public class BeanCreator<T> {
        }
 
        /**
-        * Shortcut for calling <c>BeanStore.INSTANCE.createBean(beanType)</c>.
+        * Shortcut for calling <c>BeanCreator.of(beanType, 
BeanStore.INSTANCE)</c>.
         *
         * @param <T> The bean type to create.
         * @param beanType The bean type to create.
         * @return A new creator.
         */
        public static <T> BeanCreator<T> of(Class<T> beanType) {
-               return BeanStore.INSTANCE.createBean(beanType);
+               return new BeanCreator(beanType, BeanStore.INSTANCE);
+       }
+
+       public static <T> BeanCreator<T> of(Class<T> beanType, BeanStore 
beanStore) {
+               return new BeanCreator(beanType, beanStore);
        }
 
        private final BeanStore store;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index f4f8765124..c567335557 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -18,7 +18,9 @@ package org.apache.juneau.cp;
 
 import static java.util.stream.Collectors.*;
 import static java.util.stream.Collectors.toList;
+import static org.apache.juneau.collections.JsonMap.*;
 import static org.apache.juneau.commons.reflect.ReflectionUtils.*;
+import static org.apache.juneau.commons.utils.AssertionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
@@ -27,8 +29,8 @@ import java.util.*;
 import java.util.concurrent.*;
 
 import java.util.function.*;
-import java.util.stream.*;
 
+import org.apache.juneau.collections.*;
 import org.apache.juneau.commons.collections.*;
 import org.apache.juneau.commons.concurrent.*;
 import org.apache.juneau.commons.reflect.*;
@@ -67,7 +69,7 @@ import org.apache.juneau.commons.reflect.*;
  * <p>
  * Beans are created through the following methods:
  * <ul class='javatreec'>
- *     <li class='jm'>{@link #createBean(Class) createBean(Class)}
+ *     <li class='jm'>{@link BeanCreator#of(Class,BeanStore) 
BeanCreator.of(Class,BeanStore)}
  *     <li class='jm'>{@link #createMethodFinder(Class) 
createMethodFinder(Class)}
  *     <li class='jm'>{@link #createMethodFinder(Class,Class) 
createMethodFinder(Class,Class)}
  *     <li class='jm'>{@link #createMethodFinder(Class,Object) 
createMethodFinder(Class,Object)}
@@ -254,8 +256,8 @@ public class BeanStore {
                return create().parent(parent).outer(outer).build();
        }
 
-       private final Deque<BeanStoreEntry<?>> entries;
-       private final Map<Class<?>,BeanStoreEntry<?>> unnamedEntries;
+       private final Deque<Entry<?>> entries;
+       private final Map<Class<?>,Entry<?>> unnamedEntries;
 
        final Optional<BeanStore> parent;
        final Optional<Object> outer;
@@ -389,13 +391,6 @@ public class BeanStore {
         *      <li class='jc'>{@link BeanCreator} for usage.
         * </ul>
         *
-        * @param <T> The bean type to create.
-        * @param beanType The bean type to create.
-        * @return A new bean creator.
-        */
-       public <T> BeanCreator<T> createBean(Class<T> beanType) {
-               return new BeanCreator<>(beanType, this);
-       }
 
        /**
         * Create a method finder for finding bean creation methods.
@@ -461,7 +456,7 @@ public class BeanStore {
        @SuppressWarnings("unchecked")
        public <T> Optional<T> getBean(Class<T> beanType) {
                try (var x = lock.read()) {
-                       var e = (BeanStoreEntry<T>)unnamedEntries.get(beanType);
+                       var e = (Entry<T>)unnamedEntries.get(beanType);
                        if (nn(e))
                                return opt(e.get());
                        if (parent.isPresent())
@@ -481,7 +476,7 @@ public class BeanStore {
        @SuppressWarnings("unchecked")
        public <T> Optional<T> getBean(Class<T> beanType, String name) {
                try (var x = lock.read()) {
-                       var e = (BeanStoreEntry<T>)entries.stream().filter(x2 
-> x2.matches(beanType, name)).findFirst().orElse(null);
+                       var e = (Entry<T>)entries.stream().filter(x2 -> 
x2.matches(beanType, name)).findFirst().orElse(null);
                        if (nn(e))
                                return opt(e.get());
                        if (parent.isPresent())
@@ -587,7 +582,7 @@ public class BeanStore {
        protected FluentMap<String,Object> properties() {
                // @formatter:off
                return filteredBeanPropertyMap()
-                       .a("entries", 
entries.stream().map(BeanStoreEntry::properties).collect(toList()))
+                       .a("entries", 
entries.stream().map(Entry::properties).collect(toList()))
                        .a("identity", id(this))
                        .a("outer", id(outer.orElse(null)))
                        .a("parent", 
parent.map(BeanStore::properties).orElse(null))
@@ -618,7 +613,111 @@ public class BeanStore {
         * @param name Optional name to associate with the bean.  Can be 
<jk>null</jk>.
         * @return A new bean store entry.
         */
-       protected <T> BeanStoreEntry<T> createEntry(Class<T> type, Supplier<T> 
bean, String name) {
-               return BeanStoreEntry.create(type, bean, name);
+       protected <T> Entry<T> createEntry(Class<T> type, Supplier<T> bean, 
String name) {
+               return Entry.create(type, bean, name);
+       }
+
+       /**
+        * Represents a bean in a {@link BeanStore}.
+        *
+        * <p>
+        * A bean entry consists of the following:
+        * <ul>
+        *      <li>A class type.
+        *      <li>A bean or bean supplier that returns an instance of the 
class type.  This can be a subclass of the type.
+        *      <li>An optional name.
+        * </ul>
+        *
+        * @param <T> The bean type.
+        */
+       public static class Entry<T> {
+               /**
+                * Static creator.
+                *
+                * @param <T> The class type to associate with the bean.
+                * @param type The class type to associate with the bean.
+                * @param bean The bean supplier.
+                * @param name Optional name to associate with the bean.  Can 
be <jk>null</jk>.
+                * @return A new bean store entry.
+                */
+               public static <T> Entry<T> create(Class<T> type, Supplier<T> 
bean, String name) {
+                       return new Entry<>(type, bean, name);
+               }
+
+               final Supplier<T> bean;
+               final Class<T> type;
+               final String name;
+
+               /**
+                * Constructor.
+                *
+                * @param type The class type to associate with the bean.
+                * @param bean The bean supplier.
+                * @param name Optional name to associate with the bean.  Can 
be <jk>null</jk>.
+                */
+               protected Entry(Class<T> type, Supplier<T> bean, String name) {
+                       this.bean = assertArgNotNull("bean", bean);
+                       this.type = assertArgNotNull("type", type);
+                       this.name = nullIfEmpty(name);
+               }
+
+               /**
+                * Returns the bean associated with this entry.
+                *
+                * @return The bean associated with this entry.
+                */
+               public T get() {
+                       return bean.get();
+               }
+
+               /**
+                * Returns the name associated with this entry.
+                *
+                * @return the name associated with this entry.  <jk>null</jk> 
if no name is associated.
+                */
+               public String getName() { return name; }
+
+               /**
+                * Returns the type this bean is associated with.
+                *
+                * @return The type this bean is associated with.
+                */
+               public Class<T> getType() { return type; }
+
+               /**
+                * Returns <jk>true</jk> if this bean is exactly of the 
specified type.
+                *
+                * @param type The class to check.  Returns <jk>false</jk> if 
<jk>null</jk>.
+                * @return <jk>true</jk> if this bean is exactly of the 
specified type.
+                */
+               public boolean matches(Class<?> type) {
+                       return this.type.equals(type);
+               }
+
+               /**
+                * Returns <jk>true</jk> if this bean is exactly of the 
specified type and has the specified name.
+                *
+                * @param type The class to check.  Returns <jk>false</jk> if 
<jk>null</jk>.
+                * @param name The name to check.  Can be <jk>null</jk> to only 
match if name of entry is <jk>null</jk>.
+                * @return <jk>true</jk> if this bean is exactly of the 
specified type and has the specified name.
+                */
+               public boolean matches(Class<?> type, String name) {
+                       name = nullIfEmpty(name);
+                       return matches(type) && eq(this.name, name);
+               }
+
+               /**
+                * Returns the properties in this object as a simple map for 
debugging purposes.
+                *
+                * @return The properties in this object as a simple map.
+                */
+               protected JsonMap properties() {
+                       // @formatter:off
+                       return filteredMap()
+                               .append("type", cns(getType()))
+                               .append("bean", id(get()))
+                               .append("name", getName());
+                       // @formatter:on
+               }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStoreEntry.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStoreEntry.java
deleted file mode 100644
index 62b22da088..0000000000
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStoreEntry.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.juneau.cp;
-
-import static org.apache.juneau.collections.JsonMap.*;
-import static org.apache.juneau.commons.utils.AssertionUtils.*;
-import static org.apache.juneau.commons.utils.Utils.*;
-
-import java.util.function.*;
-
-import org.apache.juneau.collections.*;
-import org.apache.juneau.commons.utils.*;
-
-/**
- * Represents a bean in a {@link BeanStore}.
- *
- * <p>
- * A bean entry consists of the following:
- * <ul>
- *     <li>A class type.
- *     <li>A bean or bean supplier that returns an instance of the class type. 
 This can be a subclass of the type.
- *     <li>An optional name.
- * </ul>
- *
- * @param <T> The bean type.
- */
-public class BeanStoreEntry<T> {
-       /**
-        * Static creator.
-        *
-        * @param <T> The class type to associate with the bean.
-        * @param type The class type to associate with the bean.
-        * @param bean The bean supplier.
-        * @param name Optional name to associate with the bean.  Can be 
<jk>null</jk>.
-        * @return A new bean store entry.
-        */
-       public static <T> BeanStoreEntry<T> create(Class<T> type, Supplier<T> 
bean, String name) {
-               return new BeanStoreEntry<>(type, bean, name);
-       }
-
-       final Supplier<T> bean;
-       final Class<T> type;
-       final String name;
-
-       /**
-        * Constructor.
-        *
-        * @param type The class type to associate with the bean.
-        * @param bean The bean supplier.
-        * @param name Optional name to associate with the bean.  Can be 
<jk>null</jk>.
-        */
-       protected BeanStoreEntry(Class<T> type, Supplier<T> bean, String name) {
-               this.bean = assertArgNotNull("bean", bean);
-               this.type = assertArgNotNull("type", type);
-               this.name = nullIfEmpty(name);
-       }
-
-       /**
-        * Returns the bean associated with this entry.
-        *
-        * @return The bean associated with this entry.
-        */
-       public T get() {
-               return bean.get();
-       }
-
-       /**
-        * Returns the name associated with this entry.
-        *
-        * @return the name associated with this entry.  <jk>null</jk> if no 
name is associated.
-        */
-       public String getName() { return name; }
-
-       /**
-        * Returns the type this bean is associated with.
-        *
-        * @return The type this bean is associated with.
-        */
-       public Class<T> getType() { return type; }
-
-       /**
-        * Returns <jk>true</jk> if this bean is exactly of the specified type.
-        *
-        * @param type The class to check.  Returns <jk>false</jk> if 
<jk>null</jk>.
-        * @return <jk>true</jk> if this bean is exactly of the specified type.
-        */
-       public boolean matches(Class<?> type) {
-               return this.type.equals(type);
-       }
-
-       /**
-        * Returns <jk>true</jk> if this bean is exactly of the specified type 
and has the specified name.
-        *
-        * @param type The class to check.  Returns <jk>false</jk> if 
<jk>null</jk>.
-        * @param name The name to check.  Can be <jk>null</jk> to only match 
if name of entry is <jk>null</jk>.
-        * @return <jk>true</jk> if this bean is exactly of the specified type 
and has the specified name.
-        */
-       public boolean matches(Class<?> type, String name) {
-               name = Utils.nullIfEmpty(name);
-               return matches(type) && eq(this.name, name);
-       }
-
-       /**
-        * Returns the properties in this object as a simple map for debugging 
purposes.
-        *
-        * @return The properties in this object as a simple map.
-        */
-       protected JsonMap properties() {
-               // @formatter:off
-               return filteredMap()
-                       .append("type", cns(getType()))
-                       .append("bean", id(get()))
-                       .append("name", getName());
-               // @formatter:on
-       }
-}
\ No newline at end of file
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 9ea4d3b45d..2539c0542e 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
@@ -283,7 +283,7 @@ public class EncoderSet {
                if (o instanceof Encoder o2)
                        return o2;
                try {
-                       return 
bs.createBean(Encoder.class).type((Class<?>)o).run();
+                       return BeanCreator.of(Encoder.class, 
bs).type((Class<?>)o).run();
                } catch (ExecutableException e) {
                        throw toRex(e);
                }
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 20fb9f04f5..df3f70b859 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
@@ -228,7 +228,7 @@ public class VarResolver {
 
        private static Var toVar(BeanStore bs, Object o) {
                if (o instanceof Class o2)
-                       return bs.createBean(Var.class).type(o2).run();
+                       return BeanCreator.of(Var.class, bs).type(o2).run();
                return (Var)o;
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 065d3837a8..339cc2e7c4 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -5934,7 +5934,7 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
                 * @see #callHandler()
                 */
                protected BeanCreator<RestCallHandler> createCallHandler() {
-                       return 
beanStore.createBean(RestCallHandler.class).type(BasicRestCallHandler.class);
+                       return BeanCreator.of(RestCallHandler.class, 
beanStore).type(BasicRestCallHandler.class);
                }
 
                /**
@@ -7728,7 +7728,7 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
                var x = partParsers.get(c);
                if (x == null) {
                        try {
-                               x = beanStore.createBean(c).run();
+                               x = BeanCreator.of(c, beanStore).run();
                        } catch (ExecutableException e) {
                                throw toRex(e);
                        }
@@ -7754,7 +7754,7 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
                var x = partSerializers.get(c);
                if (x == null) {
                        try {
-                               x = beanStore.createBean(c).run();
+                               x = BeanCreator.of(c, beanStore).run();
                        } catch (ExecutableException e) {
                                throw toRex(e);
                        }
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 53255d74f1..76d0fd2c59 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
@@ -606,7 +606,7 @@ public class RestContext extends Context {
                @Override /* Overridden from BeanContext.Builder */
                public RestContext build() {
                        try {
-                               return 
beanStore().createBean(RestContext.class).type(getType().orElse(RestContext.class)).builder(RestContext.Builder.class,
 this).run();
+                               return BeanCreator.of(RestContext.class, 
beanStore()).type(getType().orElse(RestContext.class)).builder(RestContext.Builder.class,
 this).run();
                        } catch (Exception e) {
                                e.printStackTrace();  // NOSONAR
                                throw new InternalServerError(e, "Could not 
instantiate RestContext.");
@@ -3901,7 +3901,7 @@ public class RestContext extends Context {
                 */
                protected BeanCreator<CallLogger> createCallLogger(BeanStore 
beanStore, Supplier<?> resource) {
 
-                       var creator = 
beanStore.createBean(CallLogger.class).type(BasicCallLogger.class);
+                       var creator = BeanCreator.of(CallLogger.class, 
beanStore).type(BasicCallLogger.class);
 
                        // Specify the bean type if its set as a default.
                        defaultClasses().get(CallLogger.class).ifPresent(x -> 
creator.type(x));
@@ -3972,7 +3972,7 @@ public class RestContext extends Context {
                 */
                protected BeanCreator<DebugEnablement> 
createDebugEnablement(BeanStore beanStore, Supplier<?> resource) {
 
-                       var creator = 
beanStore.createBean(DebugEnablement.class).type(BasicDebugEnablement.class);
+                       var creator = BeanCreator.of(DebugEnablement.class, 
beanStore).type(BasicDebugEnablement.class);
 
                        // Specify the bean type if its set as a default.
                        defaultClasses().get(DebugEnablement.class).ifPresent(x 
-> creator.type(x));
@@ -4521,7 +4521,7 @@ public class RestContext extends Context {
                                        if (beanStore.getBean(oc).isPresent()) {
                                                so = () -> 
beanStore.getBean(oc).get();  // If we resolved via injection, always get it 
this way.
                                        } else {
-                                               Object o2 = 
beanStore.createBean(oc).builder(RestContext.Builder.class, cb).run();
+                                               Object o2 = BeanCreator.of(oc, 
beanStore).builder(RestContext.Builder.class, cb).run();
                                                so = () -> o2;
                                        }
                                } else {
@@ -4751,7 +4751,7 @@ public class RestContext extends Context {
                 */
                protected BeanCreator<StaticFiles> createStaticFiles(BeanStore 
beanStore, Supplier<?> resource) {
 
-                       var creator = 
beanStore.createBean(StaticFiles.class).type(BasicStaticFiles.class);
+                       var creator = BeanCreator.of(StaticFiles.class, 
beanStore).type(BasicStaticFiles.class);
 
                        // Specify the bean type if its set as a default.
                        defaultClasses().get(StaticFiles.class).ifPresent(x -> 
creator.type(x));
@@ -4800,7 +4800,7 @@ public class RestContext extends Context {
                 */
                protected BeanCreator<SwaggerProvider> 
createSwaggerProvider(BeanStore beanStore, Supplier<?> resource) {
 
-                       var creator = 
beanStore.createBean(SwaggerProvider.class).type(BasicSwaggerProvider.class);
+                       var creator = BeanCreator.of(SwaggerProvider.class, 
beanStore).type(BasicSwaggerProvider.class);
 
                        // Specify the bean type if its set as a default.
                        defaultClasses().get(SwaggerProvider.class).ifPresent(x 
-> creator.type(x));
@@ -5978,7 +5978,7 @@ public class RestContext extends Context {
                        beanStore.addBean(ParameterInfo.class, pi);
                        for (var c : restOpArgs) {
                                try {
-                                       ra[i] = 
beanStore.createBean(RestOpArg.class).type(c).run();
+                                       ra[i] = BeanCreator.of(RestOpArg.class, 
beanStore).type(c).run();
                                        if (nn(ra[i]))
                                                break;
                                } catch (ExecutableException 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 b89612f087..77ebda0cbd 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
@@ -253,7 +253,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                @Override /* Overridden from BeanContext.Builder */
                public RestOpContext build() {
                        try {
-                               return 
beanStore.createBean(RestOpContext.class).type(getType().orElse(getDefaultImplClass())).builder(RestOpContext.Builder.class,
 this).run();
+                               return BeanCreator.of(RestOpContext.class, 
beanStore).type(getType().orElse(getDefaultImplClass())).builder(RestOpContext.Builder.class,
 this).run();
                        } catch (Exception e) {
                                throw new InternalServerError(e);
                        }
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 b7c752af63..a49426b066 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
@@ -57,7 +57,7 @@ public class RestConverterList {
                @SuppressWarnings("unchecked")
                public Builder append(Class<? extends RestConverter>...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestConverter.class).type(v));
+                               entries.add(BeanCreator.of(RestConverter.class, 
beanStore()).type(v));
                        return this;
                }
 
@@ -69,7 +69,7 @@ public class RestConverterList {
                 */
                public Builder append(RestConverter...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestConverter.class).impl(v));
+                               entries.add(BeanCreator.of(RestConverter.class, 
beanStore()).impl(v));
                        return this;
                }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
index 65ea2e75b5..66c236207d 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugEnablement.java
@@ -59,7 +59,7 @@ public abstract class DebugEnablement {
                        mapBuilder = ReflectionMap.create(Enablement.class);
                        defaultEnablement = NEVER;
                        conditional = x -> eqic("true", x.getHeader("Debug"));
-                       creator = 
beanStore.createBean(DebugEnablement.class).type(BasicDebugEnablement.class).builder(Builder.class,
 this);
+                       creator = BeanCreator.of(DebugEnablement.class, 
beanStore).type(BasicDebugEnablement.class).builder(Builder.class, this);
                }
 
                /**
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 265314c5e6..830f8e5bb8 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
@@ -57,7 +57,7 @@ public class RestGuardList {
                @SuppressWarnings("unchecked")
                public Builder append(Class<? extends RestGuard>...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestGuard.class).type(v));
+                               entries.add(BeanCreator.of(RestGuard.class, 
beanStore()).type(v));
                        return this;
                }
 
@@ -69,7 +69,7 @@ public class RestGuardList {
                 */
                public Builder append(RestGuard...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestGuard.class).impl(v));
+                               entries.add(BeanCreator.of(RestGuard.class, 
beanStore()).impl(v));
                        return this;
                }
 
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 aeff489a23..5f38e4e1be 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
@@ -58,7 +58,7 @@ public class RestMatcherList {
                @SuppressWarnings("unchecked")
                public Builder append(Class<? extends RestMatcher>...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestMatcher.class).type(v));
+                               entries.add(BeanCreator.of(RestMatcher.class, 
beanStore()).type(v));
                        return this;
                }
 
@@ -70,7 +70,7 @@ public class RestMatcherList {
                 */
                public Builder append(RestMatcher...values) {
                        for (var v : values)
-                               
entries.add(beanStore().createBean(RestMatcher.class).impl(v));
+                               entries.add(BeanCreator.of(RestMatcher.class, 
beanStore()).impl(v));
                        return this;
                }
 
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 f3c0a4d12a..b5af380012 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
@@ -105,7 +105,7 @@ public class ResponseProcessorList {
                if (o instanceof ResponseProcessor o2)
                        return o2;
                try {
-                       return 
bs.createBean(ResponseProcessor.class).type((Class<?>)o).run();
+                       return BeanCreator.of(ResponseProcessor.class, 
bs).type((Class<?>)o).run();
                } catch (ExecutableException e) {
                        throw new ConfigException(e, "Could not instantiate 
class {0}", o);
                }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStats.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStats.java
index 6e8fdafeaf..9e87086318 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStats.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStats.java
@@ -53,7 +53,7 @@ public class ThrownStats implements Cloneable {
                 */
                protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
-                       this.creator = 
beanStore.createBean(ThrownStats.class).builder(Builder.class, this);
+                       this.creator = BeanCreator.of(ThrownStats.class, 
beanStore).builder(Builder.class, this);
                }
 
                /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/SwaggerProvider.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/SwaggerProvider.java
index 4cde4e2ddc..20628ddbd3 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/SwaggerProvider.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/SwaggerProvider.java
@@ -57,7 +57,7 @@ public interface SwaggerProvider {
                 */
                protected Builder(BeanStore beanStore) {
                        this.beanStore = beanStore;
-                       this.creator = 
beanStore.createBean(SwaggerProvider.class).type(BasicSwaggerProvider.class).builder(Builder.class,
 this);
+                       this.creator = BeanCreator.of(SwaggerProvider.class, 
beanStore).type(BasicSwaggerProvider.class).builder(Builder.class, this);
                }
 
                /**
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
index e4856b645c..0d930e3dd9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
@@ -143,7 +143,7 @@ class BeanStore_Test extends TestBase {
 //             for (var b : array(b1p, b1c, b2p, b2c)) {
 //                     assertTrue(b.hasBean(A1.class));
 //                     assertEquals(a1b, b.getBean(A1.class).get());
-//                     assertList(b.stream(A1.class).map(BeanStoreEntry::get), 
a1b, a1a);
+//                     
assertList(b.stream(A1.class).map(BeanStore.Entry::get), a1b, a1a);
 //             }
 //
 //             b1c.add(A2.class, a2a);
@@ -156,7 +156,7 @@ class BeanStore_Test extends TestBase {
 //             for (var b : array(b1c, b2c)) {
 //                     assertTrue(b.hasBean(A2.class));
 //                     assertEquals(a2a, b.getBean(A2.class).get());
-//                     assertList(b.stream(A2.class).map(BeanStoreEntry::get), 
a2a);
+//                     
assertList(b.stream(A2.class).map(BeanStore.Entry::get), a2a);
 //             }
 //
 //             
assertMatchesGlob("{entries=[{type=A1,bean="+Utils.id(a1b)+"},{type=A1,bean="+Utils.id(a1a)+"}],identity=*}",
 b1p);
@@ -177,7 +177,7 @@ class BeanStore_Test extends TestBase {
 //             for (var b : array(b1c, b2c)) {
 //                     assertTrue(b.hasBean(A1.class));
 //                     assertEquals(a1a, b.getBean(A1.class).get());
-//                     assertList(b.stream(A1.class).map(BeanStoreEntry::get), 
a1a);
+//                     
assertList(b.stream(A1.class).map(BeanStore.Entry::get), a1a);
 //             }
 //
 //             b1c.removeBean(A1.class);
@@ -203,10 +203,10 @@ class BeanStore_Test extends TestBase {
                }
 
 //             for (var b : array(b1p, b2p)) {
-//                     assertList(b.stream(A1.class).map(BeanStoreEntry::get), 
a1d,a1c,a1b,a1a);
+//                     
assertList(b.stream(A1.class).map(BeanStore.Entry::get), a1d,a1c,a1b,a1a);
 //             }
 //             for (var b : array(b1c, b2c)) {
-//                     assertList(b.stream(A1.class).map(BeanStoreEntry::get), 
a1e,a1d,a1c,a1b,a1a);
+//                     
assertList(b.stream(A1.class).map(BeanStore.Entry::get), a1e,a1d,a1c,a1b,a1a);
 //             }
 //
                for (var b : array(b1p, b1c, b2p, b2c)) {
@@ -537,9 +537,9 @@ class BeanStore_Test extends TestBase {
 
        @Test void d01_createBean_basic() {
                var bs = BeanStore.create().outer(new BeanStore_Test()).build();
-               assertNotNull(bs.createBean(D1a.class).run());
-               assertNotNull(bs.createBean(D1b.class).run());
-               assertThrows(IllegalArgumentException.class, () -> 
bs.createBean(null).run());
+               assertNotNull(BeanCreator.of(D1a.class, bs).run());
+               assertNotNull(BeanCreator.of(D1b.class, bs).run());
+               assertThrows(IllegalArgumentException.class, () -> 
BeanCreator.of(null, bs).run());
        }
 
        public static class D2 {
@@ -549,7 +549,7 @@ class BeanStore_Test extends TestBase {
 
        @Test void d02_createBean_staticCreator_create() {
                var bs = BeanStore.INSTANCE;
-               assertEquals(d2, bs.createBean(D2.class).run());
+               assertEquals(d2, BeanCreator.of(D2.class, bs).run());
        }
 
        public abstract static class D3 {
@@ -559,7 +559,7 @@ class BeanStore_Test extends TestBase {
 
        @Test void d03_createBean_staticCreator_getInstance() {
                var bs = BeanStore.INSTANCE;
-               assertEquals(d3, bs.createBean(D3.class).run());
+               assertEquals(d3, BeanCreator.of(D3.class, bs).run());
        }
 
        public static class D4a {
@@ -585,9 +585,9 @@ class BeanStore_Test extends TestBase {
 
        @Test void d04_createBean_staticCreator_invalidSignatures() {
                var bs = BeanStore.INSTANCE;
-               assertNotEqualsAny(bs.createBean(D4a.class).run(), d4a1, d4a2, 
d4a3, d4a4);
-               assertNotEqualsAny(bs.createBean(D4b.class).run(), d4b1, d4b2);
-               assertNotNull(bs.createBean(D4c.class).run());
+               assertNotEqualsAny(BeanCreator.of(D4a.class, bs).run(), d4a1, 
d4a2, d4a3, d4a4);
+               assertNotEqualsAny(BeanCreator.of(D4b.class, bs).run(), d4b1, 
d4b2);
+               assertNotNull(BeanCreator.of(D4c.class, bs).run());
        }
 
        public static class D5 {
@@ -600,11 +600,11 @@ class BeanStore_Test extends TestBase {
 
        @Test void d05_createBean_staticCreator_withBeans() {
                var bs = BeanStore.create().build();
-               assertEquals(d5a, bs.createBean(D5.class).run());
+               assertEquals(d5a, BeanCreator.of(D5.class, bs).run());
                bs.add(Integer.class, 1);
-               assertEquals(d5c, bs.createBean(D5.class).run());
+               assertEquals(d5c, BeanCreator.of(D5.class, bs).run());
                bs.add(String.class, "x");
-               assertEquals(d5b, bs.createBean(D5.class).run());
+               assertEquals(d5b, BeanCreator.of(D5.class, bs).run());
        }
 
        public static class D6 {
@@ -617,7 +617,7 @@ class BeanStore_Test extends TestBase {
 
        @Test void d06_createBean_staticCreator_ignoredWithBuilder() {
                var bs = BeanStore.INSTANCE;
-               assertString("1", bs.createBean(D6.class).builder(String.class, 
"1").run().s);
+               assertString("1", BeanCreator.of(D6.class, 
bs).builder(String.class, "1").run().s);
        }
 
        public static class D7 {
@@ -628,9 +628,9 @@ class BeanStore_Test extends TestBase {
 
        @Test void d07_createBean_staticCreator_withOptional() {
                var bs = BeanStore.create().build();
-               assertString("X", bs.createBean(D7.class).run().a);
+               assertString("X", BeanCreator.of(D7.class, bs).run().a);
                bs.add(String.class, "bar");
-               assertString("bar", bs.createBean(D7.class).run().a);
+               assertString("bar", BeanCreator.of(D7.class, bs).run().a);
        }
 
        public static class D8 {
@@ -641,11 +641,11 @@ class BeanStore_Test extends TestBase {
 
        @Test void d08_createBean_staticCreator_missingPrereqs() {
                var bs = BeanStore.create().build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class org.apache.juneau.cp.BeanStore_Test$D8: Static creator found 
but could not find prerequisites: Integer.", ()->bs.createBean(D8.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class org.apache.juneau.cp.BeanStore_Test$D8: Static creator found 
but could not find prerequisites: Integer.", ()->BeanCreator.of(D8.class, 
bs).run());
                bs.add(Integer.class, 1);
-               assertString("null,1", bs.createBean(D8.class).run().a);
+               assertString("null,1", BeanCreator.of(D8.class, bs).run().a);
                bs.add(String.class, "bar");
-               assertString("bar,1", bs.createBean(D8.class).run().a);
+               assertString("bar,1", BeanCreator.of(D8.class, bs).run().a);
        }
 
        public abstract static class D9a {
@@ -656,8 +656,8 @@ class BeanStore_Test extends TestBase {
 
        @Test void d09_createBean_staticCreator_withBeans() {
                var bs = BeanStore.INSTANCE;
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D9a.class.getName()+": Class is abstract.", 
()->bs.createBean(D9a.class).run());
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D9b.class.getName()+": Class is an interface.", 
()->bs.createBean(D9b.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D9a.class.getName()+": Class is abstract.", 
()->BeanCreator.of(D9a.class, bs).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D9b.class.getName()+": Class is an interface.", 
()->BeanCreator.of(D9b.class, bs).run());
        }
 
        public static class D10 {
@@ -669,11 +669,11 @@ class BeanStore_Test extends TestBase {
 
        @Test void d10_createBean_constructors_public() {
                var bs = BeanStore.create().build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D10.class.getName()+": Public constructor found but could 
not find prerequisites: Integer or Integer,String or String.", 
()->bs.createBean(D10.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D10.class.getName()+": Public constructor found but could 
not find prerequisites: Integer or Integer,String or String.", 
()->BeanCreator.of(D10.class, bs).run());
                bs.add(String.class, "foo");
-               assertString("s=foo", bs.createBean(D10.class).run().a);
+               assertString("s=foo", BeanCreator.of(D10.class, bs).run().a);
                bs.add(Integer.class, 1);
-               assertString("s=foo,i=1", bs.createBean(D10.class).run().a);
+               assertString("s=foo,i=1", BeanCreator.of(D10.class, 
bs).run().a);
        }
 
        public static class D11 {
@@ -685,11 +685,11 @@ class BeanStore_Test extends TestBase {
 
        @Test void d11_createBean_constructors_protected() {
                var bs = BeanStore.create().build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D11.class.getName()+": Protected constructor found but 
could not find prerequisites: Integer or Integer,String or String.", 
()->bs.createBean(D11.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D11.class.getName()+": Protected constructor found but 
could not find prerequisites: Integer or Integer,String or String.", 
()->BeanCreator.of(D11.class, bs).run());
                bs.add(String.class, "foo");
-               assertString("s=foo", bs.createBean(D11.class).run().a);
+               assertString("s=foo", BeanCreator.of(D11.class, bs).run().a);
                bs.add(Integer.class, 1);
-               assertString("s=foo,i=1", bs.createBean(D11.class).run().a);
+               assertString("s=foo,i=1", BeanCreator.of(D11.class, 
bs).run().a);
        }
 
        public static class D12 {
@@ -700,10 +700,10 @@ class BeanStore_Test extends TestBase {
 
        @Test void d12_createBean_constructors_publicOverProtected() {
                var bs = BeanStore.create().build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D12.class.getName()+": Public constructor found but could 
not find prerequisites: String.", ()->bs.createBean(D12.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D12.class.getName()+": Public constructor found but could 
not find prerequisites: String.", ()->BeanCreator.of(D12.class, bs).run());
                bs.add(String.class, "foo");
                bs.add(Integer.class, 1);
-               assertString("s=foo", bs.createBean(D12.class).run().a);
+               assertString("s=foo", BeanCreator.of(D12.class, bs).run().a);
        }
 
        public static class D13 {
@@ -712,7 +712,7 @@ class BeanStore_Test extends TestBase {
 
        @Test void d13_createBean_constructors_private() {
                var bs = BeanStore.INSTANCE;
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D13.class.getName()+": No public/protected constructors 
found.", ()->bs.createBean(D13.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D13.class.getName()+": No public/protected constructors 
found.", ()->BeanCreator.of(D13.class, bs).run());
        }
 
        public static class D14 {
@@ -723,9 +723,9 @@ class BeanStore_Test extends TestBase {
 
        @Test void d14_createBean_constructors_namedBean() {
                var bs = BeanStore.create().build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D14.class.getName()+": Public constructor found but could 
not find prerequisites: Integer,String@foo or String@foo.", 
()->bs.createBean(D14.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D14.class.getName()+": Public constructor found but could 
not find prerequisites: Integer,String@foo or String@foo.", 
()->BeanCreator.of(D14.class, bs).run());
                bs.add(String.class, "bar", "foo");
-               assertString("bar", bs.createBean(D14.class).run().a);
+               assertString("bar", BeanCreator.of(D14.class, bs).run().a);
        }
 
        public class D15 {
@@ -736,9 +736,9 @@ class BeanStore_Test extends TestBase {
 
        @Test void d15_createBean_constructors_namedBean_withOuter() {
                var bs = BeanStore.create().outer(new BeanStore_Test()).build();
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D15.class.getName()+": Public constructor found but could 
not find prerequisites: Integer,String@foo or String@foo.", 
()->bs.createBean(D15.class).run());
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D15.class.getName()+": Public constructor found but could 
not find prerequisites: Integer,String@foo or String@foo.", 
()->BeanCreator.of(D15.class, bs).run());
                bs.add(String.class, "bar", "foo");
-               assertString("bar", bs.createBean(D15.class).run().a);
+               assertString("bar", BeanCreator.of(D15.class, bs).run().a);
        }
 
        public static class D16 {
@@ -754,7 +754,7 @@ class BeanStore_Test extends TestBase {
                var bs = BeanStore.create().build();
                var b = D16.create();
                b.b = "foo";
-               assertString("foo", 
bs.createBean(D16.class).builder(D16.Builder.class, b).run().a);
+               assertString("foo", BeanCreator.of(D16.class, 
bs).builder(D16.Builder.class, b).run().a);
        }
 
        public static class D17 {
@@ -771,8 +771,8 @@ class BeanStore_Test extends TestBase {
 
        @Test void d17_createBean_builders_inherent() {
                var bs = BeanStore.create().build();
-               assertNull(bs.createBean(D17.class).run().a);
-               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D17.class.getName()+": Protected constructor found but 
could not find prerequisites: Builder or Builder,Integer or Integer.", 
()->bs.createBean(D17.class).builder(Boolean.class, true).run());
+               assertNull(BeanCreator.<D17>of(D17.class, bs).run().a);
+               assertThrowsWithMessage(ExecutableException.class, "Could not 
instantiate class "+D17.class.getName()+": Protected constructor found but 
could not find prerequisites: Builder or Builder,Integer or Integer.", 
()->BeanCreator.<D17>of(D17.class, bs).builder(Boolean.class, true).run());
        }
 
        
//-----------------------------------------------------------------------------------------------------------------


Reply via email to