Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.apache.jasper.servlet;
 
 import static org.jboss.web.JasperMessages.MESSAGES;
 
 import java.net.URL;
 
Class loader for loading servlet class files (corresponding to JSP files) and tag handler class files (corresponding to tag files).

Author(s):
Anil K. Vijendran
Harish Prabandham
Jean-Francois Arcand
 
 public class JasperLoader extends URLClassLoader {
 
     private static final String JSP_PACKAGE_PREFIX = . + ".";
     private CodeSource codeSource;
     private String className;
     private ClassLoader parent;
     private SecurityManager securityManager;
 
     public JasperLoader(URL[] urlsClassLoader parent,
 			PermissionCollection permissionCollection,
 			CodeSource codeSource) {
 	super(urlsparent);
 	this. = permissionCollection;
 	this. = codeSource;
 	this. = parent;
     }

    
Load the class with the specified name. This method searches for classes in the same manner as loadClass(String, boolean) with false as the second argument.

Parameters:
name Name of the class to be loaded
Throws:
java.lang.ClassNotFoundException if the class was not found
 
     public Class loadClass(String namethrows ClassNotFoundException {
 
         return (loadClass(namefalse));
     }

    
Load the class with the specified name, searching using the following algorithm until it finds and returns the class. If the class cannot be found, returns ClassNotFoundException.
  • Call findLoadedClass(String) to check if the class has already been loaded. If it has, the same Class object is returned.
  • If the delegate property is set to true, call the loadClass() method of the parent class loader, if any.
  • Call findClass() to find this class in our locally defined repositories.
  • Call the loadClass() method of our parent class loader, if any.
If the class was found using the above steps, and the resolve flag is true, this method will then call resolveClass(Class) on the resulting Class object.

Parameters:
name Name of the class to be loaded
resolve If true then resolve the class
Throws:
java.lang.ClassNotFoundException if the class was not found
                                     
     public Class<?> loadClass(final String nameboolean resolve)
             throws ClassNotFoundException {
 
        Class<?> clazz = null;
        // (0) Check our previously loaded class cache
        clazz = findLoadedClass(name);
        if (clazz != null) {
            if (resolve)
                resolveClass(clazz);
            return (clazz);
        }
        // (.5) Permission to access this class when using a SecurityManager
        if ( != null) {
            int dot = name.lastIndexOf('.');
            if (dot >= 0) {
                try {
                    // Do not call the security manager since by default, we
                    // grant that package.
                    if (!"org.apache.jasper.runtime".equalsIgnoreCase(name
                            .substring(0, dot))) {
                        .checkPackageAccess(name.substring(0,
                                dot));
                    }
                } catch (SecurityException se) {
                    throw new ClassNotFoundException(.securityExceptionLoadingClass(name), se);
                }
            }
        }
        if (!name.startsWith()) {
            // Class is not in org.apache.jsp, therefore, have our
            // parent load it
            clazz = .loadClass(name);
            if (resolve)
                resolveClass(clazz);
            return clazz;
        }
        return findClass(name);
    }
    
    
    public InputStream getResourceAsStream(String name) {
        InputStream is = .getResourceAsStream(name);
        if (is == null) {
            URL url = findResource(name);
            if (url != null) {
                try {
                    is = url.openStream();
                } catch (IOException e) {
                    is = null;
                }
            }
        }
        return is;
    }
    
    
    
Get the Permissions for a CodeSource. Since this ClassLoader is only used for a JSP page in a web application context, we just return our preset PermissionCollection for the web app context.

Parameters:
codeSource Code source where the code was loaded from
Returns:
PermissionCollection for CodeSource
    public final PermissionCollection getPermissions(CodeSource codeSource) {
        return ;
    }
New to GrepCode? Check out our FAQ X