diff --git a/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF index d9dad5cd9cb..2bbc145fcd7 100644 --- a/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF @@ -4,14 +4,15 @@ Bundle-Name: %bundleName Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.equinox.jsp.jasper -Bundle-Version: 1.1.700.qualifier +Bundle-Version: 1.1.800.qualifier Bundle-Activator: org.eclipse.equinox.internal.jsp.jasper.Activator -Import-Package: javax.servlet;version="[2.4, 5.0)", - javax.servlet.annotation;version="[2.6, 5.0)";resolution:=optional, - javax.servlet.descriptor;version="[2.6, 5.0)";resolution:=optional, - javax.servlet.http;version="[2.4, 5.0)", - javax.servlet.jsp;version="[2.0, 3.0)", - org.apache.jasper.servlet;version="[0, 8)", +Import-Package: com.sun.el;version="3.0.0", + javax.servlet;version="[2.4,5.0)", + javax.servlet.annotation;version="[2.6,5.0)";resolution:=optional, + javax.servlet.descriptor;version="[2.6,5.0)";resolution:=optional, + javax.servlet.http;version="[2.4,5.0)", + javax.servlet.jsp;version="[2.0,3.0)", + org.apache.jasper.servlet;version="[9,10)", org.osgi.framework;version="1.3.0", org.osgi.service.http;version="1.2.0", org.osgi.service.packageadmin;version="1.2.0", diff --git a/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/internal/jsp/jasper/BundleProxyClassLoader.java b/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/internal/jsp/jasper/BundleProxyClassLoader.java index efbd7aaf896..94c26cec43c 100644 --- a/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/internal/jsp/jasper/BundleProxyClassLoader.java +++ b/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/internal/jsp/jasper/BundleProxyClassLoader.java @@ -24,6 +24,7 @@ * A BundleProxyClassLoader wraps a bundle and uses the various Bundle methods to produce a ClassLoader. */ public class BundleProxyClassLoader extends ClassLoader { + private final Bundle activatorBundle = Activator.getBundle(Activator.class); private Bundle bundle; private ClassLoader parent; @@ -49,6 +50,14 @@ public URL findResource(String name) { @Override public Class findClass(String name) throws ClassNotFoundException { + try { + if (name.startsWith("com.sun.el")) { //$NON-NLS-1$ + return activatorBundle.loadClass(name); + } + } catch (ClassNotFoundException ex) { + //$FALL-THROUGH$ + } + return bundle.loadClass(name); } diff --git a/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/jsp/jasper/JspServlet.java b/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/jsp/jasper/JspServlet.java index 7dd8e35c904..26eb962978f 100644 --- a/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/jsp/jasper/JspServlet.java +++ b/bundles/org.eclipse.equinox.jsp.jasper/src/org/eclipse/equinox/jsp/jasper/JspServlet.java @@ -120,6 +120,7 @@ public void init(ServletConfig config) throws ServletException { try { Thread.currentThread().setContextClassLoader(jspLoader); jspServlet.init(new ServletConfigAdaptor(config)); + new org.apache.jasper.servlet.JasperInitializer().onStartup(Collections.emptySet(), getServletContext()); // If a SecurityManager is set we need to override the permissions collection set in Jasper's JSPRuntimeContext if (System.getSecurityManager() != null) {