All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.html.SecuritySupport Maven / Gradle / Ivy

There is a newer version: 0.63
Show newest version
/*
 * Copyright 2002-2008 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.googlecode.html;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

/**
 * 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.
 * 

* Base class with security related methods that work on JDK 1.1. */ class SecuritySupport { /* * Make this of type Object so that the verifier won't try to prove its type, thus possibly * trying to load the SecuritySupport12 class. */ private static final Object securitySupport; static { SecuritySupport ss = null; try { Class c = Class.forName("java.security.AccessController"); // if that worked, we're on 1.2. /* * // don't reference the class explicitly so it doesn't // get dragged in accidentally. c * = Class.forName("javax.mail.SecuritySupport12"); Constructor cons = c.getConstructor(new * Class[] { }); ss = (SecuritySupport)cons.newInstance(new Object[] { }); */ /* * Unfortunately, we can't load the class using reflection because the class is package * private. And the class has to be package private so the APIs aren't exposed to other * code that could use them to circumvent security. Thus, we accept the risk that the * direct reference might fail on some JDK 1.1 JVMs, even though we would never execute * this code in such a case. Sigh... */ ss = new SecuritySupport12(); } catch (Exception ex) { // ignore it } finally { if (ss == null) ss = new SecuritySupport(); securitySupport = ss; } } /** * Return an appropriate instance of this class, depending on whether we're on a JDK 1.1 or J2SE * 1.2 (or later) system. */ static SecuritySupport getInstance() { return (SecuritySupport) securitySupport; } ClassLoader getContextClassLoader() { return null; } boolean getFileExists(File f) { return f.exists(); } FileInputStream getFileInputStream(File file) throws FileNotFoundException { return new FileInputStream(file); } long getLastModified(File f) { return f.lastModified(); } ClassLoader getParentClassLoader(ClassLoader cl) { return null; } InputStream getResourceAsStream(ClassLoader cl, String name) { InputStream ris; if (cl == null) { ris = ClassLoader.getSystemResourceAsStream(name); } else { ris = cl.getResourceAsStream(name); } return ris; } ClassLoader getSystemClassLoader() { return null; } String getSystemProperty(String propName) { return System.getProperty(propName); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy