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

garydgregory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/commons-xml.git


The following commit(s) were added to refs/heads/main by this push:
     new 90411f3  Make wrapper constructors private.
90411f3 is described below

commit 90411f38fb4997cc9174b521b8402d914395e4ab
Author: Gary Gregory <[email protected]>
AuthorDate: Thu Aug 27 21:12:38 2026 -0400

    Make wrapper constructors private.
    
    For some reason, the ShadingFootprintTest need to be updated.
---
 .../xml/HardeningDocumentBuilderFactory.java       |   2 +-
 .../commons/xml/HardeningSAXParserFactory.java     |   2 +-
 .../apache/commons/xml/HardeningSchemaFactory.java |   2 +-
 .../commons/xml/HardeningTransformerFactory.java   |   4 +-
 .../commons/xml/HardeningXMLInputFactory.java      |   2 +-
 .../apache/commons/xml/HardeningXPathFactory.java  |   2 +-
 .../apache/commons/xml/ShadingFootprintTest.java   | 143 +++++++++++++++++----
 7 files changed, 122 insertions(+), 35 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/xml/HardeningDocumentBuilderFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningDocumentBuilderFactory.java
index 040bea9..1888f3c 100644
--- a/src/main/java/org/apache/commons/xml/HardeningDocumentBuilderFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningDocumentBuilderFactory.java
@@ -94,7 +94,7 @@ private static final class Wrapper extends 
DocumentBuilderFactory {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final DocumentBuilderFactory delegate) {
+        private Wrapper(final DocumentBuilderFactory delegate) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
         }
 
diff --git 
a/src/main/java/org/apache/commons/xml/HardeningSAXParserFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningSAXParserFactory.java
index 1b2cbc3..d45581f 100644
--- a/src/main/java/org/apache/commons/xml/HardeningSAXParserFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningSAXParserFactory.java
@@ -93,7 +93,7 @@ private static final class Wrapper extends SAXParserFactory {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final SAXParserFactory delegate) {
+        private Wrapper(final SAXParserFactory delegate) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
         }
 
