then all is fine and dandy ... but what happens if someone tries to configure a plugin with the name "admin" ... now all of the existing admin pages break.
that is exactly what you would expect to happen if you map a handler to /admin. The person configuring solrconfig.xml is saying "Hey, use this instead of the default /admin. I want mine to make sure you are logged in using my custom authentication method." In addition, It may be reasonable (sometime in the future) to implement /admin as a RequestHandler. This could be a clean way to address SOLR-58 (xml with stylesheets, or JSON, etc...)
also: what happens a year from now when we add some completely new Servlet/ServletFilter to Solr, and want to give it a unique URL... http://host:9999/solr/bar/
obviously, I think the default solr settings should be prudent about selecting URLs. The standard configuration should probably map most things to /select/xxx or /update/xxx.
...we could put it earlier in the processing chain before the existing ServletFilter, but then we break any users that have registered a plugin with the name "bar".
Even if we move this to have a prefix path, we run into the exact same issue when sometime down the line solr has a default handler mapped to 'bar' /solr/dispatcher/bar But, if it ever becomes a problem, we can add an "excludes" pattern to the filter-config that would skip processing even if it maps to a known handler.
more short term: if there is no prefix that the ervletFilter requires, then supporting the legacy "http://host:9999/solr/update" and "http://host:9999/solr/select" URLs becomes harder,
I don't think /update or /select need to be legacy URLs. They can (and should) continue work as they currently do using a new framework. The reason I was suggesting that the Handler interface adds support to ask for the default RequestParser and/or ResponseWriter is to support this exact issue. (However in the case of path="/select" the filter would need to get the handler from ?qt=xxx) - - - - - All that said, this could just as cleanly map everything to: /solr/dispatch/update/xml /solr/cmd/update/xml /solr/handle/update/xml /solr/do/update/xml thoughts?