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.