--- old/src/com/sun/org/apache/xerces/internal/impl/Constants.java Mon Jul 8 17:48:23 2013 +++ new/src/com/sun/org/apache/xerces/internal/impl/Constants.java Mon Jul 8 17:48:22 2013 @@ -184,6 +184,9 @@ public static final String ORACLE_JAXP_PROPERTY_PREFIX = "http://www.oracle.com/xml/jaxp/properties/"; + public static final String XML_SECURITY_PROPERTY_MANAGER = + ORACLE_JAXP_PROPERTY_PREFIX + "xmlSecurityPropertyManager"; + //System Properties corresponding to ACCESS_EXTERNAL_* properties public static final String SP_ACCESS_EXTERNAL_DTD = "javax.xml.accessExternalDTD"; public static final String SP_ACCESS_EXTERNAL_SCHEMA = "javax.xml.accessExternalSchema"; @@ -194,15 +197,16 @@ * Default value when FEATURE_SECURE_PROCESSING (FSP) is set to true */ public static final String EXTERNAL_ACCESS_DEFAULT_FSP = ""; - /** - * JDK version by which the default is to restrict external connection - */ - public static final int RESTRICT_BY_DEFAULT_JDK_VERSION = 8; /** * FEATURE_SECURE_PROCESSING (FSP) is true by default */ public static final String EXTERNAL_ACCESS_DEFAULT = ACCESS_EXTERNAL_ALL; + + /** + * Check if we're in jdk8 or above + */ + public static final boolean IS_JDK8_OR_ABOVE = isJavaVersionAtLeast(8); // // DOM features @@ -697,6 +701,27 @@ ? new ArrayEnumeration(fgXercesProperties) : fgEmptyEnumeration; } // getXercesProperties():Enumeration + /* + * 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; + } // // Classes