/hg/release/icedtea7-forest-2.1/jaxp: 2 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Fri Apr 19 06:18:37 PDT 2013
changeset ea5b2e1efc1d in /hg/release/icedtea7-forest-2.1/jaxp
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jaxp?cmd=changeset;node=ea5b2e1efc1d
author: andrew
date: Fri Apr 19 14:16:29 2013 +0100
Removed tag icedtea-2.1.8
changeset c04b95aa746c in /hg/release/icedtea7-forest-2.1/jaxp
details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jaxp?cmd=changeset;node=c04b95aa746c
author: andrew
date: Fri Apr 19 14:18:29 2013 +0100
Add missing files needed by 2.1 version of 6657673
diffstat:
.hgtags | 2 +
sources/jaxp_src/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java | 223 +++
sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java | 61 +
sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java | 659 ++++++++++
sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java | 206 +++
sources/jaxp_src/src/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java | 58 +
sources/jaxp_src/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java | 436 ++++++
sources/jaxp_src/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java | 199 +++
sources/jaxp_src/src/org/xml/sax/helpers/SecuritySupport.java | 108 +
9 files changed, 1952 insertions(+), 0 deletions(-)
diffs (truncated from 1991 to 500 lines):
diff -r 637c67303313 -r c04b95aa746c .hgtags
--- a/.hgtags Thu Apr 18 15:05:11 2013 +0100
+++ b/.hgtags Fri Apr 19 14:18:29 2013 +0100
@@ -155,3 +155,5 @@
c4bf68441a8de2eadcef55a1311f6f18b3b813af icedtea-2.1.6
efa047bf59e95a21fae000817a4a7fe30e057f4d icedtea-2.1.7
3ce1593f819e0c137d69e69598d2305e15de51ad icedtea-2.1.8
+3ce1593f819e0c137d69e69598d2305e15de51ad icedtea-2.1.8
+0000000000000000000000000000000000000000 icedtea-2.1.8
diff -r 637c67303313 -r c04b95aa746c sources/jaxp_src/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/jaxp_src/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java Fri Apr 19 14:18:29 2013 +0100
@@ -0,0 +1,223 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Copyright 2002-2004 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.
+ * 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 com.sun.org.apache.bcel.internal.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.InputStream;
+import java.lang.ClassLoader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * This class is duplicated for each subpackage so keep it in sync. It is
+ * package private and therefore is not exposed as part of any API.
+ *
+ * @xerces.internal
+ */
+public final class SecuritySupport {
+
+ private static final SecuritySupport securitySupport = new SecuritySupport();
+
+ /**
+ * Return an instance of this class.
+ */
+ public static SecuritySupport getInstance() {
+ return 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 ClassLoader getSystemClassLoader() {
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ ClassLoader cl = null;
+ try {
+ cl = ClassLoader.getSystemClassLoader();
+ } catch (SecurityException ex) {
+ }
+ return cl;
+ }
+ });
+ }
+
+ static ClassLoader getParentClassLoader(final ClassLoader cl) {
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ ClassLoader parent = null;
+ try {
+ parent = cl.getParent();
+ } catch (SecurityException ex) {
+ }
+
+ // eliminate loops in case of the boot
+ // ClassLoader returning itself as a parent
+ return (parent == cl) ? null : parent;
+ }
+ });
+ }
+
+ public 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();
+ }
+ }
+
+ /**
+ * Return resource using the same classloader for the ObjectFactory by
+ * default or bootclassloader when Security Manager is in place
+ */
+ public static InputStream getResourceAsStream(final String name) {
+ if (System.getSecurityManager() != null) {
+ return getResourceAsStream(null, name);
+ } else {
+ return getResourceAsStream(findClassLoader(), name);
+ }
+ }
+
+ public static InputStream getResourceAsStream(final ClassLoader cl,
+ final String name) {
+ return (InputStream) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ InputStream ris;
+ if (cl == null) {
+ ris = Object.class.getResourceAsStream("/" + name);
+ } else {
+ ris = cl.getResourceAsStream(name);
+ }
+ return ris;
+ }
+ });
+ }
+
+ /**
+ * Gets a resource bundle using the specified base name, the default locale,
+ * and the caller's class loader.
+ *
+ * @param bundle the base name of the resource bundle, a fully qualified
+ * class name
+ * @return a resource bundle for the given base name and the default locale
+ */
+ public static ListResourceBundle getResourceBundle(String bundle) {
+ return getResourceBundle(bundle, Locale.getDefault());
+ }
+
+ /**
+ * Gets a resource bundle using the specified base name and locale, and the
+ * caller's class loader.
+ *
+ * @param bundle the base name of the resource bundle, a fully qualified
+ * class name
+ * @param locale the locale for which a resource bundle is desired
+ * @return a resource bundle for the given base name and locale
+ */
+ public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) {
+ return AccessController.doPrivileged(new PrivilegedAction<ListResourceBundle>() {
+ public ListResourceBundle run() {
+ try {
+ return (ListResourceBundle) ResourceBundle.getBundle(bundle, locale);
+ } catch (MissingResourceException e) {
+ try {
+ return (ListResourceBundle) ResourceBundle.getBundle(bundle, new Locale("en", "US"));
+ } catch (MissingResourceException e2) {
+ throw new MissingResourceException(
+ "Could not load any resource bundle by " + bundle, bundle, "");
+ }
+ }
+ }
+ });
+ }
+
+ public static String[] getFileList(final File f, final FilenameFilter filter) {
+ return ((String[]) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return f.list(filter);
+ }
+ }));
+ }
+
+ public static boolean getFileExists(final File f) {
+ return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return f.exists() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ })).booleanValue();
+ }
+
+ static long getLastModified(final File f) {
+ return ((Long) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return new Long(f.lastModified());
+ }
+ })).longValue();
+ }
+
+
+ /**
+ * Figure out which ClassLoader to use.
+ */
+ public static ClassLoader findClassLoader()
+ {
+ if (System.getSecurityManager()!=null) {
+ //this will ensure bootclassloader is used
+ return null;
+ } else {
+ return SecuritySupport.class.getClassLoader();
+ }
+ } // findClassLoader():ClassLoader
+
+ private SecuritySupport() {
+ }
+}
diff -r 637c67303313 -r c04b95aa746c sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ConfigurationError.java Fri Apr 19 14:18:29 2013 +0100
@@ -0,0 +1,61 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Copyright 2001-2004 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.
+ * 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.
+ */
+/*
+ * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 02:39:54 jeffsuttor Exp $
+ */
+
+package com.sun.org.apache.xalan.internal.utils;
+
+/**
+ * A configuration error. This was an internal class in ObjectFactory previously
+ */
+public final class ConfigurationError
+ extends Error {
+
+ //
+ // Data
+ //
+
+ /** Exception. */
+ private Exception exception;
+
+ //
+ // Constructors
+ //
+
+ /**
+ * Construct a new instance with the specified detail string and
+ * exception.
+ */
+ ConfigurationError(String msg, Exception x) {
+ super(msg);
+ this.exception = x;
+ } // <init>(String,Exception)
+
+ //
+ // methods
+ //
+
+ /** Returns the exception associated to this error. */
+ public Exception getException() {
+ return exception;
+ } // getException():Exception
+
+} // class ConfigurationError
diff -r 637c67303313 -r c04b95aa746c sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/jaxp_src/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java Fri Apr 19 14:18:29 2013 +0100
@@ -0,0 +1,659 @@
+/*
+ * reserved comment block
+ * DO NOT REMOVE OR ALTER!
+ */
+/*
+ * Copyright 2001-2004 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.
+ * 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.
+ */
+/*
+ * $Id: ObjectFactory.java,v 1.2.4.1 2005/09/15 02:39:54 jeffsuttor Exp $
+ */
+
+package com.sun.org.apache.xalan.internal.utils;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.File;
+import java.io.FileInputStream;
+
+import java.util.Properties;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+/**
+ * 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.
+ * <p>
+ * This code is designed to implement the JAXP 1.1 spec pluggability
+ * feature and is designed to run on JDK version 1.1 and
+ * later, and to compile on JDK 1.2 and onward.
+ * The code also runs both as part of an unbundled jar file and
+ * when bundled as part of the JDK.
+ * <p>
+ * This class was moved from the <code>javax.xml.parsers.ObjectFactory</code>
+ * class and modified to be used as a general utility for creating objects
+ * dynamically.
+ *
+ * @version $Id: ObjectFactory.java,v 1.11 2010-11-01 04:34:25 joehw Exp $
+ */
+public class ObjectFactory {
+
+ //
+ // Constants
+ //
+ private static final String XALAN_INTERNAL = "com.sun.org.apache.xalan.internal";
+ private static final String XERCES_INTERNAL = "com.sun.org.apache.xerces.internal";
+
+ // name of default properties file to look for in JDK's jre/lib directory
+ private static final String DEFAULT_PROPERTIES_FILENAME =
+ "xalan.properties";
+
+ private static final String SERVICES_PATH = "META-INF/services/";
+
+ /** Set to true for debugging */
+ private static final boolean DEBUG = false;
+
+ /** cache the contents of the xalan.properties file.
+ * Until an attempt has been made to read this file, this will
+ * be null; if the file does not exist or we encounter some other error
+ * during the read, this will be empty.
+ */
+ private static Properties fXalanProperties = null;
+
+ /***
+ * Cache the time stamp of the xalan.properties file so
+ * that we know if it's been modified and can invalidate
+ * the cache when necessary.
+ */
+ private static long fLastModified = -1;
+
+ //
+ // Public static methods
+ //
+
+ /**
+ * Finds the implementation Class object in the specified order. The
+ * specified order is the following:
+ * <ol>
+ * <li>query the system property using <code>System.getProperty</code>
+ * <li>read <code>META-INF/services/<i>factoryId</i></code> file
+ * <li>use fallback classname
+ * </ol>
+ *
+ * @return instance of factory, never null
+ *
+ * @param factoryId Name of the factory to find, same as
+ * a property name
+ * @param fallbackClassName Implementation class name, if nothing else
+ * is found. Use null to mean no fallback.
+ *
+ * @exception ObjectFactory.ConfigurationError
+ */
+ public static Object createObject(String factoryId, String fallbackClassName)
+ throws ConfigurationError {
+ return createObject(factoryId, null, fallbackClassName);
+ } // createObject(String,String):Object
+
+ /**
+ * Finds the implementation Class object in the specified order. The
+ * specified order is the following:
+ * <ol>
+ * <li>query the system property using <code>System.getProperty</code>
+ * <li>read <code>$java.home/lib/<i>propertiesFilename</i></code> file
+ * <li>read <code>META-INF/services/<i>factoryId</i></code> file
+ * <li>use fallback classname
+ * </ol>
+ *
+ * @return instance of factory, never null
+ *
+ * @param factoryId Name of the factory to find, same as
+ * a property name
+ * @param propertiesFilename The filename in the $java.home/lib directory
+ * of the properties file. If none specified,
+ * ${java.home}/lib/xalan.properties will be used.
+ * @param fallbackClassName Implementation class name, if nothing else
+ * is found. Use null to mean no fallback.
+ *
+ * @exception ObjectFactory.ConfigurationError
+ */
+ static Object createObject(String factoryId,
+ String propertiesFilename,
+ String fallbackClassName)
+ throws ConfigurationError
+ {
+ Class factoryClass = lookUpFactoryClass(factoryId,
+ propertiesFilename,
+ fallbackClassName);
+
+ if (factoryClass == null) {
+ throw new ConfigurationError(
+ "Provider for " + factoryId + " cannot be found", null);
+ }
+
+ try{
+ Object instance = factoryClass.newInstance();
+ if (DEBUG) debugPrintln("created new instance of factory " + factoryId);
+ return instance;
+ } catch (Exception x) {
+ throw new ConfigurationError(
+ "Provider for factory " + factoryId
+ + " could not be instantiated: " + x, x);
+ }
+ } // createObject(String,String,String):Object
+
+ /**
+ * Finds the implementation Class object in the specified order. The
+ * specified order is the following:
+ * <ol>
+ * <li>query the system property using <code>System.getProperty</code>
+ * <li>read <code>$java.home/lib/<i>propertiesFilename</i></code> file
+ * <li>read <code>META-INF/services/<i>factoryId</i></code> file
+ * <li>use fallback classname
+ * </ol>
+ *
+ * @return Class object of factory, never null
+ *
+ * @param factoryId Name of the factory to find, same as
+ * a property name
+ * @param propertiesFilename The filename in the $java.home/lib directory
+ * of the properties file. If none specified,
+ * ${java.home}/lib/xalan.properties will be used.
+ * @param fallbackClassName Implementation class name, if nothing else
+ * is found. Use null to mean no fallback.
+ *
+ * @exception ObjectFactory.ConfigurationError
+ */
+ public static Class lookUpFactoryClass(String factoryId)
+ throws ConfigurationError
+ {
+ return lookUpFactoryClass(factoryId, null, null);
+ } // lookUpFactoryClass(String):Class
+
+ /**
+ * Finds the implementation Class object in the specified order. The
+ * specified order is the following:
+ * <ol>
+ * <li>query the system property using <code>System.getProperty</code>
+ * <li>read <code>$java.home/lib/<i>propertiesFilename</i></code> file
+ * <li>read <code>META-INF/services/<i>factoryId</i></code> file
+ * <li>use fallback classname
+ * </ol>
+ *
+ * @return Class object that provides factory service, never null
More information about the distro-pkg-dev
mailing list