import org.apache.jasper.compiler.JspUtil;
import org.apache.jasper.compiler.Localizer;
import org.apache.jasper.compiler.ServletWriter;
+import org.apache.jasper.servlet.JasperLoader;
import org.apache.jasper.servlet.JspServletWrapper;
/**
public ClassLoader getJspLoader() {
if( jspLoader == null ) {
- jspLoader = rctxt.getJspLoader(baseUrl, getClassLoader());
+ jspLoader = new JasperLoader
+ (new URL[] {baseUrl},
+ getClassLoader(),
+ rctxt.getPermissionCollection(),
+ rctxt.getCodeSource());
}
return jspLoader;
}
import org.apache.jasper.Options;
import org.apache.jasper.runtime.JspFactoryImpl;
import org.apache.jasper.security.SecurityClassLoad;
-import org.apache.jasper.servlet.JasperLoader;
import org.apache.jasper.servlet.JspServletWrapper;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
private ServletContext context;
private Options options;
private URLClassLoader parentClassLoader;
- private JasperLoader jspLoader;
private PermissionCollection permissionCollection;
private CodeSource codeSource;
private String classpath;
}
- /**
- * Obtain the classloader to use when loading JSP resources. In development
- * mode or when running background compilations, each JSP has a separate
- * classloader to enable easy re-loading of modified JSPs. If not in
- * development mode, a single loader is used to reduce perm gen usage when
- * many JSPs all use the same handful of tags.
- */
- public URLClassLoader getJspLoader(URL baseUrl, ClassLoader parent) {
- if (options.getDevelopment() || lastCheck > -1) {
- return new JasperLoader(new URL[] {baseUrl}, parent,
- permissionCollection, codeSource);
- }
- if (jspLoader == null) {
- jspLoader = new JasperLoader(new URL[] {baseUrl}, parent,
- permissionCollection, codeSource);
- }
- return jspLoader;
- }
-
-
// -------------------------------------------------------- Private Methods