319370 WebAppClassLoaderContext
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2088 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
parent
9f0a75da75
commit
16be43597f
|
@ -1,5 +1,6 @@
|
|||
jetty-7.2-SNAPSHOT
|
||||
+ 319334 Concurrent, sharable ResourceCache
|
||||
+ 319370 WebAppClassLoader.Context
|
||||
|
||||
jetty-7.1.5.v20100705
|
||||
+ Update ecj to 3.6 Helios release drop
|
||||
|
|
|
@ -193,7 +193,7 @@ public class OSGiWebappClassLoader extends WebAppClassLoader implements BundleRe
|
|||
}
|
||||
else
|
||||
{
|
||||
__logger.info("Did not add " + path + " to the classloader of the webapp " + getContext().getContextPath());
|
||||
__logger.info("Did not add " + path + " to the classloader of the webapp " + getContext());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1154,6 +1154,8 @@ public class ContextHandler extends ScopedHandler implements Attributes, Server.
|
|||
*/
|
||||
public MimeTypes getMimeTypes()
|
||||
{
|
||||
if (_mimeTypes==null)
|
||||
_mimeTypes=new MimeTypes();
|
||||
return _mimeTypes;
|
||||
}
|
||||
|
||||
|
@ -1334,13 +1336,16 @@ public class ContextHandler extends ScopedHandler implements Attributes, Server.
|
|||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Convert URL to Resource
|
||||
* wrapper for {@link Resource#newResource(String)} enables extensions to
|
||||
* provide alternate resource implementations.
|
||||
/** Convert a URL or path to a Resource.
|
||||
* The default implementation
|
||||
* is a wrapper for {@link Resource#newResource(String)}.
|
||||
* @param urlOrPath The URL or path to convert
|
||||
* @return The Resource for the URL/path
|
||||
* @throws IOException The Resource could not be created.
|
||||
*/
|
||||
public Resource newResource(String url) throws IOException
|
||||
public Resource newResource(String urlOrPath) throws IOException
|
||||
{
|
||||
return Resource.newResource(url);
|
||||
return Resource.newResource(urlOrPath);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
|
|
|
@ -56,14 +56,71 @@ import org.eclipse.jetty.util.resource.ResourceCollection;
|
|||
public class WebAppClassLoader extends URLClassLoader
|
||||
{
|
||||
private String _name;
|
||||
private WebAppContext _context;
|
||||
private Context _context;
|
||||
private ClassLoader _parent;
|
||||
private HashSet<String> _extensions;
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** The Context in which the classloader operates.
|
||||
*/
|
||||
public interface Context
|
||||
{
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Convert a URL or path to a Resource.
|
||||
* The default implementation
|
||||
* is a wrapper for {@link Resource#newResource(String)}.
|
||||
* @param urlOrPath The URL or path to convert
|
||||
* @return The Resource for the URL/path
|
||||
* @throws IOException The Resource could not be created.
|
||||
*/
|
||||
Resource newResource(String urlOrPath) throws IOException;
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @return Returns the permissions.
|
||||
*/
|
||||
PermissionCollection getPermissions();
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Is the class a System Class.
|
||||
* A System class is a class that is visible to a webapplication,
|
||||
* but that cannot be overridden by the contents of WEB-INF/lib or
|
||||
* WEB-INF/classes
|
||||
* @param clazz The fully qualified name of the class.
|
||||
* @return True if the class is a system class.
|
||||
*/
|
||||
boolean isSystemClass(String clazz);
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Is the class a Server Class.
|
||||
* A Server class is a class that is part of the implementation of
|
||||
* the server and is NIT visible to a webapplication. The web
|
||||
* application may provide it's own implementation of the class,
|
||||
* to be loaded from WEB-INF/lib or WEB-INF/classes
|
||||
* @param clazz The fully qualified name of the class.
|
||||
* @return True if the class is a server class.
|
||||
*/
|
||||
boolean isServerClass(String clazz);
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @return True if the classloader should delegate first to the parent
|
||||
* classloader (standard java behaviour) or false if the classloader
|
||||
* should first try to load from WEB-INF/lib or WEB-INF/classes (servlet
|
||||
* spec recommendation).
|
||||
*/
|
||||
boolean isParentLoaderPriority();
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
String getExtraClasspath();
|
||||
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Constructor.
|
||||
*/
|
||||
public WebAppClassLoader(WebAppContext context)
|
||||
public WebAppClassLoader(Context context)
|
||||
throws IOException
|
||||
{
|
||||
this(null,context);
|
||||
|
@ -72,7 +129,7 @@ public class WebAppClassLoader extends URLClassLoader
|
|||
/* ------------------------------------------------------------ */
|
||||
/** Constructor.
|
||||
*/
|
||||
public WebAppClassLoader(ClassLoader parent, WebAppContext context)
|
||||
public WebAppClassLoader(ClassLoader parent, Context context)
|
||||
throws IOException
|
||||
{
|
||||
super(new URL[]{},parent!=null?parent
|
||||
|
@ -120,7 +177,7 @@ public class WebAppClassLoader extends URLClassLoader
|
|||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
public ContextHandler getContext()
|
||||
public Context getContext()
|
||||
{
|
||||
return _context;
|
||||
}
|
||||
|
|
|
@ -57,10 +57,8 @@ import org.eclipse.jetty.util.resource.ResourceCollection;
|
|||
*
|
||||
* @org.apache.xbean.XBean description="Creates a servlet web application at a given context from a resource base"
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class WebAppContext extends ServletContextHandler
|
||||
public class WebAppContext extends ServletContextHandler implements WebAppClassLoader.Context
|
||||
{
|
||||
public static final String TEMPDIR = "javax.servlet.context.tempdir";
|
||||
public static final String BASETEMPDIR = "org.eclipse.jetty.webapp.basetempdir";
|
||||
|
@ -522,6 +520,7 @@ public class WebAppContext extends ServletContextHandler
|
|||
return _systemClasses.getPatterns();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
public void addSystemClass(String classname)
|
||||
{
|
||||
if (_systemClasses == null)
|
||||
|
@ -640,7 +639,10 @@ public class WebAppContext extends ServletContextHandler
|
|||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @return Returns the java2compliant.
|
||||
* @return True if the classloader should delegate first to the parent
|
||||
* classloader (standard java behaviour) or false if the classloader
|
||||
* should first try to load from WEB-INF/lib or WEB-INF/classes (servlet
|
||||
* spec recommendation).
|
||||
*/
|
||||
public boolean isParentLoaderPriority()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue