You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2026/07/23 13:13:22 UTC

(juneau) 02/03: TODO-283: accept oversized classes as cohesive-by-design (add java:S6539)

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

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

commit dfc800eea82074301d8a8012d31361043e7d3ed9
Author: James Bognar <ja...@apache.org>
AuthorDate: Thu Jul 23 09:12:56 2026 -0400

    TODO-283: accept oversized classes as cohesive-by-design (add java:S6539)
    
    ARCH-02 triage: add class-level @SuppressWarnings("java:S6539") with a one-line
    rationale to 17 oversized-but-cohesive classes (RestClient, RestRequest,
    StringUtils, ClassInfo, CollectionUtils, BeanInstantiator, BeanMeta, Shorts,
    HttpPartSchema, MarshallUtils, MarshallingContext, SerializerSession,
    MarshalledMap, ParquetParserSession, HttpHeaders, JsonSchema, HtmlBuilder) so
    future sweeps don't re-flag them. No splits. Annotation-type declarations and
    threshold-adjacent files intentionally left unsuppressed.
    
    Co-authored-by: Cursor <cu...@cursor.com>
---
 .../src/main/java/org/apache/juneau/bean/html5/HtmlBuilder.java        | 3 +++
 .../src/main/java/org/apache/juneau/bean/jsonschema/JsonSchema.java    | 3 ++-
 .../src/main/java/org/apache/juneau/commons/bean/BeanMeta.java         | 3 ++-
 .../main/java/org/apache/juneau/commons/inject/BeanInstantiator.java   | 3 ++-
 .../src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java     | 3 ++-
 .../src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java | 3 ++-
 .../src/main/java/org/apache/juneau/commons/utils/Shorts.java          | 3 ++-
 .../src/main/java/org/apache/juneau/commons/utils/StringUtils.java     | 3 ++-
 .../src/main/java/org/apache/juneau/marshall/MarshallingContext.java   | 2 +-
 .../java/org/apache/juneau/marshall/collections/MarshalledMap.java     | 3 ++-
 .../main/java/org/apache/juneau/marshall/httppart/HttpPartSchema.java  | 3 ++-
 .../main/java/org/apache/juneau/marshall/marshaller/MarshallUtils.java | 3 +++
 .../java/org/apache/juneau/marshall/parquet/ParquetParserSession.java  | 3 ++-
 .../java/org/apache/juneau/marshall/serializer/SerializerSession.java  | 3 ++-
 .../main/java/org/apache/juneau/rest/client/classic/RestClient.java    | 1 +
 .../main/java/org/apache/juneau/rest/client/classic/RestRequest.java   | 3 ++-
 .../src/main/java/org/apache/juneau/http/classic/HttpHeaders.java      | 3 ++-
 17 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/juneau-bean/juneau-bean-html5/src/main/java/org/apache/juneau/bean/html5/HtmlBuilder.java b/juneau-bean/juneau-bean-html5/src/main/java/org/apache/juneau/bean/html5/HtmlBuilder.java
index f3108cce5f..86d068690e 100644
--- a/juneau-bean/juneau-bean-html5/src/main/java/org/apache/juneau/bean/html5/HtmlBuilder.java
+++ b/juneau-bean/juneau-bean-html5/src/main/java/org/apache/juneau/bean/html5/HtmlBuilder.java
@@ -126,6 +126,9 @@ package org.apache.juneau.bean.html5;
  * 	<li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauBeanHtml5">juneau-bean-html5</a>
  * </ul>
  */
