You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
267 lines
8.6 KiB
267 lines
8.6 KiB
/*
|
|
* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
package com.sun.org.apache.xalan.internal;
|
|
|
|
import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* Commonly used constants.
|
|
*
|
|
* @author Huizhe Wang, Oracle
|
|
*
|
|
* @version $Id: Constants.java,v 1.14 2011-06-07 04:39:40 joehw Exp $
|
|
*/
|
|
public final class XalanConstants {
|
|
|
|
//
|
|
// Constants
|
|
//
|
|
//Xerces security manager
|
|
public static final String SECURITY_MANAGER =
|
|
"http://apache.org/xml/properties/security-manager";
|
|
|
|
//
|
|
// Implementation limits: API properties
|
|
//
|
|
/** Oracle JAXP property prefix ("http://www.oracle.com/xml/jaxp/properties/"). */
|
|
public static final String ORACLE_JAXP_PROPERTY_PREFIX =
|
|
"http://www.oracle.com/xml/jaxp/properties/";
|
|
/**
|
|
* JDK entity expansion limit; Note that the existing system property
|
|
* "entityExpansionLimit" with no prefix is still observed
|
|
*/
|
|
public static final String JDK_ENTITY_EXPANSION_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "entityExpansionLimit";
|
|
|
|
/**
|
|
* JDK element attribute limit; Note that the existing system property
|
|
* "elementAttributeLimit" with no prefix is still observed
|
|
*/
|
|
public static final String JDK_ELEMENT_ATTRIBUTE_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "elementAttributeLimit";
|
|
|
|
/**
|
|
* JDK maxOccur limit; Note that the existing system property
|
|
* "maxOccurLimit" with no prefix is still observed
|
|
*/
|
|
public static final String JDK_MAX_OCCUR_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "maxOccurLimit";
|
|
|
|
/**
|
|
* JDK total entity size limit
|
|
*/
|
|
public static final String JDK_TOTAL_ENTITY_SIZE_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "totalEntitySizeLimit";
|
|
|
|
/**
|
|
* JDK maximum general entity size limit
|
|
*/
|
|
public static final String JDK_GENERAL_ENTITY_SIZE_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "maxGeneralEntitySizeLimit";
|
|
|
|
/**
|
|
* JDK node count limit in entities that limits the total number of nodes
|
|
* in all of entity references.
|
|
*/
|
|
public static final String JDK_ENTITY_REPLACEMENT_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "entityReplacementLimit";
|
|
|
|
/**
|
|
* JDK maximum parameter entity size limit
|
|
*/
|
|
public static final String JDK_PARAMETER_ENTITY_SIZE_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "maxParameterEntitySizeLimit";
|
|
/**
|
|
* JDK maximum XML name limit
|
|
*/
|
|
public static final String JDK_XML_NAME_LIMIT =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "maxXMLNameLimit";
|
|
|
|
/**
|
|
* JDK maxElementDepth limit
|
|
*/
|
|
public static final String JDK_MAX_ELEMENT_DEPTH =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "maxElementDepth";
|
|
|
|
/**
|
|
* JDK property indicating whether the parser shall print out entity
|
|
* count information
|
|
* Value: a string "yes" means print, "no" or any other string means not.
|
|
*/
|
|
public static final String JDK_ENTITY_COUNT_INFO =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "getEntityCountInfo";
|
|
|
|
//
|
|
// Implementation limits: corresponding System Properties of the above
|
|
// API properties
|
|
//
|
|
/**
|
|
* JDK entity expansion limit; Note that the existing system property
|
|
* "entityExpansionLimit" with no prefix is still observed
|
|
*/
|
|
public static final String SP_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";
|
|
|
|
/**
|
|
* JDK element attribute limit; Note that the existing system property
|
|
* "elementAttributeLimit" with no prefix is still observed
|
|
*/
|
|
public static final String SP_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";
|
|
|
|
/**
|
|
* JDK maxOccur limit; Note that the existing system property
|
|
* "maxOccurLimit" with no prefix is still observed
|
|
*/
|
|
public static final String SP_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";
|
|
|
|
/**
|
|
* JDK total entity size limit
|
|
*/
|
|
public static final String SP_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";
|
|
|
|
/**
|
|
* JDK maximum general entity size limit
|
|
*/
|
|
public static final String SP_GENERAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";
|
|
|
|
/**
|
|
* JDK node count limit in entities that limits the total number of nodes
|
|
* in all of entity references.
|
|
*/
|
|
public static final String SP_ENTITY_REPLACEMENT_LIMIT = "jdk.xml.entityReplacementLimit";
|
|
|
|
/**
|
|
* JDK maximum parameter entity size limit
|
|
*/
|
|
public static final String SP_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";
|
|
/**
|
|
* JDK maximum XML name limit
|
|
*/
|
|
public static final String SP_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";
|
|
|
|
/**
|
|
* JDK maxElementDepth limit
|
|
*/
|
|
public static final String SP_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth";
|
|
|
|
/**
|
|
* JDK TransformerFactory and Transformer attribute that specifies a class
|
|
* loader that will be used for extension functions class loading
|
|
* Value: a "null", the default value, means that the default EF class loading
|
|
* path will be used.
|
|
* Instance of ClassLoader: the specified instance of ClassLoader will be used
|
|
* for extension functions loading during translation process
|
|
*/
|
|
public static final String JDK_EXTENSION_CLASSLOADER = "jdk.xml.transform.extensionClassLoader";
|
|
|
|
//legacy System Properties
|
|
public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit";
|
|
public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
|
|
public final static String MAX_OCCUR_LIMIT = "maxOccurLimit";
|
|
|
|
/**
|
|
* A string "yes" that can be used for properties such as getEntityCountInfo
|
|
*/
|
|
public static final String JDK_YES = "yes";
|
|
|
|
// Oracle Feature:
|
|
/**
|
|
* <p>Use Service Mechanism</p>
|
|
*
|
|
* <ul>
|
|
* <li>
|
|
* {@code true} instruct an object to use service mechanism to
|
|
* find a service implementation. This is the default behavior.
|
|
* </li>
|
|
* <li>
|
|
* {@code false} instruct an object to skip service mechanism and
|
|
* use the default implementation for that service.
|
|
* </li>
|
|
* </ul>
|
|
*/
|
|
public static final String ORACLE_FEATURE_SERVICE_MECHANISM = "http://www.oracle.com/feature/use-service-mechanism";
|
|
|
|
|
|
//System Properties corresponding to ACCESS_EXTERNAL_* properties
|
|
public static final String SP_ACCESS_EXTERNAL_STYLESHEET = "javax.xml.accessExternalStylesheet";
|
|
public static final String SP_ACCESS_EXTERNAL_DTD = "javax.xml.accessExternalDTD";
|
|
|
|
//all access keyword
|
|
public static final String ACCESS_EXTERNAL_ALL = "all";
|
|
|
|
/**
|
|
* Default value when FEATURE_SECURE_PROCESSING (FSP) is set to true
|
|
*/
|
|
public static final String EXTERNAL_ACCESS_DEFAULT_FSP = "";
|
|
|
|
/**
|
|
* FEATURE_SECURE_PROCESSING (FSP) is false by default
|
|
*/
|
|
public static final String EXTERNAL_ACCESS_DEFAULT = ACCESS_EXTERNAL_ALL;
|
|
|
|
public static final String XML_SECURITY_PROPERTY_MANAGER =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "xmlSecurityPropertyManager";
|
|
|
|
/**
|
|
* Feature enableExtensionFunctions
|
|
*/
|
|
public static final String ORACLE_ENABLE_EXTENSION_FUNCTION =
|
|
ORACLE_JAXP_PROPERTY_PREFIX + "enableExtensionFunctions";
|
|
public static final String SP_ORACLE_ENABLE_EXTENSION_FUNCTION = "javax.xml.enableExtensionFunctions";
|
|
|
|
/**
|
|
* Values for a feature
|
|
*/
|
|
public static final String FEATURE_TRUE = "true";
|
|
public static final String FEATURE_FALSE = "false";
|
|
|
|
/**
|
|
* Check if we're in jdk8 or above
|
|
*/
|
|
public static final boolean IS_JDK8_OR_ABOVE = isJavaVersionAtLeast(8);
|
|
|
|
/*
|
|
* Check the version of the current JDK against that specified in the
|
|
* parameter
|
|
*
|
|
* There is a proposal to change the java version string to:
|
|
* MAJOR.MINOR.FU.CPU.PSU-BUILDNUMBER_BUGIDNUMBER_OPTIONAL
|
|
* This method would work with both the current format and that proposed
|
|
*
|
|
* @param compareTo a JDK version to be compared to
|
|
* @return true if the current version is the same or above that represented
|
|
* by the parameter
|
|
*/
|
|
public static boolean isJavaVersionAtLeast(int compareTo) {
|
|
String javaVersion = SecuritySupport.getSystemProperty("java.version");
|
|
String versions[] = javaVersion.split("\\.", 3);
|
|
if (Integer.parseInt(versions[0]) >= compareTo ||
|
|
Integer.parseInt(versions[1]) >= compareTo) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
} // class Constants
|