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());
}
//-----------------------------------------------------------------------------------------------------------------