This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new ce5fecb782 org.apache.juneau.common.reflect API improvements
ce5fecb782 is described below

commit ce5fecb7824480a06ff7b13d52b06c0b5eb0aacc
Author: James Bognar <[email protected]>
AuthorDate: Mon Nov 24 16:56:56 2025 -0500

    org.apache.juneau.common.reflect API improvements
---
 .../juneau/common/annotation/AnnotationObject.java |    2 +-
 .../juneau/jena/annotation/RdfAnnotation.java      |    8 +-
 .../src/main/java/org/apache/juneau/BeanMeta.java  |   32 +-
 .../java/org/apache/juneau/BeanPropertyMeta.java   |   48 +-
 .../apache/juneau/annotation/BeanAnnotation.java   |   40 +-
 .../apache/juneau/annotation/BeancAnnotation.java  |    4 +-
 .../apache/juneau/annotation/BeanpAnnotation.java  |   20 +-
 .../juneau/annotation/ExampleAnnotation.java       |    4 +-
 .../juneau/annotation/ExternalDocsAnnotation.java  |    4 +-
 .../apache/juneau/annotation/ItemsAnnotation.java  |   70 +-
 .../juneau/annotation/MarshalledAnnotation.java    |    6 +-
 .../apache/juneau/annotation/SchemaAnnotation.java |  149 ++-
 .../juneau/annotation/SubItemsAnnotation.java      |   70 +-
 .../apache/juneau/annotation/SwapAnnotation.java   |   10 +-
 .../apache/juneau/html/HtmlBeanPropertyMeta.java   |   14 +-
 .../juneau/html/annotation/HtmlAnnotation.java     |   16 +-
 .../juneau/html/annotation/HtmlLinkAnnotation.java |    6 +-
 .../juneau/http/annotation/ContactAnnotation.java  |    8 +-
 .../juneau/http/annotation/ContentAnnotation.java  |    6 +-
 .../juneau/http/annotation/FormDataAnnotation.java |   14 +-
 .../http/annotation/HasFormDataAnnotation.java     |    6 +-
 .../juneau/http/annotation/HasQueryAnnotation.java |    6 +-
 .../juneau/http/annotation/HeaderAnnotation.java   |   14 +-
 .../juneau/http/annotation/LicenseAnnotation.java  |    6 +-
 .../juneau/http/annotation/PathAnnotation.java     |   14 +-
 .../http/annotation/PathRemainderAnnotation.java   |   10 +-
 .../juneau/http/annotation/QueryAnnotation.java    |   14 +-
 .../juneau/http/annotation/RequestAnnotation.java  |    6 +-
 .../juneau/http/annotation/ResponseAnnotation.java |   12 +-
 .../juneau/http/annotation/TagAnnotation.java      |    6 +-
 .../org/apache/juneau/httppart/HttpPartSchema.java |   64 +-
 .../juneau/httppart/bean/RequestBeanMeta.java      |   12 +-
 .../httppart/bean/RequestBeanPropertyMeta.java     |    6 +-
 .../juneau/httppart/bean/ResponseBeanMeta.java     |   14 +-
 .../httppart/bean/ResponseBeanPropertyMeta.java    |    6 +-
 .../juneau/json/annotation/JsonAnnotation.java     |    4 +-
 .../annotation/UrlEncodingAnnotation.java          |    4 +-
 .../juneau/xml/annotation/XmlAnnotation.java       |   10 +-
 .../rest/client/remote/RemoteOperationMeta.java    |   30 +-
 .../rest/annotation/OpSwaggerAnnotation.java       |   24 +-
 .../juneau/rest/annotation/RestAnnotation.java     |  102 +-
 .../rest/annotation/RestDeleteAnnotation.java      |   36 +-
 .../juneau/rest/annotation/RestGetAnnotation.java  |   42 +-
 .../rest/annotation/RestInjectAnnotation.java      |    8 +-
 .../juneau/rest/annotation/RestOpAnnotation.java   |   54 +-
 .../rest/annotation/RestOptionsAnnotation.java     |   42 +-
 .../rest/annotation/RestPatchAnnotation.java       |   52 +-
 .../juneau/rest/annotation/RestPostAnnotation.java |   52 +-
 .../rest/annotation/RestPostInitAnnotation.java    |    4 +-
 .../juneau/rest/annotation/RestPutAnnotation.java  |   52 +-
 .../juneau/rest/annotation/SwaggerAnnotation.java  |   18 +-
 .../apache/juneau/rest/logger/CallLoggerRule.java  |   18 +-
 .../a/rttests/RoundTripBeansWithBuilders_Test.java |   24 +-
 .../common/annotation/AnnotationObject_Test.java   |    6 +-
 .../annotation/AppliedAnnotationObject_Test.java   | 1021 ++++++++++----------
 55 files changed, 1171 insertions(+), 1159 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/annotation/AnnotationObject.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/annotation/AnnotationObject.java
