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 595f2273e69b50e511b341c99da68374854b161f Author: James Bognar <[email protected]> AuthorDate: Tue May 12 10:20:26 2026 -0400 refactor: move MarshallingInterceptor to commons.bean.BeanInterceptor (Phase 5a of bean-layer split) The bean-interceptor type is a bean-modeling concern (intercepts bean getter/setter calls, no marshalling-specific dependencies), so it belongs in the commons.bean package alongside @BeanType, @BeanProp, @BeanIgnore, @BeanConfig, BasicPropertyNamer, etc. Reverts the 9.5 BeanInterceptor -> MarshallingInterceptor rename and moves the class from juneau-marshall (org.apache.juneau.swap) into juneau-commons (org.apache.juneau.commons.bean) in one step. ~50 files updated to reference the new location; @Marshalled.interceptor() now takes Class<? extends BeanInterceptor<?>>. The remainder of Phase 5 -- moving BeanMap, BeanMeta, BeanPropertyMeta, BeanMapEntry, BeanPropertyValue, BeanPropertyConsumer, BeanProxyInvocationHandler, and BeanMetaFiltered to commons.bean -- requires untangling ClassMeta / MarshallingContext / ObjectSwap / BeanRegistry dependencies (~140 cross-references across ~4170 lines) and is tracked in TODO-5 with a concrete strategy. Co-authored-by: Cursor <[email protected]> --- .../juneau/commons/bean/BeanInterceptor.java} | 20 +-- .../java/org/apache/juneau/jena/RdfParser.java | 2 +- .../java/org/apache/juneau/jena/RdfSerializer.java | 2 +- .../java/org/apache/juneau/MarshalledFilter.java | 18 +-- .../java/org/apache/juneau/MarshallingContext.java | 6 +- .../org/apache/juneau/MarshallingContextable.java | 6 +- .../apache/juneau/MarshallingTraverseContext.java | 2 +- .../org/apache/juneau/annotation/Marshalled.java | 7 +- .../juneau/annotation/MarshalledAnnotation.java | 9 +- .../main/java/org/apache/juneau/csv/CsvParser.java | 2 +- .../java/org/apache/juneau/csv/CsvSerializer.java | 2 +- .../org/apache/juneau/html/HtmlDocSerializer.java | 2 +- .../java/org/apache/juneau/html/HtmlParser.java | 2 +- .../juneau/html/HtmlSchemaDocSerializer.java | 2 +- .../apache/juneau/html/HtmlSchemaSerializer.java | 2 +- .../org/apache/juneau/html/HtmlSerializer.java | 2 +- .../juneau/html/HtmlStrippedDocSerializer.java | 2 +- .../java/org/apache/juneau/json/JsonParser.java | 2 +- .../apache/juneau/json/JsonSchemaSerializer.java | 2 +- .../org/apache/juneau/json/JsonSerializer.java | 2 +- .../java/org/apache/juneau/json5/Json5Parser.java | 2 +- .../org/apache/juneau/json5/Json5Serializer.java | 2 +- .../juneau/jsonschema/JsonSchemaGenerator.java | 2 +- .../org/apache/juneau/markdown/MarkdownParser.java | 2 +- .../apache/juneau/markdown/MarkdownSerializer.java | 2 +- .../org/apache/juneau/msgpack/MsgPackParser.java | 2 +- .../apache/juneau/msgpack/MsgPackSerializer.java | 2 +- .../java/org/apache/juneau/oapi/OpenApiParser.java | 2 +- .../org/apache/juneau/oapi/OpenApiSerializer.java | 2 +- .../apache/juneau/parser/InputStreamParser.java | 2 +- .../main/java/org/apache/juneau/parser/Parser.java | 2 +- .../org/apache/juneau/parser/ReaderParser.java | 2 +- .../apache/juneau/plaintext/PlainTextParser.java | 2 +- .../juneau/plaintext/PlainTextSerializer.java | 2 +- .../juneau/serializer/OutputStreamSerializer.java | 2 +- .../org/apache/juneau/serializer/Serializer.java | 2 +- .../apache/juneau/serializer/WriterSerializer.java | 2 +- .../org/apache/juneau/soap/SoapXmlSerializer.java | 2 +- .../main/java/org/apache/juneau/uon/UonParser.java | 2 +- .../java/org/apache/juneau/uon/UonSerializer.java | 2 +- .../juneau/urlencoding/UrlEncodingParser.java | 2 +- .../juneau/urlencoding/UrlEncodingSerializer.java | 2 +- .../main/java/org/apache/juneau/xml/XmlParser.java | 2 +- .../java/org/apache/juneau/xml/XmlSerializer.java | 2 +- .../java/org/apache/juneau/yaml/YamlParser.java | 2 +- .../org/apache/juneau/yaml/YamlSerializer.java | 2 +- .../org/apache/juneau/rest/client/RestClient.java | 2 +- .../apache/juneau/rest/mock/MockRestClient.java | 2 +- .../annotation/MarshalledAnnotation_Test.java | 2 +- .../org/apache/juneau/jena/RdfParser_Test.java | 2 +- .../org/apache/juneau/jena/RdfSerializer_Test.java | 2 +- .../RestClient_Config_MarshallingContext_Test.java | 2 +- todo/TODO-5-bean-runtime-types-to-commons.md | 178 +++++++++++++++++++++ todo/TODO.md | 2 + 54 files changed, 260 insertions(+), 78 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/MarshallingInterceptor.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInterceptor.java similarity index 85% rename from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/MarshallingInterceptor.java rename to juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInterceptor.java index c88f831624..9d037aacb3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/MarshallingInterceptor.java +++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInterceptor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.juneau.swap; +package org.apache.juneau.commons.bean; /** * Bean interceptor. @@ -25,7 +25,7 @@ package org.apache.juneau.swap; * <h5 class='section'>Example:</h5> * <p class='bjava'> * <jc>// Interceptor that strips out sensitive information on Address beans.</jc> - * <jk>public class</jk> AddressInterceptor <jk>extends</jk> MarshallingInterceptor<Address> { + * <jk>public class</jk> AddressInterceptor <jk>extends</jk> BeanInterceptor<Address> { * * <ja>@Override</ja> * <jk>public</jk> Object readProperty(Address <jv>bean</jv>, String <jv>name</jv>, Object <jv>value</jv>) { @@ -46,8 +46,8 @@ package org.apache.juneau.swap; * <p> * Bean interceptors are registered in the following way: * <ul class='javatree'> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#interceptor() @Marshalled(interceptor)} - * <li class='jm'>{@link org.apache.juneau.MarshallingContext.Builder#beanInterceptor(Class,Class)} + * <li class='ja'>{@link org.apache.juneau.annotation.Marshalled#interceptor() @Marshalled(interceptor)} + * <li class='jm'>{@code MarshallingContext.Builder#beanInterceptor(Class,Class)} * </ul> * * <h5 class='section'>Example:</h5> @@ -66,15 +66,15 @@ package org.apache.juneau.swap; * * @param <T> The bean type. */ -public class MarshallingInterceptor<T> { +public class BeanInterceptor<T> { /** Non-existent bean interceptor. */ - public static final class Void extends MarshallingInterceptor<Object> {} + public static final class Void extends BeanInterceptor<Object> {} /** * Default reusable property filter instance. */ - public static final MarshallingInterceptor<Object> DEFAULT = new MarshallingInterceptor<>(); + public static final BeanInterceptor<Object> DEFAULT = new BeanInterceptor<>(); /** * Property read interceptor. @@ -85,7 +85,7 @@ public class MarshallingInterceptor<T> { * <h5 class='section'>Example:</h5> * <p class='bjava'> * <jc>// Address filter that strips out sensitive information.</jc> - * <jk>public class</jk> AddressInterceptor <jk>extends</jk> MarshallingInterceptor<Address> { + * <jk>public class</jk> AddressInterceptor <jk>extends</jk> BeanInterceptor<Address> { * * <jk>public</jk> Object readProperty(Address <jv>bean</jv>, String <jv>name</jv>, Object <jv>value</jv>) { * <jk>if</jk> (<js>"taxInfo"</js>.equals(<jv>name</jv>)) @@ -114,7 +114,7 @@ public class MarshallingInterceptor<T> { * <h5 class='section'>Example:</h5> * <p class='bjava'> * <jc>// Address filter that strips out sensitive information.</jc> - * <jk>public class</jk> AddressInterceptor <jk>extends</jk> MarshallingInterceptor<Address> { + * <jk>public class</jk> AddressInterceptor <jk>extends</jk> BeanInterceptor<Address> { * * <jk>public</jk> Object writeProperty(Address <jv>bean</jv>, String <jv>name</jv>, Object <jv>value</jv>) { * <jk>if</jk> (<js>"taxInfo"</js>.equals(<jv>name</jv>) && <js>"redacted"</js>.equals(<jv>value</jv>)) @@ -132,4 +132,4 @@ public class MarshallingInterceptor<T> { public Object writeProperty(T bean, String name, Object value) { return value; } -} \ No newline at end of file +} diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java index e3ca843ffe..c8d1e84758 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java @@ -216,7 +216,7 @@ public class RdfParser extends ReaderParser implements RdfMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java index 8eddd4cce2..0376e8d9fa 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java @@ -358,7 +358,7 @@ public class RdfSerializer extends WriterSerializer implements RdfMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java index f3e03db63d..4afd776776 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java @@ -74,7 +74,7 @@ import org.apache.juneau.swap.*; * <h5 class='section'>See Also:</h5> * <ul> * <li class='ja'>{@link Marshalled @Marshalled} - * <li class='jc'>{@link MarshallingInterceptor} + * <li class='jc'>{@link BeanInterceptor} * <li class='jc'>{@link PropertyNamer} * </ul> */ @@ -104,7 +104,7 @@ public class MarshalledFilter { private boolean fluentSetters; private BeanInstantiator.Builder<PropertyNamer> propertyNamer = BeanInstantiator.of(PropertyNamer.class); private List<ClassInfo> dictionary; - private BeanInstantiator.Builder<MarshallingInterceptor> interceptor = BeanInstantiator.of(MarshallingInterceptor.class); + private BeanInstantiator.Builder<BeanInterceptor> interceptor = BeanInstantiator.of(BeanInterceptor.class); /** * Constructor for non-bean POJO filters. @@ -317,17 +317,17 @@ public class MarshalledFilter { * * <h5 class='section'>See Also:</h5><ul> * <li class='ja'>{@link Marshalled#interceptor()} - * <li class='jc'>{@link MarshallingInterceptor} + * <li class='jc'>{@link BeanInterceptor} * </ul> * * @param value * The new value for this setting. - * <br>The default value is {@link MarshallingInterceptor}. + * <br>The default value is {@link BeanInterceptor}. * @return This object. */ @SuppressWarnings("unchecked") public Builder interceptor(Class<?> value) { - interceptor.type((Class<? extends MarshallingInterceptor>) value); + interceptor.type((Class<? extends BeanInterceptor>) value); return this; } @@ -606,7 +606,7 @@ public class MarshalledFilter { private final boolean fluentSetters; private final ClassInfo implClass; private final ClassInfo interfaceClass; - private final MarshallingInterceptor interceptor; + private final BeanInterceptor interceptor; private final Set<String> properties; private final PropertyNamer propertyNamer; private final Set<String> readOnlyProperties; @@ -636,7 +636,7 @@ public class MarshalledFilter { this.fluentSetters = builder.fluentSetters; this.propertyNamer = builder.propertyNamer.asOptional().orElse(null); this.beanDictionary = builder.dictionary == null ? list() : u(copyOf(builder.dictionary)); - this.interceptor = builder.interceptor.asOptional().orElse(MarshallingInterceptor.DEFAULT); + this.interceptor = builder.interceptor.asOptional().orElse(BeanInterceptor.DEFAULT); } /** @@ -751,7 +751,7 @@ public class MarshalledFilter { public boolean isUnsortedProperties() { return unsortedProperties; } /** - * Calls the {@link MarshallingInterceptor#readProperty(Object, String, Object)} method on the registered property filters. + * Calls the {@link BeanInterceptor#readProperty(Object, String, Object)} method on the registered property filters. * * @param bean The bean from which the property was read. * @param name The property name. @@ -766,7 +766,7 @@ public class MarshalledFilter { } /** - * Calls the {@link MarshallingInterceptor#writeProperty(Object, String, Object)} method on the registered property filters. + * Calls the {@link BeanInterceptor#writeProperty(Object, String, Object)} method on the registered property filters. * * @param bean The bean from which the property was read. * @param name The property name. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContext.java index 0573beb4c7..bfac213a84 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContext.java @@ -708,7 +708,7 @@ public class MarshallingContext extends Context implements ConversionFinder { * <h5 class='section'>Example:</h5> * <p class='bjava'> * <jc>// Interceptor that strips out sensitive information.</jc> - * <jk>public class</jk> AddressInterceptor <jk>extends</jk> MarshallingInterceptor<Address> { + * <jk>public class</jk> AddressInterceptor <jk>extends</jk> BeanInterceptor<Address> { * * <jk>public</jk> Object readProperty(Address <jv>bean</jv>, String <jv>name</jv>, Object <jv>value</jv>) { * <jk>if</jk> (<js>"taxInfo"</js>.equals(<jv>name</jv>)) @@ -740,7 +740,7 @@ public class MarshallingContext extends Context implements ConversionFinder { * </p> * * <h5 class='section'>See Also:</h5><ul> - * <li class='jc'>{@link MarshallingInterceptor} + * <li class='jc'>{@link BeanInterceptor} * <li class='ja'>{@link Bean#interceptor() Bean(interceptor)} * </ul> * @@ -751,7 +751,7 @@ public class MarshallingContext extends Context implements ConversionFinder { * <br>Cannot be <jk>null</jk>. * @return This object. */ - public Builder beanInterceptor(Class<?> on, Class<? extends MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends BeanInterceptor<?>> value) { assertArgNotNull(ARG_on, on); assertArgNotNull(ARG_value, value); return annotations(MarshalledApplyAnnotation.create(on).value(MarshalledAnnotation.create().interceptor(value).build()).build()); diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContextable.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContextable.java index 3cb72fdd8f..f40e99b15b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContextable.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingContextable.java @@ -454,7 +454,7 @@ public abstract class MarshallingContextable extends Context { * <h5 class='section'>Example:</h5> * <p class='bjava'> * <jc>// Interceptor that strips out sensitive information.</jc> - * <jk>public class</jk> AddressInterceptor <jk>extends</jk> MarshallingInterceptor<Address> { + * <jk>public class</jk> AddressInterceptor <jk>extends</jk> BeanInterceptor<Address> { * * <jk>public</jk> Object readProperty(Address <jv>bean</jv>, String <jv>name</jv>, Object <jv>value</jv>) { * <jk>if</jk> (<js>"taxInfo"</js>.equals(<jv>name</jv>)) @@ -486,7 +486,7 @@ public abstract class MarshallingContextable extends Context { * </p> * * <h5 class='section'>See Also:</h5><ul> - * <li class='jc'>{@link MarshallingInterceptor} + * <li class='jc'>{@link BeanInterceptor} * <li class='ja'>{@link Bean#interceptor() Bean(interceptor)} * </ul> * @@ -497,7 +497,7 @@ public abstract class MarshallingContextable extends Context { * <br>Cannot be <jk>null</jk>. * @return This object. */ - public Builder beanInterceptor(Class<?> on, Class<? extends MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends BeanInterceptor<?>> value) { bcBuilder.beanInterceptor(assertArgNotNull(ARG_on, on), assertArgNotNull(ARG_value, value)); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingTraverseContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingTraverseContext.java index 875f2c0b66..4b67232bea 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingTraverseContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingTraverseContext.java @@ -156,7 +156,7 @@ public abstract class MarshallingTraverseContext extends MarshallingContextable } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java index 0bcb010ddd..3f29ad86e0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java @@ -22,6 +22,7 @@ import static java.lang.annotation.RetentionPolicy.*; import java.lang.annotation.*; import org.apache.juneau.*; +import org.apache.juneau.commons.bean.*; import org.apache.juneau.swap.*; /** @@ -50,7 +51,7 @@ import org.apache.juneau.swap.*; @Retention(RUNTIME) @Inherited @SuppressWarnings({ - "java:S1452" // Wildcard required - Class<? extends MarshallingInterceptor<?>> for interceptor definition + "java:S1452" // Wildcard required - Class<? extends BeanInterceptor<?>> for interceptor definition }) public @interface Marshalled { @@ -157,12 +158,12 @@ public @interface Marshalled { * Bean interceptors can be used to intercept calls to getters and setters and alter their values in transit. * * <h5 class='section'>See Also:</h5><ul> - * <li class='jc'>{@link MarshallingInterceptor} + * <li class='jc'>{@link BeanInterceptor} * </ul> * * @return The annotation value. */ - Class<? extends MarshallingInterceptor<?>> interceptor() default MarshallingInterceptor.Void.class; + Class<? extends BeanInterceptor<?>> interceptor() default BeanInterceptor.Void.class; /** * An identifying name for this class. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java index 51c0fcfe74..b689aac81e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java @@ -21,6 +21,7 @@ import static org.apache.juneau.commons.utils.CollectionUtils.*; import java.lang.annotation.*; import org.apache.juneau.commons.annotation.*; +import org.apache.juneau.commons.bean.*; import org.apache.juneau.swap.*; /** @@ -47,7 +48,7 @@ public class MarshalledAnnotation { private String[] description = {}; private Class<?>[] dictionary = new Class[0]; private Class<?> implClass = void.class; - private Class<? extends MarshallingInterceptor<?>> interceptor = MarshallingInterceptor.Void.class; + private Class<? extends BeanInterceptor<?>> interceptor = BeanInterceptor.Void.class; private String example = ""; private String typeName = ""; private String typePropertyName = ""; @@ -129,7 +130,7 @@ public class MarshalledAnnotation { * @param value The new value for this property. * @return This object. */ - public Builder interceptor(Class<? extends MarshallingInterceptor<?>> value) { + public Builder interceptor(Class<? extends BeanInterceptor<?>> value) { interceptor = value; return this; } @@ -164,7 +165,7 @@ public class MarshalledAnnotation { private final MarshalledAs as; private final String[] description; - private final Class<? extends MarshallingInterceptor<?>> interceptor; + private final Class<? extends BeanInterceptor<?>> interceptor; private final Class<?> implClass; private final Class<?>[] dictionary; private final String example; @@ -204,7 +205,7 @@ public class MarshalledAnnotation { } @Override /* Overridden from Marshalled */ - public Class<? extends MarshallingInterceptor<?>> interceptor() { + public Class<? extends BeanInterceptor<?>> interceptor() { return interceptor; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java index 1b59553c00..af669c9da0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java @@ -240,7 +240,7 @@ public class CsvParser extends ReaderParser implements CsvMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java index af26bfae09..006c043669 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java @@ -262,7 +262,7 @@ public class CsvSerializer extends WriterSerializer implements CsvMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java index f6ee6d2dfa..36f23a6421 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java @@ -439,7 +439,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java index d85e0f4c53..5712a70927 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java @@ -168,7 +168,7 @@ public class HtmlParser extends XmlParser implements HtmlMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java index d03b9ea76f..8ef26b2455 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java @@ -358,7 +358,7 @@ public class HtmlSchemaDocSerializer extends HtmlDocSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializer.java index 14044ae929..6536f5aa99 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializer.java @@ -352,7 +352,7 @@ public class HtmlSchemaSerializer extends HtmlSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java index 11b33d89b3..02c3ac7bdd 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java @@ -436,7 +436,7 @@ public class HtmlSerializer extends XmlSerializer implements HtmlMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java index 25e1d799dd..d8b016680d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializer.java @@ -228,7 +228,7 @@ public class HtmlStrippedDocSerializer extends HtmlSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java index 8a27228858..60e195be5f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java @@ -244,7 +244,7 @@ public class JsonParser extends ReaderParser implements JsonMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java index 9eb3a2b136..e62f5d9576 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializer.java @@ -308,7 +308,7 @@ public class JsonSchemaSerializer extends JsonSerializer implements JsonSchemaMe } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java index 1c26424ccd..eb9e9125d1 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java @@ -301,7 +301,7 @@ public class JsonSerializer extends WriterSerializer implements JsonMetaProvider } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Parser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Parser.java index 69585603f1..f206d5046d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Parser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Parser.java @@ -186,7 +186,7 @@ public class Json5Parser extends JsonParser { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Serializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Serializer.java index 26d3d467fe..2c0a43f8ed 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Serializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5Serializer.java @@ -221,7 +221,7 @@ public class Json5Serializer extends JsonSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java index 203cb8325e..fbad360ac5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java @@ -345,7 +345,7 @@ public class JsonSchemaGenerator extends MarshallingTraverseContext implements J } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownParser.java index 7276ac79af..aceaa8ad81 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownParser.java @@ -229,7 +229,7 @@ public class MarkdownParser extends ReaderParser implements MarkdownMetaProvider } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializer.java index 6032effc96..6fa9deec64 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializer.java @@ -261,7 +261,7 @@ public class MarkdownSerializer extends WriterSerializer implements MarkdownMeta } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java index 55f40e4017..f82d96277f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java @@ -188,7 +188,7 @@ public class MsgPackParser extends InputStreamParser implements MsgPackMetaProvi } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java index 5fafa5aa9b..b1f310aa66 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java @@ -247,7 +247,7 @@ public class MsgPackSerializer extends OutputStreamSerializer implements MsgPack } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParser.java index a402d0a76d..c9d28d3e7e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParser.java @@ -161,7 +161,7 @@ public class OpenApiParser extends UonParser implements OpenApiMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializer.java index 779e11dc38..80b1eaac05 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializer.java @@ -191,7 +191,7 @@ public class OpenApiSerializer extends UonSerializer implements OpenApiMetaProvi } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java index 42bbddb2f2..6b80d77aba 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java @@ -169,7 +169,7 @@ public class InputStreamParser extends Parser { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java index e93cd5e0ca..0b296ed0f3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java @@ -304,7 +304,7 @@ public class Parser extends MarshallingContextable { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java index de6a76a938..dce0c1f24c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java @@ -174,7 +174,7 @@ public class ReaderParser extends Parser { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java index f3d726d342..56a235480b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java @@ -172,7 +172,7 @@ public class PlainTextParser extends ReaderParser implements PlainTextMetaProvid } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java index 2227c6aae3..0843512921 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java @@ -187,7 +187,7 @@ public class PlainTextSerializer extends WriterSerializer implements PlainTextMe } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java index 0fee077300..dba3a9cdeb 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java @@ -179,7 +179,7 @@ public class OutputStreamSerializer extends Serializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java index 074e74debe..ce2df36a6d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java @@ -381,7 +381,7 @@ public class Serializer extends MarshallingTraverseContext { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java index 1a528dea26..58bf6f8ca5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java @@ -206,7 +206,7 @@ public class WriterSerializer extends Serializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java index 96a8d909bc..1d92a6ffd6 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java @@ -216,7 +216,7 @@ public class SoapXmlSerializer extends XmlSerializer implements SoapXmlMetaProvi } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java index 0696375e72..cedb4cec65 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java @@ -192,7 +192,7 @@ public class UonParser extends ReaderParser implements HttpPartParser, UonMetaPr } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java index 8e89a90853..5ba2658ab5 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java @@ -334,7 +334,7 @@ public class UonSerializer extends WriterSerializer implements HttpPartSerialize } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java index 465ecc88b7..b077461d3a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java @@ -175,7 +175,7 @@ public class UrlEncodingParser extends UonParser implements UrlEncodingMetaProvi } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java index 9068975a12..73dded5d23 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java @@ -281,7 +281,7 @@ public class UrlEncodingSerializer extends UonSerializer implements UrlEncodingM } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java index 373d7d91c6..743cf5ec1e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java @@ -225,7 +225,7 @@ public class XmlParser extends ReaderParser implements XmlMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java index 7af660fd8e..6d9a45fdc1 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java @@ -371,7 +371,7 @@ public class XmlSerializer extends WriterSerializer implements XmlMetaProvider { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParser.java index 9211543d8b..f5a33c5e63 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParser.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParser.java @@ -203,7 +203,7 @@ public class YamlParser extends ReaderParser { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlSerializer.java index 0a66e39b83..1b6a757c82 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlSerializer.java @@ -299,7 +299,7 @@ public class YamlSerializer extends WriterSerializer { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } 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 412a543863..f5d6869b79 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 @@ -1441,7 +1441,7 @@ public class RestClient extends MarshallingContextable implements HttpClient, Cl } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java index b015630cab..8d372e2b14 100644 --- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java +++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java @@ -444,7 +444,7 @@ public class MockRestClient extends RestClient implements HttpClientConnection { } @Override /* Overridden from Builder */ - public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.swap.MarshallingInterceptor<?>> value) { + public Builder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.commons.bean.BeanInterceptor<?>> value) { super.beanInterceptor(on, value); return this; } diff --git a/juneau-utest/src/test/java/org/apache/juneau/annotation/MarshalledAnnotation_Test.java b/juneau-utest/src/test/java/org/apache/juneau/annotation/MarshalledAnnotation_Test.java index 2f2f3577a9..aa63d8c863 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/annotation/MarshalledAnnotation_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/annotation/MarshalledAnnotation_Test.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.*; class MarshalledAnnotation_Test extends TestBase { private static class X1 {} - private static class X2 extends MarshallingInterceptor<MarshalledAnnotation_Test> {} + private static class X2 extends BeanInterceptor<MarshalledAnnotation_Test> {} //------------------------------------------------------------------------------------------------------------------ // Basic tests diff --git a/juneau-utest/src/test/java/org/apache/juneau/jena/RdfParser_Test.java b/juneau-utest/src/test/java/org/apache/juneau/jena/RdfParser_Test.java index 07ad27cabd..5eab3678b9 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/jena/RdfParser_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/jena/RdfParser_Test.java @@ -280,7 +280,7 @@ class RdfParser_Test extends TestBase { assertNotNull(RdfParser.create().marshallingContext(MarshallingContext.DEFAULT).build()); assertNotNull(RdfParser.create().marshallingContext(MarshallingContext.create()).build()); assertNotNull(RdfParser.create().beanDictionary(D01_DictBean.class).build()); - assertNotNull(RdfParser.create().beanInterceptor(String.class, (Class)MarshallingInterceptor.class).build()); + assertNotNull(RdfParser.create().beanInterceptor(String.class, (Class)BeanInterceptor.class).build()); assertNotNull(RdfParser.create().beanMapPutReturnsOldValue().build()); } diff --git a/juneau-utest/src/test/java/org/apache/juneau/jena/RdfSerializer_Test.java b/juneau-utest/src/test/java/org/apache/juneau/jena/RdfSerializer_Test.java index cbef68d649..50447d20b0 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/jena/RdfSerializer_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/jena/RdfSerializer_Test.java @@ -165,7 +165,7 @@ class RdfSerializer_Test extends TestBase { "rawtypes" // (Class) cast required by beanInterceptor API }) @Test void b04_beanInterceptor() { - assertNotNull(RdfSerializer.create().beanInterceptor(String.class, (Class)MarshallingInterceptor.class).build()); + assertNotNull(RdfSerializer.create().beanInterceptor(String.class, (Class)BeanInterceptor.class).build()); } @Test void b05_beanMapPutReturnsOldValue() { diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_MarshallingContext_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_MarshallingContext_Test.java index fd10494d0f..15e434c370 100644 --- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_MarshallingContext_Test.java +++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_MarshallingContext_Test.java @@ -792,7 +792,7 @@ class RestClient_Config_MarshallingContext_Test extends TestBase { } } - public static class A30b extends MarshallingInterceptor<A30a> { + public static class A30b extends BeanInterceptor<A30a> { static boolean getterCalled,setterCalled; @Override public Object readProperty(A30a bean,String name,Object value) { diff --git a/todo/TODO-5-bean-runtime-types-to-commons.md b/todo/TODO-5-bean-runtime-types-to-commons.md new file mode 100644 index 0000000000..d6f418a8e7 --- /dev/null +++ b/todo/TODO-5-bean-runtime-types-to-commons.md @@ -0,0 +1,178 @@ +# TODO-5 — Move bean-modeling runtime types (`BeanMap`, `BeanMeta`, `BeanPropertyMeta`, …) into `commons.bean` (remainder of Phase 5) + +This is the remaining work from **Phase 5 of the bean-layer split**. Phase 5a (the `MarshallingInterceptor` → `commons.bean.BeanInterceptor` move+rename) shipped in the same commit that created this plan. The big runtime types still live in `juneau-marshall` because they are deeply entangled with `ClassMeta` / `MarshallingContext` / `ObjectSwap` / `BeanRegistry`, and untangling them is the bulk of the work. + +--- + +## Goal + +Move these eight `BeanXxx` runtime types out of `org.apache.juneau` (in `juneau-marshall`) into `org.apache.juneau.commons.bean` (in `juneau-commons`) so the **bean-modeling runtime** is independently usable without dragging in the full marshalling stack: + +1. `BeanMap.java` (~727 lines) +2. `BeanMapEntry.java` (~129 lines) +3. `BeanMeta.java` (~1547 lines) +4. `BeanMetaFiltered.java` (~49 lines) +5. `BeanPropertyMeta.java` (~1423 lines) +6. `BeanPropertyValue.java` (~120 lines) +7. `BeanPropertyConsumer.java` (~23 lines) +8. `BeanProxyInvocationHandler.java` (~156 lines) + +Total: ~4,170 lines of code with ~140 cross-references to marshalling-aware types (`ClassMeta`, `MarshallingContext`, `ObjectSwap`, `BeanRegistry`, etc.). + +--- + +## Why Phase 5 wasn't fully landed in one commit + +A first-pass survey revealed that the dependencies are too tangled to do in a single sweep without risking a broken build. The shape of the entanglement: + +### `BeanPropertyMeta` (74 marshalling refs) +- `BeanPropertyMeta.Builder` carries a `MarshallingContext bc` field used everywhere. +- Carries `ClassMeta<?> rawTypeMeta`, `ClassMeta<?> typeMeta`, `ObjectSwap swap`, `BeanRegistry beanRegistry`. +- `get(BeanMap, String)` / `set(BeanMap, String, Object)` paths apply `ObjectSwap` transforms inline. +- Constructor-arg detection reads `MarshallingContext.getBeanStore()`. +- Property-type resolution flows through `MarshallingContext.resolveClassMeta(...)`. + +### `BeanMeta` (26 marshalling refs) +- `marshallingContext = cm.getMarshallingContext()` is the central field; settings used: + - `isFindFluentSetters()`, `isBeansRequireSerializable()`, `isBeansRequireDefaultConstructor()`, `isBeansRequireSomeProperties()`, `isUnsortedProperties()`, `isIgnoreTransientFields()`, `isUseJavaBeanIntrospector()`, `isUseInterfaceProxies()`, `isNotABean()` + - `getBeanClassVisibility()`, `getBeanConstructorVisibility()`, `getBeanFieldVisibility()`, `getBeanMethodVisibility()` + - `getPropertyNamer()`, `getBeanStore()`, `getAnnotationProvider()` + - `string()` returns a `ClassMeta<String>` used to seed a property meta. +- `ClassMeta` is used for `classMeta.inner()`, `classMeta.isMemberClass()`, `classMeta.isAnonymousClass()`, `classMeta.isAssignableTo(...)`, `classMeta.getRecordComponents()`, `classMeta.getProxyInvocationHandler()`, `classMeta.getClassLoader()`, plus `cm.getModifiers()`. + +### `BeanMap` (29 marshalling refs) +- Constructed by `MarshallingSession.toBeanMap(...)`. +- `get`/`put` go through `MarshallingSession` swap-aware property access. +- Holds a back-pointer to its session and uses it for type narrowing. + +### `BeanProxyInvocationHandler` (5 refs), `BeanMapEntry` (3), `BeanPropertyValue` (4), `BeanMetaFiltered` (1) +- All transitively reference `ClassMeta` and/or `MarshallingContext`. + +### Other affected types that stay in `juneau-marshall` +- `BeanRegistry` (polymorphic dispatch — marshalling concern) +- `BeanDictionaryMap`, `BeanDictionaryList` (same) +- `MarshalledFilter` (reads marshalling-only annotation attributes; bean-modeling attributes now read via `commons.bean` annotation processors) +- `MarshallingContext`, `MarshallingSession` (stay; `MarshallingContext` will compose a new `BeanConfigContext` POJO) +- `ClassMeta` (marshalling-aware type metadata; will *consume* a `commons.bean.BeanMeta` after the move) + +--- + +## Strategy + +The whole point is to make `commons.bean` self-contained, so the untangling has to address every leaf of the dependency graph. Recommended sequencing: + +### Step 1 — Introduce `BeanConfigContext` (runtime POJO) in `commons.bean` + +Create `juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanConfigContext.java` as a **plain immutable POJO** with builder. Suggested name: **`BeanConfigContext`** (not `BeanConfig` — that name is already taken by the existing annotation in the same package from Phase 3). Alternatives if `BeanConfigContext` reads awkwardly at use sites: `BeanModelContext`, `BeanIntrospectionConfig`. + +Carries: +- `Visibility beanClassVisibility`, `Visibility beanConstructorVisibility`, `Visibility beanFieldVisibility`, `Visibility beanMethodVisibility` +- `boolean findFluentSetters` +- `boolean sortProperties`, `Set<Class<?>> unsortedProperties` (or equivalent) +- `PropertyNamer propertyNamer` +- `boolean beansRequireSomeProperties`, `boolean beansRequireDefaultConstructor`, `boolean beansRequireSerializable`, `boolean beansRequireSettersForGetters` +- `boolean useJavaBeanIntrospector`, `boolean useInterfaceProxies`, `boolean ignoreTransientFields` +- `boolean ignoreUnknownBeanProperties`, `boolean ignoreMissingSetters` +- A lambda/predicate for `isNotABean(Class<?>)` +- Reference to a commons-compatible `BeanStore` (already exists at `commons.inject.BeanInstantiator` — confirm scope) +- Reference to a commons-compatible `AnnotationProvider` (need to confirm where this currently lives — probably `commons.reflect`) + +`MarshallingContext` retains all these settings (they're already there), and composes (or delegates to) a `BeanConfigContext` view so the marshalling layer reads them transparently. `MarshallingContext.Builder` produces a `BeanConfigContext` snapshot on `build()`. + +### Step 2 — Replace `ClassMeta<T>` with `ClassInfo` + +`BeanMeta` and `BeanPropertyMeta` use `ClassMeta` for: `inner()`, `isMemberClass()`, `isAnonymousClass()`, `isAssignableTo(...)`, `isInterface()`, `isRecord()`, `getRecordComponents()`, `getModifiers()`, `getClassLoader()`. **All of these are pure reflection** and already available on `ClassInfo`. Swap them. + +Two `ClassMeta`-only methods used by `BeanMeta`: +- `classMeta.getProxyInvocationHandler()` — used to build the proxy when wrapping an interface. Move this responsibility into `BeanMeta` itself or to a hook in `BeanConfigContext`. `BeanProxyInvocationHandler` already takes a `BeanMeta<T>`; the construction site is the only thing that needs to change. +- `cm.getMarshallingContext().string()` — used as the raw type for the synthetic `_type` property. After the move, store a plain `Class<String>` or `ClassInfo` and let the marshalling layer wrap that into a `ClassMeta` if it needs to. + +### Step 3 — Swap-aware logic in `BeanPropertyMeta` + +Recommendation (a): **Remove swap-aware get/set in `BeanPropertyMeta`**. The marshalling layer (already in `MarshallingSession`) applies swaps externally — `BeanPropertyMeta` does raw getter/setter invocation only. This keeps the bean model lean. + +If consumers still want a swap-aware extension point, expose two `BiFunction<Object,Object,Object>` callbacks on `BeanPropertyMeta` (or a small `BeanPropertyTransform` interface) that default to identity. The marshalling layer installs swap-aware callbacks at session construction. + +### Step 4 — `BeanMap.get/put` decoupling + +Same idea: after the move, `BeanMap.get`/`put` do raw property access (calling `BeanPropertyMeta`'s raw getter/setter). `MarshallingSession` wraps a `BeanMap` for serialization and applies swaps externally per property as needed. + +### Step 5 — `BeanRegistry` lives in `juneau-marshall` (unchanged) + +`BeanRegistry` is a marshalling concern (polymorphic dispatch via `@Marshalled(typeName=...)` / `@Marshalled(dictionary=...)`). After the move, `BeanPropertyMeta` in `commons.bean` does **not** carry a `BeanRegistry` field. Instead: +- The bean-model `BeanPropertyMeta` exposes the raw `@BeanType` / `@BeanProp` metadata. +- The marshalling layer reads `@Marshalled` dictionary metadata separately and pairs it with the bean property via a `MarshalledPropertyMeta` (new) or a side-map keyed by `BeanPropertyMeta`. + +### Step 6 — `BeanMeta` is constructed by both `ClassMeta` and direct `BeanConfigContext` callers + +After the move: +- A direct `commons.bean` consumer does `BeanMeta.of(MyClass.class, BeanConfigContext.DEFAULT)`. +- `ClassMeta` does the same internally and stores the resulting `BeanMeta` as a member. + +This makes `ClassMeta` a *consumer* of `BeanMeta` rather than its creator. + +### Step 7 — `ExtendedBeanMeta` (marshalling-side `BeanMeta` extension) stays + +`ExtendedBeanMeta` (and per-format extensions like `XmlBeanMeta`, `RdfBeanMeta`, `HtmlBeanMeta`) currently extend or compose `BeanMeta`. Re-check whether they need to follow `BeanMeta` to `commons.bean` (probably not — they're marshalling-aware and stay). + +### Step 8 — Test fallout + +- `BeanMap_Test`, `BeanMeta_Test`, `AnnotationInheritance_Test`, plus any test that imports `org.apache.juneau.BeanMap`/`BeanMeta`/`BeanPropertyMeta` needs an import update (rename `org.apache.juneau.BeanMap` to `org.apache.juneau.commons.bean.BeanMap` etc.). +- Many tests use these types via the unqualified name from inside `org.apache.juneau` — those need explicit imports added. + +### Step 9 — Reference sweep across the repo + +Estimated reference counts (from a survey before Phase 5a): +- ~50 files reference `BeanMeta` directly +- ~50 files reference `BeanMap` directly +- ~50 files reference `BeanPropertyMeta` directly +- Lots of overlap, but expect 80–120 unique files to need import updates (most are inside `juneau-marshall` and currently use the in-package short name). +- Plus `juneau-docs` (release notes, topic pages). + +### Step 10 — Module dependency check + +`juneau-commons/pom.xml` must NOT add a dependency on `juneau-marshall`. Verify by building `juneau-commons` standalone after the move: +```bash +cd juneau-core/juneau-commons && mvn clean compile +``` + +--- + +## Build verification + +Build module-by-module as you go. Don't try to move everything then build: + +```bash +# After each set of changes +python3 scripts/test.py --build-only +# Periodically +python3 scripts/test.py --full +``` + +--- + +## Commit message + +`refactor: move BeanMap/BeanMeta/BeanPropertyMeta runtime types to commons.bean (Phase 5 of bean-layer split)` + +--- + +## Risks and open questions + +1. **`AnnotationProvider`** — currently lives in `juneau-marshall` (`org.apache.juneau.commons.reflect.AnnotationProvider`? need to verify exact location and module). If it's already in `commons`, great. If not, it has to move first. +2. **`BeanStore`** — `commons.inject` has `BeanInstantiator`. Is that enough for `BeanMeta`'s constructor-resolution path, or does it need the richer `BeanStore` that lives in `juneau-marshall`? +3. **`ObjectSwap` removal from `BeanPropertyMeta`** — there are likely a handful of test cases that exercise swap-aware `BeanMap.get`/`put` directly. They will need to be rewritten to go through a `MarshallingSession`. +4. **`@Marshalled(properties=…)` / `@Marshalled(dictionary=…)`** reading inside `BeanMeta` — the bean-modeling layer should only read `@BeanType` / `@BeanProp`. The `@Marshalled`-specific bits (typeName/dictionary/properties-as-include-list) need to be lifted out into the marshalling-side `MarshalledFilter` or an analog. +5. **`BeanRegistry` removal from `BeanPropertyMeta`** — see Step 5; the side-map design needs to be sketched before any code moves. + +--- + +## Definition of done + +- [ ] All 8 files physically located in `juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/`. +- [ ] None of those 8 files reference `ClassMeta`, `MarshallingContext`, `MarshallingSession`, `ObjectSwap`, or `BeanRegistry`. +- [ ] `mvn clean compile` of `juneau-commons` succeeds standalone. +- [ ] `scripts/test.py --build-only` and `--full` both pass. +- [ ] Reference sweep done: no stale `import org.apache.juneau.BeanMap;` etc. anywhere in the repo. +- [ ] `juneau-docs` release-notes / migration-guide updated with the package moves. +- [ ] Remove this TODO from `todo/TODO.md` (final cleanup step). diff --git a/todo/TODO.md b/todo/TODO.md index c19c17a061..70b7c51c39 100644 --- a/todo/TODO.md +++ b/todo/TODO.md @@ -7,6 +7,8 @@ - [TODO-4] Duration.ofDays(7) serialized in hours? +- [TODO-5] Finish Phase 5 of the bean-layer split: physically move `BeanMap`, `BeanMeta`, `BeanPropertyMeta`, `BeanMapEntry`, `BeanPropertyValue`, `BeanPropertyConsumer`, `BeanProxyInvocationHandler`, and `BeanMetaFiltered` from `juneau-marshall` into `org.apache.juneau.commons.bean` in `juneau-commons`. Requires untangling `ClassMeta` / `MarshallingContext` / `ObjectSwap` / `BeanRegistry` dependencies (introduce a `BeanConfigContext` runtime POJO, swap `ClassMeta` for `ClassInfo`, hoist [...] + - [TODO-6] Add an `ai` / `shortDescription` field to `@Schema` (and related annotations) for concise LLM/AI-consumption descriptions that stay under token budgets. See `todo/TODO-6-ai-short-description.md`. - [TODO-7] Decouple `juneau-rest-common` from `juneau-marshall` by breaking the compile dependency so REST annotations and beans can be used without pulling in the full serialization stack. See `todo/TODO-7-decouple-rest-common-from-marshall.md`.
