We just noticed another fact. When Karaf starts up, pax-web or something writes out a jetty.xml to the etc directory where there was none before.
Wouldn't this interfere with trying to change individual config parameters on the fly from the shell? If I have my own jetty.xml, it isn't replaced by some sort of merged-up config. It also writes out a cfg file, but that's less surprising to me. javax.servlet.context.tempdir = /Users/benson/x/rosapi1.5/assemblies/front-end/target/assembly/data/pax-web-jsp org.ops4j.pax.web.config.file = /Users/benson/x/rosapi1.5/assemblies/front-end/target/assembly/etc/jetty.xml org.osgi.service.http.port = 8181 On Wed, Mar 30, 2016 at 3:52 PM, Achim Nierbeck <[email protected]> wrote: > Hi Benson, > > yes, this is it. As demanded by the OSGi spec, the configuration for the > server is done by configuration admin service. > The jetty.xml is just available for convenience for specialized > configurations. The same applies to the other two supported containers, > Tomcat and Undertow. > > regards, Achim > > > 2016-03-30 21:34 GMT+02:00 Benson Margulies <[email protected]>: > >> OK, time for me to apologize. >> >> In the environment where I have a jetty.xml to add static content, I >> indeed have the setting in the cfg file. >> >> So, I decided to read the source. Here's the process I see, which >> elaborates on your email. >> >> >> 1. >> org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.Stopped#start >> creates the jetty server, passing in several config items from config >> admin. >> 2. If you supply a config.file, it might be a file, or it might be a >> directory, presumably containing multiple jetty XML files. You can also >> supply a config.url, which presumably points to a single XML file. >> However, >> if it's a dir and not a file, it's rejected as invalid. The URL takes >> precedence. >> 3. Config admin wins over a classpath resource >> in org.ops4j.pax.web.service.jetty.internal.JettyServerImpl#start. >> 4. The start method obtains the contents of the file, turns it into a >> resource, and passes it to Jetty configuration. >> 5. The start method passes another set of config admin parameters to >> org.ops4j.pax.web.service.jetty.internal.JettyServer#configureContext. >> 6. >> org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.Stopped#start >> looks to see if there is a 'master connector' as a result of processing >> whatever configuration came through above. If there isn't one, it creates >> one programmatically. >> >> So, the net of all of this is that there is no jetty.xml file in the >> universe that represents the 'default configuration', and that a jetty.xml >> that defines no connectors on the port number from config admin is purely a >> supplement to the automatic configuration. >> >> I'll see if I can some up with any way to reflect any of this into the >> doc as a proposed change. >> >> >> On Wed, Mar 30, 2016 at 2:50 PM, Achim Nierbeck <[email protected]> >> wrote: >> >>> Hi Benson, >>> >>> please take a look at the pax-web documentation [1]. >>> The rule of thumb for Pax-Web is: >>> >>> configuration given via configuration admin service overrules anything >>> configured via jetty.xml >>> >>> jetty.xml can be used for additional configuration which isn't >>> configurable via properties / configuration admin service. >>> >>> Handlers are a special case, you can add those either via the jetty.xml >>> or via OSGi services. >>> >>> regards, Achim >>> >>> [1] - >>> http://ops4j.github.io/pax/web/4.2.x/index.html#_advanced_jetty_configuration >>> >>> >>> 2016-03-30 18:26 GMT+02:00 Benson Margulies <[email protected]>: >>> >>>> JB, something happens even if you do _not_ add that line to the pax web >>>> config file. I've added additional static content by just dropping in a >>>> jetty.xml file that adds a connector. Is the difference that adding the >>>> web.cfg line causes your file to completely replace the default, instead of >>>> supplementing it? >>>> >>>> I'm on this today because we're trying to establish the answer to the >>>> question of what idleTimeout is actually being used. >>>> >>>> >>>> On Wed, Mar 30, 2016 at 12:10 PM, Jean-Baptiste Onofré <[email protected] >>>> > wrote: >>>> >>>>> Correct. >>>>> >>>>> You can add in etc/org.ops4j.pax.web.cfg: >>>>> >>>>> org.ops4j.pax.web.config.file=${karaf.base}/etc/jetty.xml >>>>> >>>>> to provision your own jetty.xml. >>>>> >>>>> Regards >>>>> JB >>>>> >>>>> >>>>> On 03/30/2016 06:07 PM, Benson Margulies wrote: >>>>> >>>>>> Am I correct that none of the jetty.xml files in the Karaf source tree >>>>>> are live in the standard package, and that the config falls back to >>>>>> pax-web? >>>>>> >>>>>> >>>>> -- >>>>> Jean-Baptiste Onofré >>>>> [email protected] >>>>> http://blog.nanthrax.net >>>>> Talend - http://www.talend.com >>>>> >>>> >>>> >>> >>> >>> -- >>> >>> Apache Member >>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer >>> & Project Lead >>> blog <http://notizblog.nierbeck.de/> >>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>> >>> Software Architect / Project Manager / Scrum Master >>> >>> >> > > > -- > > Apache Member > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & > Project Lead > blog <http://notizblog.nierbeck.de/> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> > > Software Architect / Project Manager / Scrum Master > >
