: I suspect the choice of a ServletFilter vs Servlet was done for reasons
: that might have made sense forever-ago.  It has always been weird.  Does it
: still make sense?  Maybe Hossman remembers.

Once upon a time (before solr even supported multi-core) there was a 
SolrServlet bound to /select and a SolrUpdateServlet bound to /update, 
while the admin UI was handled by JSPs (that were 
directly accessible via their file names: schema.jsp etc..)

You could use different request handlers via the 'qt' param on /select 
requests, but there was no way to customize the handling of /update 
requests.

SOLR-104 introduced the "SolrDispatchFilter" -- bound to "/*" -- and the 
ability to configure (and use) request handlers by path (for both search 
and updates)

The reason it was a "Filter" was so it could ignore any path that was 
*NOT* a registered request handler and pass it down the chain -- this was 
important not only for the Admin UI JSP pages, but for things like legacy 
requests to "/update" to get the deprecated SolrUpdateServlet if the users 
config didn't define an "/update" request handler.

(This was also back in the day when "customizing the solr webapp" was not 
only supported it was encouraged, so the passthrough behavior was 
important for other reasosn as well)


Frankly, at this point, i'm not sure why it matters or makes sense to 
worry about wether it's a dispatch filter or a servlet -- if the concern 
is the logging or error handling just rip out the passthough behavior and 
put whatever new behavior you want in the SolrDispatchFilter and avoid 
the complexity of the rename.

If we really want to overhaul the SolrDispatchFilter, let's go whole 
hog, rip out all the servlet APIs and stop being a webapp :)



-Hoss

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org

Reply via email to