: > 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

: 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...)

yeah i guess that wouldn't be too horrible ... i think what i was trying
to point out was that if we'd roll out these super simple urls containg
just the plugin name and someone did register a plugin overriding the
admin pages, we'd screw them over later when we did get arround to
replacing the admin pages with a plugin if added it as a special override
ServletFilter mapping

: > 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.

the thing about Solr, is there really aren't a lot of "defaults" in the
sense you mean ... there is just an example -- people might copy the
example, but if they don't have something in their solrconfig, most things
just aren't there....

: > ...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'

the point i was trying to make is that the "namespaces" that Solr uses
should be unique -- the piece of the URL path that is used to pick the
Servlet or filter for dispatching the request, should be uniquely
distinguishable from the piece of the URL that is used to lookup a plugin.
A user should be confident that they can pick anyname they possily want
for their plugin, and it won't collide with any future addition we might
add to Solr.

if the new and improved solr URLs (minus host:port/context) are
just /${plugin}/... with a dispatcher that matches on any URL and checks
that path for a plugin matching that name then we have no way of ever
adding any other URL for a new in the future without running the risk that
whatever bsae path we pick for that new features URLs, we might screw over
a user who just so happened to pick that features name when registering a
plugin -- either becuase we put the new feature earlier in the FilterChain
and it circumvents requests the user expects to to that plugin, or because
we put that feature later in the FilterChain and that user doesn't ge to
take advantage of it unless he changes the name he registered the plugin
with (and changes all of his clients)

i would relaly feel a lot happier with something like these that you
mentioned...

:   /solr/dispatch/update/xml
:   /solr/cmd/update/xml
:   /solr/handle/update/xml
:   /solr/do/update/xml

http://${host}:${port}/${context}/do/${parser}/${handler/with/optional/slashes}?${params}

....sounds great to me... just as long as we have some constant prefix in
there so that later on we can use something else.

we can still handle...

http://${host}:${port}/${context}/select/?qt=${handler}&${params}

..with a really simple ServletFilter (that has no risk of collision, with
the new URL structure one, so it can go anywhere in the FilterChain)



-Hoss

Reply via email to