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 7410ac4f41 TODO-238: Final maintainer-decision pass; close Codebase 
Quality Registry umbrella
7410ac4f41 is described below

commit 7410ac4f415981294553164e2939caefd3fe0a8e
Author: James Bognar <[email protected]>
AuthorDate: Thu Jul 23 16:14:17 2026 -0400

    TODO-238: Final maintainer-decision pass; close Codebase Quality Registry 
umbrella
    
    Removals (10.0.0 breaking-change window):
    - Schema.exclusiveMaximum()/exclusiveMinimum() boolean forms (callers 
migrated to emax()/emin())
    - HttpPartSchema.T_OBJECT_{CSV,PIPES,SSV,TSV} constants + their 
sole-purpose builders
    - XmlSerializer.DEFAULT_XS_NAMESPACE (protected, unused)
    
    Simplifications:
    - Collapse dead uri2-fallback branch in 
RdfSerializerSession/RdfStreamSerializerSession.getUri(...)
    - Simplify dead char-class sub-terms in ConfigMapEntry negation
    
    Kept clusters recorded as registry exceptions (BUG-15, DEAD-03).
    Full reactor suite green: 135,326 tests, 0 failures.
    
    Co-authored-by: Cursor <[email protected]>
---
 .../java/org/apache/juneau/commons/Schema.java     | 98 ++--------------------
 .../juneau/config/internal/ConfigMapEntry.java     |  2 +-
 .../juneau/marshall/jena/RdfSerializerSession.java | 17 ++--
 .../marshall/jena/RdfStreamSerializerSession.java  | 17 ++--
 .../apache/juneau/marshall/SchemaAnnotation.java   | 45 +---------
 .../juneau/marshall/httppart/HttpPartSchema.java   | 53 +-----------
 .../apache/juneau/marshall/xml/XmlSerializer.java  |  1 -
 .../jsonschema/JsonSchemaGenerator_Test.java       | 25 ++----
 .../marshall/jsonschema/SchemaAnnotation_Test.java | 54 ++----------
 .../apache/juneau/http/AnnotationUtils_Test.java   |  4 +-
 .../httppart/HttpPartSchema_Body_Test.java         | 10 +--
 .../swagger/BasicSwaggerProviderSession.java       |  7 +-
 12 files changed, 46 insertions(+), 287 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/Schema.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/Schema.java