diff --git a/src/main/java/org/apache/commons/xml/HardeningSchemaFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningSchemaFactory.java
index 1685b51..2f2f9dc 100644
--- a/src/main/java/org/apache/commons/xml/HardeningSchemaFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningSchemaFactory.java
@@ -142,7 +142,7 @@ private static Source[] harden(final Source[] schemas) 
throws SAXException {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final SchemaFactory delegate) {
+        private Wrapper(final SchemaFactory delegate) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
             // Compile-time block for xs:import/include/redefine; the wrappers 
carry the rest (per-product resolver, source rewriting, limits via the reader).
             delegate.setResourceResolver(floor);
diff --git 
a/src/main/java/org/apache/commons/xml/HardeningTransformerFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningTransformerFactory.java
index 4623c15..6dafad4 100644
--- a/src/main/java/org/apache/commons/xml/HardeningTransformerFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningTransformerFactory.java
@@ -199,7 +199,7 @@ private static Templates unwrap(final Templates templates) {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final SAXTransformerFactory delegate) {
+        private Wrapper(final SAXTransformerFactory delegate) {
             this(delegate, null);
         }
 
@@ -211,7 +211,7 @@ private static Templates unwrap(final Templates templates) {
          *                    default empty DOM.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final SAXTransformerFactory delegate, final Supplier<Source> 
emptySource) {
+        private Wrapper(final SAXTransformerFactory delegate, final 
Supplier<Source> emptySource) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
             this.emptySource = emptySource;
             this.floor = new FallbackIgnoreURIResolver(null, emptySource);
diff --git a/src/main/java/org/apache/commons/xml/HardeningXMLInputFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningXMLInputFactory.java
index daef043..5e9bc0e 100644
--- a/src/main/java/org/apache/commons/xml/HardeningXMLInputFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningXMLInputFactory.java
@@ -114,7 +114,7 @@ private static XMLResolver unwrap(final XMLResolver 
resolver) {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final XMLInputFactory delegate) {
+        private Wrapper(final XMLInputFactory delegate) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
             delegate.setXMLResolver(new FallbackIgnoreXMLResolver(null));
         }
diff --git a/src/main/java/org/apache/commons/xml/HardeningXPathFactory.java 
b/src/main/java/org/apache/commons/xml/HardeningXPathFactory.java
index 8e91201..460efad 100644
--- a/src/main/java/org/apache/commons/xml/HardeningXPathFactory.java
+++ b/src/main/java/org/apache/commons/xml/HardeningXPathFactory.java
@@ -88,7 +88,7 @@ private static final class Wrapper extends XPathFactory {
          * @param delegate the delegate to wrap; must not be {@code null}.
          * @throws NullPointerException if {@code delegate} is {@code null}.
          */
-        Wrapper(final XPathFactory delegate) {
+        private Wrapper(final XPathFactory delegate) {
             this.delegate = Objects.requireNonNull(delegate, "delegate");
         }
 
diff --git a/src/test/java/org/apache/commons/xml/ShadingFootprintTest.java 
b/src/test/java/org/apache/commons/xml/ShadingFootprintTest.java
index da7fd53..f1554ba 100644
--- a/src/test/java/org/apache/commons/xml/ShadingFootprintTest.java
+++ b/src/test/java/org/apache/commons/xml/ShadingFootprintTest.java
@@ -55,44 +55,131 @@ class ShadingFootprintTest {
 
     private static final String PKG = "org.apache.commons.xml.";
 
-    /**
-     * Shared exception carrying the {@code settingFailed} message helper; 
pulled in by every hardener that applies a JAXP setting.
-     */
-    private static final String HARDENING_EXCEPTION = "HardeningException";
-
-    private static final Set<String> DOCUMENT_BUILDER_HARDENER = 
set("DocumentBuilderHardener", "HardeningDocumentBuilder", 
"HardeningDocumentBuilderFactory",
-            "HardeningDocumentBuilderFactory$Wrapper", HARDENING_EXCEPTION, 
"FallbackIgnoreEntityResolver2");
-
-    private static final Set<String> SAX_PARSER_HARDENER = 
set("SAXParserHardener",
-            "SAXParserHardener$HardeningExpatXMLReader", "HardeningSAXParser", 
"HardeningSAXParserFactory", "HardeningSAXParserFactory$Wrapper",
-            "HardeningXMLReader", HARDENING_EXCEPTION, 
"FallbackIgnoreEntityResolver2");
-
-    private static final Set<String> STAX_HARDENER = set("StaxHardener", 
"HardeningXMLInputFactory", "HardeningXMLInputFactory$Wrapper",
-            "FallbackIgnoreXMLResolver", HARDENING_EXCEPTION);
+    // @formatter:off
+    private static final Set<String> DOCUMENT_BUILDER_HARDENER = set(
+            "DocumentBuilderHardener",
+            "FallbackIgnoreEntityResolver2",
+            "HardeningDocumentBuilder",
+            "HardeningDocumentBuilderFactory",
+            "HardeningDocumentBuilderFactory$1",
+            "HardeningDocumentBuilderFactory$Wrapper",
+            "HardeningException");
+    // @formatter:on
+
+    // @formatter:off
+    private static final Set<String> SAX_PARSER_HARDENER = set(
+            "FallbackIgnoreEntityResolver2",
+            "HardeningException",
+            "HardeningSAXParser",
+            "HardeningSAXParserFactory",
+            "HardeningSAXParserFactory$1",
+            "HardeningSAXParserFactory$Wrapper",
+            "HardeningXMLReader",
+            "SAXParserHardener",
+            "SAXParserHardener$HardeningExpatXMLReader");
+    // @formatter:on
+
+    // @formatter:off
+    private static final Set<String> STAX_HARDENER = set(
+            "FallbackIgnoreXMLResolver",
+            "HardeningException",
+            "HardeningXMLInputFactory",
+            "HardeningXMLInputFactory$1",
+            "HardeningXMLInputFactory$Wrapper",
+            "StaxHardener");
+    // @formatter:on
 
     /**
      * TrAX, XPath and schema re-harden their sub-parsers through {@link 
SAXParserHardener#hardenSource(Source)}, so each builds on the full SAX closure 
below;
      * TrAX additionally parses the Xalan {@code getAssociatedStylesheet} 
source and XPath its InputSource-taking evaluate calls through the DOM 
hardener, so
      * their closures carry that set too.
      */
-    private static final Set<String> TRANSFORMER_HARDENER = 
saxParsersHardenerPlus("TransformerHardener", "HardeningTransformerFactory",
-            "HardeningTransformerFactory$Wrapper", "HardeningTransformer", 
"HardeningTransformerHandler", "HardeningTemplates", 
"HardeningTemplatesHandler",
-            "HardeningXMLFilter", "FallbackIgnoreURIResolver", 
"SaxonProvider", "SaxonProvider$1", "SaxonProvider$HardenedConfiguration"
-            , "SaxonProvider$SaxonProviderConfigurer", 
"DocumentBuilderHardener", "HardeningDocumentBuilder", 
"HardeningDocumentBuilderFactory",
-            "HardeningDocumentBuilderFactory$Wrapper");
-
-    private static final Set<String> XPATH_HARDENER = 
saxParsersHardenerPlus("XPathHardener", "FallbackIgnoreURIResolver", 
"SaxonProvider",
-            "SaxonProvider$1", "SaxonProvider$HardenedConfiguration", 
"SaxonProvider$SaxonProviderConfigurer", "HardeningXPathFactory",
-            "HardeningXPathFactory$Wrapper", "HardeningXPath", 
"HardeningXPathExpression", "DocumentBuilderHardener", 
"HardeningDocumentBuilder",
-            "HardeningDocumentBuilderFactory", 
"HardeningDocumentBuilderFactory$Wrapper");
-
-    private static final Set<String> SCHEMA_HARDENER = 
saxParsersHardenerPlus("SchemaHardener", "HardeningSchemaFactory", 
"HardeningSchemaFactory$Wrapper",
-            "HardeningValidator", "HardeningValidatorHandler", 
"HardeningSchema", "FallbackIgnoreLSResourceResolver");
+    // @formatter:off
+    private static final Set<String> TRANSFORMER_HARDENER = 
saxParsersHardenerPlus(
+            "DocumentBuilderHardener",
+            "FallbackIgnoreEntityResolver2",
+            "FallbackIgnoreURIResolver",
+            "HardeningDocumentBuilder",
+            "HardeningDocumentBuilderFactory",
+            "HardeningDocumentBuilderFactory$1",
+            "HardeningDocumentBuilderFactory$Wrapper",
+            "HardeningException",
+            "HardeningSAXParser",
+            "HardeningSAXParserFactory",
+            "HardeningSAXParserFactory$1",
+            "HardeningSAXParserFactory$Wrapper",
+            "HardeningTemplates",
+            "HardeningTemplatesHandler",
+            "HardeningTransformer",
+            "HardeningTransformerFactory",
+            "HardeningTransformerFactory$1",
+            "HardeningTransformerFactory$Wrapper",
+            "HardeningTransformerHandler",
+            "HardeningXMLFilter",
+            "HardeningXMLReader",
+            "SAXParserHardener",
+            "SAXParserHardener$HardeningExpatXMLReader",
+            "SaxonProvider",
+            "SaxonProvider$1",
+            "SaxonProvider$HardenedConfiguration",
+            "SaxonProvider$SaxonProviderConfigurer",
+            "TransformerHardener");
+    // @formatter:on
+
+    // @formatter:off
+    private static final Set<String> XPATH_HARDENER = saxParsersHardenerPlus(
+            "DocumentBuilderHardener",
+            "FallbackIgnoreEntityResolver2",
+            "FallbackIgnoreURIResolver",
+            "HardeningDocumentBuilder",
+            "HardeningDocumentBuilderFactory",
+            "HardeningDocumentBuilderFactory$1",
+            "HardeningDocumentBuilderFactory$Wrapper",
+            "HardeningException",
+            "HardeningSAXParser",
+            "HardeningSAXParserFactory",
+            "HardeningSAXParserFactory$1",
+            "HardeningSAXParserFactory$Wrapper",
+            "HardeningXMLReader",
+            "HardeningXPath",
+            "HardeningXPathExpression",
+            "HardeningXPathFactory",
+            "HardeningXPathFactory$1",
+            "HardeningXPathFactory$Wrapper",
+            "SAXParserHardener",
+            "SAXParserHardener$HardeningExpatXMLReader",
+            "SaxonProvider",
+            "SaxonProvider$1",
+            "SaxonProvider$HardenedConfiguration",
+            "SaxonProvider$SaxonProviderConfigurer",
+            "XPathHardener");
+    // @formatter:on
+
+    // @formatter:off
+    private static final Set<String> SCHEMA_HARDENER = saxParsersHardenerPlus(
+            "FallbackIgnoreEntityResolver2",
+            "FallbackIgnoreLSResourceResolver",
+            "HardeningException",
+            "HardeningSAXParser",
+            "HardeningSAXParserFactory",
+            "HardeningSAXParserFactory$1",
+            "HardeningSAXParserFactory$Wrapper",
+            "HardeningSchema",
+            "HardeningSchemaFactory",
+            "HardeningSchemaFactory$1",
+            "HardeningSchemaFactory$Wrapper",
+            "HardeningValidator",
+            "HardeningValidatorHandler",
+            "HardeningXMLReader",
+            "SAXParserHardener",
+            "SAXParserHardener$HardeningExpatXMLReader",
+            "SchemaHardener");
+    // @formatter:on
 
     /**
      * Class count of the {@link #rootClosure()} DOM entry point, the baseline 
the {@link #reportFootprint()} percentages are computed against.
      */
-    private static final int LIBRARY_CLASS_COUNT = 6;
+    private static final int LIBRARY_CLASS_COUNT = 7;
 
     /**
      * Entry points reported by the {@link #reportFootprint()} diagnostic, 
most-focused first, ending with the whole library.

Reply via email to