TLDR; I support removing configurability, but not the long term
immutability of /api's current location.

Cleaning up weirdness and inconsistency seems good, but I don't really like
the fact that we occupy root context, and I was with you until you
advocated setting /api in stone.

I find it entirely regrettable that we moved API to /api rather than
/solr/api

@David We are STILL a webapp in a servlet container. Until we ditch Jetty
that will always be true. I don't think we should ignore servlet container
best practices just because we only support one servlet container. We
should be developing toward

   - Breaking our bloated swiss army knife filter into a series of
   composable filters
   - Converting major functional areas currently baked into the filter into
   independent servlets that each re-use said filters (query, update, admin
   seem natural candidates to each be a separate servlet.
   - Ensuring that our functional core code is not handling dispatch and
   passthrough logic by ensuring that the UI is it's own app (and it can
   re-use some filters too, like authn/authz oriented which should be separate
   filters)
   - leaving ourselves latitude to think of creative new ways of leveraging
   our container (or not) by not squatting on the root context.
   - Leaving the option that creative folks can create companion apps other
   than the UI... maybe doing things like tracking docs added, listening for
   commit events and notifying an indexer that a document is now
   searchable...  It certainly would be better if that sort of thing was in a
   user supplied war deployed into our jetty than if they have to customize
   our code directly... (publishing events somewhere they can get hold of it
   within Jetty would have to be added, but that's generic and re-usable).

Note that all of this remains true no matter how we start jetty... Jetty is
still there, and still calculating dispatch to our servlet context, no
matter what we do. If we want to ditch Jetty entirely, then that's an
entirely different matter. In that case, we certainly can specify any URL
patterns we like because THEN we ARE writing the server. Since day one
however we've always been writing an application, albeit an oddly shaped
one.There's no technical benefit to eliminating /solr or anything like that
(if you really care about length I'm happy to meet you 3/4 of the way at /s
instead of /solr). It's an aesthetic for a bike shed that is built right
where we might someday want a barn or a garage, etc. (and yes to the irony
of me writing a long email about it! :) ).

So yes to making /solr not user configurable, No to the idea that /api can
never move. Both those locations usage in the tests should maybe be based
on a simple hard coded constant or something simple like that (in case
someone does want /s in the future ;) ), but there certainly shouldn't be
complex logic trying to divine the name of our context or anything like
that.

-Gus

On Thu, Jul 27, 2023 at 9:37 PM Ishan Chattopadhyaya <
ichattopadhy...@gmail.com> wrote:

> +1
>
> On Fri, 28 Jul, 2023, 1:56 am Eric Pugh, <ep...@opensourceconnections.com>
> wrote:
>
> > Hi all….   In working on SOLR-16800, which let’s us pass in a -solrUrl
> > that is “http://localhost:8983 <http://localhost:8983/>” instead of the
> > current “http://localhost:8983/solr”.    This will set us up in the
> > future when V2 api’s get called, and they are under “
> > http://localhost:8983/api” ;-).
> >
> > As part of that effort, I discovered that the “hostContext”, i.e the
> > “/solr” bit of the URL can actually be changed!   For example, “
> > http://localhost:8983/uf” is a valid Solr URL.
> >
> > There is a bunch of plumbing around hostContext in our tests, including
> > some randomization.  See  initHostContext and
> > getHostContextSuitableForServletContext in BaseDistributedSearchTestCase
> > for example.
> >
> > However, I am wondering if there is actually a valid use case for this?
> > Especially since in the future, with our V2 api’s, they won’t be using
> this
> > hostContext variability, they will always be under /api path.
> >
> > I’d like to rip out the ability to change the hostContext in 10.x (and if
> > folks are up for it, back port to 9x) and establish that it’s always
> /solr
> > for existing paths, and /api for the v2 API.
> >
> > Thoughts?
> >
> > Eric
> > _______________________
> > Eric Pugh | Founder & CEO | OpenSource Connections, LLC | 434.466.1467 |
> > http://www.opensourceconnections.com <
> > http://www.opensourceconnections.com/> | My Free/Busy <
> > http://tinyurl.com/eric-cal>
> > Co-Author: Apache Solr Enterprise Search Server, 3rd Ed <
> >
> https://www.packtpub.com/big-data-and-business-intelligence/apache-solr-enterprise-search-server-third-edition-raw
> >
> >
> > This e-mail and all contents, including attachments, is considered to be
> > Company Confidential unless explicitly stated otherwise, regardless of
> > whether attachments are marked as such.
> >
> >
>


-- 
http://www.needhamsoftware.com (work)
http://www.the111shift.com (play)

Reply via email to