index 88f98683b8..74975d9a6e 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/Schema.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/Schema.java
@@ -728,14 +728,16 @@ public @interface Schema {
        String[] e() default {};
 
        /**
-        * Synonym for {@link #exclusiveMaximum()}.
+        * Short-form boolean flag mirroring the legacy Swagger 2.0/OpenAPI 
3.0/JSON Schema Draft 04
+        * <mk>exclusiveMaximum</mk> semantics (superseded by {@link 
#exclusiveMaximumValue()} for Draft 2020-12).
         *
         * @return The annotation value.
         */
        boolean emax() default false;
 
        /**
-        * Synonym for {@link #exclusiveMinimum()}.
+        * Short-form boolean flag mirroring the legacy Swagger 2.0/OpenAPI 
3.0/JSON Schema Draft 04
+        * <mk>exclusiveMinimum</mk> semantics (superseded by {@link 
#exclusiveMinimumValue()} for Draft 2020-12).
         *
         * @return The annotation value.
         */
@@ -776,47 +778,6 @@ public @interface Schema {
         */
        String[] examples() default {};
 
-       /**
-        * <mk>exclusiveMaximum</mk> field of the <a class="doclink" 
href="https://swagger.io/specification/v2#schemaObject";>Swagger Schema 
Object</a>.
-        *
-        * <p>
-        * Defines whether the maximum is matched exclusively.
-        *
-        * <p>
-        * If validation fails during serialization or parsing, the part 
serializer/parser will throw a <c>SchemaValidationException</c>.
-        * <br>On the client-side, this gets converted to a 
<c>RestCallException</c> which is thrown before the connection is made.
-        * <br>On the server-side, this gets converted to a <c>BadRequest</c> 
(400).
-        *
-        * <p>
-        * Only allowed for the following types: <js>"integer"</js>, 
<js>"number"</js>.
-        * <br>If <jk>true</jk>, must be accompanied with <c>maximum</c>.
-        *
-        * <h5 class='section'>Notes:</h5><ul>
-        *      <li class='note'>
-        *              <b>Deprecated in JSON Schema Draft 2020-12:</b> This 
boolean format is from Swagger 2.0/OpenAPI 3.0 and JSON Schema Draft 04.
-        *              Consider using {@link #exclusiveMaximumValue()} for 
Draft 2020-12 compliance, which uses a numeric value instead.
-        *              For backward compatibility, if {@link 
#exclusiveMaximumValue()} is set, it takes precedence over this property.
-        * </ul>
-        *
-        * <h5 class='section'>Used for:</h5>
-        * <ul class='spaced-list'>
-        *      <li>
-        *              Server-side schema-based parsing validation.
-        *      <li>
-        *              Server-side generated Swagger documentation.
-        *      <li>
-        *              Client-side schema-based serializing validation.
-        * </ul>
-        *
-        * @return The annotation value.
-        * @deprecated Use {@link #exclusiveMaximumValue()} for JSON Schema 
Draft 2020-12 compliance.
-        */
-       @Deprecated(since = "9.2.0", forRemoval = true)
-       @SuppressWarnings({
-               "java:S1133" // Intentional deprecation retained for backward 
compatibility until the documented removal; the reminder is not actionable now.
-       })
-       boolean exclusiveMaximum() default false;
-
        /**
         * <mk>exclusiveMaximum</mk> field of the JSON Schema (Draft 2020-12 
numeric value).
         *
@@ -825,9 +786,8 @@ public @interface Schema {
         * The instance is valid if it is strictly less than (not equal to) the 
value specified by this keyword.
         *
         * <p>
-        * This is a JSON Schema Draft 2020-12 property that replaces the 
boolean {@link #exclusiveMaximum()}.
-        * For backward compatibility, both properties are supported.
-        * If this property is specified, it takes precedence over the boolean 
version.
+        * This is a JSON Schema Draft 2020-12 property. The legacy Swagger 
2.0/OpenAPI 3.0/JSON Schema Draft 04
+        * boolean form was removed in 10.0.0; use this numeric form instead.
         *
         * <h5 class='section'>Examples:</h5>
         * <p class='bjava'>
@@ -857,47 +817,6 @@ public @interface Schema {
         */
        String exclusiveMaximumValue() default "";
 
-       /**
-        * <mk>exclusiveMinimum</mk> field of the <a class="doclink" 
href="https://swagger.io/specification/v2#schemaObject";>Swagger Schema 
Object</a>.
-        *
-        * <p>
-        * Defines whether the minimum is matched exclusively.
-        *
-        * <p>
-        * If validation fails during serialization or parsing, the part 
serializer/parser will throw a <c>SchemaValidationException</c>.
-        * <br>On the client-side, this gets converted to a 
<c>RestCallException</c> which is thrown before the connection is made.
-        * <br>On the server-side, this gets converted to a <c>BadRequest</c> 
(400).
-        *
-        * <p>
-        * Only allowed for the following types: <js>"integer"</js>, 
<js>"number"</js>.
-        * <br>If <jk>true</jk>, must be accompanied with <c>minimum</c>.
-        *
-        * <h5 class='section'>Notes:</h5><ul>
-        *      <li class='note'>
-        *              <b>Deprecated in JSON Schema Draft 2020-12:</b> This 
boolean format is from Swagger 2.0/OpenAPI 3.0 and JSON Schema Draft 04.
-        *              Consider using {@link #exclusiveMinimumValue()} for 
Draft 2020-12 compliance, which uses a numeric value instead.
-        *              For backward compatibility, if {@link 
#exclusiveMinimumValue()} is set, it takes precedence over this property.
-        * </ul>
-        *
-        * <h5 class='section'>Used for:</h5>
-        * <ul class='spaced-list'>
-        *      <li>
-        *              Server-side schema-based parsing validation.
-        *      <li>
-        *              Server-side generated Swagger documentation.
-        *      <li>
-        *              Client-side schema-based serializing validation.
-        * </ul>
-        *
-        * @return The annotation value.
-        * @deprecated Use {@link #exclusiveMinimumValue()} for JSON Schema 
Draft 2020-12 compliance.
-        */
-       @Deprecated(since = "9.2.0", forRemoval = true)
-       @SuppressWarnings({
-               "java:S1133" // Intentional deprecation retained for backward 
compatibility until the documented removal; the reminder is not actionable now.
-       })
-       boolean exclusiveMinimum() default false;
-
        /**
         * <mk>exclusiveMinimum</mk> field of the JSON Schema (Draft 2020-12 
numeric value).
         *
@@ -906,9 +825,8 @@ public @interface Schema {
         * The instance is valid if it is strictly greater than (not equal to) 
the value specified by this keyword.
         *
         * <p>
-        * This is a JSON Schema Draft 2020-12 property that replaces the 
boolean {@link #exclusiveMinimum()}.
-        * For backward compatibility, both properties are supported.
-        * If this property is specified, it takes precedence over the boolean 
version.
+        * This is a JSON Schema Draft 2020-12 property. The legacy Swagger 
2.0/OpenAPI 3.0/JSON Schema Draft 04
+        * boolean form was removed in 10.0.0; use this numeric form instead.
         *
         * <h5 class='section'>Examples:</h5>
         * <p class='bjava'>
diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMapEntry.java
 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMapEntry.java
index bc9b5aff5c..2f38305e0f 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMapEntry.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMapEntry.java
@@ -160,7 +160,7 @@ public record ConfigMapEntry(String rawLine, String key, 
String value, String co
                                if (c == '\n')
                                        w.append('\n').append('\t');
                                else if (c != '\r') { // HTT - '\r' in value 
requires OS-level carriage return injection
-                                       if (REPLACE_CHARS.contains(c) || 
(Character.isISOControl(c) && ! (c == '\n' || c == '\r' || c == '\t'))) { // 
HTT - some branch combinations (e.g. '\r' in isISOControl) are unreachable due 
to the outer '\r' check
+                                       if (REPLACE_CHARS.contains(c) || 
(Character.isISOControl(c) && c != '\t')) { // c is already known to be neither 
'\n' nor '\r' here
                                                w.append(unicodeSequence(c));
                                        } else {
                                                w.append(c);
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfSerializerSession.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfSerializerSession.java
index 57cc78114d..4b48753696 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfSerializerSession.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfSerializerSession.java
@@ -185,15 +185,10 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
                return XmlUtils.escapeText(s);
        }
 
-       private String getUri(Object uri, Object uri2) {
-               String s = null;
-               if (nn(uri))
-                       s = uri.toString();
-               if (ie(s) && nn(uri2)) // HTT - all callers pass uri2=null; 
uri2 fallback is dead
-                       s = uri2.toString();
-               if (s == null)
+       private String getUri(Object uri) {
+               if (! nn(uri))
                        return null;
-               return getUriResolver().resolve(s);
+               return getUriResolver().resolve(uri.toString());
        }
 
        @SuppressWarnings({
@@ -262,7 +257,7 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
 
                } else if (sType.isUri() || isURI) {
                        // RDF URI gate must come before 
isBean/isMap/isCharSequence: @Uri-annotated values (where sType could be String 
or a bean) need to route through the Resource emission path.  RDF URIs must be 
absolute to be valid.
-                       var uri = getUri(o, null);
+                       var uri = getUri(o);
                        if (isAbsoluteUri(uri))
                                n = m.createResource(uri);
                        else
@@ -274,7 +269,7 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
                        RdfBeanMeta rbm = getRdfBeanMeta(bm.getMeta());
                        if (rbm.hasBeanUri())
                                uri = rbm.getBeanUriProperty().get(bm, null);
-                       String uri2 = getUri(uri, null);
+                       String uri2 = getUri(uri);
                        n = m.createResource(uri2);
                        writeBeanMap(bm, (Resource)n, typeName);
 
@@ -284,7 +279,7 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
                                var rbm = getRdfBeanMeta(o2.getMeta());
                                if (rbm.hasBeanUri())
                                        uri = rbm.getBeanUriProperty().get(o2, 
null);
-                               var uri2 = getUri(uri, null);
+                               var uri2 = getUri(uri);
                                n = m.createResource(uri2);
                                writeBeanMap(o2, (Resource)n, typeName);
                        } else {
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamSerializerSession.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamSerializerSession.java
index bb3e269cc1..ef807a0cdc 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamSerializerSession.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamSerializerSession.java
@@ -261,15 +261,10 @@ public class RdfStreamSerializerSession extends 
OutputStreamSerializerSession {
                return XmlUtils.escapeText(toString(o));
        }
 
-       private String getUri(Object uri, Object uri2) {
-               String s = null;
-               if (nn(uri))
-                       s = uri.toString();
-               if (ie(s) && nn(uri2))
-                       s = uri2.toString();
-               if (s == null)
+       private String getUri(Object uri) {
+               if (! nn(uri))
                        return null;
-               return getUriResolver().resolve(s);
+               return getUriResolver().resolve(uri.toString());
        }
 
        @SuppressWarnings({
@@ -321,7 +316,7 @@ public class RdfStreamSerializerSession extends 
OutputStreamSerializerSession {
                        }
                } else if (sType.isUri() || isURI) {
                        // RDF URI gate must come before 
isBean/isMap/isCharSequence: @Uri-annotated values need Resource emission, not 
literal text.
-                       var uri = getUri(o, null);
+                       var uri = getUri(o);
                        if (isAbsoluteUri(uri))
                                n = m.createResource(uri);
                        else
@@ -332,7 +327,7 @@ public class RdfStreamSerializerSession extends 
OutputStreamSerializerSession {
                        var rbm = ctx.getRdfBeanMeta(bm.getMeta());
                        if (rbm.hasBeanUri())
                                uri = rbm.getBeanUriProperty().get(bm, null);
-                       var uri2 = getUri(uri, null);
+                       var uri2 = getUri(uri);
                        n = m.createResource(uri2);
                        writeBeanMap(bm, (Resource)n, typeName);
                } else if (sType.isMap() || (nn(wType) && wType.isMap())) {
@@ -341,7 +336,7 @@ public class RdfStreamSerializerSession extends 
OutputStreamSerializerSession {
                                var rbm = ctx.getRdfBeanMeta(o2.getMeta());
                                if (rbm.hasBeanUri())
                                        uri = rbm.getBeanUriProperty().get(o2, 
null);
-                               var uri2 = getUri(uri, null);
+                               var uri2 = getUri(uri);
                                n = m.createResource(uri2);
                                writeBeanMap(o2, (Resource)n, typeName);
                        } else {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/SchemaAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/SchemaAnnotation.java
index f4c99f304f..fb1fe79f27 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/SchemaAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/SchemaAnnotation.java
@@ -106,8 +106,6 @@ public class SchemaAnnotation {
                private boolean allowEmptyValue;
                private boolean emax;
                private boolean emin;
-               private boolean exclusiveMaximum;
-               private boolean exclusiveMinimum;
                private boolean ignore;
                private boolean r;
                private boolean readOnly;
@@ -531,17 +529,6 @@ public class SchemaAnnotation {
                        return this;
                }
 
-               /**
-                * Sets the {@link Schema#exclusiveMaximum} property on this 
annotation.
-                *
-                * @param value The new value for this property.
-                * @return This object.
-                */
-               public Builder exclusiveMaximum(boolean value) {
-                       exclusiveMaximum = value;
-                       return this;
-               }
-
                /**
                 * Sets the {@link Schema#exclusiveMaximumValue} property on 
this annotation.
                 *
@@ -553,17 +540,6 @@ public class SchemaAnnotation {
                        return this;
                }
 
-               /**
-                * Sets the {@link Schema#exclusiveMinimum} property on this 
annotation.
-                *
-                * @param value The new value for this property.
-                * @return This object.
-                */
-               public Builder exclusiveMinimum(boolean value) {
-                       exclusiveMinimum = value;
-                       return this;
-               }
-
                /**
                 * Sets the {@link Schema#exclusiveMinimumValue} property on 
this annotation.
                 *
@@ -1054,9 +1030,7 @@ public class SchemaAnnotation {
                private final String[] description;
                private final boolean aev;
                private final boolean allowEmptyValue;
-               private final boolean exclusiveMaximum;
                private final boolean emax;
-               private final boolean exclusiveMinimum;
                private final boolean emin;
                private final boolean uniqueItems;
                private final boolean ui;
@@ -1144,8 +1118,6 @@ public class SchemaAnnotation {
                        e = cp(b.e);
                        emax = b.emax;
                        emin = b.emin;
-                       exclusiveMaximum = b.exclusiveMaximum;
-                       exclusiveMinimum = b.exclusiveMinimum;
                        externalDocs = b.externalDocs;
                        f = b.f;
                        format = b.format;
@@ -1340,21 +1312,11 @@ public class SchemaAnnotation {
                        return examples;
                }
 
-               @Override /* Overridden from Schema */
-               public boolean exclusiveMaximum() {
-                       return exclusiveMaximum;
-               }
-
                @Override /* Overridden from Schema */
                public String exclusiveMaximumValue() {
                        return exclusiveMaximumValue;
                }
 
-               @Override /* Overridden from Schema */
-               public boolean exclusiveMinimum() {
-                       return exclusiveMinimum;
-               }
-
                @Override /* Overridden from Schema */
                public String exclusiveMinimumValue() {
                        return exclusiveMinimumValue;
@@ -1590,9 +1552,6 @@ public class SchemaAnnotation {
         * @return The schema converted to a map, or an empty map if the 
annotation was null.
         * @throws ParseException Malformed input encountered.
         */
-       @SuppressWarnings({
-               "removal" // Handles deprecated boolean-style 
exclusiveMaximum/exclusiveMinimum for backward compatibility
-       })
        public static JsonMap asMap(Schema a) throws ParseException {
                if (a == null)
                        return JsonMap.EMPTY_MAP;
@@ -1609,7 +1568,7 @@ public class SchemaAnnotation {
                String exclusiveMaximumValue;
                if (ne.test(a.exclusiveMaximumValue())) {
                        exclusiveMaximumValue = a.exclusiveMaximumValue();
-               } else if (a.exclusiveMaximum() || a.emax()) {
+               } else if (a.emax()) {
                        exclusiveMaximumValue = "true";
                } else {
                        exclusiveMaximumValue = null;
@@ -1619,7 +1578,7 @@ public class SchemaAnnotation {
                String exclusiveMinimumValue;
                if (ne.test(a.exclusiveMinimumValue())) {
                        exclusiveMinimumValue = a.exclusiveMinimumValue();
-               } else if (a.exclusiveMinimum() || a.emin()) {
+               } else if (a.emin()) {
                        exclusiveMinimumValue = "true";
                } else {
                        exclusiveMinimumValue = null;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/httppart/HttpPartSchema.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/httppart/HttpPartSchema.java
index e1a068b2ed..a8ea710344 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/httppart/HttpPartSchema.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/httppart/HttpPartSchema.java
@@ -2754,7 +2754,6 @@ public class HttpPartSchema {
                // 
-----------------------------------------------------------------------------------------------------------------
 
                @SuppressWarnings({
-                       "removal", // Handles deprecated boolean-style 
exclusiveMaximum/exclusiveMinimum for backward compatibility
                        "java:S3776" // Maps every @Schema attribute (plus its 
short-form alias) onto the builder; the flat attribute-by-attribute copy is 
behavior-preserving and clearer as one method than split across helpers.
                })
                Builder apply(Schema a) {
@@ -2767,7 +2766,7 @@ public class HttpPartSchema {
                        String exMaxVal = a.exclusiveMaximumValue();
                        if (ine(exMaxVal)) {
                                exclusiveMaximumValue(toNumber(exMaxVal));
-                       } else if (a.exclusiveMaximum() || a.emax()) {
+                       } else if (a.emax()) {
                                exclusiveMaximum(true);
                        }
 
@@ -2775,7 +2774,7 @@ public class HttpPartSchema {
                        String exMinVal = a.exclusiveMinimumValue();
                        if (ine(exMinVal)) {
                                exclusiveMinimumValue(toNumber(exMinVal));
-                       } else if (a.exclusiveMinimum() || a.emin()) {
+                       } else if (a.emin()) {
                                exclusiveMinimum(true);
                        }
 
@@ -3047,18 +3046,6 @@ public class HttpPartSchema {
        /** Object type */
        public static final HttpPartSchema T_OBJECT = 
HttpPartSchema.tObject().build();
 
-       /** Comma-delimited object type */
-       public static final HttpPartSchema T_OBJECT_CSV = 
HttpPartSchema.tObjectCsv().build();
-
-       /** Pipe-delimited object type */
-       public static final HttpPartSchema T_OBJECT_PIPES = 
HttpPartSchema.tObjectPipes().build();
-
-       /** Space-delimited object type */
-       public static final HttpPartSchema T_OBJECT_SSV = 
HttpPartSchema.tObjectSsv().build();
-
-       /** Tab-delimited object type */
-       public static final HttpPartSchema T_OBJECT_TSV = 
HttpPartSchema.tObjectTsv().build();
-
        /** UON-formated object type */
        public static final HttpPartSchema T_OBJECT_UON = 
HttpPartSchema.tObjectUon().build();
 
@@ -3477,42 +3464,6 @@ public class HttpPartSchema {
                return create().tObject();
        }
 
-       /**
-        * Shortcut for 
<c><jsm>create</jsm>().type(HttpPartDataType.<jsf>OBJECT</jsf>).collectionFormat(HttpPartCollectionFormat.<jsf>CSV</jsf>)</c>.
-        *
-        * @return A new builder for this object.
-        */
-       public static Builder tObjectCsv() {
-               return create().tObject().cfCsv();
-       }
-
-       /**
-        * Shortcut for 
<c><jsm>create</jsm>().type(HttpPartDataType.<jsf>OBJECT</jsf>).collectionFormat(HttpPartCollectionFormat.<jsf>PIPES</jsf>)</c>.
-        *
-        * @return A new builder for this object.
-        */
-       public static Builder tObjectPipes() {
-               return create().tObject().cfPipes();
-       }
-
-       /**
-        * Shortcut for 
<c><jsm>create</jsm>().type(HttpPartDataType.<jsf>OBJECT</jsf>).collectionFormat(HttpPartCollectionFormat.<jsf>SSV</jsf>)</c>.
-        *
-        * @return A new builder for this object.
-        */
-       public static Builder tObjectSsv() {
-               return create().tObject().cfSsv();
-       }
-
-       /**
-        * Shortcut for 
<c><jsm>create</jsm>().type(HttpPartDataType.<jsf>OBJECT</jsf>).collectionFormat(HttpPartCollectionFormat.<jsf>TSV</jsf>)</c>.
-        *
-        * @return A new builder for this object.
-        */
-       public static Builder tObjectTsv() {
-               return create().tObject().cfTsv();
-       }
-
        /**
         * Shortcut for 
<c><jsm>create</jsm>().type(HttpPartDataType.<jsf>OBJECT</jsf>).collectionFormat(HttpPartCollectionFormat.<jsf>UON</jsf>)</c>.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
index fad5f1c2ad..8f4f35492e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
@@ -604,7 +604,6 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider,
        public static final XmlSerializer DEFAULT_NS_SQ_READABLE = new 
NsSqReadable(create());
 
        protected static final Namespace DEFAULT_JUNEAU_NAMESPACE = 
Namespace.of("juneau", "http://www.apache.org/2013/Juneau";);
-       protected static final Namespace DEFAULT_XS_NAMESPACE = 
Namespace.of("xs", "http://www.w3.org/2001/XMLSchema";);
 
        /**
         * Creates a new builder for this object.
diff --git 
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/JsonSchemaGenerator_Test.java
 
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/JsonSchemaGenerator_Test.java
index e6ab4640cb..6df96592c6 100755
--- 
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/JsonSchemaGenerator_Test.java
+++ 
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/JsonSchemaGenerator_Test.java
@@ -35,7 +35,6 @@ import org.junit.jupiter.api.*;
 
 @SuppressWarnings({
        "serial",  // Serialization not relevant for test beans
-       "removal", // Tests precedence of new numeric style over deprecated 
boolean style
        "unused"   // Unused parameters/variables kept for consistent method 
signatures across test utilities.
 })
 class JsonSchemaGenerator_Test extends TestBase {
@@ -1501,33 +1500,19 @@ class JsonSchemaGenerator_Test extends TestBase {
        }
 
        
//====================================================================================================
-       // Backward compatibility: Old boolean exclusiveMaximum/exclusiveMinimum
+       // Draft 2020-12 numeric exclusiveMaximum/exclusiveMinimum (the legacy 
boolean form was removed in 10.0.0)
        
//====================================================================================================
 
-       @Test void k01_backwardCompatibility_exclusiveMaxMin_boolean() throws 
Exception {
+       @Test void k02_exclusiveMaxMinValue() throws Exception {
                var s = JsonSchemaGenerator.DEFAULT.getSession();
-               var schema = s.getSchema(OldStyleExclusiveBean.class);
-               assertBean(schema, 
"exclusiveMaximum,exclusiveMinimum,maximum,minimum", "true,true,100,0");
-       }
-
-       @Schema(type="integer", exclusiveMaximum=true, exclusiveMinimum=true, 
maximum="100", minimum="0")
-       public static class OldStyleExclusiveBean {
-               public int value;
-       }
-
-       @Test void k02_backwardCompatibility_newStyleTakesPrecedence() throws 
Exception {
-               var s = JsonSchemaGenerator.DEFAULT.getSession();
-               // New numeric style should take precedence in asMap() when 
both are set
-               var schema = s.getSchema(MixedStyleExclusiveBean.class);
+               var schema = s.getSchema(NumericExclusiveBean.class);
                assertBean(schema, "exclusiveMaximum,exclusiveMinimum", 
"100,0");
        }
 
        @Schema(type="integer",
                exclusiveMaximumValue="100",
-               exclusiveMinimumValue="0",
-               exclusiveMaximum=false,  // This should be ignored in favor of 
numeric values
-               exclusiveMinimum=false)
-       public static class MixedStyleExclusiveBean {
+               exclusiveMinimumValue="0")
+       public static class NumericExclusiveBean {
                public int value;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/SchemaAnnotation_Test.java
 
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/SchemaAnnotation_Test.java
index eb0e4b00d2..48ca0e2cb2 100644
--- 
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/SchemaAnnotation_Test.java
+++ 
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/jsonschema/SchemaAnnotation_Test.java
@@ -26,8 +26,7 @@ import org.apache.juneau.marshall.*;
 import org.junit.jupiter.api.*;
 
 @SuppressWarnings({
-       "java:S1186", // Empty test method intentional for framework testing
-       "removal" // Tests deprecated API for backward compatibility
+       "java:S1186" // Empty test method intentional for framework testing
 })
 class SchemaAnnotation_Test extends TestBase {
 
@@ -49,8 +48,6 @@ class SchemaAnnotation_Test extends TestBase {
                .e("l")
                .emax(true)
                .emin(true)
-               .exclusiveMaximum(true)
-               .exclusiveMinimum(true)
                .externalDocs(ExternalDocsAnnotation.DEFAULT)
                .f("m")
                .format("n")
@@ -104,8 +101,6 @@ class SchemaAnnotation_Test extends TestBase {
                .e("l")
                .emax(true)
                .emin(true)
-               .exclusiveMaximum(true)
-               .exclusiveMinimum(true)
                .externalDocs(ExternalDocsAnnotation.DEFAULT)
                .f("m")
                .format("n")
@@ -147,8 +142,8 @@ class SchemaAnnotation_Test extends TestBase {
 
        @Test void a01_basic() {
                assertBean(a1,
-                       
"$ref,default_,enum_,aev,allOf,allowEmptyValue,cf,collectionFormat,d,description,df,discriminator,e,emax,emin,exclusiveMaximum,exclusiveMinimum,externalDocs{description,url},f,format,ignore,items{$ref,default_,enum_,cf,collectionFormat,description,df,e,emax,emin,exclusiveMaximum,exclusiveMinimum,f,format,items{$ref,default_,enum_,cf,collectionFormat,description,df,e,emax,emin,exclusiveMaximum,exclusiveMinimum,f,format,max,maxItems,maxLength,maxi,maximum,maxl,min,minItems,minLength,min
 [...]
-                       
"c,[a],[b],false,[e],false,f,g,[h],[i],[j],k,[l],true,true,true,true,{[],},m,n,true,{,[],[],,,[],[],[],false,false,false,false,,,{,[],[],,,[],[],[],false,false,false,false,,,,-1,-1,-1,,-1,,-1,-1,-1,,-1,,,,,,,false,false},,-1,-1,-1,,-1,,-1,-1,-1,,-1,,,,,,,false,false},o,2,4,6,1,p,3,5,q,8,10,12,7,r,9,11,s,t,v,w,true,true,true,true,false,false,ee,dd,z,aa,bb,true,true,[cc]");
+                       
"$ref,default_,enum_,aev,allOf,allowEmptyValue,cf,collectionFormat,d,description,df,discriminator,e,emax,emin,externalDocs{description,url},f,format,ignore,items{$ref,default_,enum_,cf,collectionFormat,description,df,e,emax,emin,exclusiveMaximum,exclusiveMinimum,f,format,items{$ref,default_,enum_,cf,collectionFormat,description,df,e,emax,emin,exclusiveMaximum,exclusiveMinimum,f,format,max,maxItems,maxLength,maxi,maximum,maxl,min,minItems,minLength,mini,minimum,minl,mo,multipleOf,p,pat
 [...]
+                       
"c,[a],[b],false,[e],false,f,g,[h],[i],[j],k,[l],true,true,{[],},m,n,true,{,[],[],,,[],[],[],false,false,false,false,,,{,[],[],,,[],[],[],false,false,false,false,,,,-1,-1,-1,,-1,,-1,-1,-1,,-1,,,,,,,false,false},,-1,-1,-1,,-1,,-1,-1,-1,,-1,,,,,,,false,false},o,2,4,6,1,p,3,5,q,8,10,12,7,r,9,11,s,t,v,w,true,true,true,true,false,false,ee,dd,z,aa,bb,true,true,[cc]");
        }
 
        @Test void a02_testEquivalency() {
@@ -189,8 +184,6 @@ class SchemaAnnotation_Test extends TestBase {
                e="l",
                emax=true,
                emin=true,
-               exclusiveMaximum=true,
-               exclusiveMinimum=true,
                externalDocs=@ExternalDocs,
                f="m",
                format="n",
@@ -246,8 +239,6 @@ class SchemaAnnotation_Test extends TestBase {
                e="l",
                emax=true,
                emin=true,
-               exclusiveMaximum=true,
-               exclusiveMinimum=true,
                externalDocs=@ExternalDocs,
                f="m",
                format="n",
@@ -412,37 +403,16 @@ class SchemaAnnotation_Test extends TestBase {
        }
 
        
//------------------------------------------------------------------------------------------------------------------
-       // Backward compatibility: exclusiveMaximum/exclusiveMinimum fallback
+       // Draft 2020-12 numeric exclusiveMaximum/exclusiveMinimum
        
//------------------------------------------------------------------------------------------------------------------
 
-       @Test void f01_backwardCompatibility_exclusiveMaxMin() {
-               // Test that old boolean exclusiveMaximum/exclusiveMinimum 
still work
-               Schema oldStyle = SchemaAnnotation.create()
-                       .exclusiveMaximum(true)
-                       .exclusiveMinimum(true)
-                       .maximum("100")
-                       .minimum("0")
-                       .build();
-
-               assertBean(oldStyle, 
"exclusiveMaximum,exclusiveMinimum,maximum,minimum", "true,true,100,0");
-
-               // Test that new numeric style takes precedence
+       @Test void f01_exclusiveMaxMinValue() {
                Schema newStyle = SchemaAnnotation.create()
                        .exclusiveMaximumValue("100")
                        .exclusiveMinimumValue("0")
                        .build();
 
                assertBean(newStyle, 
"exclusiveMaximumValue,exclusiveMinimumValue", "100,0");
-
-               // Test that new style takes precedence when both are set
-               Schema mixed = SchemaAnnotation.create()
-                       .exclusiveMaximum(false)
-                       .exclusiveMinimum(false)
-                       .exclusiveMaximumValue("100")
-                       .exclusiveMinimumValue("0")
-                       .build();
-
-               assertBean(mixed, 
"exclusiveMaximum,exclusiveMinimum,exclusiveMaximumValue,exclusiveMinimumValue",
 "false,false,100,0");
        }
 
        @Test void g01_summary_asMap_emptyAnnotationOmitsKey() throws Exception 
{
@@ -508,24 +478,14 @@ class SchemaAnnotation_Test extends TestBase {
                assertEquals("true", SchemaAnnotation.asMap(a).get("ignore"));
        }
 
-       @Test void i03_asMap_exclusiveMaximumBooleanFallback() throws Exception 
{
-               // Forces the `else if (a.exclusiveMaximum() || a.emax())` 
short-circuit branch. // NOSONAR
-               var a = 
SchemaAnnotation.create().exclusiveMaximum(true).build();
-               assertEquals("true", 
SchemaAnnotation.asMap(a).get("exclusiveMaximum"));
-       }
-
        @Test void i04_asMap_exclusiveMaximumEmaxAlias() throws Exception {
-               // Triggers the second operand of `exclusiveMaximum() || 
emax()`.
+               // Forces the `else if (a.emax())` short-circuit branch.
                var a = SchemaAnnotation.create().emax(true).build();
                assertEquals("true", 
SchemaAnnotation.asMap(a).get("exclusiveMaximum"));
        }
 
-       @Test void i05_asMap_exclusiveMinimumBooleanFallback() throws Exception 
{
-               var a = 
SchemaAnnotation.create().exclusiveMinimum(true).build();
-               assertEquals("true", 
SchemaAnnotation.asMap(a).get("exclusiveMinimum"));
-       }
-
        @Test void i06_asMap_exclusiveMinimumEminAlias() throws Exception {
+               // Forces the `else if (a.emin())` short-circuit branch.
                var a = SchemaAnnotation.create().emin(true).build();
                assertEquals("true", 
SchemaAnnotation.asMap(a).get("exclusiveMinimum"));
        }
diff --git 
a/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/http/AnnotationUtils_Test.java
 
b/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/http/AnnotationUtils_Test.java
index 18dc254067..328c8c4117 100644
--- 
a/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/http/AnnotationUtils_Test.java
+++ 
b/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/http/AnnotationUtils_Test.java
@@ -138,8 +138,8 @@ class AnnotationUtils_Test extends TestBase {
                
assertFalse(SchemaAnnotation.empty(schema().e(a("foo")).build()));
                
assertFalse(SchemaAnnotation.empty(schema().emax(true).build()));
                
assertFalse(SchemaAnnotation.empty(schema().emin(true).build()));
-               
assertFalse(SchemaAnnotation.empty(schema().exclusiveMaximum(true).build()));
-               
assertFalse(SchemaAnnotation.empty(schema().exclusiveMinimum(true).build()));
+               
assertFalse(SchemaAnnotation.empty(schema().exclusiveMaximumValue("foo").build()));
+               
assertFalse(SchemaAnnotation.empty(schema().exclusiveMinimumValue("foo").build()));
                
assertFalse(SchemaAnnotation.empty(schema().externalDocs(externalDocs().url("foo").build()).build()));
                assertFalse(SchemaAnnotation.empty(schema().f("foo").build()));
                
assertFalse(SchemaAnnotation.empty(schema().format("foo").build()));
diff --git 
a/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/marshall/httppart/HttpPartSchema_Body_Test.java
 
b/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/marshall/httppart/HttpPartSchema_Body_Test.java
index ccc926ae5f..7e87becdde 100644
--- 
a/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/marshall/httppart/HttpPartSchema_Body_Test.java
+++ 
b/juneau-rest/juneau-rest-common/src/test/java/org/apache/juneau/marshall/httppart/HttpPartSchema_Body_Test.java
@@ -31,7 +31,6 @@ import org.junit.jupiter.api.*;
 @SuppressWarnings({
        "java:S5961", // High assertion count acceptable in comprehensive tests
        "java:S1186", // Empty method body intentional for callback testing
-       "removal" // Tests deprecated boolean-style 
exclusiveMaximum/exclusiveMinimum for backward compatibility
 })
 class HttpPartSchema_Body_Test extends TestBase {
 
@@ -724,11 +723,12 @@ class HttpPartSchema_Body_Test extends TestBase {
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
-       // Backward compatibility: Old boolean exclusiveMaximum/exclusiveMinimum
+       // Backward compatibility: the `emax`/`emin` boolean aliases (the 
long-named `exclusiveMaximum`/`exclusiveMinimum`
+       // boolean attributes were removed in 10.0.0; use the numeric 
`exclusiveMaximumValue`/`exclusiveMinimumValue`)
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Content
-       @Schema(t="integer", exclusiveMaximum=true, exclusiveMinimum=true, 
maximum="100", minimum="0")
+       @Schema(t="integer", emax=true, emin=true, maximum="100", minimum="0")
        public static class D03a {}
 
        @Test void d03a_exclusiveBooleanBounds() throws Exception {
@@ -745,7 +745,7 @@ class HttpPartSchema_Body_Test extends TestBase {
        }
 
        @Content
-       @Schema(t="integer", exclusiveMaximum=false, exclusiveMinimum=false, 
maximum="100", minimum="0")
+       @Schema(t="integer", emax=false, emin=false, maximum="100", minimum="0")
        public static class D03b {}
 
        @Test void d03b_inclusiveBounds() throws Exception {
@@ -762,7 +762,7 @@ class HttpPartSchema_Body_Test extends TestBase {
        }
 
        @Content
-       @Schema(t="integer", exclusiveMaximumValue="100", 
exclusiveMinimumValue="0", exclusiveMaximum=false, exclusiveMinimum=false)
+       @Schema(t="integer", exclusiveMaximumValue="100", 
exclusiveMinimumValue="0", emax=false, emin=false)
        public static class D03c {}
 
        @Test void d03c_newStyleTakesPrecedence() throws Exception {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/swagger/BasicSwaggerProviderSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/swagger/BasicSwaggerProviderSession.java
index 7b84a4e9f7..4877c6d7b8 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/swagger/BasicSwaggerProviderSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/swagger/BasicSwaggerProviderSession.java
@@ -945,9 +945,6 @@ public class BasicSwaggerProviderSession {
                // @formatter:on
        }
 
-       @SuppressWarnings({
-               "removal" // Uses deprecated exclusiveMaximum/exclusiveMinimum 
for backward compatibility
-       })
        private MarshalledMap merge(MarshalledMap om, Schema a) {
                try {
                        if (SchemaAnnotation.empty(a))
@@ -966,8 +963,8 @@ public class BasicSwaggerProviderSession {
                                .appendIf(ne, SWAGGER_discriminator, 
a.discriminator())
                                .appendIf(ne, SWAGGER_description, 
resolve(a.description(), a.d()))
                                .appendFirst(nec, SWAGGER_enum, 
toSet(a.enum_()), toSet(a.e()))
-                               .appendIf(nf, SWAGGER_exclusiveMaximum, 
a.exclusiveMaximum() || a.emax())
-                               .appendIf(nf, SWAGGER_exclusiveMinimum, 
a.exclusiveMinimum() || a.emin())
+                               .appendIf(nf, SWAGGER_exclusiveMaximum, 
a.emax())
+                               .appendIf(nf, SWAGGER_exclusiveMinimum, 
a.emin())
                                .appendIf(nem, SWAGGER_externalDocs, 
merge(om.getMap(SWAGGER_externalDocs), a.externalDocs()))
                                .appendFirst(ne, SWAGGER_format, a.format(), 
a.f())
                                .appendIf(ne, SWAGGER_ignore, a.ignore() ? 
SWAGGER_true : null)


Reply via email to