You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2026/05/11 19:44:50 UTC
(juneau) 09/19: refactor(inject): TODO-15 phase-3 batch 9 — migrate marshall internals to BeanInstantiator
This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
commit 53ef813d19a55a13af00fb283e38f3bc8ba67fc1
Author: James Bognar <ja...@jamesbog-ltmjqf2.internal.salesforce.com>
AuthorDate: Fri May 8 15:04:39 2026 -0400
refactor(inject): TODO-15 phase-3 batch 9 — migrate marshall internals to BeanInstantiator
BeanInstantiator improvements:
- Added beanSubType(ClassInfo) overload — convenience for ClassMeta / ClassInfo
callers (extracts the underlying class via .inner()).
- findBeanImpl() now skips the constructor-search step when beanSubType is an
interface or abstract class. Previously Class.newInstance() would throw
InstantiationException and mask the cleaner "class is abstract" / "class is an
interface" fallthrough that honors the registered fallback() supplier. Now
abstract / interface bean types route to fallback as documented (matches the
legacy silent()/orElse() behavior on BeanCreator).
Migrated marshall call sites from legacy BeanCreator.of(...) to v2
BeanInstantiator.of(...):
- BeanMeta.java:976 — BeanFactory instantiation.
- BeanContext.java:3743 — ObjectSwap subtype creation (uses new ClassInfo overload).
- BeanPropertyMeta.java:171, 187 — ObjectSwap (beanSubType + addBean for the
String/format constructor argument).
- ClassMeta.java:1419 — ObjectSwap subtype creation.
- EncoderSet.java:291 — Encoder subtype with cast; still catches ExecutableException.
- HtmlBeanPropertyMeta.java — render field flipped to BeanInstantiator<HtmlRender>
(abstract type — relies on the new abstract-class fallback fix); .orElse(null)
rewritten as .fallback(() -> null).run().
- ParserSession.java:326 / SerializerSession.java:507 — listener creation;
null-guard ternary preserves "no listener configured -> null" semantics
without forcing a default no-op listener instance.
- VarResolver.java:246 — Var subtype with cast.
Intentionally NOT migrated (kept on legacy BeanCreator for now):
- BeanPropertyMeta.java:1105, 1164 (propMap / propList for Map/Collection
property types).
- BeanRegistry.java:147, 155 (Collection/Map subtype creation).
BeanInstantiator's constructor-selection differs from BeanCreator on
parameterized container types like TreeMap: canResolveAllParameters() accepts
TreeMap(Map<? extends K, ? extends V>) (the copy ctor), then fails at actual
injection because the bean store has no Map registered. BeanCreator ended up
picking the no-arg ctor in those cases. Untangling that is its own task —
these four sites stay on legacy BeanCreator until BeanInstantiator's
constructor selection is hardened.
Test:
- BeanInstantiator_Test#n12_beanSubTypeNullThrows updated to disambiguate
the now-overloaded beanSubType() (cast to Class<? extends SimpleBean>).
Co-authored-by: Cursor <cu...@cursor.com>
---
.../juneau/commons/inject/BeanInstantiator.java | 23 +++++++++++++++++++++-
.../main/java/org/apache/juneau/BeanContext.java | 3 +--
.../src/main/java/org/apache/juneau/BeanMeta.java | 4 ++--
.../java/org/apache/juneau/BeanPropertyMeta.java | 5 +++--
.../src/main/java/org/apache/juneau/ClassMeta.java | 4 ++--
.../org/apache/juneau/encoders/EncoderSet.java | 9 ++++-----
.../apache/juneau/html/HtmlBeanPropertyMeta.java | 8 ++++----
.../org/apache/juneau/parser/ParserSession.java | 5 +++--
.../java/org/apache/juneau/parser/ParserSet.java | 1 -
.../juneau/serializer/SerializerSession.java | 5 +++--
.../apache/juneau/serializer/SerializerSet.java | 1 -
.../java/org/apache/juneau/svl/VarResolver.java | 11 ++++++-----
.../org/apache/juneau/svl/VarResolverSession.java | 1 -
.../java/org/apache/juneau/rest/RestChildren.java | 1 -
.../java/org/apache/juneau/rest/RestOpSession.java | 1 -
.../org/apache/juneau/rest/RestOperations.java | 1 -
.../java/org/apache/juneau/rest/RestSession.java | 1 -
.../org/apache/juneau/rest/annotation/Rest.java | 1 -
.../juneau/rest/annotation/RestAnnotation.java | 1 -
.../org/apache/juneau/rest/arg/RestOpArgList.java | 1 -
.../apache/juneau/rest/config/DefaultConfig.java | 1 -
.../juneau/rest/debug/BasicDebugEnablement.java | 1 -
.../apache/juneau/rest/logger/BasicCallLogger.java | 1 -
.../rest/logger/BasicDisabledCallLogger.java | 1 -
.../juneau/rest/logger/BasicTestCallLogger.java | 1 -
.../org/apache/juneau/rest/logger/CallLogger.java | 1 -
.../apache/juneau/rest/logger/CallLoggerRule.java | 2 --
.../apache/juneau/rest/stats/MethodExecStats.java | 1 -
.../apache/juneau/rest/stats/MethodExecStore.java | 1 -
.../org/apache/juneau/rest/stats/ThrownStore.java | 1 -
.../commons/inject/BeanInstantiator_Test.java | 2 +-
.../java/org/apache/juneau/rest/Swagger_Test.java | 1 -
.../rest/annotation/RestAnnotation_Test.java | 1 -
.../annotation/Rest_BeanCreatorOverrides_Test.java | 1 -
34 files changed, 51 insertions(+), 52 deletions(-)
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
index 0425ee7a8e..c0edc4023e 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
@@ -481,6 +481,24 @@ public class BeanInstantiator<T> {
return this;
}
+ /**
+ * Specifies a subclass of the bean type to create, via a {@link ClassInfo} reference.
+ *
+ * <p>
+ * Convenience overload of {@link #beanSubType(Class)} that accepts {@link ClassInfo} (or any subtype such
+ * as {@code ClassMeta}). The underlying class is extracted via {@link ClassInfo#inner()} and the
+ * subtype-relationship check happens at runtime.
+ *
+ * @param value The subclass type to create. Cannot be <jk>null</jk>.
+ * @return This object.
+ * @throws IllegalArgumentException If {@code value} is <jk>null</jk> or its underlying class is not a subclass of {@code beanType}.
+ */
+ @SuppressWarnings("unchecked")
+ public BeanInstantiator<T> beanSubType(ClassInfo value) {
+ assertArgNotNull(ARG_value, value);
+ return beanSubType((Class<? extends T>) value.inner());
+ }
+
/**
* Specifies the builder type to use for creating the bean.
*
@@ -1280,7 +1298,10 @@ public class BeanInstantiator<T> {
.orElse(null);
// Look for Bean().
- if (bean == null) {
+ // Skip constructor invocation when beanSubType is abstract or an interface — Class.newInstance() would
+ // throw InstantiationException, masking the more useful "class is abstract"/"class is an interface"
+ // fallthrough below (which honors the registered fallback supplier when present).
+ if (bean == null && ! beanSubType.isInterface() && ! beanSubType.isAbstract()) {
log("Attempting Bean() constructor");
// If builder was detected but has no build method, pass it as extra bean for constructors
Object[] constructorExtraBeans = builder2 != null ? new Object[]{builder2} : new Object[0];
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 15ae62abaf..1bd732cd2d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -41,7 +41,6 @@ import org.apache.juneau.commons.function.*;
import org.apache.juneau.commons.inject.*;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.reflect.Visibility;
-import org.apache.juneau.cp.*;
import org.apache.juneau.json5.*;
import org.apache.juneau.marshaller.*;
import org.apache.juneau.serializer.*;
@@ -3740,7 +3739,7 @@ public class BeanContext extends Context implements ConversionFinder {
} else {
var ci = info((Class<?>)x);
if (ci.isAssignableTo(ObjectSwap.class))
- objectSwapsList.add(BeanCreator.of(ObjectSwap.class).type(ci).run());
+ objectSwapsList.add(BeanInstantiator.of(ObjectSwap.class).beanSubType(ci).run());
else if (ci.isAssignableTo(Surrogate.class))
objectSwapsList.addAll(SurrogateSwap.findObjectSwaps(ci.inner(), this));
else
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index a7ba9fbc45..cf18daee01 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -37,7 +37,7 @@ import org.apache.juneau.commons.lang.*;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.reflect.Visibility;
import org.apache.juneau.commons.utils.*;
-import org.apache.juneau.cp.*;
+import org.apache.juneau.commons.inject.*;
/**
* Encapsulates all access to the properties of a bean class (like a souped-up {@link java.beans.BeanInfo}).
@@ -973,7 +973,7 @@ public class BeanMeta<T> {
if (opt.isPresent())
return opt.get();
}
- return (BeanFactory) BeanCreator.of((Class)fc).run();
+ return (BeanFactory) BeanInstantiator.of((Class)fc).run();
}
/*
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 239203f42d..f57bc58e0a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -38,6 +38,7 @@ import org.apache.juneau.commons.collections.*;
import org.apache.juneau.commons.lang.*;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.reflect.ReflectionUtils;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.parser.*;
@@ -168,7 +169,7 @@ public class BeanPropertyMeta implements Comparable<BeanPropertyMeta> {
private static ObjectSwap beanpSwap(AnnotationInfo<Beanp> ai) {
var p = ai.inner();
if (! p.format().isEmpty())
- return BeanCreator.of(ObjectSwap.class).type(StringFormatSwap.class).arg(String.class, p.format()).run();
+ return BeanInstantiator.of(ObjectSwap.class).beanSubType(StringFormatSwap.class).addBean(String.class, p.format()).run();
return null;
}
@@ -184,7 +185,7 @@ public class BeanPropertyMeta implements Comparable<BeanPropertyMeta> {
return null;
var ci = info(c);
if (ci.isAssignableTo(ObjectSwap.class)) {
- var ps = BeanCreator.of(ObjectSwap.class).type(ci).run();
+ var ps = BeanInstantiator.of(ObjectSwap.class).beanSubType(ci).run();
if (nn(ps.forMediaTypes()))
throw unsupportedOp("TODO - Media types on swaps not yet supported on bean properties.");
if (nn(ps.withTemplate()))
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index fe564c4a67..5509e15b5e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -41,7 +41,7 @@ import org.apache.juneau.commons.conversion.*;
import org.apache.juneau.commons.function.*;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.utils.*;
-import org.apache.juneau.cp.*;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.json.*;
import org.apache.juneau.swap.*;
@@ -1416,7 +1416,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
var ci = info(c);
if (ci.isAssignableTo(ObjectSwap.class)) {
- var ps = BeanCreator.of(ObjectSwap.class).type(ci).run();
+ var ps = BeanInstantiator.of(ObjectSwap.class).beanSubType(ci).run();
if (s.mediaTypes().length > 0)
ps.forMediaTypes(MediaType.ofAll(s.mediaTypes()));
if (! s.template().isEmpty())
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 c2b6e53208..4555c70cbb 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
@@ -26,11 +26,8 @@ import java.util.*;
import java.util.concurrent.*;
import org.apache.juneau.*;
-import org.apache.juneau.commons.inject.BasicBeanStore2;
-import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.commons.reflect.*;
-import org.apache.juneau.cp.*;
/**
* Represents the set of {@link Encoder encoders} keyed by codings.
@@ -288,7 +285,9 @@ public class EncoderSet {
if (o instanceof Encoder o2)
return o2;
try {
- return BeanCreator.of(Encoder.class, bs).type((Class<?>)o).run();
+ @SuppressWarnings("unchecked")
+ var subType = (Class<? extends Encoder>) o;
+ return BeanInstantiator.of(Encoder.class, bs).beanSubType(subType).run();
} catch (ExecutableException e) {
throw toRex(e);
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
index b4ca7ddc22..d1fbded5a8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlBeanPropertyMeta.java
@@ -20,7 +20,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.reflect.*;
-import org.apache.juneau.cp.*;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.html.annotation.*;
/**
@@ -41,7 +41,7 @@ public class HtmlBeanPropertyMeta extends ExtendedBeanPropertyMeta {
boolean noTables;
boolean noTableHeaders;
HtmlFormat format = HtmlFormat.HTML;
- BeanCreator<HtmlRender> render = BeanCreator.of(HtmlRender.class);
+ BeanInstantiator<HtmlRender> render = BeanInstantiator.of(HtmlRender.class);
String link;
String anchorText;
String style;
@@ -55,7 +55,7 @@ public class HtmlBeanPropertyMeta extends ExtendedBeanPropertyMeta {
if (html.noTableHeaders())
noTableHeaders = html.noTableHeaders();
if (html.render() != HtmlRender.class)
- render.type(html.render());
+ render.beanSubType(html.render());
if (! html.link().isEmpty())
link = html.link();
if (! html.anchorText().isEmpty())
@@ -99,7 +99,7 @@ public class HtmlBeanPropertyMeta extends ExtendedBeanPropertyMeta {
format = b.format;
noTables = b.noTables;
noTableHeaders = b.noTableHeaders;
- render = b.render.orElse(null);
+ render = b.render.fallback(() -> null).run();
link = b.link;
anchorText = b.anchorText;
style = b.style;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index 14e11977d2..dec16703ca 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -36,7 +36,7 @@ import org.apache.juneau.collections.*;
import org.apache.juneau.commons.collections.FluentMap;
import org.apache.juneau.commons.function.*;
import org.apache.juneau.commons.reflect.*;
-import org.apache.juneau.cp.*;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.objecttools.*;
import org.apache.juneau.swap.*;
@@ -323,7 +323,8 @@ public class ParserSession extends BeanSession {
outer = builder.outer;
schema = builder.schema;
trimStrings = builder.trimStrings;
- listener = BeanCreator.of(ParserListener.class).type(ctx.getListener()).orElse(null);
+ var listenerCls = ctx.getListener();
+ listener = listenerCls == null ? null : BeanInstantiator.of(listenerCls).fallback(() -> null).run();
sbStack = new ArrayDeque<>();
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
index 211d60ade6..ff3de55382 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
@@ -31,7 +31,6 @@ import java.util.function.*;
import java.util.stream.*;
import org.apache.juneau.*;
-import org.apache.juneau.cp.*;
/**
* Represents a group of {@link Parser Parsers} that can be looked up by media type.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index dffbd780e4..af725e0130 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -33,7 +33,7 @@ import org.apache.juneau.*;
import org.apache.juneau.commons.function.*;
import org.apache.juneau.commons.collections.FluentMap;
import org.apache.juneau.commons.reflect.*;
-import org.apache.juneau.cp.*;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.parser.*;
import org.apache.juneau.soap.*;
@@ -504,7 +504,8 @@ public class SerializerSession extends BeanTraverseSession {
UriContext uriContext = builder.uriContext;
uriResolver = UriResolver.of(ctx.getUriResolution(), ctx.getUriRelativity(), uriContext);
vrs = builder.resolver;
- listener = BeanCreator.of(SerializerListener.class).type(ctx.getListener()).orElse(null);
+ var listenerCls = ctx.getListener();
+ listener = listenerCls == null ? null : BeanInstantiator.of(listenerCls).fallback(() -> null).run();
keepNullProperties = builder.keepNullProperties;
trimStrings = builder.trimStrings;
addBeanTypes = builder.addBeanTypes;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index bc40c13463..bb35e50598 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -33,7 +33,6 @@ import java.util.function.*;
import java.util.stream.*;
import org.apache.juneau.*;
-import org.apache.juneau.cp.*;
/**
* Represents a group of {@link Serializer Serializers} that can be looked up by media type.
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 5f7b8cea7f..b593180116 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
@@ -23,9 +23,7 @@ import java.util.*;
import java.util.concurrent.*;
import org.apache.juneau.*;
-import org.apache.juneau.commons.inject.BasicBeanStore2;
-import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.commons.inject.WritableBeanStore;
+import org.apache.juneau.commons.inject.*;
import org.apache.juneau.cp.*;
import org.apache.juneau.svl.vars.*;
@@ -242,8 +240,11 @@ public class VarResolver {
}
private static Var toVar(BeanStore bs, Object o) {
- if (o instanceof Class o2)
- return BeanCreator.of(Var.class, bs).type(o2).run();
+ if (o instanceof Class<?> o2) {
+ @SuppressWarnings("unchecked")
+ var subType = (Class<? extends Var>) o2;
+ return BeanInstantiator.of(Var.class, bs).beanSubType(subType).run();
+ }
return (Var)o;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
index d84fd045a8..6ed2549d8e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
@@ -30,7 +30,6 @@ import java.util.*;
import org.apache.juneau.commons.collections.*;
import org.apache.juneau.commons.lang.*;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
/**
* A var resolver session that combines a {@link VarResolver} with one or more session objects.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
index 41d303eb64..842146bb76 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
@@ -23,7 +23,6 @@ import java.util.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.WritableBeanStore;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.util.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
index 29579698f3..d1fbde0023 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
@@ -24,7 +24,6 @@ import org.apache.http.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.collections.FluentMap;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.logger.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
index 122d36411f..30b9e71742 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
@@ -23,7 +23,6 @@ import java.util.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.WritableBeanStore;
-import org.apache.juneau.cp.*;
import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.annotation.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index 8f50ecc25a..0fff547f06 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -28,7 +28,6 @@ import org.apache.juneau.*;
import org.apache.juneau.commons.collections.FluentMap;
import org.apache.juneau.commons.inject.*;
import org.apache.juneau.commons.lang.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.logger.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
index 5c9312a78d..863f29cddc 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
@@ -25,7 +25,6 @@ import java.util.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.annotation.*;
import org.apache.juneau.config.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.httppart.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
index 182e434c7c..b4d5a50198 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
@@ -23,7 +23,6 @@ import org.apache.juneau.encoders.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.commons.annotation.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.arg.*;
import org.apache.juneau.rest.converter.*;
import org.apache.juneau.rest.debug.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
index 3e335c137c..2076a1f6b1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/RestOpArgList.java
@@ -23,7 +23,6 @@ import java.util.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.WritableBeanStore;
-import org.apache.juneau.cp.*;
/**
* A list of {@link RestOpArg} classes.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/DefaultConfig.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/DefaultConfig.java
index 4041497b6f..152c0b36f8 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/DefaultConfig.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/DefaultConfig.java
@@ -17,7 +17,6 @@
package org.apache.juneau.rest.config;
import org.apache.juneau.annotation.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.oapi.*;
import org.apache.juneau.rest.annotation.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
index 4631406f8c..f623988850 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/BasicDebugEnablement.java
@@ -26,7 +26,6 @@ import org.apache.juneau.*;
import org.apache.juneau.commons.inject.BeanStore;
import org.apache.juneau.commons.reflect.*;
import org.apache.juneau.commons.utils.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.svl.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicCallLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicCallLogger.java
index e342cdacbf..53bf84048c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicCallLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicCallLogger.java
@@ -20,7 +20,6 @@ import static java.util.logging.Level.*;
import static org.apache.juneau.rest.logger.CallLoggingDetail.*;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.*;
/**
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicDisabledCallLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicDisabledCallLogger.java
index adb214328e..3424e03e38 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicDisabledCallLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicDisabledCallLogger.java
@@ -17,7 +17,6 @@
package org.apache.juneau.rest.logger;
import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.cp.*;
/**
* Default implementation of a {@link CallLogger} that never logs REST calls.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicTestCallLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicTestCallLogger.java
index 7c27549146..fa3452d1ac 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicTestCallLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/BasicTestCallLogger.java
@@ -22,7 +22,6 @@ import static org.apache.juneau.commons.utils.Utils.*;
import static org.apache.juneau.rest.logger.CallLoggingDetail.*;
import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.*;
import jakarta.servlet.http.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
index 0fdc6a2ea8..bef11129a7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
@@ -33,7 +33,6 @@ import org.apache.juneau.*;
import org.apache.juneau.commons.collections.*;
import org.apache.juneau.commons.inject.*;
import org.apache.juneau.commons.utils.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.stats.*;
import org.apache.juneau.rest.util.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
index 9687174f55..0425e88c75 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
@@ -25,8 +25,6 @@ import java.util.logging.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.collections.*;
import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.cp.*;
-
import jakarta.servlet.http.*;
/**
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
index fddf15b991..935771c94a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
@@ -26,7 +26,6 @@ import java.util.concurrent.atomic.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.collections.*;
import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.cp.*;
/**
* Method execution statistics.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
index c03732c304..37b1c5ce43 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
@@ -24,7 +24,6 @@ import java.util.concurrent.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
/**
* Method execution statistics database.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
index d75b326233..f15655a6e1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
@@ -26,7 +26,6 @@ import java.util.concurrent.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
/**
* An in-memory cache of thrown exceptions.
diff --git a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BeanInstantiator_Test.java b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BeanInstantiator_Test.java
index b769dc426e..689568b378 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BeanInstantiator_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BeanInstantiator_Test.java
@@ -3360,7 +3360,7 @@ class BeanInstantiator_Test extends TestBase {
@Test
void n12_beanSubTypeNullThrows() {
var creator = BeanInstantiator.of(SimpleBean.class);
- assertThrows(IllegalArgumentException.class, () -> creator.beanSubType(null));
+ assertThrows(IllegalArgumentException.class, () -> creator.beanSubType((Class<? extends SimpleBean>) null));
}
}
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
index dc1d1f9441..f113d61d9a 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
@@ -29,7 +29,6 @@ import org.apache.juneau.commons.annotation.Schema;
import org.apache.juneau.commons.annotation.ExternalDocs;
import org.apache.juneau.commons.lang.*;
import org.apache.juneau.commons.inject.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.http.annotation.Tag;
import org.apache.juneau.json.*;
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestAnnotation_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestAnnotation_Test.java
index aba4a74a33..e921a8e3ab 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestAnnotation_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestAnnotation_Test.java
@@ -21,7 +21,6 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import org.apache.juneau.*;
-import org.apache.juneau.cp.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.parser.*;
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_BeanCreatorOverrides_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_BeanCreatorOverrides_Test.java
index eb18fb2845..1203a338b5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_BeanCreatorOverrides_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_BeanCreatorOverrides_Test.java
@@ -20,7 +20,6 @@ import static org.junit.jupiter.api.Assertions.*;
import org.apache.juneau.*;
import org.apache.juneau.commons.inject.BeanStore;
-import org.apache.juneau.cp.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.debug.*;
import org.apache.juneau.rest.staticfile.*;