You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-cvs@xml.apache.org by mr...@apache.org on 2006/07/23 19:27:51 UTC
svn commit: r424770 - in /xml/commons/trunk/java/external/src/javax/xml:
datatype/ parsers/ transform/ validation/ xpath/
Author: mrglavas
Date: Sun Jul 23 10:27:51 2006
New Revision: 424770
URL: http://svn.apache.org/viewvc?rev=424770&view=rev
Log:
Several improvements to the SecuritySupport and FactoryFinder classes:
- Make all SecuritySupport methods static.
- Mark all of the SecuritySupport and FactoryFinder classes as final
- Prevent instantiation of the SecuritySupport and FactoryFinder classes
Modified:
xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java
xml/commons/trunk/java/external/src/javax/xml/datatype/SecuritySupport.java
xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java
xml/commons/trunk/java/external/src/javax/xml/parsers/SecuritySupport.java
xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java
xml/commons/trunk/java/external/src/javax/xml/transform/SecuritySupport.java
xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java
xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java
xml/commons/trunk/java/external/src/javax/xml/validation/SecuritySupport.java
xml/commons/trunk/java/external/src/javax/xml/xpath/SecuritySupport.java
xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java
xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java
Modified: xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/datatype/FactoryFinder.java Sun Jul 23 10:27:51 2006
@@ -36,7 +36,7 @@
* @version $Revision$, $Date$
* @since 1.5
*/
-class FactoryFinder {
+final class FactoryFinder {
/**
* <p>Name of class to display in output messages.</p>
@@ -59,11 +59,6 @@
private static boolean firstTime = true;
/**
- *<p> Take care of restrictions imposed by java security model </p>
- */
- private static SecuritySupport ss = new SecuritySupport();
-
- /**
* Default columns per line.
*/
private static final int DEFAULT_LINE_LENGTH = 80;
@@ -77,11 +72,13 @@
*/
static {
try {
- debug = ss.getSystemProperty("jaxp.debug") != null;
+ debug = SecuritySupport.getSystemProperty("jaxp.debug") != null;
} catch (Exception x) {
; // NOP, ignore exception
}
}
+
+ private FactoryFinder() {}
/**
* <p>Output debugging messages.</p>
@@ -113,7 +110,7 @@
// Figure out which ClassLoader to use for loading the provider
// class. If there is a Context ClassLoader then use it.
- classLoader = ss.getContextClassLoader();
+ classLoader = SecuritySupport.getContextClassLoader();
if (debug) debugPrintln(
"Using context class loader: "
@@ -188,7 +185,7 @@
// Use the system property first
try {
- String systemProp = ss.getSystemProperty(factoryId);
+ String systemProp = SecuritySupport.getSystemProperty(factoryId);
if (systemProp != null) {
if (debug) debugPrintln("found " + systemProp + " in the system property " + factoryId);
return newInstance(systemProp, classLoader);
@@ -199,7 +196,7 @@
// try to read from $java.home/lib/jaxp.properties
try {
- String javah = ss.getSystemProperty("java.home");
+ String javah = SecuritySupport.getSystemProperty("java.home");
String configFile = javah + File.separator + "lib" + File.separator + "jaxp.properties";
String factoryClassName = null;
if (firstTime) {
@@ -207,9 +204,9 @@
if (firstTime) {
File f = new File(configFile);
firstTime = false;
- if (ss.doesFileExist(f)) {
+ if (SecuritySupport.doesFileExist(f)) {
if (debug) debugPrintln("Read properties file " + f);
- cacheProps.load(ss.getFileInputStream(f));
+ cacheProps.load(SecuritySupport.getFileInputStream(f));
}
}
}
@@ -254,20 +251,20 @@
InputStream is = null;
// First try the Context ClassLoader
- ClassLoader cl = ss.getContextClassLoader();
+ ClassLoader cl = SecuritySupport.getContextClassLoader();
if (cl != null) {
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
// If no provider found then try the current ClassLoader
if (is == null) {
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
} else {
// No Context ClassLoader, try the current
// ClassLoader
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
if (is == null) {
Modified: xml/commons/trunk/java/external/src/javax/xml/datatype/SecuritySupport.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/datatype/SecuritySupport.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/datatype/SecuritySupport.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/datatype/SecuritySupport.java Sun Jul 23 10:27:51 2006
@@ -34,10 +34,11 @@
*
* Security related methods that only work on J2SE 1.2 and newer.
*/
-class SecuritySupport {
-
+final class SecuritySupport {
+
+ private SecuritySupport() {}
- ClassLoader getContextClassLoader() {
+ static ClassLoader getContextClassLoader() {
return (ClassLoader)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -50,7 +51,7 @@
});
}
- String getSystemProperty(final String propName) {
+ static String getSystemProperty(final String propName) {
return (String)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -59,7 +60,7 @@
});
}
- FileInputStream getFileInputStream(final File file)
+ static FileInputStream getFileInputStream(final File file)
throws FileNotFoundException
{
try {
@@ -74,7 +75,7 @@
}
}
- InputStream getResourceAsStream(final ClassLoader cl,
+ static InputStream getResourceAsStream(final ClassLoader cl,
final String name)
{
return (InputStream)
@@ -91,7 +92,7 @@
});
}
- boolean doesFileExist(final File f) {
+ static boolean doesFileExist(final File f) {
return ((Boolean)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
Modified: xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/parsers/FactoryFinder.java Sun Jul 23 10:27:51 2006
@@ -36,12 +36,12 @@
* since it calls Thread#getContextClassLoader(). The code also runs both
* as part of an unbundled jar file and when bundled as part of the JDK.
*/
-class FactoryFinder {
+final class FactoryFinder {
+
/** Temp debug code - this will be removed after we test everything
*/
private static boolean debug = false;
static Properties cacheProps= new Properties();
- static SecuritySupport ss = new SecuritySupport() ;
static boolean firstTime = true;
/**
@@ -54,7 +54,7 @@
// Use try/catch block to support applets, which throws
// SecurityException out of this code.
try {
- String val = ss.getSystemProperty("jaxp.debug");
+ String val = SecuritySupport.getSystemProperty("jaxp.debug");
// Allow simply setting the prop to turn on debug
debug = val != null && (! "false".equals(val));
} catch (SecurityException se) {
@@ -62,6 +62,7 @@
}
}
+ private FactoryFinder() {}
private static void dPrint(String msg) {
if (debug) {
@@ -147,7 +148,7 @@
// Figure out which ClassLoader to use for loading the provider
// class. If there is a Context ClassLoader then use it.
- ClassLoader classLoader = ss.getContextClassLoader();
+ ClassLoader classLoader = SecuritySupport.getContextClassLoader();
if (classLoader == null) {
// if we have no Context ClassLoader
@@ -159,7 +160,7 @@
// Use the system property first
try {
- String systemProp = ss.getSystemProperty(factoryId);
+ String systemProp = SecuritySupport.getSystemProperty(factoryId);
if( systemProp!=null) {
if (debug) dPrint("found system property, value=" + systemProp);
return newInstance(systemProp, classLoader, true );
@@ -171,7 +172,7 @@
// try to read from $java.home/lib/jaxp.properties
try {
- String javah = ss.getSystemProperty("java.home");
+ String javah = SecuritySupport.getSystemProperty("java.home");
String configFile = javah + File.separator +
"lib" + File.separator + "jaxp.properties";
String factoryClassName = null;
@@ -180,10 +181,10 @@
if(firstTime){
File f=new File( configFile );
firstTime = false;
- if(ss.doesFileExist(f)){
+ if(SecuritySupport.doesFileExist(f)){
if (debug) dPrint("Read properties file "+f);
//cacheProps.load( new FileInputStream(f));
- cacheProps.load(ss.getFileInputStream(f));
+ cacheProps.load(SecuritySupport.getFileInputStream(f));
}
}
}
@@ -225,20 +226,20 @@
InputStream is = null;
// First try the Context ClassLoader
- ClassLoader cl = ss.getContextClassLoader();
+ ClassLoader cl = SecuritySupport.getContextClassLoader();
if (cl != null) {
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
// If no provider found then try the current ClassLoader
if (is == null) {
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
} else {
// No Context ClassLoader, try the current
// ClassLoader
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
if (is == null) {
Modified: xml/commons/trunk/java/external/src/javax/xml/parsers/SecuritySupport.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/parsers/SecuritySupport.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/parsers/SecuritySupport.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/parsers/SecuritySupport.java Sun Jul 23 10:27:51 2006
@@ -34,10 +34,11 @@
*
* Security related methods that only work on J2SE 1.2 and newer.
*/
-class SecuritySupport {
-
+final class SecuritySupport {
+
+ private SecuritySupport() {}
- ClassLoader getContextClassLoader() {
+ static ClassLoader getContextClassLoader() {
return (ClassLoader)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -50,7 +51,7 @@
});
}
- String getSystemProperty(final String propName) {
+ static String getSystemProperty(final String propName) {
return (String)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -59,7 +60,7 @@
});
}
- FileInputStream getFileInputStream(final File file)
+ static FileInputStream getFileInputStream(final File file)
throws FileNotFoundException
{
try {
@@ -74,7 +75,7 @@
}
}
- InputStream getResourceAsStream(final ClassLoader cl,
+ static InputStream getResourceAsStream(final ClassLoader cl,
final String name)
{
return (InputStream)
@@ -91,7 +92,7 @@
});
}
- boolean doesFileExist(final File f) {
+ static boolean doesFileExist(final File f) {
return ((Boolean)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
Modified: xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/transform/FactoryFinder.java Sun Jul 23 10:27:51 2006
@@ -36,12 +36,12 @@
* since it calls Thread#getContextClassLoader(). The code also runs both
* as part of an unbundled jar file and when bundled as part of the JDK.
*/
-class FactoryFinder {
+final class FactoryFinder {
+
/** Temp debug code - this will be removed after we test everything
*/
private static boolean debug = false;
static Properties cacheProps= new Properties();
- static SecuritySupport ss = new SecuritySupport() ;
static boolean firstTime = true;
/**
@@ -54,7 +54,7 @@
// Use try/catch block to support applets, which throws
// SecurityException out of this code.
try {
- String val = ss.getSystemProperty("jaxp.debug");
+ String val = SecuritySupport.getSystemProperty("jaxp.debug");
// Allow simply setting the prop to turn on debug
debug = val != null && (! "false".equals(val));
} catch (SecurityException se) {
@@ -62,6 +62,7 @@
}
}
+ private FactoryFinder() {}
private static void dPrint(String msg) {
if (debug) {
@@ -147,7 +148,7 @@
// Figure out which ClassLoader to use for loading the provider
// class. If there is a Context ClassLoader then use it.
- ClassLoader classLoader = ss.getContextClassLoader();
+ ClassLoader classLoader = SecuritySupport.getContextClassLoader();
if (classLoader == null) {
// if we have no Context ClassLoader
@@ -159,7 +160,7 @@
// Use the system property first
try {
- String systemProp = ss.getSystemProperty(factoryId);
+ String systemProp = SecuritySupport.getSystemProperty(factoryId);
if( systemProp!=null) {
if (debug) dPrint("found system property, value=" + systemProp);
return newInstance(systemProp, classLoader, true );
@@ -171,7 +172,7 @@
// try to read from $java.home/lib/jaxp.properties
try {
- String javah = ss.getSystemProperty("java.home");
+ String javah = SecuritySupport.getSystemProperty("java.home");
String configFile = javah + File.separator +
"lib" + File.separator + "jaxp.properties";
String factoryClassName = null;
@@ -180,10 +181,10 @@
if(firstTime){
File f=new File( configFile );
firstTime = false;
- if(ss.doesFileExist(f)){
+ if(SecuritySupport.doesFileExist(f)){
if (debug) dPrint("Read properties file "+f);
//cacheProps.load( new FileInputStream(f));
- cacheProps.load(ss.getFileInputStream(f));
+ cacheProps.load(SecuritySupport.getFileInputStream(f));
}
}
}
@@ -225,20 +226,20 @@
InputStream is = null;
// First try the Context ClassLoader
- ClassLoader cl = ss.getContextClassLoader();
+ ClassLoader cl = SecuritySupport.getContextClassLoader();
if (cl != null) {
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
// If no provider found then try the current ClassLoader
if (is == null) {
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
} else {
// No Context ClassLoader, try the current
// ClassLoader
cl = FactoryFinder.class.getClassLoader();
- is = ss.getResourceAsStream(cl, serviceId);
+ is = SecuritySupport.getResourceAsStream(cl, serviceId);
}
if (is == null) {
Modified: xml/commons/trunk/java/external/src/javax/xml/transform/SecuritySupport.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/transform/SecuritySupport.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/transform/SecuritySupport.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/transform/SecuritySupport.java Sun Jul 23 10:27:51 2006
@@ -34,10 +34,11 @@
*
* Security related methods that only work on J2SE 1.2 and newer.
*/
-class SecuritySupport {
-
+final class SecuritySupport {
+
+ private SecuritySupport() {}
- ClassLoader getContextClassLoader() {
+ static ClassLoader getContextClassLoader() {
return (ClassLoader)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -50,7 +51,7 @@
});
}
- String getSystemProperty(final String propName) {
+ static String getSystemProperty(final String propName) {
return (String)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -59,7 +60,7 @@
});
}
- FileInputStream getFileInputStream(final File file)
+ static FileInputStream getFileInputStream(final File file)
throws FileNotFoundException
{
try {
@@ -74,7 +75,7 @@
}
}
- InputStream getResourceAsStream(final ClassLoader cl,
+ static InputStream getResourceAsStream(final ClassLoader cl,
final String name)
{
return (InputStream)
@@ -91,7 +92,7 @@
});
}
- boolean doesFileExist(final File f) {
+ static boolean doesFileExist(final File f) {
return ((Boolean)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
Modified: xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactory.java Sun Jul 23 10:27:51 2006
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 The Apache Software Foundation.
+ * Copyright 2003-2004,2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -101,8 +101,6 @@
* @since 1.5
*/
public abstract class SchemaFactory {
-
- private static SecuritySupport ss = new SecuritySupport();
/**
* <p>Constructor for derived classes.</p>
@@ -182,7 +180,7 @@
*/
public static final SchemaFactory newInstance(String schemaLanguage) {
ClassLoader cl;
- cl = ss.getContextClassLoader();
+ cl = SecuritySupport.getContextClassLoader();
if (cl == null) {
//cl = ClassLoader.getSystemClassLoader();
Modified: xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/validation/SchemaFactoryFinder.java Sun Jul 23 10:27:51 2006
@@ -36,14 +36,11 @@
* @version $Revision$, $Date$
* @since 1.5
*/
-class SchemaFactoryFinder {
+final class SchemaFactoryFinder {
/** debug support code. */
private static boolean debug = false;
- /**
- *<p> Take care of restrictions imposed by java security model </p>
- */
- private static SecuritySupport ss = new SecuritySupport();
+
/**
* <p>Cache properties for performance.</p>
*/
@@ -62,7 +59,7 @@
static {
// Use try/catch block to support applets
try {
- debug = ss.getSystemProperty("jaxp.debug") != null;
+ debug = SecuritySupport.getSystemProperty("jaxp.debug") != null;
} catch (Exception _) {
debug = false;
}
@@ -104,7 +101,7 @@
private void debugDisplayClassLoader() {
try {
- if( classLoader == ss.getContextClassLoader() ) {
+ if( classLoader == SecuritySupport.getContextClassLoader() ) {
debugPrintln("using thread context class loader ("+classLoader+") for search");
return;
}
@@ -160,7 +157,7 @@
// system property look up
try {
if (debug) debugPrintln("Looking up system property '"+propertyName+"'" );
- String r = ss.getSystemProperty(propertyName);
+ String r = SecuritySupport.getSystemProperty(propertyName);
if (r != null) {
if (debug) debugPrintln("The value is '"+r+"'");
sf = createInstance(r);
@@ -176,7 +173,7 @@
}
}
- String javah = ss.getSystemProperty( "java.home" );
+ String javah = SecuritySupport.getSystemProperty( "java.home" );
String configFile = javah + File.separator +
"lib" + File.separator + "jaxp.properties";
@@ -189,9 +186,9 @@
if(firstTime){
File f=new File( configFile );
firstTime = false;
- if(ss.doesFileExist(f)){
+ if(SecuritySupport.doesFileExist(f)){
if (debug) debugPrintln("Read properties file " + f);
- cacheProps.load(ss.getFileInputStream(f));
+ cacheProps.load(SecuritySupport.getFileInputStream(f));
}
}
}
@@ -239,7 +236,7 @@
URL resource = (URL)sitr.next();
if (debug) debugPrintln("looking into " + resource);
try {
- sf = loadFromServicesFile(schemaLanguage,resource.toExternalForm(),ss.getURLInputStream(resource));
+ sf = loadFromServicesFile(schemaLanguage,resource.toExternalForm(),SecuritySupport.getURLInputStream(resource));
if(sf!=null) return sf;
} catch(IOException e) {
if( debug ) {
@@ -315,13 +312,13 @@
protected Object value() {
ClassLoader classLoader = SchemaFactoryFinder.class.getClassLoader();
//return (ClassLoader.getSystemResource( SERVICE_ID ));
- return ss.getResourceAsURL(classLoader, SERVICE_ID);
+ return SecuritySupport.getResourceAsURL(classLoader, SERVICE_ID);
}
};
} else {
try {
//final Enumeration e = classLoader.getResources(SERVICE_ID);
- final Enumeration e = ss.getResources(classLoader, SERVICE_ID);
+ final Enumeration e = SecuritySupport.getResources(classLoader, SERVICE_ID);
if(debug && !e.hasMoreElements()) {
debugPrintln("no "+SERVICE_ID+" file was found");
}
@@ -452,7 +449,7 @@
if( loader==null ) loader = ClassLoader.getSystemClassLoader();
//URL it = loader.getResource(classnameAsResource);
- URL it = ss.getResourceAsURL(loader, classnameAsResource);
+ URL it = SecuritySupport.getResourceAsURL(loader, classnameAsResource);
if (it != null) {
return it.toString();
} else {
Modified: xml/commons/trunk/java/external/src/javax/xml/validation/SecuritySupport.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/validation/SecuritySupport.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/validation/SecuritySupport.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/validation/SecuritySupport.java Sun Jul 23 10:27:51 2006
@@ -36,10 +36,11 @@
*
* Security related methods that only work on J2SE 1.2 and newer.
*/
-class SecuritySupport {
-
+final class SecuritySupport {
+
+ private SecuritySupport() {}
- ClassLoader getContextClassLoader() {
+ static ClassLoader getContextClassLoader() {
return (ClassLoader)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -52,7 +53,7 @@
});
}
- String getSystemProperty(final String propName) {
+ static String getSystemProperty(final String propName) {
return (String)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -61,7 +62,7 @@
});
}
- FileInputStream getFileInputStream(final File file)
+ static FileInputStream getFileInputStream(final File file)
throws FileNotFoundException
{
try {
@@ -76,7 +77,7 @@
}
}
- InputStream getURLInputStream(final URL url)
+ static InputStream getURLInputStream(final URL url)
throws IOException
{
try {
@@ -91,8 +92,8 @@
}
}
- URL getResourceAsURL(final ClassLoader cl,
- final String name)
+ static URL getResourceAsURL(final ClassLoader cl,
+ final String name)
{
return (URL)
AccessController.doPrivileged(new PrivilegedAction() {
@@ -108,8 +109,8 @@
});
}
- Enumeration getResources(final ClassLoader cl,
- final String name) throws IOException
+ static Enumeration getResources(final ClassLoader cl,
+ final String name) throws IOException
{
try{
return (Enumeration)
@@ -129,7 +130,7 @@
}
}
- InputStream getResourceAsStream(final ClassLoader cl,
+ static InputStream getResourceAsStream(final ClassLoader cl,
final String name)
{
return (InputStream)
@@ -146,7 +147,7 @@
});
}
- boolean doesFileExist(final File f) {
+ static boolean doesFileExist(final File f) {
return ((Boolean)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
Modified: xml/commons/trunk/java/external/src/javax/xml/xpath/SecuritySupport.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/xpath/SecuritySupport.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/xpath/SecuritySupport.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/xpath/SecuritySupport.java Sun Jul 23 10:27:51 2006
@@ -36,10 +36,11 @@
*
* Security related methods that only work on J2SE 1.2 and newer.
*/
-class SecuritySupport {
-
+final class SecuritySupport {
+
+ private SecuritySupport() {}
- ClassLoader getContextClassLoader() {
+ static ClassLoader getContextClassLoader() {
return (ClassLoader)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -52,7 +53,7 @@
});
}
- String getSystemProperty(final String propName) {
+ static String getSystemProperty(final String propName) {
return (String)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
@@ -61,7 +62,7 @@
});
}
- FileInputStream getFileInputStream(final File file)
+ static FileInputStream getFileInputStream(final File file)
throws FileNotFoundException
{
try {
@@ -76,7 +77,7 @@
}
}
- InputStream getURLInputStream(final URL url)
+ static InputStream getURLInputStream(final URL url)
throws IOException
{
try {
@@ -91,8 +92,8 @@
}
}
- URL getResourceAsURL(final ClassLoader cl,
- final String name)
+ static URL getResourceAsURL(final ClassLoader cl,
+ final String name)
{
return (URL)
AccessController.doPrivileged(new PrivilegedAction() {
@@ -108,8 +109,8 @@
});
}
- Enumeration getResources(final ClassLoader cl,
- final String name) throws IOException
+ static Enumeration getResources(final ClassLoader cl,
+ final String name) throws IOException
{
try{
return (Enumeration)
@@ -129,7 +130,7 @@
}
}
- InputStream getResourceAsStream(final ClassLoader cl,
+ static InputStream getResourceAsStream(final ClassLoader cl,
final String name)
{
return (InputStream)
@@ -146,7 +147,7 @@
});
}
- boolean doesFileExist(final File f) {
+ static boolean doesFileExist(final File f) {
return ((Boolean)
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
Modified: xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactory.java Sun Jul 23 10:27:51 2006
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 The Apache Software Foundation.
+ * Copyright 2003-2004,2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,11 +40,6 @@
* <p>Default Object Model URI.</p>
*/
public static final String DEFAULT_OBJECT_MODEL_URI = "http://java.sun.com/jaxp/xpath/dom";
-
- /**
- *<p> Take care of restrictions imposed by java security model </p>
- */
- private static SecuritySupport ss = new SecuritySupport() ;
/**
* <p>Protected constructor as {@link #newInstance()} or {@link #newInstance(String uri)}
@@ -148,7 +143,7 @@
);
}
- ClassLoader classLoader = ss.getContextClassLoader();
+ ClassLoader classLoader = SecuritySupport.getContextClassLoader();
if (classLoader == null) {
//use the current class loader
Modified: xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java
URL: http://svn.apache.org/viewvc/xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java?rev=424770&r1=424769&r2=424770&view=diff
==============================================================================
--- xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java (original)
+++ xml/commons/trunk/java/external/src/javax/xml/xpath/XPathFactoryFinder.java Sun Jul 23 10:27:51 2006
@@ -38,9 +38,7 @@
* @version $Revision$, $Date$
* @since 1.5
*/
-class XPathFactoryFinder {
-
- private static SecuritySupport ss = new SecuritySupport() ;
+final class XPathFactoryFinder {
/** debug support code. */
private static boolean debug = false;
@@ -53,7 +51,7 @@
static {
// Use try/catch block to support applets
try {
- debug = ss.getSystemProperty("jaxp.debug") != null;
+ debug = SecuritySupport.getSystemProperty("jaxp.debug") != null;
} catch (Exception _) {
debug = false;
}
@@ -105,7 +103,7 @@
private void debugDisplayClassLoader() {
try {
- if( classLoader == ss.getContextClassLoader() ) {
+ if( classLoader == SecuritySupport.getContextClassLoader() ) {
debugPrintln("using thread context class loader ("+classLoader+") for search");
return;
}
@@ -161,7 +159,7 @@
// system property look up
try {
if (debug) debugPrintln("Looking up system property '"+propertyName+"'" );
- String r = ss.getSystemProperty(propertyName);
+ String r = SecuritySupport.getSystemProperty(propertyName);
if(r!=null) {
if (debug) debugPrintln("The value is '"+r+"'");
sf = createInstance(r);
@@ -177,7 +175,7 @@
}
}
- String javah = ss.getSystemProperty( "java.home" );
+ String javah = SecuritySupport.getSystemProperty( "java.home" );
String configFile = javah + File.separator +
"lib" + File.separator + "jaxp.properties";
@@ -190,9 +188,9 @@
if(firstTime){
File f=new File( configFile );
firstTime = false;
- if(ss.doesFileExist(f)){
+ if(SecuritySupport.doesFileExist(f)){
if (debug) debugPrintln("Read properties file " + f);
- cacheProps.load(ss.getFileInputStream(f));
+ cacheProps.load(SecuritySupport.getFileInputStream(f));
}
}
}
@@ -218,7 +216,7 @@
URL resource = (URL)sitr.next();
if (debug) debugPrintln("looking into " + resource);
try {
- sf = loadFromServicesFile(uri, resource.toExternalForm(), ss.getURLInputStream(resource));
+ sf = loadFromServicesFile(uri, resource.toExternalForm(), SecuritySupport.getURLInputStream(resource));
if(sf!=null) return sf;
} catch(IOException e) {
if( debug ) {
@@ -357,14 +355,14 @@
return new SingleIterator() {
protected Object value() {
ClassLoader classLoader = XPathFactoryFinder.class.getClassLoader();
- return ss.getResourceAsURL(classLoader, SERVICE_ID);
+ return SecuritySupport.getResourceAsURL(classLoader, SERVICE_ID);
//return (ClassLoader.getSystemResource( SERVICE_ID ));
}
};
} else {
try {
//final Enumeration e = classLoader.getResources(SERVICE_ID);
- final Enumeration e = ss.getResources(classLoader, SERVICE_ID);
+ final Enumeration e = SecuritySupport.getResources(classLoader, SERVICE_ID);
if (debug && !e.hasMoreElements()) {
debugPrintln("no "+SERVICE_ID+" file was found");
}
@@ -417,7 +415,7 @@
if( loader==null ) loader = ClassLoader.getSystemClassLoader();
//URL it = loader.getResource(classnameAsResource);
- URL it = ss.getResourceAsURL(loader, classnameAsResource);
+ URL it = SecuritySupport.getResourceAsURL(loader, classnameAsResource);
if (it != null) {
return it.toString();
} else {