I think we like to pretend that Jetty and web.xml are implementation
details, but I'm not sure how good of a job we do.

Whether we need to provide backwards compatibility or not is the wrong
question I think, because when we break compatibility we are telling a
subset of our users that it will not be easy for them to upgrade. I don't
know who out there has customizations in web.xml (maybe security filters is
the most common?). I don't know what the migration path for those users
would look like if they want to add stuff to an embedded jetty that we're
running - do we need to provide system properties they can set? Do we need
to give them a separate xml file that they can use similar syntax for?

I'm definitely against changing that for 8.6, and as much as I want this
change for 9.0 I really want to see an alternative that makes sense
proposed before we start tearing through all of this. I'll spend a bit more
time thinking about this and see if I can come up with any ideas as well.

Mike

On Wed, Mar 25, 2020 at 11:29 AM Jan Høydahl <jan....@cominvent.com> wrote:

> I agree. I changed the SIP page and now have four bullet points defined as
> in scope for the SIP:
>
> The most important change in this SIP will be
>
>    - Create a solr/bootstrap module with a solr.jar  to replace start.jar  as
>    the entrypoint (java -jar solr.jar ...)
>    - Hide jetty even more, i.e. rename jetty.port  → port , and perhaps
>    clean up other Sysprops as well
>    - Get rid of web.xml and instead build our contexts and paths from
>    Java code, driven by Solr config
>    - Be able to lock Solr's memory to prevent swapping (SOLR-14335)
>
>
> Not sure how big of a job the web.xml thing is, but there is definitely a
> potential of unifying test and production code in this area and thus get
> much better test coverage of some of this.
>
> However, removing web.xml is perhaps such a big change that we’ll have to
> target 9.0 while my initial goal of just creating a bootstrapper to lock
> memory could have been merged to 8.x as well?? Or do we consider web.xml an
> implementation detail for which we don’t need to provide backward
> compatibility?
>
> I’m a bit back and forth with myself on this. Perhaps if we reduce scope
> to just the bootstrap module, mem locking and some sysprop renames, it can
> be done quickly and end up in 8.6 already, then increment from there?
>
> Jan
>
> 25. mar. 2020 kl. 16:13 skrev Mike Drob <md...@apache.org>:
>
> I'm in favor of this approach mainly because of the line mentioned in the
> Test Plan:
>
> > If we move servlet initialization into Java code and get rid of web.xml,
> we may be able to start Solr in the same way both in tests and in real life!
>
> I feel that this should be a top level goal, along with taking another
> look at EmbeddedSolrServer (perhaps it moves out of SolrJ?). Right now, I
> feel like we effectively have no testing of the configurations that go into
> the various xml files - can't speak for others, but it made me reluctant to
> make changes to them.
>
>
> Mike
>
> On Tue, Mar 24, 2020 at 6:36 PM Jan Høydahl <jan....@cominvent.com> wrote:
>
>> This SIP has changed name to SIP-6 and I have changed the email subject
>> of this thread, please keep this new subject going forward.
>> New SIP link:
>> https://cwiki.apache.org/confluence/display/SOLR/SIP-6+Solr+should+own+the+bootstrap+process
>>
>> Jan
>>
>> 24. mar. 2020 kl. 22:48 skrev Uwe Schindler <u...@thetaphi.de>:
>>
>> Of course it's a single jvm. It's only a replacement for start.jar. the
>> mock-up is already there.
>>
>> Uwe
>>
>> Am March 24, 2020 9:45:33 PM UTC schrieb Bram Van Dam <
>> bram.van...@intix.eu>:
>>>
>>> On 24/03/2020 16:01, Jan Høydahl wrote:
>>>
>>>> It has been proposed many times to make Solr a truly standalone app and 
>>>> that we should start Jetty from within Solr and not the other way around :)
>>>>
>>>
>>> Do you see this running in a single JVM, i.e. you run solr.jar and it
>>> then starts an embedded Jetty server? Or would solr.jar exec a new Java
>>> process and take it from there?
>>>
>>> If it's all in one JVM, then the startup scripts probably won't be all
>>> that different. Memory settings, OOM killers etc will still have to be
>>> set up before using startup shellscripts and whatnot. If it's just a
>>> small bootstrap jar which execs another JVM, a lot of the complicated
>>> shell foo could probably be simplified.
>>>
>>>  - Bram
>>> ------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org 
>>> <dev-unsubscr...@lucene.apache.org>
>>> For additional commands, e-mail: dev-h...@lucene.apache.org 
>>> <dev-h...@lucene.apache.org>
>>>
>>>
>> --
>> Uwe Schindler
>> Achterdiek 19, 28357 Bremen
>> https://www.thetaphi.de
>>
>>
>>
>

Reply via email to