Author: mrglavas Date: Sat Jun 21 18:57:58 2008 New Revision: 670297 URL: http://svn.apache.org/viewvc?rev=670297&view=rev Log: Rename: SecuritySupport12 -> SecuritySupport. Added: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java (with props) Removed: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport12.java Modified: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/NewInstance.java xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/ParserFactory.java xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/XMLReaderFactory.java Modified: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/NewInstance.java URL: http://svn.apache.org/viewvc/xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/NewInstance.java?rev=670297&r1=670296&r2=670297&view=diff ============================================================================== --- xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/NewInstance.java (original) +++ xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/NewInstance.java Sat Jun 21 18:57:58 2008 @@ -92,7 +92,7 @@ { // Figure out which ClassLoader to use for loading the provider // class. If there is a Context ClassLoader then use it. - ClassLoader cl = SecuritySupport12.getContextClassLoader(); + ClassLoader cl = SecuritySupport.getContextClassLoader(); if (cl == null) { // Assert: we are on JDK 1.1 or we have no Context ClassLoader // so use the current ClassLoader Modified: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/ParserFactory.java URL: http://svn.apache.org/viewvc/xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/ParserFactory.java?rev=670297&r1=670296&r2=670297&view=diff ============================================================================== --- xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/ParserFactory.java (original) +++ xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/ParserFactory.java Sat Jun 21 18:57:58 2008 @@ -78,7 +78,7 @@ NullPointerException, ClassCastException { - String className = SecuritySupport12.getSystemProperty("org.xml.sax.parser"); + String className = SecuritySupport.getSystemProperty("org.xml.sax.parser"); if (className == null) { throw new NullPointerException("No value for sax.parser property"); } else { Added: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java URL: http://svn.apache.org/viewvc/xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java?rev=670297&view=auto ============================================================================== --- xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java (added) +++ xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java Sat Jun 21 18:57:58 2008 @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.xml.sax.helpers; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; + +/** + * This class is duplicated for each JAXP subpackage so keep it in sync. + * It is package private and therefore is not exposed as part of the JAXP + * API. + * + * Security related methods that only work on J2SE 1.2 and newer. + */ +final class SecuritySupport { + + private SecuritySupport() {} + + static ClassLoader getContextClassLoader() { + return (ClassLoader) + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + ClassLoader cl = null; + try { + cl = Thread.currentThread().getContextClassLoader(); + } catch (SecurityException ex) { } + return cl; + } + }); + } + + static String getSystemProperty(final String propName) { + return (String) + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + return System.getProperty(propName); + } + }); + } + + static FileInputStream getFileInputStream(final File file) + throws FileNotFoundException + { + try { + return (FileInputStream) + AccessController.doPrivileged(new PrivilegedExceptionAction() { + public Object run() throws FileNotFoundException { + return new FileInputStream(file); + } + }); + } catch (PrivilegedActionException e) { + throw (FileNotFoundException)e.getException(); + } + } + + static InputStream getResourceAsStream(final ClassLoader cl, + final String name) + { + return (InputStream) + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + InputStream ris; + if (cl == null) { + ris = ClassLoader.getSystemResourceAsStream(name); + } else { + ris = cl.getResourceAsStream(name); + } + return ris; + } + }); + } +} Propchange: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/SecuritySupport.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/XMLReaderFactory.java URL: http://svn.apache.org/viewvc/xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/XMLReaderFactory.java?rev=670297&r1=670296&r2=670297&view=diff ============================================================================== --- xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/XMLReaderFactory.java (original) +++ xml/commons/branches/tck-jaxp-1_3_0/java/external/src/org/xml/sax/helpers/XMLReaderFactory.java Sat Jun 21 18:57:58 2008 @@ -114,7 +114,7 @@ ClassLoader loader = NewInstance.getClassLoader (); // 1. try the JVM-instance-wide system property - try { className = SecuritySupport12.getSystemProperty (property); } + try { className = SecuritySupport.getSystemProperty (property); } catch (Exception e) { /* normally fails for applets */ } // 2. if that fails, try META-INF/services/ @@ -125,20 +125,20 @@ className = null; // First try the Context ClassLoader - ClassLoader cl = SecuritySupport12.getContextClassLoader(); + ClassLoader cl = SecuritySupport.getContextClassLoader(); if (cl != null) { - is = SecuritySupport12.getResourceAsStream(cl, service); + is = SecuritySupport.getResourceAsStream(cl, service); // If no provider found then try the current ClassLoader if (is == null) { cl = XMLReaderFactory.class.getClassLoader(); - is = SecuritySupport12.getResourceAsStream(cl, service); + is = SecuritySupport.getResourceAsStream(cl, service); } } else { // No Context ClassLoader or JDK 1.1 so try the current // ClassLoader cl = XMLReaderFactory.class.getClassLoader(); - is = SecuritySupport12.getResourceAsStream(cl, service); + is = SecuritySupport.getResourceAsStream(cl, service); } if (is != null) {