bug 336056 Ability to override the computation of the ContextHandler to deploy the DefaultServlet on equinox's HttpServiceServlet.
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@3104 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
parent
540ba7174f
commit
dedc2b648d
|
@ -19,6 +19,7 @@ jetty-7.4.1-SNAPSHOT
|
||||||
+ JETTY-1326 Invoker names not hashCode based
|
+ JETTY-1326 Invoker names not hashCode based
|
||||||
+ JETTY-1343 IllegalArgumentException for bad % encodings
|
+ JETTY-1343 IllegalArgumentException for bad % encodings
|
||||||
+ JETTY-1347 Updated ServletHander javadoc
|
+ JETTY-1347 Updated ServletHander javadoc
|
||||||
|
+ 336056 Ability to override the computation of the ContextHandler to deploy the DefaultServlet on the HttpService
|
||||||
|
|
||||||
jetty-7.4.0.v20110414
|
jetty-7.4.0.v20110414
|
||||||
+ 342504 Scanner Listener
|
+ 342504 Scanner Listener
|
||||||
|
|
|
@ -162,11 +162,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory
|
||||||
throws UnavailableException
|
throws UnavailableException
|
||||||
{
|
{
|
||||||
_servletContext=getServletContext();
|
_servletContext=getServletContext();
|
||||||
ContextHandler.Context scontext=ContextHandler.getCurrentContext();
|
_contextHandler = initContextHandler(_servletContext);
|
||||||
if (scontext==null)
|
|
||||||
_contextHandler=((ContextHandler.Context)_servletContext).getContextHandler();
|
|
||||||
else
|
|
||||||
_contextHandler = ContextHandler.getCurrentContext().getContextHandler();
|
|
||||||
|
|
||||||
_mimeTypes = _contextHandler.getMimeTypes();
|
_mimeTypes = _contextHandler.getMimeTypes();
|
||||||
|
|
||||||
|
@ -284,6 +280,29 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory
|
||||||
if (Log.isDebugEnabled()) Log.debug("resource base = "+_resourceBase);
|
if (Log.isDebugEnabled()) Log.debug("resource base = "+_resourceBase);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compute the field _contextHandler.<br/>
|
||||||
|
* In the case where the DefaultServlet is deployed on the HttpService it is likely that
|
||||||
|
* this method needs to be overwritten to unwrap the ServletContext facade until we reach
|
||||||
|
* the original jetty's ContextHandler.
|
||||||
|
* @param servletContext The servletContext of this servlet.
|
||||||
|
* @return the jetty's ContextHandler for this servletContext.
|
||||||
|
*/
|
||||||
|
protected ContextHandler initContextHandler(ServletContext servletContext)
|
||||||
|
{
|
||||||
|
ContextHandler.Context scontext=ContextHandler.getCurrentContext();
|
||||||
|
if (scontext==null)
|
||||||
|
{
|
||||||
|
if (servletContext instanceof ContextHandler.Context)
|
||||||
|
return ((ContextHandler.Context)servletContext).getContextHandler();
|
||||||
|
else
|
||||||
|
throw new IllegalArgumentException("The servletContext " + servletContext + " " +
|
||||||
|
servletContext.getClass().getName() + " is not " + ContextHandler.Context.class.getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return ContextHandler.getCurrentContext().getContextHandler();
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
@Override
|
@Override
|
||||||
public String getInitParameter(String name)
|
public String getInitParameter(String name)
|
||||||
|
|
Loading…
Reference in New Issue