8330542: Template for Creating Strict JAXP Configuration File
Reviewed-by: lancea, erikj, alanb, ihse, mullan, naoto
This commit is contained in:
parent
da6aa2a86c
commit
91caec07cb
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -24,14 +24,17 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
include CopyCommon.gmk
|
include CopyCommon.gmk
|
||||||
|
include Modules.gmk
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
#
|
||||||
|
# Copy property and template files from share/conf to CONF_DST_DIR
|
||||||
|
#
|
||||||
|
$(eval $(call SetupCopyFiles, COPY_XML_MODULE_CONF, \
|
||||||
|
DEST := $(CONF_DST_DIR), \
|
||||||
|
SRC := $(TOPDIR)/src/java.xml/share/conf, \
|
||||||
|
FILES := jaxp.properties jaxp-strict.properties.template, \
|
||||||
|
))
|
||||||
|
|
||||||
XML_LIB_SRC := $(TOPDIR)/src/java.xml/share/conf
|
TARGETS += $(COPY_XML_MODULE_CONF)
|
||||||
|
|
||||||
$(CONF_DST_DIR)/jaxp.properties: $(XML_LIB_SRC)/jaxp.properties
|
|
||||||
$(call install-file)
|
|
||||||
|
|
||||||
TARGETS := $(CONF_DST_DIR)/jaxp.properties
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
123
src/java.xml/share/conf/jaxp-strict.properties.template
Normal file
123
src/java.xml/share/conf/jaxp-strict.properties.template
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
################################################################################
|
||||||
|
# JAXP Strict Configuration Template
|
||||||
|
#
|
||||||
|
# This file, jaxp-strict.properties.template, provides a template for creating
|
||||||
|
# custom configuration files. The settings in this file are more restrictive than
|
||||||
|
# those in the default configuration, jaxp.properties. In particular:
|
||||||
|
# - JDKCatalog Resolve is on "strict" setting
|
||||||
|
# - Extension Functions are disabled
|
||||||
|
# - JAXP Limits are set to smaller numbers
|
||||||
|
#
|
||||||
|
# To create a configuration file, copy the template to a new file with
|
||||||
|
# the .properties extension, that is:
|
||||||
|
#
|
||||||
|
# cp $JAVA_HOME/conf/jaxp-strict.properties.template /path/to/jaxp-strict.properties
|
||||||
|
#
|
||||||
|
# The configuration file can then be set up using the system property
|
||||||
|
# java.xml.config.file to override the default configuration jaxp.properties
|
||||||
|
# and used to assess the impact of a stricter configuration, for example:
|
||||||
|
#
|
||||||
|
# java -Djava.xml.config.file=/path/to/jaxp-strict.properties
|
||||||
|
#
|
||||||
|
# The system property java.xml.config.file is defined in the java.xml module
|
||||||
|
# description.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# ---- Implementation Specific Properties ----
|
||||||
|
# For a complete list of properties, refer to the Implementation Specific Properties
|
||||||
|
# table in the java.xml/module-summary.
|
||||||
|
#
|
||||||
|
# Extension Functions:
|
||||||
|
#
|
||||||
|
# This property determines whether XSLT and XPath extension functions are allowed.
|
||||||
|
# The value type is boolean and the default value is true (allowing
|
||||||
|
# extension functions). The following entry overrides the default value and
|
||||||
|
# disallows extension functions:
|
||||||
|
#
|
||||||
|
jdk.xml.enableExtensionFunctions=false
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Overriding the default parser:
|
||||||
|
#
|
||||||
|
# This property allows a third party implementation to override the default
|
||||||
|
# parser provided by the JDK. The value type is boolean and the default value is
|
||||||
|
# false, disallowing overriding the default parser. The setting below reflects
|
||||||
|
# the default property setting:
|
||||||
|
#
|
||||||
|
jdk.xml.overrideDefaultParser=false
|
||||||
|
#
|
||||||
|
# Implementation Specific Properties - jdkcatalog.resolve
|
||||||
|
#
|
||||||
|
# This property instructs the JDK default CatalogResolver to act in accordance with
|
||||||
|
# the setting when unable to resolve an external reference with the built-in Catalog.
|
||||||
|
# The options are:
|
||||||
|
# continue -- indicates that the processing should continue
|
||||||
|
# ignore -- indicates that the reference is skipped
|
||||||
|
# strict -- indicates that the resolver should throw a CatalogException
|
||||||
|
#
|
||||||
|
# The following setting causes the default CatalogResolver to throw a CatalogException
|
||||||
|
# when external references are not resolved by a user-defined resolver or catalog,
|
||||||
|
# or the built-in Catalog:
|
||||||
|
jdk.xml.jdkcatalog.resolve=strict
|
||||||
|
#
|
||||||
|
# Implementation Specific Properties - DTD
|
||||||
|
#
|
||||||
|
# This property instructs the parsers to deny, ignore or allow DTD processing.
|
||||||
|
# The following setting causes the parser to reject DTDs by throwing an exception.
|
||||||
|
# jdk.xml.dtd.support=deny
|
||||||
|
#
|
||||||
|
# The following setting permits the processor to continue processing DTDs. Note
|
||||||
|
# that while DTDs are allowed in this configuration, external references are
|
||||||
|
# restricted, and limits on DTD entities are tightened:
|
||||||
|
jdk.xml.dtd.support=allow
|
||||||
|
#
|
||||||
|
# Implementation Specific Properties - Limits
|
||||||
|
#
|
||||||
|
# Limits have a value type Integer. The values must be positive integers. Zero
|
||||||
|
# means no limit.
|
||||||
|
#
|
||||||
|
# Limits the number of entity expansions
|
||||||
|
jdk.xml.entityExpansionLimit=2500
|
||||||
|
#
|
||||||
|
# Limits the total size of all entities that include general and parameter entities.
|
||||||
|
# The size is calculated as an aggregation of all entities.
|
||||||
|
jdk.xml.totalEntitySizeLimit=100000
|
||||||
|
#
|
||||||
|
# Limits the maximum size of any general entities.
|
||||||
|
jdk.xml.maxGeneralEntitySizeLimit=100000
|
||||||
|
#
|
||||||
|
# Limits the maximum size of any parameter entities, including the result of
|
||||||
|
# nesting multiple parameter entities.
|
||||||
|
jdk.xml.maxParameterEntitySizeLimit=15000
|
||||||
|
#
|
||||||
|
# Limits the total number of nodes in all entity references.
|
||||||
|
jdk.xml.entityReplacementLimit=100000
|
||||||
|
#
|
||||||
|
# Limits the number of attributes an element can have. The default value is 10000.
|
||||||
|
jdk.xml.elementAttributeLimit=10000
|
||||||
|
#
|
||||||
|
# Limits the number of content model nodes that may be created when building a
|
||||||
|
# grammar for a W3C XML Schema that contains maxOccurs attributes with values
|
||||||
|
# other than "unbounded". The default value is 5000.
|
||||||
|
jdk.xml.maxOccurLimit=5000
|
||||||
|
#
|
||||||
|
# Limits the maximum element depth. The default value is 0.
|
||||||
|
jdk.xml.maxElementDepth=0
|
||||||
|
#
|
||||||
|
# Limits the maximum size of XML names, including element name, attribute name
|
||||||
|
# and namespace prefix and URI. The default value is 1000.
|
||||||
|
jdk.xml.maxXMLNameLimit=1000
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# XPath Limits
|
||||||
|
#
|
||||||
|
# Limits the number of groups an XPath expression can contain. The default value is 10.
|
||||||
|
jdk.xml.xpathExprGrpLimit=10
|
||||||
|
#
|
||||||
|
# Limits the number of operators an XPath expression can contain. The default value is 100.
|
||||||
|
jdk.xml.xpathExprOpLimit=100
|
||||||
|
#
|
||||||
|
# Limits the total number of XPath operators in an XSL Stylesheet. The default value is 10000.
|
||||||
|
jdk.xml.xpathTotalOpLimit=10000
|
@ -31,7 +31,7 @@
|
|||||||
#
|
#
|
||||||
# The format of an entry is key=value where the key is the fully qualified name
|
# The format of an entry is key=value where the key is the fully qualified name
|
||||||
# of the factory and value that of the implementation class. The following entry
|
# of the factory and value that of the implementation class. The following entry
|
||||||
# set a DocumentBuilderFactory implementation class:
|
# sets a DocumentBuilderFactory implementation class:
|
||||||
#
|
#
|
||||||
# javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
|
# javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
|
||||||
#
|
#
|
||||||
@ -49,7 +49,7 @@
|
|||||||
#
|
#
|
||||||
# For example, the RESOLVE property in CatalogFeatures has an associated system
|
# For example, the RESOLVE property in CatalogFeatures has an associated system
|
||||||
# property called javax.xml.catalog.resolve. An entry for the RESOLVE property in the
|
# property called javax.xml.catalog.resolve. An entry for the RESOLVE property in the
|
||||||
# configuration file would therefore use javax.xml.catalog.resolve as the key, that
|
# configuration file therefore uses javax.xml.catalog.resolve as the key, that
|
||||||
# is:
|
# is:
|
||||||
# javax.xml.catalog.resolve=strict
|
# javax.xml.catalog.resolve=strict
|
||||||
#
|
#
|
||||||
@ -58,15 +58,15 @@
|
|||||||
#
|
#
|
||||||
# This property determines whether XSLT and XPath extension functions are allowed.
|
# This property determines whether XSLT and XPath extension functions are allowed.
|
||||||
# The value type is boolean and the default value is true (allowing
|
# The value type is boolean and the default value is true (allowing
|
||||||
# extension functions). The following entry would override the default value and
|
# extension functions). The following entry overrides the default value and
|
||||||
# disallow extension functions:
|
# disallows extension functions:
|
||||||
#
|
#
|
||||||
# jdk.xml.enableExtensionFunctions=false
|
# jdk.xml.enableExtensionFunctions=false
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Overriding the default parser:
|
# Overriding the default parser:
|
||||||
#
|
#
|
||||||
# This property allows using a third party implementation to override the default
|
# This property allows a third party implementation to override the default
|
||||||
# parser provided by the JDK. The value type is boolean and the default value is
|
# parser provided by the JDK. The value type is boolean and the default value is
|
||||||
# false, disallowing overriding the default parser. The setting below reflects
|
# false, disallowing overriding the default parser. The setting below reflects
|
||||||
# the default property setting:
|
# the default property setting:
|
||||||
@ -137,16 +137,20 @@ jdk.xml.overrideDefaultParser=false
|
|||||||
# ignore -- indicates that the reference is skipped
|
# ignore -- indicates that the reference is skipped
|
||||||
# strict -- indicates that the resolver should throw a CatalogException
|
# strict -- indicates that the resolver should throw a CatalogException
|
||||||
#
|
#
|
||||||
# The following setting would cause the resolve to throw a CatalogException when
|
# The following setting allows the resolution to continue in cases where
|
||||||
# unable to resolve an external reference:
|
# external references are not resolved by a user-defined resolver or catalog if
|
||||||
# jdk.xml.jdkcatalog.resolve=strict
|
# any, and the built-in Catalog:
|
||||||
|
jdk.xml.jdkcatalog.resolve=continue
|
||||||
#
|
#
|
||||||
# Implementation Specific Properties - DTD
|
# Implementation Specific Properties - DTD
|
||||||
#
|
#
|
||||||
# This property instructs the parsers to: deny, ignore or allow DTD processing.
|
# This property instructs the parsers to deny, ignore or allow DTD processing.
|
||||||
# The following setting would cause the parser to reject DTD by throwing an exception.
|
# The following setting causes the parser to reject DTDs by throwing an exception.
|
||||||
# jdk.xml.dtd.support=deny
|
# jdk.xml.dtd.support=deny
|
||||||
#
|
#
|
||||||
|
# The following setting permits the processor to continue processing DTDs
|
||||||
|
jdk.xml.dtd.support=allow
|
||||||
|
#
|
||||||
# Implementation Specific Properties - Limits
|
# Implementation Specific Properties - Limits
|
||||||
#
|
#
|
||||||
# Limits have a value type Integer. The values must be positive integers. Zero
|
# Limits have a value type Integer. The values must be positive integers. Zero
|
||||||
@ -157,17 +161,17 @@ jdk.xml.overrideDefaultParser=false
|
|||||||
#
|
#
|
||||||
# Limits the total size of all entities that include general and parameter entities.
|
# Limits the total size of all entities that include general and parameter entities.
|
||||||
# The size is calculated as an aggregation of all entities. The default value is 5x10^7.
|
# The size is calculated as an aggregation of all entities. The default value is 5x10^7.
|
||||||
# jdk.xml.totalEntitySizeLimit=5E7
|
# jdk.xml.totalEntitySizeLimit=50000000
|
||||||
#
|
#
|
||||||
# Limits the maximum size of any general entities. The default value is 0.
|
# Limits the maximum size of any general entities. The default value is 0.
|
||||||
# jdk.xml.maxGeneralEntitySizeLimit=0
|
# jdk.xml.maxGeneralEntitySizeLimit=0
|
||||||
#
|
#
|
||||||
# Limits the maximum size of any parameter entities, including the result of
|
# Limits the maximum size of any parameter entities, including the result of
|
||||||
# nesting multiple parameter entities. The default value is 10^6.
|
# nesting multiple parameter entities. The default value is 10^6.
|
||||||
# jdk.xml.maxParameterEntitySizeLimit=1E6
|
# jdk.xml.maxParameterEntitySizeLimit=1000000
|
||||||
#
|
#
|
||||||
# Limits the total number of nodes in all entity references. The default value is 3x10^6.
|
# Limits the total number of nodes in all entity references. The default value is 3x10^6.
|
||||||
# jdk.xml.entityReplacementLimit=3E6
|
# jdk.xml.entityReplacementLimit=3000000
|
||||||
#
|
#
|
||||||
# Limits the number of attributes an element can have. The default value is 10000.
|
# Limits the number of attributes an element can have. The default value is 10000.
|
||||||
# jdk.xml.elementAttributeLimit=10000
|
# jdk.xml.elementAttributeLimit=10000
|
||||||
@ -195,4 +199,3 @@ jdk.xml.xpathExprOpLimit=100
|
|||||||
#
|
#
|
||||||
# Limits the total number of XPath operators in an XSL Stylesheet. The default value is 10000.
|
# Limits the total number of XPath operators in an XSL Stylesheet. The default value is 10000.
|
||||||
jdk.xml.xpathTotalOpLimit=10000
|
jdk.xml.xpathTotalOpLimit=10000
|
||||||
|
|
||||||
|
@ -0,0 +1,114 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
package common.config;
|
||||||
|
|
||||||
|
import common.util.TestBase;
|
||||||
|
import static common.util.TestBase.CONFIG_DEFAULT;
|
||||||
|
import static common.util.TestBase.CONFIG_STRICT;
|
||||||
|
import static common.util.TestBase.CONFIG_TEMPLATE_STRICT;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import javax.xml.transform.TransformerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test @bug 8330542
|
||||||
|
* @summary verifies the default JAXP configuration file jaxp.properties and
|
||||||
|
* strict template jaxp-strict.properties.template.
|
||||||
|
* @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
|
||||||
|
* @modules java.xml/jdk.xml.internal
|
||||||
|
* @run driver common.config.ConfigFileTest 0 // verifies jaxp.properties
|
||||||
|
* @run driver common.config.ConfigFileTest 1 // verifies jaxp-strict.properties.template
|
||||||
|
*/
|
||||||
|
public class ConfigFileTest {
|
||||||
|
// system property for custom configuration file
|
||||||
|
static final String SP_CONFIG = "java.xml.config.file";
|
||||||
|
// target directory
|
||||||
|
static String TEST_DIR = System.getProperty("test.classes");
|
||||||
|
|
||||||
|
// properties in the configuration file
|
||||||
|
String[] keys = {
|
||||||
|
"jdk.xml.enableExtensionFunctions",
|
||||||
|
"jdk.xml.overrideDefaultParser",
|
||||||
|
"jdk.xml.jdkcatalog.resolve",
|
||||||
|
"jdk.xml.dtd.support",
|
||||||
|
"jdk.xml.entityExpansionLimit",
|
||||||
|
"jdk.xml.totalEntitySizeLimit",
|
||||||
|
"jdk.xml.maxGeneralEntitySizeLimit",
|
||||||
|
"jdk.xml.maxParameterEntitySizeLimit",
|
||||||
|
"jdk.xml.entityReplacementLimit",
|
||||||
|
"jdk.xml.elementAttributeLimit",
|
||||||
|
"jdk.xml.maxOccurLimit",
|
||||||
|
"jdk.xml.maxElementDepth",
|
||||||
|
"jdk.xml.maxXMLNameLimit",
|
||||||
|
"jdk.xml.xpathExprGrpLimit",
|
||||||
|
"jdk.xml.xpathExprOpLimit",
|
||||||
|
"jdk.xml.xpathTotalOpLimit"};
|
||||||
|
|
||||||
|
// type of properties
|
||||||
|
boolean[] propertyIsFeature ={true, true, false, false, false, false,
|
||||||
|
false, false, false, false, false, false, false, false, false, false};
|
||||||
|
|
||||||
|
// values from jaxp-strict.properties.template
|
||||||
|
String[] strictValues ={"false", "false", "strict", "allow", "2500", "100000",
|
||||||
|
"100000", "15000", "100000", "10000", "5000", "0", "1000", "10", "100", "10000"};
|
||||||
|
|
||||||
|
// values from jaxp.properties, as of JDK 23
|
||||||
|
String[] defaultValues ={"true", "false", "continue", "allow", "64000", "50000000",
|
||||||
|
"0", "1000000", "3000000", "10000", "5000", "0", "1000", "10", "100", "10000"};
|
||||||
|
|
||||||
|
public static void main(String args[]) throws Exception {
|
||||||
|
new ConfigFileTest().run(args[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void run(String index) throws Exception {
|
||||||
|
String conf = System.getProperty("java.home") + "/conf/";
|
||||||
|
if (index.equals("0")) {
|
||||||
|
verifyConfig(conf + CONFIG_DEFAULT, defaultValues);
|
||||||
|
} else {
|
||||||
|
Path config = Paths.get(TEST_DIR, CONFIG_STRICT);
|
||||||
|
Files.copy(Paths.get(conf, CONFIG_TEMPLATE_STRICT), config);
|
||||||
|
verifyConfig(config.toString(), strictValues);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies a configuration file by iterating through its property settings.
|
||||||
|
* @param filename the configuration file
|
||||||
|
* @param values expected values in the configuration file
|
||||||
|
*/
|
||||||
|
private void verifyConfig(String filename, String[] values) {
|
||||||
|
System.setProperty(SP_CONFIG, filename);
|
||||||
|
|
||||||
|
TransformerFactory tf = TransformerFactory.newInstance();
|
||||||
|
IntStream.range(0, keys.length).forEach(i -> {
|
||||||
|
if (propertyIsFeature[i]) {
|
||||||
|
TestBase.Assert.assertEquals(tf.getFeature(keys[i]), Boolean.parseBoolean(values[i]));
|
||||||
|
} else {
|
||||||
|
TestBase.Assert.assertEquals(tf.getAttribute(keys[i]), values[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
System.clearProperty(SP_CONFIG);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -28,6 +28,7 @@ import java.io.FileNotFoundException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import javax.xml.XMLConstants;
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.catalog.CatalogFeatures;
|
import javax.xml.catalog.CatalogFeatures;
|
||||||
@ -121,6 +122,11 @@ public class TestBase {
|
|||||||
// CATALOG=strict
|
// CATALOG=strict
|
||||||
public static final String CONFIG_CATALOG_STRICT = "catalog2.properties";
|
public static final String CONFIG_CATALOG_STRICT = "catalog2.properties";
|
||||||
|
|
||||||
|
// JAXP Configuration Files to be added to $JAVA_HOME/conf/
|
||||||
|
public static final String CONFIG_DEFAULT = "jaxp.properties";
|
||||||
|
public static final String CONFIG_STRICT = "jaxp-strict.properties";
|
||||||
|
public static final String CONFIG_TEMPLATE_STRICT = "jaxp-strict.properties.template";
|
||||||
|
|
||||||
public static final String UNKNOWN_HOST = "invalid.site.com";
|
public static final String UNKNOWN_HOST = "invalid.site.com";
|
||||||
|
|
||||||
String xmlExternalEntity, xmlExternalEntityId;
|
String xmlExternalEntity, xmlExternalEntityId;
|
||||||
@ -133,6 +139,7 @@ public class TestBase {
|
|||||||
// config file: CATALOG = strict
|
// config file: CATALOG = strict
|
||||||
CONFIG_FILE_CATALOG_STRICT(null, CONFIG_FILE, Type.FEATURE, getPath(CONFIG_FILE_PATH, CONFIG_CATALOG_STRICT)),
|
CONFIG_FILE_CATALOG_STRICT(null, CONFIG_FILE, Type.FEATURE, getPath(CONFIG_FILE_PATH, CONFIG_CATALOG_STRICT)),
|
||||||
CONFIG_FILE_DTD2(null, CONFIG_FILE, Type.FEATURE, getPath(CONFIG_FILE_PATH, JCF_DTD2)),
|
CONFIG_FILE_DTD2(null, CONFIG_FILE, Type.FEATURE, getPath(CONFIG_FILE_PATH, JCF_DTD2)),
|
||||||
|
|
||||||
FSP(XMLConstants.FEATURE_SECURE_PROCESSING, null, Type.FEATURE, "true"),
|
FSP(XMLConstants.FEATURE_SECURE_PROCESSING, null, Type.FEATURE, "true"),
|
||||||
FSP_FALSE(XMLConstants.FEATURE_SECURE_PROCESSING, null, Type.FEATURE, "false"),
|
FSP_FALSE(XMLConstants.FEATURE_SECURE_PROCESSING, null, Type.FEATURE, "false"),
|
||||||
|
|
||||||
@ -715,7 +722,7 @@ public class TestBase {
|
|||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Assert {
|
public static class Assert {
|
||||||
public static void assertTrue(boolean condition) {
|
public static void assertTrue(boolean condition) {
|
||||||
assertTrue(condition, null);
|
assertTrue(condition, null);
|
||||||
}
|
}
|
||||||
@ -733,5 +740,11 @@ public class TestBase {
|
|||||||
public static void fail(String message) {
|
public static void fail(String message) {
|
||||||
throw new RuntimeException("Test failed. " + message);
|
throw new RuntimeException("Test failed. " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void assertEquals(Object actual, Object expected) {
|
||||||
|
if (!Objects.equals(actual, expected)) {
|
||||||
|
throw new RuntimeException("Expected: " + expected + " but actual result was " + actual);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user