index 9d17fb12b8..063d7512ed 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/annotation/AnnotationObject.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/annotation/AnnotationObject.java
@@ -177,7 +177,7 @@ public class AnnotationObject implements Annotation {
         */
        public AnnotationObject(Builder b) {
                assertArgNotNull("b", b);
-               this.annotationType = b.getAnnotationType();
+               annotationType = b.getAnnotationType();
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
index ef84d77d5b..0a023a2f8f 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
@@ -237,10 +237,10 @@ public class RdfAnnotation {
 
                Object(RdfAnnotation.Builder b) {
                        super(b);
-                       this.beanUri = b.beanUri;
-                       this.collectionFormat = b.collectionFormat;
-                       this.namespace = b.namespace;
-                       this.prefix = b.prefix;
+                       beanUri = b.beanUri;
+                       collectionFormat = b.collectionFormat;
+                       namespace = b.namespace;
+                       prefix = b.prefix;
                }
 
                @Override /* Overridden from Rdf */
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 c9b90051a2..2c23ea03bb 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
@@ -892,24 +892,24 @@ public class BeanMeta<T> {
                this.c = classMeta.getInnerClass();
 
                Builder<T> b = new Builder<>(classMeta, ctx, beanFilter, 
pNames, implClassConstructor);
-               this.notABeanReason = b.init(this);
+               notABeanReason = b.init(this);
 
                this.beanFilter = beanFilter;
-               this.dictionaryName = b.dictionaryName;
-               this.properties = u(b.properties);
-               this.propertyArray = properties == null ? EMPTY_PROPERTIES : 
array(properties.values(), BeanPropertyMeta.class);
-               this.hiddenProperties = u(b.hiddenProperties);
-               this.getterProps = u(b.getterProps);
-               this.setterProps = u(b.setterProps);
-               this.dynaProperty = b.dynaProperty;
-               this.typeVarImpls = u(b.typeVarImpls);
-               this.constructor = b.constructor;
-               this.constructorArgs = b.constructorArgs;
-               this.beanRegistry = b.beanRegistry;
-               this.typePropertyName = b.typePropertyName;
-               this.typeProperty = BeanPropertyMeta.builder(this, 
typePropertyName).canRead().canWrite().rawMetaType(ctx.string()).beanRegistry(beanRegistry).build();
-               this.sortProperties = b.sortProperties;
-               this.fluentSetters = b.fluentSetters;
+               dictionaryName = b.dictionaryName;
+               properties = u(b.properties);
+               propertyArray = properties == null ? EMPTY_PROPERTIES : 
array(properties.values(), BeanPropertyMeta.class);
+               hiddenProperties = u(b.hiddenProperties);
+               getterProps = u(b.getterProps);
+               setterProps = u(b.setterProps);
+               dynaProperty = b.dynaProperty;
+               typeVarImpls = u(b.typeVarImpls);
+               constructor = b.constructor;
+               constructorArgs = b.constructorArgs;
+               beanRegistry = b.beanRegistry;
+               typePropertyName = b.typePropertyName;
+               typeProperty = BeanPropertyMeta.builder(this, 
typePropertyName).canRead().canWrite().rawMetaType(ctx.string()).beanRegistry(beanRegistry).build();
+               sortProperties = b.sortProperties;
+               fluentSetters = b.fluentSetters;
 
                if (sortProperties)
                        Arrays.sort(propertyArray);
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 ee320dc465..ddfac7da87 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
@@ -405,30 +405,30 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
         * @param b The builder to copy fields from.
         */
        protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {
-               this.field = b.field;
-               this.innerField = b.innerField;
-               this.getter = b.getter;
-               this.setter = b.setter;
-               this.extraKeys = b.extraKeys;
-               this.isUri = b.isUri;
-               this.beanMeta = b.beanMeta;
-               this.bc = b.bc;
-               this.ap = bc.getAnnotationProvider();
-               this.name = b.name;
-               this.rawTypeMeta = b.rawTypeMeta;
-               this.typeMeta = b.typeMeta;
-               this.properties = b.properties;
-               this.swap = b.swap;
-               this.beanRegistry = b.beanRegistry;
-               this.overrideValue = b.overrideValue;
-               this.delegateFor = b.delegateFor;
-               this.isDyna = b.isDyna;
-               this.isDynaGetterMap = b.isDynaGetterMap;
-               this.canRead = b.canRead;
-               this.canWrite = b.canWrite;
-               this.readOnly = b.readOnly;
-               this.writeOnly = b.writeOnly;
-               this.hashCode = HashCode.of(beanMeta, name);
+               field = b.field;
+               innerField = b.innerField;
+               getter = b.getter;
+               setter = b.setter;
+               extraKeys = b.extraKeys;
+               isUri = b.isUri;
+               beanMeta = b.beanMeta;
+               bc = b.bc;
+               ap = bc.getAnnotationProvider();
+               name = b.name;
+               rawTypeMeta = b.rawTypeMeta;
+               typeMeta = b.typeMeta;
+               properties = b.properties;
+               swap = b.swap;
+               beanRegistry = b.beanRegistry;
+               overrideValue = b.overrideValue;
+               delegateFor = b.delegateFor;
+               isDyna = b.isDyna;
+               isDynaGetterMap = b.isDynaGetterMap;
+               canRead = b.canRead;
+               canWrite = b.canWrite;
+               readOnly = b.readOnly;
+               writeOnly = b.writeOnly;
+               hashCode = HashCode.of(beanMeta, name);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
index 59201fb15d..9a90f29794 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
@@ -373,26 +373,26 @@ public class BeanAnnotation {
 
                Object(BeanAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.dictionary = copyOf(b.dictionary);
-                       this.example = b.example;
-                       this.excludeProperties = b.excludeProperties;
-                       this.findFluentSetters = b.findFluentSetters;
-                       this.implClass = b.implClass;
-                       this.interceptor = b.interceptor;
-                       this.interfaceClass = b.interfaceClass;
-                       this.p = b.p;
-                       this.properties = b.properties;
-                       this.propertyNamer = b.propertyNamer;
-                       this.readOnlyProperties = b.readOnlyProperties;
-                       this.ro = b.ro;
-                       this.sort = b.sort;
-                       this.stopClass = b.stopClass;
-                       this.typeName = b.typeName;
-                       this.typePropertyName = b.typePropertyName;
-                       this.wo = b.wo;
-                       this.writeOnlyProperties = b.writeOnlyProperties;
-                       this.xp = b.xp;
+                       description = copyOf(b.description);
+                       dictionary = copyOf(b.dictionary);
+                       example = b.example;
+                       excludeProperties = b.excludeProperties;
+                       findFluentSetters = b.findFluentSetters;
+                       implClass = b.implClass;
+                       interceptor = b.interceptor;
+                       interfaceClass = b.interfaceClass;
+                       p = b.p;
+                       properties = b.properties;
+                       propertyNamer = b.propertyNamer;
+                       readOnlyProperties = b.readOnlyProperties;
+                       ro = b.ro;
+                       sort = b.sort;
+                       stopClass = b.stopClass;
+                       typeName = b.typeName;
+                       typePropertyName = b.typePropertyName;
+                       wo = b.wo;
+                       writeOnlyProperties = b.writeOnlyProperties;
+                       xp = b.xp;
                }
 
                @Override /* Overridden from Bean */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
index 475290b681..09e8365835 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
@@ -150,8 +150,8 @@ public class BeancAnnotation {
 
                Object(BeancAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.properties = b.properties;
+                       description = copyOf(b.description);
+                       properties = b.properties;
                }
 
                @Override /* Overridden from Beanc */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
index 4a0dfb310d..3b12264eca 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
@@ -254,16 +254,16 @@ public class BeanpAnnotation {
 
                Object(BeanpAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.dictionary = copyOf(b.dictionary);
-                       this.format = b.format;
-                       this.name = b.name;
-                       this.params = copyOf(b.params);
-                       this.properties = b.properties;
-                       this.ro = b.ro;
-                       this.type = b.type;
-                       this.value = b.value;
-                       this.wo = b.wo;
+                       description = copyOf(b.description);
+                       dictionary = copyOf(b.dictionary);
+                       format = b.format;
+                       name = b.name;
+                       params = copyOf(b.params);
+                       properties = b.properties;
+                       ro = b.ro;
+                       type = b.type;
+                       value = b.value;
+                       wo = b.wo;
                }
 
                @Override /* Overridden from Beanp */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
index 461f501ca8..7f43810238 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
@@ -186,8 +186,8 @@ public class ExampleAnnotation {
 
                Object(ExampleAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       value = b.value;
                }
 
                @Override /* Overridden from Example */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExternalDocsAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExternalDocsAnnotation.java
index 1b68545ee6..2f59bbde48 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExternalDocsAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExternalDocsAnnotation.java
@@ -92,8 +92,8 @@ public class ExternalDocsAnnotation {
 
                Object(ExternalDocsAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.url = b.url;
+                       description = copyOf(b.description);
+                       url = b.url;
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ItemsAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ItemsAnnotation.java
index 5da32f33d7..9042993223 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ItemsAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ItemsAnnotation.java
@@ -458,41 +458,41 @@ public class ItemsAnnotation {
 
                Object(ItemsAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.$ref = b.$ref;
-                       this._default = copyOf(b._default);
-                       this._enum = copyOf(b._enum);
-                       this.cf = b.cf;
-                       this.collectionFormat = b.collectionFormat;
-                       this.df = copyOf(b.df);
-                       this.e = copyOf(b.e);
-                       this.emax = b.emax;
-                       this.emin = b.emin;
-                       this.exclusiveMaximum = b.exclusiveMaximum;
-                       this.exclusiveMinimum = b.exclusiveMinimum;
-                       this.f = b.f;
-                       this.format = b.format;
-                       this.items = b.items;
-                       this.max = b.max;
-                       this.maxi = b.maxi;
-                       this.maximum = b.maximum;
-                       this.maxItems = b.maxItems;
-                       this.maxl = b.maxl;
-                       this.maxLength = b.maxLength;
-                       this.min = b.min;
-                       this.mini = b.mini;
-                       this.minimum = b.minimum;
-                       this.minItems = b.minItems;
-                       this.minl = b.minl;
-                       this.minLength = b.minLength;
-                       this.mo = b.mo;
-                       this.multipleOf = b.multipleOf;
-                       this.p = b.p;
-                       this.pattern = b.pattern;
-                       this.t = b.t;
-                       this.type = b.type;
-                       this.ui = b.ui;
-                       this.uniqueItems = b.uniqueItems;
+                       description = copyOf(b.description);
+                       $ref = b.$ref;
+                       _default = copyOf(b._default);
+                       _enum = copyOf(b._enum);
+                       cf = b.cf;
+                       collectionFormat = b.collectionFormat;
+                       df = copyOf(b.df);
+                       e = copyOf(b.e);
+                       emax = b.emax;
+                       emin = b.emin;
+                       exclusiveMaximum = b.exclusiveMaximum;
+                       exclusiveMinimum = b.exclusiveMinimum;
+                       f = b.f;
+                       format = b.format;
+                       items = b.items;
+                       max = b.max;
+                       maxi = b.maxi;
+                       maximum = b.maximum;
+                       maxItems = b.maxItems;
+                       maxl = b.maxl;
+                       maxLength = b.maxLength;
+                       min = b.min;
+                       mini = b.mini;
+                       minimum = b.minimum;
+                       minItems = b.minItems;
+                       minl = b.minl;
+                       minLength = b.minLength;
+                       mo = b.mo;
+                       multipleOf = b.multipleOf;
+                       p = b.p;
+                       pattern = b.pattern;
+                       t = b.t;
+                       type = b.type;
+                       ui = b.ui;
+                       uniqueItems = b.uniqueItems;
                }
 
                @Override /* Overridden from Items */
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 95df39796f..b9d99d9073 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
@@ -174,9 +174,9 @@ public class MarshalledAnnotation {
 
                Object(MarshalledAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.example = b.example;
-                       this.implClass = b.implClass;
+                       description = copyOf(b.description);
+                       example = b.example;
+                       implClass = b.implClass;
                }
 
                @Override /* Overridden from Marshalled */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
index 42439482cc..18f38bf657 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaAnnotation.java
@@ -1006,81 +1006,80 @@ public class SchemaAnnotation {
 
                Object(SchemaAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.$ref = b.$ref;
-                       this._default = copyOf(b._default);
-                       this._enum = copyOf(b._enum);
-                       this.additionalProperties = 
copyOf(b.additionalProperties);
-                       this.allOf = copyOf(b.allOf);
-                       this.aev = b.aev;
-                       this.allowEmptyValue = b.allowEmptyValue;
-                       this.cf = b.cf;
-                       this.collectionFormat = b.collectionFormat;
-                       this.d = copyOf(b.d);
-                       this.df = copyOf(b.df);
-                       this.discriminator = b.discriminator;
-                       this.e = copyOf(b.e);
-                       this.emax = b.emax;
-                       this.emin = b.emin;
-                       this.exclusiveMaximum = b.exclusiveMaximum;
-                       this.exclusiveMinimum = b.exclusiveMinimum;
-                       this.externalDocs = b.externalDocs;
-                       this.f = b.f;
-                       this.format = b.format;
-                       this.ignore = b.ignore;
-                       this.items = b.items;
-                       this.max = b.max;
-                       this.maxi = b.maxi;
-                       this.maximum = b.maximum;
-                       this.maxItems = b.maxItems;
-                       this.maxl = b.maxl;
-                       this.maxLength = b.maxLength;
-                       this.maxp = b.maxp;
-                       this.maxProperties = b.maxProperties;
-                       this.min = b.min;
-                       this.mini = b.mini;
-                       this.minimum = b.minimum;
-                       this.minItems = b.minItems;
-                       this.minl = b.minl;
-                       this.minLength = b.minLength;
-                       this.minp = b.minp;
-                       this.minProperties = b.minProperties;
-                       this.mo = b.mo;
-                       this.multipleOf = b.multipleOf;
-                       this.p = b.p;
-                       this.pattern = b.pattern;
-                       this.properties = copyOf(b.properties);
-                       this.r = b.r;
-                       this.readOnly = b.readOnly;
-                       this.required = b.required;
-                       this.ro = b.ro;
-                       this.sie = b.sie;
-                       this.skipIfEmpty = b.skipIfEmpty;
-                       this.t = b.t;
-                       this.title = b.title;
-                       this.type = b.type;
-                       this.ui = b.ui;
-                       this.uniqueItems = b.uniqueItems;
-                       this.xml = copyOf(b.xml);
-                       // JSON Schema Draft 2020-12 fields
-                       this.deprecatedProperty = b.deprecatedProperty;
-                       this.$id = b.$id;
-                       this.contentMediaType = b.contentMediaType;
-                       this.contentEncoding = b.contentEncoding;
-                       this.exclusiveMaximumValue = b.exclusiveMaximumValue;
-                       this.exclusiveMinimumValue = b.exclusiveMinimumValue;
-                       this._const = copyOf(b._const);
-                       this.examples = copyOf(b.examples);
-                       this.$comment = copyOf(b.$comment);
-                       this.prefixItems = copyOf(b.prefixItems);
-                       this.unevaluatedItems = copyOf(b.unevaluatedItems);
-                       this.unevaluatedProperties = 
copyOf(b.unevaluatedProperties);
-                       this.dependentSchemas = copyOf(b.dependentSchemas);
-                       this.dependentRequired = copyOf(b.dependentRequired);
-                       this._if = copyOf(b._if);
-                       this._then = copyOf(b._then);
-                       this._else = copyOf(b._else);
-                       this.$defs = copyOf(b.$defs);
+                       description = copyOf(b.description);
+                       $ref = b.$ref;
+                       _default = copyOf(b._default);
+                       _enum = copyOf(b._enum);
+                       additionalProperties = copyOf(b.additionalProperties);
+                       allOf = copyOf(b.allOf);
+                       aev = b.aev;
+                       allowEmptyValue = b.allowEmptyValue;
+                       cf = b.cf;
+                       collectionFormat = b.collectionFormat;
+                       d = copyOf(b.d);
+                       df = copyOf(b.df);
+                       discriminator = b.discriminator;
+                       e = copyOf(b.e);
+                       emax = b.emax;
+                       emin = b.emin;
+                       exclusiveMaximum = b.exclusiveMaximum;
+                       exclusiveMinimum = b.exclusiveMinimum;
+                       externalDocs = b.externalDocs;
+                       f = b.f;
+                       format = b.format;
+                       ignore = b.ignore;
+                       items = b.items;
+                       max = b.max;
+                       maxi = b.maxi;
+                       maximum = b.maximum;
+                       maxItems = b.maxItems;
+                       maxl = b.maxl;
+                       maxLength = b.maxLength;
+                       maxp = b.maxp;
+                       maxProperties = b.maxProperties;
+                       min = b.min;
+                       mini = b.mini;
+                       minimum = b.minimum;
+                       minItems = b.minItems;
+                       minl = b.minl;
+                       minLength = b.minLength;
+                       minp = b.minp;
+                       minProperties = b.minProperties;
+                       mo = b.mo;
+                       multipleOf = b.multipleOf;
+                       p = b.p;
+                       pattern = b.pattern;
+                       properties = copyOf(b.properties);
+                       r = b.r;
+                       readOnly = b.readOnly;
+                       required = b.required;
+                       ro = b.ro;
+                       sie = b.sie;
+                       skipIfEmpty = b.skipIfEmpty;
+                       t = b.t;
+                       title = b.title;
+                       type = b.type;
+                       ui = b.ui;
+                       uniqueItems = b.uniqueItems;
+                       xml = copyOf(b.xml);
+                       deprecatedProperty = b.deprecatedProperty;
+                       $id = b.$id;
+                       contentMediaType = b.contentMediaType;
+                       contentEncoding = b.contentEncoding;
+                       exclusiveMaximumValue = b.exclusiveMaximumValue;
+                       exclusiveMinimumValue = b.exclusiveMinimumValue;
+                       _const = copyOf(b._const);
+                       examples = copyOf(b.examples);
+                       $comment = copyOf(b.$comment);
+                       prefixItems = copyOf(b.prefixItems);
+                       unevaluatedItems = copyOf(b.unevaluatedItems);
+                       unevaluatedProperties = copyOf(b.unevaluatedProperties);
+                       dependentSchemas = copyOf(b.dependentSchemas);
+                       dependentRequired = copyOf(b.dependentRequired);
+                       _if = copyOf(b._if);
+                       _then = copyOf(b._then);
+                       _else = copyOf(b._else);
+                       $defs = copyOf(b.$defs);
                }
 
                @Override /* Overridden from Schema */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
index bbf65cb50c..910d197bf3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SubItemsAnnotation.java
@@ -462,41 +462,41 @@ public class SubItemsAnnotation {
 
                Object(SubItemsAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.$ref = b.$ref;
-                       this._default = copyOf(b._default);
-                       this._enum = copyOf(b._enum);
-                       this.cf = b.cf;
-                       this.collectionFormat = b.collectionFormat;
-                       this.df = copyOf(b.df);
-                       this.e = copyOf(b.e);
-                       this.emax = b.emax;
-                       this.emin = b.emin;
-                       this.exclusiveMaximum = b.exclusiveMaximum;
-                       this.exclusiveMinimum = b.exclusiveMinimum;
-                       this.f = b.f;
-                       this.format = b.format;
-                       this.items = copyOf(b.items);
-                       this.max = b.max;
-                       this.maxi = b.maxi;
-                       this.maximum = b.maximum;
-                       this.maxItems = b.maxItems;
-                       this.maxl = b.maxl;
-                       this.maxLength = b.maxLength;
-                       this.min = b.min;
-                       this.mini = b.mini;
-                       this.minimum = b.minimum;
-                       this.minItems = b.minItems;
-                       this.minl = b.minl;
-                       this.minLength = b.minLength;
-                       this.mo = b.mo;
-                       this.multipleOf = b.multipleOf;
-                       this.p = b.p;
-                       this.pattern = b.pattern;
-                       this.t = b.t;
-                       this.type = b.type;
-                       this.ui = b.ui;
-                       this.uniqueItems = b.uniqueItems;
+                       description = copyOf(b.description);
+                       $ref = b.$ref;
+                       _default = copyOf(b._default);
+                       _enum = copyOf(b._enum);
+                       cf = b.cf;
+                       collectionFormat = b.collectionFormat;
+                       df = copyOf(b.df);
+                       e = copyOf(b.e);
+                       emax = b.emax;
+                       emin = b.emin;
+                       exclusiveMaximum = b.exclusiveMaximum;
+                       exclusiveMinimum = b.exclusiveMinimum;
+                       f = b.f;
+                       format = b.format;
+                       items = copyOf(b.items);
+                       max = b.max;
+                       maxi = b.maxi;
+                       maximum = b.maximum;
+                       maxItems = b.maxItems;
+                       maxl = b.maxl;
+                       maxLength = b.maxLength;
+                       min = b.min;
+                       mini = b.mini;
+                       minimum = b.minimum;
+                       minItems = b.minItems;
+                       minl = b.minl;
+                       minLength = b.minLength;
+                       mo = b.mo;
+                       multipleOf = b.multipleOf;
+                       p = b.p;
+                       pattern = b.pattern;
+                       t = b.t;
+                       type = b.type;
+                       ui = b.ui;
+                       uniqueItems = b.uniqueItems;
                }
 
                @Override /* Overridden from SubItems */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
index 8f87115392..f2a70e97db 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
@@ -224,11 +224,11 @@ public class SwapAnnotation {
 
                Object(SwapAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.impl = b.impl;
-                       this.mediaTypes = copyOf(b.mediaTypes);
-                       this.template = b.template;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       impl = b.impl;
+                       mediaTypes = copyOf(b.mediaTypes);
+                       template = b.template;
+                       value = b.value;
                }
 
                @Override /* Overridden from Swap */
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 b839ae0aac..d70eb78f33 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
@@ -89,13 +89,13 @@ public class HtmlBeanPropertyMeta extends 
ExtendedBeanPropertyMeta {
                if (nn(bpm.getSetter()))
                        ap.find(Html.class, info(bpm.getSetter())).forEach(x -> 
b.findHtmlInfo(x.inner()));
 
-               this.format = b.format;
-               this.noTables = b.noTables;
-               this.noTableHeaders = b.noTableHeaders;
-               this.render = b.render.orElse(null);
-               this.link = b.link;
-               this.anchorText = b.anchorText;
-               this.style = b.style;
+               format = b.format;
+               noTables = b.noTables;
+               noTableHeaders = b.noTableHeaders;
+               render = b.render.orElse(null);
+               link = b.link;
+               anchorText = b.anchorText;
+               style = b.style;
        }
 
        private HtmlBeanPropertyMeta() {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
index 0d0c50c5f9..a5ca9ef0e1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
@@ -263,14 +263,14 @@ public class HtmlAnnotation {
 
                Object(HtmlAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.anchorText = b.anchorText;
-                       this.format = b.format;
-                       this.link = b.link;
-                       this.noTableHeaders = b.noTableHeaders;
-                       this.noTables = b.noTables;
-                       this.render = b.render;
-                       this.style = b.style;
+                       description = copyOf(b.description);
+                       anchorText = b.anchorText;
+                       format = b.format;
+                       link = b.link;
+                       noTableHeaders = b.noTableHeaders;
+                       noTables = b.noTables;
+                       render = b.render;
+                       style = b.style;
                }
 
                @Override /* Overridden from Html */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
index 730d9ae0fa..6cce858a54 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
@@ -175,9 +175,9 @@ public class HtmlLinkAnnotation {
 
                Object(HtmlLinkAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.nameProperty = b.nameProperty;
-                       this.uriProperty = b.uriProperty;
+                       description = copyOf(b.description);
+                       nameProperty = b.nameProperty;
+                       uriProperty = b.uriProperty;
                }
 
                @Override /* Overridden from HtmlLink */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContactAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContactAnnotation.java
index 24265a257b..a854a3ad69 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContactAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContactAnnotation.java
@@ -108,10 +108,10 @@ public class ContactAnnotation {
 
                Object(ContactAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.email = b.email;
-                       this.name = b.name;
-                       this.url = b.url;
+                       description = copyOf(b.description);
+                       email = b.email;
+                       name = b.name;
+                       url = b.url;
                }
 
                @Override /* Overridden from Contact */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContentAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContentAnnotation.java
index e5f15f46fc..f9caa1a81a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContentAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ContentAnnotation.java
@@ -188,9 +188,9 @@ public class ContentAnnotation {
 
                Object(ContentAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.def = b.def;
-                       this.schema = b.schema;
+                       description = copyOf(b.description);
+                       def = b.def;
+                       schema = b.schema;
                }
 
                @Override /* Overridden from Content */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
index 3c57bd10b5..a0ed5ce38e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
@@ -255,13 +255,13 @@ public class FormDataAnnotation {
 
                Object(FormDataAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.def = b.def;
-                       this.name = b.name;
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       def = b.def;
+                       name = b.name;
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
+                       value = b.value;
                }
 
                @Override /* Overridden from FormData */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormDataAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormDataAnnotation.java
index 24667864f6..d96653f46d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormDataAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormDataAnnotation.java
@@ -97,9 +97,9 @@ public class HasFormDataAnnotation {
 
                Object(HasFormDataAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.name = b.name;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       name = b.name;
+                       value = b.value;
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQueryAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQueryAnnotation.java
index dc07ad0d84..ed2e368351 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQueryAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQueryAnnotation.java
@@ -97,9 +97,9 @@ public class HasQueryAnnotation {
 
                Object(HasQueryAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.name = b.name;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       name = b.name;
+                       value = b.value;
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
index 83469886f0..49441b0c93 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
@@ -255,13 +255,13 @@ public class HeaderAnnotation {
 
                Object(HeaderAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.def = b.def;
-                       this.name = b.name;
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       def = b.def;
+                       name = b.name;
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
+                       value = b.value;
                }
 
                @Override /* Overridden from Header */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/LicenseAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/LicenseAnnotation.java
index 03fa0df9df..8599f4fab7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/LicenseAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/LicenseAnnotation.java
@@ -97,9 +97,9 @@ public class LicenseAnnotation {
 
                Object(LicenseAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.name = b.name;
-                       this.url = b.url;
+                       description = copyOf(b.description);
+                       name = b.name;
+                       url = b.url;
                }
 
                @Override /* Overridden from License */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
index 93e3f88754..be35af4186 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
@@ -256,13 +256,13 @@ public class PathAnnotation {
 
                Object(PathAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.def = b.def;
-                       this.name = b.name;
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       def = b.def;
+                       name = b.name;
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
+                       value = b.value;
                }
 
                @Override /* Overridden from Path */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathRemainderAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathRemainderAnnotation.java
index edb968d1ef..06a3a42dcf 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathRemainderAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathRemainderAnnotation.java
@@ -238,11 +238,11 @@ public class PathRemainderAnnotation {
 
                Object(PathRemainderAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.def = b.def;
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
+                       description = copyOf(b.description);
+                       def = b.def;
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
                }
 
                @Override /* Overridden from PathRemainder */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
index 711af52eed..f66e67687b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
@@ -255,13 +255,13 @@ public class QueryAnnotation {
 
                Object(QueryAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.name = b.name;
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
-                       this.value = b.value;
-                       this.def = b.def;
+                       description = copyOf(b.description);
+                       name = b.name;
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
+                       value = b.value;
+                       def = b.def;
                }
 
                @Override /* Overridden from Query */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
index 3116181f00..e78c4f2ad2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
@@ -175,9 +175,9 @@ public class RequestAnnotation {
 
                Object(RequestAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.parser = b.parser;
-                       this.serializer = b.serializer;
+                       description = copyOf(b.description);
+                       parser = b.parser;
+                       serializer = b.serializer;
                }
 
                @Override /* Overridden from Request */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
index b079047dec..f9433fb1e3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
@@ -228,12 +228,12 @@ public class ResponseAnnotation {
 
                Object(ResponseAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.examples = copyOf(b.examples);
-                       this.headers = copyOf(b.headers);
-                       this.parser = b.parser;
-                       this.schema = b.schema;
-                       this.serializer = b.serializer;
+                       description = copyOf(b.description);
+                       examples = copyOf(b.examples);
+                       headers = copyOf(b.headers);
+                       parser = b.parser;
+                       schema = b.schema;
+                       serializer = b.serializer;
                }
 
                @Override /* Overridden from Response */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
index 84930b3463..c6bd87c4da 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
@@ -100,9 +100,9 @@ public class TagAnnotation {
 
                Object(TagAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.externalDocs = b.externalDocs;
-                       this.name = b.name;
+                       description = copyOf(b.description);
+                       externalDocs = b.externalDocs;
+                       name = b.name;
                }
 
                @Override /* Overridden from Tag */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 516184f9f4..3d019fef78 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -3617,39 +3617,39 @@ public class HttpPartSchema {
        final Number exclusiveMaximumValue, exclusiveMinimumValue;
 
        HttpPartSchema(Builder b) {
-               this.name = b.name;
-               this._default = b._default;
-               this._enum = copy(b._enum);
-               this.properties = build(b.properties, b.noValidate);
-               this.allowEmptyValue = resolve(b.allowEmptyValue);
-               this.exclusiveMaximum = resolve(b.exclusiveMaximum);
-               this.exclusiveMinimum = resolve(b.exclusiveMinimum);
-               this.required = resolve(b.required);
-               this.uniqueItems = resolve(b.uniqueItems);
-               this.skipIfEmpty = resolve(b.skipIfEmpty);
-               this.collectionFormat = b.collectionFormat;
-               this.type = b.type;
-               this.format = b.format;
-               this.pattern = b.pattern;
-               this.items = build(b.items, b.noValidate);
-               this.additionalProperties = build(b.additionalProperties, 
b.noValidate);
-               this.maximum = b.maximum;
-               this.minimum = b.minimum;
-               this.multipleOf = b.multipleOf;
-               this.maxItems = b.maxItems;
-               this.maxLength = b.maxLength;
-               this.maxProperties = b.maxProperties;
-               this.minItems = b.minItems;
-               this.minLength = b.minLength;
-               this.minProperties = b.minProperties;
-               this.parser = b.parser;
-               this.serializer = b.serializer;
+               name = b.name;
+               _default = b._default;
+               _enum = copy(b._enum);
+               properties = build(b.properties, b.noValidate);
+               allowEmptyValue = resolve(b.allowEmptyValue);
+               exclusiveMaximum = resolve(b.exclusiveMaximum);
+               exclusiveMinimum = resolve(b.exclusiveMinimum);
+               required = resolve(b.required);
+               uniqueItems = resolve(b.uniqueItems);
+               skipIfEmpty = resolve(b.skipIfEmpty);
+               collectionFormat = b.collectionFormat;
+               type = b.type;
+               format = b.format;
+               pattern = b.pattern;
+               items = build(b.items, b.noValidate);
+               additionalProperties = build(b.additionalProperties, 
b.noValidate);
+               maximum = b.maximum;
+               minimum = b.minimum;
+               multipleOf = b.multipleOf;
+               maxItems = b.maxItems;
+               maxLength = b.maxLength;
+               maxProperties = b.maxProperties;
+               minItems = b.minItems;
+               minLength = b.minLength;
+               minProperties = b.minProperties;
+               parser = b.parser;
+               serializer = b.serializer;
                // JSON Schema Draft 2020-12 fields
-               this._const = b._const;
-               this.examples = b.examples;
-               this.deprecated = resolve(b.deprecated);
-               this.exclusiveMaximumValue = b.exclusiveMaximumValue;
-               this.exclusiveMinimumValue = b.exclusiveMinimumValue;
+               _const = b._const;
+               examples = b.examples;
+               deprecated = resolve(b.deprecated);
+               exclusiveMaximumValue = b.exclusiveMaximumValue;
+               exclusiveMinimumValue = b.exclusiveMinimumValue;
 
                // Calculate parse type
                Class<?> parsedType = Object.class;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
index c710d6e2e0..c848b6db1d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
@@ -136,12 +136,12 @@ public class RequestBeanMeta {
        private final HttpPartParser parser;
 
        RequestBeanMeta(Builder b) {
-               this.cm = b.cm;
-               this.serializer = b.serializer.orElse(null);
-               this.parser = b.parser.orElse(null);
-               Map<String,RequestBeanPropertyMeta> properties = map();
-               b.properties.forEach((k, v) -> properties.put(k, 
v.build(serializer, parser)));
-               this.properties = u(properties);
+               cm = b.cm;
+               serializer = b.serializer.orElse(null);
+               parser = b.parser.orElse(null);
+               Map<String,RequestBeanPropertyMeta> pm = map();
+               b.properties.forEach((k, v) -> pm.put(k, v.build(serializer, 
parser)));
+               properties = u(pm);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
index 019ff246b3..e52a410ab6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
@@ -81,9 +81,9 @@ public class RequestBeanPropertyMeta {
        private final HttpPartSchema schema;
 
        RequestBeanPropertyMeta(Builder b, HttpPartSerializer serializer, 
HttpPartParser parser) {
-               this.partType = b.partType;
-               this.schema = b.schema;
-               this.getter = b.getter;
+               partType = b.partType;
+               schema = b.schema;
+               getter = b.getter;
                this.serializer = opt(schema.getSerializer() == null ? 
serializer : 
BeanCreator.of(HttpPartSerializer.class).type(schema.getSerializer()).run());
                this.parser = schema.getParser() == null ? parser : 
BeanCreator.of(HttpPartParser.class).type(schema.getParser()).run();
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
index 36034d0a7b..82e6fb247f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
@@ -181,11 +181,11 @@ public class ResponseBeanMeta {
        private final HttpPartSchema schema;
 
        ResponseBeanMeta(Builder b) {
-               this.cm = b.cm;
-               this.code = b.code;
-               this.partSerializer = opt(b.partSerializer).map(x -> 
HttpPartSerializer.creator().type(x).apply(b.annotations).create());
-               this.partParser = opt(b.partParser).map(x -> 
HttpPartParser.creator().type(x).apply(b.annotations).create());
-               this.schema = b.schema.build();
+               cm = b.cm;
+               code = b.code;
+               partSerializer = opt(b.partSerializer).map(x -> 
HttpPartSerializer.creator().type(x).apply(b.annotations).create());
+               partParser = opt(b.partParser).map(x -> 
HttpPartParser.creator().type(x).apply(b.annotations).create());
+               schema = b.schema.build();
 
                Map<String,ResponseBeanPropertyMeta> properties = map();
 
@@ -197,8 +197,8 @@ public class ResponseBeanMeta {
                });
                this.headerMethods = u(hm);
 
-               this.contentMethod = b.contentMethod == null ? null : 
b.contentMethod.schema(schema).build(partSerializer, partParser);
-               this.statusMethod = b.statusMethod == null ? null : 
b.statusMethod.build(opte(), opte());
+               contentMethod = b.contentMethod == null ? null : 
b.contentMethod.schema(schema).build(partSerializer, partParser);
+               statusMethod = b.statusMethod == null ? null : 
b.statusMethod.build(opte(), opte());
 
                if (nn(contentMethod))
                        properties.put(contentMethod.getGetter().getName(), 
contentMethod);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
index 70ab0dae92..18edf126a9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
@@ -82,9 +82,9 @@ public class ResponseBeanPropertyMeta {
        private final HttpPartSchema schema;
 
        ResponseBeanPropertyMeta(Builder b, Optional<HttpPartSerializer> 
serializer, Optional<HttpPartParser> parser) {
-               this.partType = b.partType;
-               this.schema = b.schema;
-               this.getter = b.getter;
+               partType = b.partType;
+               schema = b.schema;
+               getter = b.getter;
                this.serializer = serializer.isPresent() ? serializer : 
BeanCreator.of(HttpPartSerializer.class).type(schema.getSerializer()).execute();
                this.parser = parser.isPresent() ? parser : 
BeanCreator.of(HttpPartParser.class).type(schema.getParser()).execute();
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
index c5b7de7b8c..ecb6be2cb8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
@@ -189,8 +189,8 @@ public class JsonAnnotation {
 
                Object(JsonAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.wrapperAttr = b.wrapperAttr;
+                       description = copyOf(b.description);
+                       wrapperAttr = b.wrapperAttr;
                }
 
                @Override /* Overridden from Json */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
index c549462425..22b28a7ac0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
@@ -189,8 +189,8 @@ public class UrlEncodingAnnotation {
 
                Object(UrlEncodingAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.expandedParams = b.expandedParams;
+                       description = copyOf(b.description);
+                       expandedParams = b.expandedParams;
                }
 
                @Override /* Overridden from UrlEncoding */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
index cf39308892..8ec5f26b86 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
@@ -224,11 +224,11 @@ public class XmlAnnotation {
 
                Object(XmlAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.childName = b.childName;
-                       this.format = b.format;
-                       this.namespace = b.namespace;
-                       this.prefix = b.prefix;
+                       description = copyOf(b.description);
+                       childName = b.childName;
+                       format = b.format;
+                       namespace = b.namespace;
+                       prefix = b.prefix;
                }
 
                @Override /* Overridden from Xml */
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationMeta.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationMeta.java
index decf0e1527..a137c20817 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationMeta.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteOperationMeta.java
@@ -213,21 +213,21 @@ public class RemoteOperationMeta {
         */
        public RemoteOperationMeta(String parentPath, Method m, String 
defaultMethod) {
                var b = new Builder(parentPath, m, defaultMethod);
-               this.httpMethod = b.httpMethod;
-               this.fullPath = b.fullPath;
-               this.pathArgs = b.pathArgs.toArray(new 
RemoteOperationArg[b.pathArgs.size()]);
-               this.queryArgs = b.queryArgs.toArray(new 
RemoteOperationArg[b.queryArgs.size()]);
-               this.formDataArgs = b.formDataArgs.toArray(new 
RemoteOperationArg[b.formDataArgs.size()]);
-               this.headerArgs = b.headerArgs.toArray(new 
RemoteOperationArg[b.headerArgs.size()]);
-               this.requestArgs = b.requestArgs.toArray(new 
RemoteOperationBeanArg[b.requestArgs.size()]);
-               this.contentArg = b.bodyArg;
-               this.methodReturn = b.methodReturn;
-               this.exceptions = m.getExceptionTypes();
-               this.pathDefaults = Collections.unmodifiableMap(b.pathDefaults);
-               this.queryDefaults = 
Collections.unmodifiableMap(b.queryDefaults);
-               this.headerDefaults = 
Collections.unmodifiableMap(b.headerDefaults);
-               this.formDataDefaults = 
Collections.unmodifiableMap(b.formDataDefaults);
-               this.contentDefault = b.contentDefault;
+               httpMethod = b.httpMethod;
+               fullPath = b.fullPath;
+               pathArgs = b.pathArgs.toArray(new 
RemoteOperationArg[b.pathArgs.size()]);
+               queryArgs = b.queryArgs.toArray(new 
RemoteOperationArg[b.queryArgs.size()]);
+               formDataArgs = b.formDataArgs.toArray(new 
RemoteOperationArg[b.formDataArgs.size()]);
+               headerArgs = b.headerArgs.toArray(new 
RemoteOperationArg[b.headerArgs.size()]);
+               requestArgs = b.requestArgs.toArray(new 
RemoteOperationBeanArg[b.requestArgs.size()]);
+               contentArg = b.bodyArg;
+               methodReturn = b.methodReturn;
+               exceptions = m.getExceptionTypes();
+               pathDefaults = Collections.unmodifiableMap(b.pathDefaults);
+               queryDefaults = Collections.unmodifiableMap(b.queryDefaults);
+               headerDefaults = Collections.unmodifiableMap(b.headerDefaults);
+               formDataDefaults = 
Collections.unmodifiableMap(b.formDataDefaults);
+               contentDefault = b.contentDefault;
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/OpSwaggerAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/OpSwaggerAnnotation.java
index f83fb9896d..30aa2f51b1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/OpSwaggerAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/OpSwaggerAnnotation.java
@@ -204,18 +204,18 @@ public class OpSwaggerAnnotation {
 
                Object(OpSwaggerAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.consumes = copyOf(b.consumes);
-                       this.deprecated = b.deprecated;
-                       this.externalDocs = b.externalDocs;
-                       this.operationId = b.operationId;
-                       this.parameters = copyOf(b.parameters);
-                       this.produces = copyOf(b.produces);
-                       this.responses = copyOf(b.responses);
-                       this.schemes = copyOf(b.schemes);
-                       this.summary = copyOf(b.summary);
-                       this.tags = copyOf(b.tags);
-                       this.value = copyOf(b.value);
+                       description = copyOf(b.description);
+                       consumes = copyOf(b.consumes);
+                       deprecated = b.deprecated;
+                       externalDocs = b.externalDocs;
+                       operationId = b.operationId;
+                       parameters = copyOf(b.parameters);
+                       produces = copyOf(b.produces);
+                       responses = copyOf(b.responses);
+                       schemes = copyOf(b.schemes);
+                       summary = copyOf(b.summary);
+                       tags = copyOf(b.tags);
+                       value = copyOf(b.value);
                }
 
                @Override /* Overridden from OpSwagger */
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 c52cbd72f5..60d5f8411f 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
@@ -770,57 +770,57 @@ public class RestAnnotation {
 
                Object(RestAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.disableContentParam = b.disableContentParam;
-                       this.allowedHeaderParams = b.allowedHeaderParams;
-                       this.allowedMethodHeaders = b.allowedMethodHeaders;
-                       this.allowedMethodParams = b.allowedMethodParams;
-                       this.beanStore = b.beanStore;
-                       this.callLogger = b.callLogger;
-                       this.children = copyOf(b.children);
-                       this.clientVersionHeader = b.clientVersionHeader;
-                       this.config = b.config;
-                       this.consumes = copyOf(b.consumes);
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.debugEnablement = b.debugEnablement;
-                       this.debugOn = b.debugOn;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultContentType = b.defaultContentType;
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponserHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.maxInput = b.maxInput;
-                       this.messages = b.messages;
-                       this.parsers = copyOf(b.parsers);
-                       this.partParser = b.partParser;
-                       this.partSerializer = b.partSerializer;
-                       this.path = b.path;
-                       this.produces = copyOf(b.produces);
-                       this.renderResponseStackTraces = 
b.renderResponseStackTraces;
-                       this.responseProcessors = copyOf(b.responseProcessors);
-                       this.restChildrenClass = b.restChildrenClass;
-                       this.restOperationsClass = b.restOperationsClass;
-                       this.restOpArgs = copyOf(b.restOpArgs);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.siteName = b.siteName;
-                       this.staticFiles = b.staticFiles;
-                       this.swagger = b.swagger;
-                       this.swaggerProvider = b.swaggerProvider;
-                       this.title = copyOf(b.title);
-                       this.uriAuthority = b.uriAuthority;
-                       this.uriContext = b.uriContext;
-                       this.uriRelativity = b.uriRelativity;
-                       this.uriResolution = b.uriResolution;
-                       this.queryParams = copyOf(b.queryParams);
-                       this.headerParams = copyOf(b.headerParams);
-                       this.pathParams = copyOf(b.pathParams);
-                       this.formDataParams = copyOf(b.formDataParams);
+                       description = copyOf(b.description);
+                       disableContentParam = b.disableContentParam;
+                       allowedHeaderParams = b.allowedHeaderParams;
+                       allowedMethodHeaders = b.allowedMethodHeaders;
+                       allowedMethodParams = b.allowedMethodParams;
+                       beanStore = b.beanStore;
+                       callLogger = b.callLogger;
+                       children = copyOf(b.children);
+                       clientVersionHeader = b.clientVersionHeader;
+                       config = b.config;
+                       consumes = copyOf(b.consumes);
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       debugEnablement = b.debugEnablement;
+                       debugOn = b.debugOn;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultContentType = b.defaultContentType;
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponserHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       maxInput = b.maxInput;
+                       messages = b.messages;
+                       parsers = copyOf(b.parsers);
+                       partParser = b.partParser;
+                       partSerializer = b.partSerializer;
+                       path = b.path;
+                       produces = copyOf(b.produces);
+                       renderResponseStackTraces = b.renderResponseStackTraces;
+                       responseProcessors = copyOf(b.responseProcessors);
+                       restChildrenClass = b.restChildrenClass;
+                       restOperationsClass = b.restOperationsClass;
+                       restOpArgs = copyOf(b.restOpArgs);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       siteName = b.siteName;
+                       staticFiles = b.staticFiles;
+                       swagger = b.swagger;
+                       swaggerProvider = b.swaggerProvider;
+                       title = copyOf(b.title);
+                       uriAuthority = b.uriAuthority;
+                       uriContext = b.uriContext;
+                       uriRelativity = b.uriRelativity;
+                       uriResolution = b.uriResolution;
+                       queryParams = copyOf(b.queryParams);
+                       headerParams = copyOf(b.headerParams);
+                       pathParams = copyOf(b.pathParams);
+                       formDataParams = copyOf(b.formDataParams);
                }
 
                @Override /* Overridden from Rest */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
index 6761c9c639..fd32ae5540 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
@@ -346,24 +346,24 @@ public class RestDeleteAnnotation {
 
                Object(RestDeleteAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.path = copyOf(b.path);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       path = copyOf(b.path);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestDelete */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
index fa881cf73a..3a3f95200c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
@@ -390,27 +390,27 @@ public class RestGetAnnotation {
 
                Object(RestGetAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestGet */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInjectAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInjectAnnotation.java
index 0301229b62..33ffbf0abb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInjectAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInjectAnnotation.java
@@ -148,10 +148,10 @@ public class RestInjectAnnotation {
 
                Object(RestInjectAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.name = b.name;
-                       this.value = b.value;
-                       this.methodScope = b.methodScope;
+                       description = copyOf(b.description);
+                       name = b.name;
+                       value = b.value;
+                       methodScope = b.methodScope;
                }
 
                @Override /* Overridden from RestInject */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
index 81e36f0e38..ce6de42a4a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
@@ -478,33 +478,33 @@ public class RestOpAnnotation {
 
                Object(RestOpAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.consumes = copyOf(b.consumes);
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultContentType = b.defaultContentType;
-                       this.defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.maxInput = b.maxInput;
-                       this.method = b.method;
-                       this.parsers = copyOf(b.parsers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       consumes = copyOf(b.consumes);
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultContentType = b.defaultContentType;
+                       defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       maxInput = b.maxInput;
+                       method = b.method;
+                       parsers = copyOf(b.parsers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestOp */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
index 450848b751..c57ce4420b 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
@@ -390,27 +390,27 @@ public class RestOptionsAnnotation {
 
                Object(RestOptionsAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestOptions */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
index 9742485639..8b3a56f3db 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
@@ -452,32 +452,32 @@ public class RestPatchAnnotation {
 
                Object(RestPatchAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.consumes = copyOf(b.consumes);
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultContentType = b.defaultContentType;
-                       this.defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.maxInput = b.maxInput;
-                       this.parsers = copyOf(b.parsers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       consumes = copyOf(b.consumes);
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultContentType = b.defaultContentType;
+                       defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       maxInput = b.maxInput;
+                       parsers = copyOf(b.parsers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestPatch */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
index 49a470772c..b611b37dd4 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
@@ -453,32 +453,32 @@ public class RestPostAnnotation {
 
                Object(RestPostAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.consumes = copyOf(b.consumes);
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultContentType = b.defaultContentType;
-                       this.defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.maxInput = b.maxInput;
-                       this.parsers = copyOf(b.parsers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       consumes = copyOf(b.consumes);
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultContentType = b.defaultContentType;
+                       defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       maxInput = b.maxInput;
+                       parsers = copyOf(b.parsers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestPost */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostInitAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostInitAnnotation.java
index 6a4c95d6a2..13832e9d6e 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostInitAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostInitAnnotation.java
@@ -126,8 +126,8 @@ public class RestPostInitAnnotation {
 
                Object(RestPostInitAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.childFirst = b.childFirst;
+                       description = copyOf(b.description);
+                       childFirst = b.childFirst;
                }
 
                @Override /* Overridden from RestHook */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
index 4204f6e464..bee106ac98 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
@@ -453,32 +453,32 @@ public class RestPutAnnotation {
 
                Object(RestPutAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.clientVersion = b.clientVersion;
-                       this.consumes = copyOf(b.consumes);
-                       this.converters = copyOf(b.converters);
-                       this.debug = b.debug;
-                       this.defaultAccept = b.defaultAccept;
-                       this.defaultCharset = b.defaultCharset;
-                       this.defaultContentType = b.defaultContentType;
-                       this.defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
-                       this.defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
-                       this.defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
-                       this.defaultRequestHeaders = 
copyOf(b.defaultRequestHeaders);
-                       this.defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
-                       this.encoders = copyOf(b.encoders);
-                       this.guards = copyOf(b.guards);
-                       this.matchers = copyOf(b.matchers);
-                       this.maxInput = b.maxInput;
-                       this.parsers = copyOf(b.parsers);
-                       this.path = copyOf(b.path);
-                       this.produces = copyOf(b.produces);
-                       this.roleGuard = b.roleGuard;
-                       this.rolesDeclared = b.rolesDeclared;
-                       this.serializers = copyOf(b.serializers);
-                       this.summary = b.summary;
-                       this.swagger = b.swagger;
-                       this.value = b.value;
+                       description = copyOf(b.description);
+                       clientVersion = b.clientVersion;
+                       consumes = copyOf(b.consumes);
+                       converters = copyOf(b.converters);
+                       debug = b.debug;
+                       defaultAccept = b.defaultAccept;
+                       defaultCharset = b.defaultCharset;
+                       defaultContentType = b.defaultContentType;
+                       defaultRequestFormData = 
copyOf(b.defaultRequestFormData);
+                       defaultRequestQueryData = 
copyOf(b.defaultRequestQueryData);
+                       defaultRequestAttributes = 
copyOf(b.defaultRequestAttributes);
+                       defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+                       defaultResponseHeaders = 
copyOf(b.defaultResponseHeaders);
+                       encoders = copyOf(b.encoders);
+                       guards = copyOf(b.guards);
+                       matchers = copyOf(b.matchers);
+                       maxInput = b.maxInput;
+                       parsers = copyOf(b.parsers);
+                       path = copyOf(b.path);
+                       produces = copyOf(b.produces);
+                       roleGuard = b.roleGuard;
+                       rolesDeclared = b.rolesDeclared;
+                       serializers = copyOf(b.serializers);
+                       summary = b.summary;
+                       swagger = b.swagger;
+                       value = b.value;
                }
 
                @Override /* Overridden from RestPut */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/SwaggerAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/SwaggerAnnotation.java
index 5daafcd674..5818473ca2 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/SwaggerAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/SwaggerAnnotation.java
@@ -178,15 +178,15 @@ public class SwaggerAnnotation {
 
                Object(SwaggerAnnotation.Builder b) {
                        super(b);
-                       this.description = copyOf(b.description);
-                       this.contact = b.contact;
-                       this.externalDocs = b.externalDocs;
-                       this.license = b.license;
-                       this.tags = copyOf(b.tags);
-                       this.termsOfService = copyOf(b.termsOfService);
-                       this.title = copyOf(b.title);
-                       this.value = copyOf(b.value);
-                       this.version = b.version;
+                       description = copyOf(b.description);
+                       contact = b.contact;
+                       externalDocs = b.externalDocs;
+                       license = b.license;
+                       tags = copyOf(b.tags);
+                       termsOfService = copyOf(b.termsOfService);
+                       title = copyOf(b.title);
+                       value = copyOf(b.value);
+                       version = b.version;
                }
 
                @Override /* Overridden from Swagger */
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 b6a937672e..0f66164c11 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
@@ -321,15 +321,15 @@ public class CallLoggerRule {
         * @param b Builder
         */
        CallLoggerRule(Builder b) {
-               this.statusFilter = b.statusFilter;
-               this.exceptionFilter = b.exceptionFilter;
-               this.requestFilter = b.requestFilter;
-               this.responseFilter = b.responseFilter;
-               this.level = b.level;
-               this.enabled = b.enabled;
-               this.enabledTest = b.enabledTest;
-               this.requestDetail = b.requestDetail;
-               this.responseDetail = b.responseDetail;
+               statusFilter = b.statusFilter;
+               exceptionFilter = b.exceptionFilter;
+               requestFilter = b.requestFilter;
+               responseFilter = b.responseFilter;
+               level = b.level;
+               enabled = b.enabled;
+               enabledTest = b.enabledTest;
+               requestDetail = b.requestDetail;
+               responseDetail = b.responseDetail;
        }
 
        /**
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeansWithBuilders_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeansWithBuilders_Test.java
index 41337fc280..d5a172051c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeansWithBuilders_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeansWithBuilders_Test.java
@@ -137,7 +137,7 @@ class RoundTripBeansWithBuilders_Test extends TestBase {
                private final int f1;
 
                public A(Builder b) {
-                       this.f1 = b.f1;
+                       f1 = b.f1;
                }
 
                public static Builder builder() {
@@ -175,7 +175,7 @@ class RoundTripBeansWithBuilders_Test extends TestBase {
                private final int f1;
 
                public Ac(Builder b) {
-                       this.f1 = b.f1;
+                       f1 = b.f1;
                }
 
                public static Builder builder() {
@@ -211,7 +211,7 @@ class RoundTripBeansWithBuilders_Test extends TestBase {
                private final A f1;
 
                public A2(Builder b) {
-                       this.f1 = b.f1;
+                       f1 = b.f1;
                }
 
                public static Builder builder() {
@@ -273,15 +273,15 @@ class RoundTripBeansWithBuilders_Test extends TestBase {
                private final Map<String,List<A[]>> f9;
 
                public A3(Builder b) {
-                       this.f1 = b.f1;
-                       this.f2 = b.f2;
-                       this.f3 = b.f3;
-                       this.f4 = b.f4;
-                       this.f5 = b.f5;
-                       this.f6 = b.f6;
-                       this.f7 = b.f7;
-                       this.f8 = b.f8;
-                       this.f9 = b.f9;
+                       f1 = b.f1;
+                       f2 = b.f2;
+                       f3 = b.f3;
+                       f4 = b.f4;
+                       f5 = b.f5;
+                       f6 = b.f6;
+                       f7 = b.f7;
+                       f8 = b.f8;
+                       f9 = b.f9;
                }
 
                public static Builder builder() {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AnnotationObject_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AnnotationObject_Test.java
index 75d662479e..26d5c1d353 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AnnotationObject_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AnnotationObject_Test.java
@@ -90,9 +90,9 @@ class AnnotationObject_Test extends TestBase {
 
                public TestAnnotationObject(Builder b) {
                        super(b);
-                       this.value = b.value;
-                       this.number = b.number;
-                       this.flag = b.flag;
+                       value = b.value;
+                       number = b.number;
+                       flag = b.flag;
                        this.array = Arrays.copyOf(b.array, b.array.length);
                }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AppliedAnnotationObject_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AppliedAnnotationObject_Test.java
index 0beea16060..7fbd0090ca 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AppliedAnnotationObject_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/annotation/AppliedAnnotationObject_Test.java
@@ -84,8 +84,8 @@ class AppliedAnnotationObject_Test extends TestBase {
 
                public TestAppliedAnnotationObject(Builder b) {
                        super(b);
-                       this.value = b.value;
-                       this.number = b.number;
+                       value = b.value;
+                       number = b.number;
                }
 
                @Override
@@ -117,654 +117,667 @@ class AppliedAnnotationObject_Test extends TestBase {
        public static class TargetClass2 {}
 
        
//------------------------------------------------------------------------------------------------------------------
-       // Basic tests - on() with strings
+       // Nested test classes
        
//------------------------------------------------------------------------------------------------------------------
 
-       @Test
-       void a01_basic_noTargets() {
-               var a = TestAppliedAnnotationObject.create().build();
-               assertArrayEquals(new String[0], a.on());
-       }
+       @Nested
+       @DisplayName("Basic on() tests with strings")
+       class BasicOnTests {
 
-       @Test
-       void a02_basic_singleTarget() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("com.example.MyClass")
-                       .build();
+               @Test
+               void noTargets() {
+                       var a = TestAppliedAnnotationObject.create().build();
+                       assertArrayEquals(new String[0], a.on());
+               }
 
-               assertArrayEquals(new String[]{"com.example.MyClass"}, a.on());
-       }
+               @Test
+               void singleTarget() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("com.example.MyClass")
+                               .build();
 
-       @Test
-       void a03_basic_multipleTargets() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("com.example.Class1")
-                       .on("com.example.Class2")
-                       .build();
+                       assertArrayEquals(new String[]{"com.example.MyClass"}, 
a.on());
+               }
 
-               assertArrayEquals(new String[]{"com.example.Class1", 
"com.example.Class2"}, a.on());
-       }
+               @Test
+               void multipleTargets() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("com.example.Class1")
+                               .on("com.example.Class2")
+                               .build();
 
-       @Test
-       void a04_basic_varargsTargets() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("target1", "target2", "target3")
-                       .build();
+                       assertArrayEquals(new String[]{"com.example.Class1", 
"com.example.Class2"}, a.on());
+               }
 
-               assertArrayEquals(new String[]{"target1", "target2", 
"target3"}, a.on());
-       }
+               @Test
+               void varargsTargets() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("target1", "target2", "target3")
+                               .build();
 
-       @Test
-       void a05_basic_withOtherProperties() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("com.example.MyClass")
-                       .value("test")
-                       .number(42)
-                       .build();
-
-               assertArrayEquals(new String[]{"com.example.MyClass"}, a.on());
-               assertEquals("test", a.value());
-               assertEquals(42, a.number());
+                       assertArrayEquals(new String[]{"target1", "target2", 
"target3"}, a.on());
+               }
+
+               @Test
+               void withOtherProperties() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("com.example.MyClass")
+                               .value("test")
+                               .number(42)
+                               .build();
+
+                       assertArrayEquals(new String[]{"com.example.MyClass"}, 
a.on());
+                       assertEquals("test", a.value());
+                       assertEquals(42, a.number());
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // Equality and hashcode tests with on property
-       
//------------------------------------------------------------------------------------------------------------------
+       @Nested
+       @DisplayName("Equality and hashcode tests")
+       class EqualityAndHashCodeTests {
 
-       @Test
-       void b01_equality_sameTargets() {
-               var a1 = TestAppliedAnnotationObject.create()
-                       .on("target1", "target2")
-                       .value("test")
-                       .build();
+               @Test
+               void sameTargets() {
+                       var a1 = TestAppliedAnnotationObject.create()
+                               .on("target1", "target2")
+                               .value("test")
+                               .build();
 
-               var a2 = TestAppliedAnnotationObject.create()
-                       .on("target1", "target2")
-                       .value("test")
-                       .build();
+                       var a2 = TestAppliedAnnotationObject.create()
+                               .on("target1", "target2")
+                               .value("test")
+                               .build();
 
-               assertEquals(a1, a2);
-               assertEquals(a1.hashCode(), a2.hashCode());
-       }
+                       assertEquals(a1, a2);
+                       assertEquals(a1.hashCode(), a2.hashCode());
+               }
 
-       @Test
-       void b02_equality_differentTargets() {
-               var a1 = TestAppliedAnnotationObject.create()
-                       .on("target1")
-                       .build();
+               @Test
+               void differentTargets() {
+                       var a1 = TestAppliedAnnotationObject.create()
+                               .on("target1")
+                               .build();
 
-               var a2 = TestAppliedAnnotationObject.create()
-                       .on("target2")
-                       .build();
+                       var a2 = TestAppliedAnnotationObject.create()
+                               .on("target2")
+                               .build();
 
-               assertNotEquals(a1, a2);
-       }
+                       assertNotEquals(a1, a2);
+               }
 
-       @Test
-       void b03_equality_differentTargetOrder() {
-               // Arrays with different order should not be equal
-               var a1 = TestAppliedAnnotationObject.create()
-                       .on("target1", "target2")
-                       .build();
+               @Test
+               void differentTargetOrder() {
+                       // Arrays with different order should not be equal
+                       var a1 = TestAppliedAnnotationObject.create()
+                               .on("target1", "target2")
+                               .build();
 
-               var a2 = TestAppliedAnnotationObject.create()
-                       .on("target2", "target1")
-                       .build();
+                       var a2 = TestAppliedAnnotationObject.create()
+                               .on("target2", "target1")
+                               .build();
 
-               assertNotEquals(a1, a2);
-       }
+                       assertNotEquals(a1, a2);
+               }
 
-       @Test
-       void b04_equality_noTargetsVsWithTargets() {
-               var a1 = TestAppliedAnnotationObject.create().build();
-               var a2 = TestAppliedAnnotationObject.create()
-                       .on("target1")
-                       .build();
+               @Test
+               void noTargetsVsWithTargets() {
+                       var a1 = TestAppliedAnnotationObject.create().build();
+                       var a2 = TestAppliedAnnotationObject.create()
+                               .on("target1")
+                               .build();
 
-               assertNotEquals(a1, a2);
+                       assertNotEquals(a1, a2);
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // BuilderT tests - Class targeting
-       
//------------------------------------------------------------------------------------------------------------------
+       @Nested
+       @DisplayName("BuilderT - Class targeting tests")
+       class BuilderTTests {
 
-       /**
-        * Implementation with BuilderT for class targeting
-        */
-       public static class TestAppliedAnnotationObjectT extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
+               /**
+                * Implementation with BuilderT for class targeting
+                */
+               public static class TestAppliedAnnotationObjectT extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
 
-               private final String value;
+                       private final String value;
 
-               public static class Builder extends 
AppliedAnnotationObject.BuilderT {
-                       String value = "";
+                       public static class Builder extends 
AppliedAnnotationObject.BuilderT {
+                               String value = "";
 
-                       public Builder() {
-                               super(TestAppliedAnnotation.class);
-                       }
+                               public Builder() {
+                                       super(TestAppliedAnnotation.class);
+                               }
 
-                       public Builder value(String value) {
-                               this.value = value;
-                               return this;
+                               public Builder value(String value) {
+                                       this.value = value;
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(String...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(Class<?>...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(ClassInfo...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               public TestAppliedAnnotation build() {
+                                       return new 
TestAppliedAnnotationObjectT(this);
+                               }
                        }
 
-                       @Override
-                       public Builder on(String...value) {
-                               super.on(value);
-                               return this;
+                       public static Builder create() {
+                               return new Builder();
                        }
 
-                       @Override
-                       public Builder on(Class<?>...value) {
-                               super.on(value);
-                               return this;
+                       public TestAppliedAnnotationObjectT(Builder b) {
+                               super(b);
+                               value = b.value;
                        }
 
                        @Override
-                       public Builder on(ClassInfo...value) {
-                               super.on(value);
-                               return this;
+                       public String value() {
+                               return value;
                        }
 
-                       public TestAppliedAnnotation build() {
-                               return new TestAppliedAnnotationObjectT(this);
+                       @Override
+                       public int number() {
+                               return 0;
                        }
                }
 
-               public static Builder create() {
-                       return new Builder();
+               @Test
+               void onClassArray() {
+                       var a = TestAppliedAnnotationObjectT.create()
+                               .on(TargetClass1.class, TargetClass2.class)
+                               .build();
+
+                       String[] expected = {
+                               CNAME + "$TargetClass1",
+                               CNAME + "$TargetClass2"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
 
-               public TestAppliedAnnotationObjectT(Builder b) {
-                       super(b);
-                       this.value = b.value;
-               }
+               @Test
+               void onClassInfo() {
+                       var ci1 = ClassInfo.of(TargetClass1.class);
+                       var ci2 = ClassInfo.of(TargetClass2.class);
 
-               @Override
-               public String value() {
-                       return value;
+                       var a = TestAppliedAnnotationObjectT.create()
+                               .on(ci1, ci2)
+                               .build();
+
+                       String[] expected = {
+                               CNAME + "$TargetClass1",
+                               CNAME + "$TargetClass2"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
 
-               @Override
-               public int number() {
-                       return 0;
+               @Test
+               void mixedTargeting() {
+                       var a = TestAppliedAnnotationObjectT.create()
+                               .on("com.example.StringTarget")
+                               .on(TargetClass1.class)
+                               .build();
+
+                       String[] expected = {
+                               "com.example.StringTarget",
+                               CNAME + "$TargetClass1"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
        }
 
-       @Test
-       void c01_builderT_onClassArray() {
-               var a = TestAppliedAnnotationObjectT.create()
-                       .on(TargetClass1.class, TargetClass2.class)
-                       .build();
-
-               String[] expected = {
-                       CNAME + "$TargetClass1",
-                       CNAME + "$TargetClass2"
-               };
-               assertArrayEquals(expected, a.on());
-       }
+       @Nested
+       @DisplayName("BuilderM - Method targeting tests")
+       class BuilderMTests {
 
-       @Test
-       void c02_builderT_onClassInfo() {
-               var ci1 = ClassInfo.of(TargetClass1.class);
-               var ci2 = ClassInfo.of(TargetClass2.class);
+               /**
+                * Implementation with BuilderM for method targeting
+                */
+               public static class TestAppliedAnnotationObjectM extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
 
-               var a = TestAppliedAnnotationObjectT.create()
-                       .on(ci1, ci2)
-                       .build();
+                       public static class Builder extends 
AppliedAnnotationObject.BuilderM {
 
-               String[] expected = {
-                       CNAME + "$TargetClass1",
-                       CNAME + "$TargetClass2"
-               };
-               assertArrayEquals(expected, a.on());
-       }
+                               public Builder() {
+                                       super(TestAppliedAnnotation.class);
+                               }
 
-       @Test
-       void c03_builderT_mixedTargeting() {
-               var a = TestAppliedAnnotationObjectT.create()
-                       .on("com.example.StringTarget")
-                       .on(TargetClass1.class)
-                       .build();
-
-               String[] expected = {
-                       "com.example.StringTarget",
-                       CNAME + "$TargetClass1"
-               };
-               assertArrayEquals(expected, a.on());
-       }
-
-       
//------------------------------------------------------------------------------------------------------------------
-       // BuilderM tests - Method targeting
-       
//------------------------------------------------------------------------------------------------------------------
+                               @Override
+                               public Builder on(String...value) {
+                                       super.on(value);
+                                       return this;
+                               }
 
-       /**
-        * Implementation with BuilderM for method targeting
-        */
-       public static class TestAppliedAnnotationObjectM extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
+                               @Override
+                               public Builder on(Method...value) {
+                                       super.on(value);
+                                       return this;
+                               }
 
-               public static class Builder extends 
AppliedAnnotationObject.BuilderM {
+                               @Override
+                               public Builder on(MethodInfo...value) {
+                                       super.on(value);
+                                       return this;
+                               }
 
-                       public Builder() {
-                               super(TestAppliedAnnotation.class);
+                               public TestAppliedAnnotation build() {
+                                       return new 
TestAppliedAnnotationObjectM(this);
+                               }
                        }
 
-                       @Override
-                       public Builder on(String...value) {
-                               super.on(value);
-                               return this;
+                       public static Builder create() {
+                               return new Builder();
                        }
 
-                       @Override
-                       public Builder on(Method...value) {
-                               super.on(value);
-                               return this;
+                       public TestAppliedAnnotationObjectM(Builder b) {
+                               super(b);
                        }
 
                        @Override
-                       public Builder on(MethodInfo...value) {
-                               super.on(value);
-                               return this;
+                       public String value() {
+                               return "";
                        }
 
-                       public TestAppliedAnnotation build() {
-                               return new TestAppliedAnnotationObjectM(this);
+                       @Override
+                       public int number() {
+                               return 0;
                        }
                }
 
-               public static Builder create() {
-                       return new Builder();
-               }
+               @Test
+               void onMethod() throws Exception {
+                       Method m1 = TargetClass1.class.getMethod("method1");
+                       Method m2 = TargetClass1.class.getMethod("method2", 
int.class);
 
-               public TestAppliedAnnotationObjectM(Builder b) {
-                       super(b);
-               }
+                       var a = TestAppliedAnnotationObjectM.create()
+                               .on(m1, m2)
+                               .build();
 
-               @Override
-               public String value() {
-                       return "";
-               }
-
-               @Override
-               public int number() {
-                       return 0;
+                       String[] expected = {
+                               CNAME + "$TargetClass1.method1()",
+                               CNAME + "$TargetClass1.method2(int)"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
-       }
 
-       @Test
-       void d01_builderM_onMethod() throws Exception {
-               Method m1 = TargetClass1.class.getMethod("method1");
-               Method m2 = TargetClass1.class.getMethod("method2", int.class);
+               @Test
+               void onMethodInfo() throws Exception {
+                       var mi1 = 
MethodInfo.of(TargetClass1.class.getMethod("method1"));
+                       var mi2 = 
MethodInfo.of(TargetClass1.class.getMethod("method2", int.class));
 
-               var a = TestAppliedAnnotationObjectM.create()
-                       .on(m1, m2)
-                       .build();
+                       var a = TestAppliedAnnotationObjectM.create()
+                               .on(mi1, mi2)
+                               .build();
 
-               String[] expected = {
-                       CNAME + "$TargetClass1.method1()",
-                       CNAME + "$TargetClass1.method2(int)"
-               };
-               assertArrayEquals(expected, a.on());
+                       String[] expected = {
+                               CNAME + "$TargetClass1.method1()",
+                               CNAME + "$TargetClass1.method2(int)"
+                       };
+                       assertArrayEquals(expected, a.on());
+               }
        }
 
-       @Test
-       void d02_builderM_onMethodInfo() throws Exception {
-               var mi1 = 
MethodInfo.of(TargetClass1.class.getMethod("method1"));
-               var mi2 = MethodInfo.of(TargetClass1.class.getMethod("method2", 
int.class));
+       @Nested
+       @DisplayName("BuilderC - Constructor targeting tests")
+       class BuilderCTests {
 
-               var a = TestAppliedAnnotationObjectM.create()
-                       .on(mi1, mi2)
-                       .build();
+               /**
+                * Implementation with BuilderC for constructor targeting
+                */
+               public static class TestAppliedAnnotationObjectC extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
 
-               String[] expected = {
-                       CNAME + "$TargetClass1.method1()",
-                       CNAME + "$TargetClass1.method2(int)"
-               };
-               assertArrayEquals(expected, a.on());
-       }
+                       public static class Builder extends 
AppliedAnnotationObject.BuilderC {
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // BuilderC tests - Constructor targeting
-       
//------------------------------------------------------------------------------------------------------------------
+                               public Builder() {
+                                       super(TestAppliedAnnotation.class);
+                               }
 
-       /**
-        * Implementation with BuilderC for constructor targeting
-        */
-       public static class TestAppliedAnnotationObjectC extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
+                               @Override
+                               public Builder on(String...value) {
+                                       super.on(value);
+                                       return this;
+                               }
 
-               public static class Builder extends 
AppliedAnnotationObject.BuilderC {
+                               @Override
+                               public Builder on(Constructor<?>...value) {
+                                       super.on(value);
+                                       return this;
+                               }
 
-                       public Builder() {
-                               super(TestAppliedAnnotation.class);
+                               @Override
+                               public Builder on(ConstructorInfo...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               public TestAppliedAnnotation build() {
+                                       return new 
TestAppliedAnnotationObjectC(this);
+                               }
                        }
 
-                       @Override
-                       public Builder on(String...value) {
-                               super.on(value);
-                               return this;
+                       public static Builder create() {
+                               return new Builder();
                        }
 
-                       @Override
-                       public Builder on(Constructor<?>...value) {
-                               super.on(value);
-                               return this;
+                       public TestAppliedAnnotationObjectC(Builder b) {
+                               super(b);
                        }
 
                        @Override
-                       public Builder on(ConstructorInfo...value) {
-                               super.on(value);
-                               return this;
+                       public String value() {
+                               return "";
                        }
 
-                       public TestAppliedAnnotation build() {
-                               return new TestAppliedAnnotationObjectC(this);
+                       @Override
+                       public int number() {
+                               return 0;
                        }
                }
 
-               public static Builder create() {
-                       return new Builder();
-               }
+               @Test
+               void onConstructor() throws Exception {
+                       Constructor<?> c1 = TargetClass1.class.getConstructor();
+                       Constructor<?> c2 = 
TargetClass1.class.getConstructor(String.class);
 
-               public TestAppliedAnnotationObjectC(Builder b) {
-                       super(b);
-               }
+                       var a = TestAppliedAnnotationObjectC.create()
+                               .on(c1, c2)
+                               .build();
 
-               @Override
-               public String value() {
-                       return "";
-               }
-
-               @Override
-               public int number() {
-                       return 0;
+                       String[] expected = {
+                               CNAME + "$TargetClass1()",
+                               CNAME + "$TargetClass1(java.lang.String)"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
-       }
-
-       @Test
-       void e01_builderC_onConstructor() throws Exception {
-               Constructor<?> c1 = TargetClass1.class.getConstructor();
-               Constructor<?> c2 = 
TargetClass1.class.getConstructor(String.class);
-
-               var a = TestAppliedAnnotationObjectC.create()
-                       .on(c1, c2)
-                       .build();
 
-               String[] expected = {
-                       CNAME + "$TargetClass1()",
-                       CNAME + "$TargetClass1(java.lang.String)"
-               };
-               assertArrayEquals(expected, a.on());
-       }
-
-       @Test
-       void e02_builderC_onConstructorInfo() throws Exception {
-               var ci1 = 
ConstructorInfo.of(TargetClass1.class.getConstructor());
-               var ci2 = 
ConstructorInfo.of(TargetClass1.class.getConstructor(String.class));
+               @Test
+               void onConstructorInfo() throws Exception {
+                       var ci1 = 
ConstructorInfo.of(TargetClass1.class.getConstructor());
+                       var ci2 = 
ConstructorInfo.of(TargetClass1.class.getConstructor(String.class));
 
-               var a = TestAppliedAnnotationObjectC.create()
-                       .on(ci1, ci2)
-                       .build();
+                       var a = TestAppliedAnnotationObjectC.create()
+                               .on(ci1, ci2)
+                               .build();
 
-               String[] expected = {
-                       CNAME + "$TargetClass1()",
-                       CNAME + "$TargetClass1(java.lang.String)"
-               };
-               assertArrayEquals(expected, a.on());
+                       String[] expected = {
+                               CNAME + "$TargetClass1()",
+                               CNAME + "$TargetClass1(java.lang.String)"
+                       };
+                       assertArrayEquals(expected, a.on());
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // BuilderMF tests - Method and Field targeting
-       
//------------------------------------------------------------------------------------------------------------------
-
-       /**
-        * Implementation with BuilderMF for method and field targeting
-        */
-       public static class TestAppliedAnnotationObjectMF extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
-
-               public static class Builder extends 
AppliedAnnotationObject.BuilderMF {
-
-                       public Builder() {
-                               super(TestAppliedAnnotation.class);
+       @Nested
+       @DisplayName("BuilderMF - Method and Field targeting tests")
+       class BuilderMFTests {
+
+               /**
+                * Implementation with BuilderMF for method and field targeting
+                */
+               public static class TestAppliedAnnotationObjectMF extends 
AppliedAnnotationObject implements TestAppliedAnnotation {
+
+                       public static class Builder extends 
AppliedAnnotationObject.BuilderMF {
+
+                               public Builder() {
+                                       super(TestAppliedAnnotation.class);
+                               }
+
+                               @Override
+                               public Builder on(String...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(Method...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(MethodInfo...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(Field...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               @Override
+                               public Builder on(FieldInfo...value) {
+                                       super.on(value);
+                                       return this;
+                               }
+
+                               public TestAppliedAnnotation build() {
+                                       return new 
TestAppliedAnnotationObjectMF(this);
+                               }
                        }
 
-                       @Override
-                       public Builder on(String...value) {
-                               super.on(value);
-                               return this;
+                       public static Builder create() {
+                               return new Builder();
                        }
 
-                       @Override
-                       public Builder on(Method...value) {
-                               super.on(value);
-                               return this;
-                       }
-
-                       @Override
-                       public Builder on(MethodInfo...value) {
-                               super.on(value);
-                               return this;
+                       public TestAppliedAnnotationObjectMF(Builder b) {
+                               super(b);
                        }
 
                        @Override
-                       public Builder on(Field...value) {
-                               super.on(value);
-                               return this;
+                       public String value() {
+                               return "";
                        }
 
                        @Override
-                       public Builder on(FieldInfo...value) {
-                               super.on(value);
-                               return this;
-                       }
-
-                       public TestAppliedAnnotation build() {
-                               return new TestAppliedAnnotationObjectMF(this);
+                       public int number() {
+                               return 0;
                        }
                }
 
-               public static Builder create() {
-                       return new Builder();
-               }
+               @Test
+               void onField() throws Exception {
+                       Field f1 = TargetClass1.class.getField("field1");
+                       Field f2 = TargetClass1.class.getField("field2");
 
-               public TestAppliedAnnotationObjectMF(Builder b) {
-                       super(b);
-               }
+                       var a = TestAppliedAnnotationObjectMF.create()
+                               .on(f1, f2)
+                               .build();
 
-               @Override
-               public String value() {
-                       return "";
+                       String[] expected = {
+                               CNAME + "$TargetClass1.field1",
+                               CNAME + "$TargetClass1.field2"
+                       };
+                       assertArrayEquals(expected, a.on());
                }
 
-               @Override
-               public int number() {
-                       return 0;
-               }
-       }
-
-       @Test
-       void f01_builderMF_onField() throws Exception {
-               Field f1 = TargetClass1.class.getField("field1");
-               Field f2 = TargetClass1.class.getField("field2");
-
-               var a = TestAppliedAnnotationObjectMF.create()
-                       .on(f1, f2)
-                       .build();
+               @Test
+               void onFieldInfo() throws Exception {
+                       var fi1 = 
FieldInfo.of(ClassInfo.of(TargetClass1.class), 
TargetClass1.class.getField("field1"));
+                       var fi2 = 
FieldInfo.of(ClassInfo.of(TargetClass1.class), 
TargetClass1.class.getField("field2"));
 
-               String[] expected = {
-                       CNAME + "$TargetClass1.field1",
-                       CNAME + "$TargetClass1.field2"
-               };
-               assertArrayEquals(expected, a.on());
-       }
-
-       @Test
-       void f02_builderMF_onFieldInfo() throws Exception {
-               var fi1 = FieldInfo.of(ClassInfo.of(TargetClass1.class), 
TargetClass1.class.getField("field1"));
-               var fi2 = FieldInfo.of(ClassInfo.of(TargetClass1.class), 
TargetClass1.class.getField("field2"));
+                       var a = TestAppliedAnnotationObjectMF.create()
+                               .on(fi1, fi2)
+                               .build();
 
-               var a = TestAppliedAnnotationObjectMF.create()
-                       .on(fi1, fi2)
-                       .build();
+                       String[] expected = {
+                               CNAME + "$TargetClass1.field1",
+                               CNAME + "$TargetClass1.field2"
+                       };
+                       assertArrayEquals(expected, a.on());
+               }
 
-               String[] expected = {
-                       CNAME + "$TargetClass1.field1",
-                       CNAME + "$TargetClass1.field2"
-               };
-               assertArrayEquals(expected, a.on());
+               @Test
+               void mixedMethodsAndFields() throws Exception {
+                       Method m = TargetClass1.class.getMethod("method1");
+                       Field f = TargetClass1.class.getField("field1");
+
+                       var a = TestAppliedAnnotationObjectMF.create()
+                               .on(m)
+                               .on(f)
+                               .build();
+
+                       String[] expected = {
+                               CNAME + "$TargetClass1.method1()",
+                               CNAME + "$TargetClass1.field1"
+                       };
+                       assertArrayEquals(expected, a.on());
+               }
        }
 
-       @Test
-       void f03_builderMF_mixedMethodsAndFields() throws Exception {
-               Method m = TargetClass1.class.getMethod("method1");
-               Field f = TargetClass1.class.getField("field1");
-
-               var a = TestAppliedAnnotationObjectMF.create()
-                       .on(m)
-                       .on(f)
-                       .build();
-
-               String[] expected = {
-                       CNAME + "$TargetClass1.method1()",
-                       CNAME + "$TargetClass1.field1"
-               };
-               assertArrayEquals(expected, a.on());
-       }
+       @Nested
+       @DisplayName("Fluent API tests")
+       class FluentApiTests {
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // Fluent API tests
-       
//------------------------------------------------------------------------------------------------------------------
+               @Test
+               void chaining() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("target1")
+                               .value("test")
+                               .on("target2")
+                               .number(42)
+                               .on("target3")
+                               .build();
 
-       @Test
-       void g01_fluentApi_chaining() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("target1")
-                       .value("test")
-                       .on("target2")
-                       .number(42)
-                       .on("target3")
-                       .build();
-
-               assertArrayEquals(new String[]{"target1", "target2", 
"target3"}, a.on());
-               assertEquals("test", a.value());
-               assertEquals(42, a.number());
+                       assertArrayEquals(new String[]{"target1", "target2", 
"target3"}, a.on());
+                       assertEquals("test", a.value());
+                       assertEquals(42, a.number());
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // toMap() tests with on property
-       
//------------------------------------------------------------------------------------------------------------------
+       @Nested
+       @DisplayName("toMap() tests")
+       class ToMapTests {
 
-       @Test
-       void h01_toMap_withTargets() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on("target1", "target2")
-                       .value("test")
-                       .build();
+               @Test
+               void withTargets() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on("target1", "target2")
+                               .value("test")
+                               .build();
 
-               var map = ((TestAppliedAnnotationObject)a).toMap();
-               assertArrayEquals(new String[]{"target1", "target2"}, 
(String[])map.get("on"));
-               assertEquals("test", map.get("value"));
+                       var map = ((TestAppliedAnnotationObject)a).toMap();
+                       assertArrayEquals(new String[]{"target1", "target2"}, 
(String[])map.get("on"));
+                       assertEquals("test", map.get("value"));
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // Edge cases
-       
//------------------------------------------------------------------------------------------------------------------
+       @Nested
+       @DisplayName("Edge case tests")
+       class EdgeCaseTests {
 
-       @Test
-       void i01_edgeCase_emptyTargets() {
-               var a = TestAppliedAnnotationObject.create()
-                       .on()
-                       .build();
+               @Test
+               void emptyTargets() {
+                       var a = TestAppliedAnnotationObject.create()
+                               .on()
+                               .build();
 
-               assertArrayEquals(new String[0], a.on());
-       }
+                       assertArrayEquals(new String[0], a.on());
+               }
 
-       @Test
-       void i02_edgeCase_builderReuse() {
-               var builder = TestAppliedAnnotationObject.create()
-                       .on("target1")
-                       .value("test");
+               @Test
+               void builderReuse() {
+                       var builder = TestAppliedAnnotationObject.create()
+                               .on("target1")
+                               .value("test");
 
-               var a1 = builder.build();
-               var a2 = builder.build();
+                       var a1 = builder.build();
+                       var a2 = builder.build();
 
-               // Different instances but equal
-               assertNotSame(a1, a2);
-               assertEquals(a1, a2);
+                       // Different instances but equal
+                       assertNotSame(a1, a2);
+                       assertEquals(a1, a2);
+               }
        }
 
-       
//------------------------------------------------------------------------------------------------------------------
-       // Null validation tests
-       
//------------------------------------------------------------------------------------------------------------------
+       @Nested
+       @DisplayName("Null validation tests")
+       class NullValidationTests {
 
-       @Test
-       void j01_nullClass_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectT.create()
-                               .on((Class<?>)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullClass_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderTTests.TestAppliedAnnotationObjectT.create()
+                                       .on((Class<?>)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j02_nullClassInfo_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectT.create()
-                               .on((ClassInfo)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullClassInfo_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderTTests.TestAppliedAnnotationObjectT.create()
+                                       .on((ClassInfo)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j03_nullMethod_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectM.create()
-                               .on((java.lang.reflect.Method)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullMethod_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderMTests.TestAppliedAnnotationObjectM.create()
+                                       .on((java.lang.reflect.Method)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j04_nullMethodInfo_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectM.create()
-                               .on((MethodInfo)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullMethodInfo_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderMTests.TestAppliedAnnotationObjectM.create()
+                                       .on((MethodInfo)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j05_nullField_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectMF.create()
-                               .on((java.lang.reflect.Field)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullField_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderMFTests.TestAppliedAnnotationObjectMF.create()
+                                       .on((java.lang.reflect.Field)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j06_nullFieldInfo_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectMF.create()
-                               .on((FieldInfo)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullFieldInfo_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderMFTests.TestAppliedAnnotationObjectMF.create()
+                                       .on((FieldInfo)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j07_nullConstructor_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectC.create()
-                               .on((java.lang.reflect.Constructor<?>)null)
-                               .build()
-               );
-       }
+               @Test
+               void nullConstructor_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderCTests.TestAppliedAnnotationObjectC.create()
+                                       
.on((java.lang.reflect.Constructor<?>)null)
+                                       .build()
+                       );
+               }
 
-       @Test
-       void j08_nullConstructorInfo_throwsException() {
-               assertThrows(IllegalArgumentException.class, () ->
-                       TestAppliedAnnotationObjectC.create()
-                               .on((ConstructorInfo)null)
-                               .build()
-               );
+               @Test
+               void nullConstructorInfo_throwsException() {
+                       assertThrows(IllegalArgumentException.class, () ->
+                               
BuilderCTests.TestAppliedAnnotationObjectC.create()
+                                       .on((ConstructorInfo)null)
+                                       .build()
+                       );
+               }
        }
 }
-

Reply via email to