On 1/16/07, Chris Hostetter <[EMAIL PROTECTED]> wrote:

: >I left out "micro-plugins" because i don't quite have a good answer
: >yet :)  This may a place where a custom dispatcher servlet/filter
: >defined in web.xml is the most appropriate solution.
:
: If the issue is munging HTTPServletRequest information, then a proper
: separation of concerns suggests responsibility should lie with a Servlet
: Filter, as Ryan suggests.

I'm not making sense of this ... i don't see how the micro-plugins (aka:
RequestParsers) could be implimented as Filters and still be plugins that
users could provide ... don't Filters have to be specified in the web.xml

Yes.  I'm suggesting we map a filter to intercept ALL requests, then
see which ones it should handle.

Consider:

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
 if(request instanceof HttpServletRequest) {
   HttpServletRequest req = (HttpServletRequest) request;
   String path = req.getServletPath();

   SolrRequestHandler handler = core.getRequestHandler( path );
   if( handler != null ) {
        
        HANDLE THE REQUEST
        
        return;
   }
 }

 // Otherwise let the webapp handle the request
 chain.doFilter(request, response);
}


... is there some progromatic way a Servlet or Filter can register other
Servlets/Filters dynamicly when the application is initalized? ... if
users have to extract the solr.war and modify the web.xml to add a
RequestParser they've written, that doesn't seem like much of a plugin :)


You would not need to extract the war, just change the registered handler name.


ryan

Reply via email to