+@SuppressWarnings({
+	"java:S6539" // Monster class; HtmlBuilder is intentionally a single static-factory facade, one creator method per HTML5 element
+})
 public class HtmlBuilder {
 
 	/**
diff --git a/juneau-bean/juneau-bean-jsonschema/src/main/java/org/apache/juneau/bean/jsonschema/JsonSchema.java b/juneau-bean/juneau-bean-jsonschema/src/main/java/org/apache/juneau/bean/jsonschema/JsonSchema.java
index 2a6ffdf1d7..39f8ad5475 100644
--- a/juneau-bean/juneau-bean-jsonschema/src/main/java/org/apache/juneau/bean/jsonschema/JsonSchema.java
+++ b/juneau-bean/juneau-bean-jsonschema/src/main/java/org/apache/juneau/bean/jsonschema/JsonSchema.java
@@ -202,7 +202,8 @@ import org.apache.juneau.marshall.swap.*;
 @Marshalled(typeName = "schema")
 @SuppressWarnings({
 	"java:S116", // Field names follow OpenAPI/JSON Schema spec
-	"java:S119"  // 'SELF' (CRTP self-type) is intentional and clearer than a single-letter name.
+	"java:S119", // 'SELF' (CRTP self-type) is intentional and clearer than a single-letter name.
+	"java:S6539" // Monster class; JsonSchema intentionally models the entire JSON Schema Draft 2020-12 keyword set as one cohesive bean
 })
 public class JsonSchema<SELF extends JsonSchema<SELF>> {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
index 489868829b..02d2715cd0 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
@@ -78,7 +78,8 @@ import org.apache.juneau.commons.utils.*;
  */
 @SuppressWarnings({
 	"java:S115", // Constants use UPPER_snakeCase convention (e.g., PROP_class)
-	"java:S1200" // Central bean-introspection type; high coupling to annotations/reflect/utils is inherent to its role
+	"java:S1200", // Central bean-introspection type; high coupling to annotations/reflect/utils is inherent to its role
+	"java:S6539" // Monster class; BeanMeta is intentionally a single cohesive bean-introspection metadata cache
 })
 public class BeanMeta<T> {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
index 7d3cbddb83..6e5a99d89a 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
@@ -188,7 +188,8 @@ import org.apache.juneau.commons.reflect.*;
  */
 @SuppressWarnings({
 	"java:S115", // Constants use UPPER_snakeCase convention
-	"resource" // transient build-time scratch store; lifetime is bounded by the Builder itself, no foreign resources are captured
+	"resource", // transient build-time scratch store; lifetime is bounded by the Builder itself, no foreign resources are captured
+	"java:S6539" // Monster class; BeanInstantiator intentionally centralizes multi-strategy bean-instantiation auto-wiring
 })
 public class BeanInstantiator<T> {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
index e22505ebb2..e5724366a7 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
@@ -72,7 +72,8 @@ import org.apache.juneau.commons.inject.*;
 	"unchecked", // Type erasure requires unchecked casts
 	"rawtypes", // Raw types necessary for generic type handling
 	"java:S115", // Constants use UPPER_snakeCase naming convention
-	"java:S1452"  // Wildcard required - List<AnnotationInfo<? extends Annotation>>, List<TypeVariable<?>>
+	"java:S1452", // Wildcard required - List<AnnotationInfo<? extends Annotation>>, List<TypeVariable<?>>
+	"java:S6539" // Monster class; ClassInfo is intentionally a single cohesive reflection-metadata facade over Class
 })
 public non-sealed class ClassInfo extends ElementInfo implements Annotatable, Type, Comparable<ClassInfo> {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
index 4e8c6755c9..14d1d42cb8 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
@@ -123,7 +123,8 @@ import org.apache.juneau.commons.collections.*;
  * </ul>
  */
 @SuppressWarnings({
-	"java:S115" // Constants use UPPER_snakeCase convention
+	"java:S115", // Constants use UPPER_snakeCase convention
+	"java:S6539" // Monster class; CollectionUtils is intentionally a single cohesive collection-utility hub, not a set of unrelated responsibilities
 })
 public class CollectionUtils {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Shorts.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Shorts.java
index 12538dd35c..ca52b6fe7f 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Shorts.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Shorts.java
@@ -54,7 +54,8 @@ import org.apache.juneau.commons.reflect.*;
  * replace {@code import static ...utils.Utils.*} with {@code import static ...utils.Shorts.*}.
  */
 @SuppressWarnings({
-	"java:S1118" // Utility facade with static methods only.
+	"java:S1118", // Utility facade with static methods only.
+	"java:S6539" // Monster class; Shorts is intentionally a single terse-alias factory facade, each method tiny and independent
 })
 public class Shorts {
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
index 598bf7fabc..fc49277272 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
@@ -57,7 +57,8 @@ import org.apache.juneau.commons.reflect.*;
 	"java:S115",  // Constant names use UPPER_snakeCase convention
 	"java:S1192", // Duplicated string literals (HTML entities) are intentional
 	"java:S5843", // FP_REGEX copied from JDK source for parsing consistency
-	"java:S3516"  // Methods flagged as always returning the same value are valid utility implementations (e.g. null-safe wrappers)
+	"java:S3516", // Methods flagged as always returning the same value are valid utility implementations (e.g. null-safe wrappers)
+	"java:S6539"  // Monster class; StringUtils is intentionally a single cohesive string-utility hub, not a set of unrelated responsibilities
 })
 public class StringUtils {
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
index ecf0444d74..41a60ecd5e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
@@ -177,7 +177,7 @@ import org.apache.juneau.marshall.utils.*;
 @SuppressWarnings({
 	"unchecked",  // Type erasure requires unchecked casts
 	"rawtypes",   // Raw types necessary for generic type handling
-	"java:S6539", // Collection.toArray() usage intentional
+	"java:S6539", // Monster class; MarshallingContext is intentionally the central bean-context configuration hub (also covers Collection.toArray() usage)
 	"java:S115",  // Constants use UPPER_snakeCase naming convention
 	"java:S1452", // Wildcard required - ClassMeta<?> for parameter resolution and type variables
 	"java:S1612"  // Lambdas used instead of method references for readability in complex chained expressions
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
index 698d15aa68..83335ae922 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
@@ -55,7 +55,8 @@ import org.apache.juneau.marshall.swap.*;
  * </ul>
  */
 @SuppressWarnings({
-	"java:S2160" // equals() / hashCode() inherited from LinkedHashMap; map equality is element-based
+	"java:S2160", // equals() / hashCode() inherited from LinkedHashMap; map equality is element-based
+	"java:S6539"  // Monster class; MarshalledMap's large method surface follows directly from implementing the Map contract plus path-navigation helpers
 })
 public class MarshalledMap extends LinkedHashMap<String,Object> {
 
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 74c6fb83c4..e1a068b2ed 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
@@ -92,7 +92,8 @@ import org.apache.juneau.marshall.parser.*;
 	"java:S116", // Field names use trailing underscores (default_, enum_, const_) to avoid Java keyword conflicts
 	"java:S115", // Constants use UPPER_snakeCase convention (e.g., PROP_additionalProperties)
 	"java:S5843", // Complex regex patterns needed for RFC compliance (IPv6, ISO 8601 duration, date-time formats)
-	"java:S1452"  // Wildcard required for parsed type metadata
+	"java:S1452", // Wildcard required for parsed type metadata
+	"java:S6539"  // Monster class; HttpPartSchema is intentionally a single cohesive OpenAPI/HTTP-part schema model+validator
 })
 public class HttpPartSchema {
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/marshaller/MarshallUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/marshaller/MarshallUtils.java
index 066d8f7398..698a83aac6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/marshaller/MarshallUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/marshaller/MarshallUtils.java
@@ -63,6 +63,9 @@ import org.apache.juneau.marshall.serializer.*;
  * 	<li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/Marshallers">Marshallers</a>
  * </ul>
  */
+@SuppressWarnings({
+	"java:S6539" // Monster class; MarshallUtils is intentionally a single cohesive terse-marshalling-facade hub, one method family per format
+})
 public final class MarshallUtils {
 
 	private MarshallUtils() {}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
index 580d8e1972..eab6cf89f2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
@@ -41,7 +41,8 @@ import org.apache.juneau.marshall.stream.*;
 	"java:S3776",
 	"java:S6541", // Brain Method: Parquet parsing/serialization flows are inherently branchy
 	"java:S1192", // Duplicated literals (.list.element, root.list.element., value) are schema keys; constants would obscure
-	"resource"    // RecordReader returned by RecordAdapter is a Closeable owned by the caller; Eclipse JDT @Owning warning is by design.
+	"resource",   // RecordReader returned by RecordAdapter is a Closeable owned by the caller; Eclipse JDT @Owning warning is by design.
+	"java:S6539"  // Monster class; ParquetParserSession is intentionally a single cohesive Parquet codec session
 })
 public class ParquetParserSession extends InputStreamParserSession implements RecordReadable, ArrayRecordReadable {
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
index c08d8ae5d5..30f122b549 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
@@ -78,7 +78,8 @@ import org.apache.juneau.marshall.utils.*;
 	"java:S115",  // Constants use UPPER_snakeCase convention
 	"rawtypes",   // Raw types necessary for generic type handling throughout serializer session
 	"unchecked", // Type erasure requires unchecked casts throughout serializer session
-	"resource"   // Internal helpers return Closeables wired into pipe lifecycle; Eclipse JDT @Owning warning is by design.
+	"resource",  // Internal helpers return Closeables wired into pipe lifecycle; Eclipse JDT @Owning warning is by design.
+	"java:S6539" // Monster class; SerializerSession is intentionally the core per-run serialization session base, aggregating traversal/formatting state
 })
 public class SerializerSession extends MarshallingTraverseSession {
 
diff --git a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestClient.java b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestClient.java
index eb9f4dce11..9a8fc38e75 100644
--- a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestClient.java
+++ b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestClient.java
@@ -1070,6 +1070,7 @@ import org.apache.juneau.rest.client.classic.remote.*;
 	"resource",  // Resource management handled externally
 	"java:S106",  // System.err is the intentional default fallback for the configurable console PrintStream
 	"java:S115", // Constants use UPPER_snakeCase naming convention
+	"java:S6539" // Monster class; RestClient is intentionally a single fluent builder/client aggregating config, call orchestration, and remote-proxy wiring
 })
 public class RestClient extends MarshallingContextable implements HttpClient, Closeable {
 
diff --git a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestRequest.java b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestRequest.java
index 13e8d5498f..0ab695244f 100644
--- a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestRequest.java
+++ b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestRequest.java
@@ -110,7 +110,8 @@ import org.apache.juneau.marshall.xml.*;
 	"java:S115",  // Constants use UPPER_snakeCase naming convention
 	"resource",   // Resource management handled externally
 	"java:S3740", // Raw Class/Supplier types used for fluent REST request building where response type is unknown at construction time
-	"java:S1133"  // Intentional deprecation retained for backward compatibility until the documented removal; the reminder is not actionable now.
+	"java:S1133", // Intentional deprecation retained for backward compatibility until the documented removal; the reminder is not actionable now.
+	"java:S6539"  // Monster class; RestRequest is intentionally a single per-request fluent builder aggregating headers/query/form/body/serialization config
 })
 public class RestRequest extends MarshallingSession implements HttpUriRequest, Configurable, AutoCloseable {
 
diff --git a/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/HttpHeaders.java b/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/HttpHeaders.java
index 93331ad686..30fcd9a6cf 100644
--- a/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/HttpHeaders.java
+++ b/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/HttpHeaders.java
@@ -95,7 +95,8 @@ import org.apache.juneau.marshall.oapi.*;
  * </ul>
  */
 @SuppressWarnings({
-	"java:S3740" // Raw Supplier/Header types used in factory methods where HTTP header value type cannot be statically parameterized
+	"java:S3740", // Raw Supplier/Header types used in factory methods where HTTP header value type cannot be statically parameterized
+	"java:S6539"  // Monster class; HttpHeaders is intentionally a single static-factory facade, one creator method per standard HTTP header
 })
 public class HttpHeaders {