Good point, I forgot to update. I’m doing it. Thanks for your feedback.
Regards JB > Le 29 sept. 2020 à 07:59, Romain Manni-Bucau <rmannibu...@gmail.com> a écrit : > > Hi JB, > > for the env part it looks exactly what I would expect but for system > properties I wouldnt normalize the key (uppercase+replace dots by > underscrores), it should just be "pid + "." + key" I think. Normalization > is not only to look like common practise but also cause dots are not > accepted in env var IIRC. Since it is not the case for system props, no > reason to apply that transformation IMHO. > Last small note is that env should win over system properties so second > "if" should be preceeded by an "else" IMHO. > > Hope it makes sense. > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://rmannibucau.metawerx.net/> | Old Blog > <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > <https://www.packtpub.com/application-development/java-ee-8-high-performance> > > > Le mar. 29 sept. 2020 à 07:16, Jean-Baptiste Onofre <j...@nanthrax.net> a > écrit : > >> By the way, ConfigurationPlugin is R7 so Karaf 4.3.x. >> >> For Karaf 4.2.x, I will use the ${env} notation in cfg files using the >> same var names as working on 4.3. >> >> Regards >> JB >> >>> Le 29 sept. 2020 à 05:56, Jean-Baptiste Onofre <j...@nanthrax.net> a >> écrit : >>> >>> Hi, >>> >>> I’ve updated the PR to use ConfigurationPlugin. >>> >>> NB: when using ConfigurationPlugin, if you use >> configuration.getProperties() you will have the default values (not >> interpolated). To get the actual property values, you have to use >> configuration.getProcessedProperties(). With >> configuration.getProcessedProperties(), you will the interpolated value. >>> In order to avoid to confuse users, I also updated configRepository and >> config:* commands to use getProcessedProperties() by default. >>> >>> I’m doing a pass on other Karaf modules. >>> >>> Regards >>> JB >>> >>>> Le 28 sept. 2020 à 11:39, Romain Manni-Bucau <rmannibu...@gmail.com> a >> écrit : >>>> >>>> +1, I'd try to push for a built-in support - >>>> (<pid>.<property_name>).toUpperCase(ROOT).replace('.', '_') - to make it >>>> generic and not specific to some entries. It would also enable to not >> have >>>> to rename these env variables or have to maintain some fallbacks. >>>> What about just implementing a felix config admin configuration plugin? >>>> sounds less invasive and better on the long run? Did you give it a try? >>>> >>>> Romain Manni-Bucau >>>> @rmannibucau <https://twitter.com/rmannibucau < >> https://twitter.com/rmannibucau>> | Blog >>>> <https://rmannibucau.metawerx.net/ <https://rmannibucau.metawerx.net/>> >> | Old Blog >>>> <http://rmannibucau.wordpress.com <http://rmannibucau.wordpress.com/>> >> | Github <https://github.com/rmannibucau <https://github.com/rmannibucau>> >> | >>>> LinkedIn <https://www.linkedin.com/in/rmannibucau < >> https://www.linkedin.com/in/rmannibucau>> | Book >>>> < >> https://www.packtpub.com/application-development/java-ee-8-high-performance >> < >> https://www.packtpub.com/application-development/java-ee-8-high-performance >>>> >>>> >>>> >>>> Le lun. 28 sept. 2020 à 11:12, Jean-Baptiste Onofre <j...@nanthrax.net >> <mailto:j...@nanthrax.net>> a >>>> écrit : >>>> >>>>> Fair enough (and I agree ;)). >>>>> >>>>> Regards >>>>> JB >>>>> >>>>>> Le 28 sept. 2020 à 11:09, Grzegorz Grzybek <gr.grzy...@gmail.com> a >>>>> écrit : >>>>>> >>>>>> I'd stick to explicit approach for now and leave "implicit" one for >>>>> later ;) >>>>>> >>>>>> regards >>>>>> Grzegorz Grzybek >>>>>> >>>>>> pon., 28 wrz 2020 o 11:08 Jean-Baptiste Onofre <j...@nanthrax.net >> <mailto:j...@nanthrax.net> <mailto: >>>>> j...@nanthrax.net <mailto:j...@nanthrax.net>>> napisał(a): >>>>>> >>>>>>> Just to be clear: today I’m using an "explicit" approach, where the >>>>> config >>>>>>> contains something like: >>>>>>> >>>>>>> sshPort=${env:KARAF_SSH_PORT:-8101} >>>>>>> >>>>>>> But we can also have "implicit" approach (with some more changes >>>>> required). >>>>>>> >>>>>>> Regards >>>>>>> JB >>>>>>> >>>>>>>> Le 28 sept. 2020 à 11:07, Jean-Baptiste Onofre <j...@nanthrax.net >> <mailto:j...@nanthrax.net>> a >>>>>>> écrit : >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> At beginning, I did a very simple change in Karaf Main: for >> instance, >>>>>>> you would be able to do >>>>>>>> >>>>>>>> Bin/karaf -Dpid:prop=value >>>>>>>> >>>>>>>> And I init the configuration file with the value. >>>>>>>> >>>>>>>> However, system properties are not super easy with docker. >>>>>>>> >>>>>>>> That’s why I preferred the env variable approach. >>>>>>>> >>>>>>>> Now, about env variable, I just leverage what we already have in >> Karaf >>>>>>> (just updating the default configuration file). >>>>>>>> >>>>>>>> I can do a new iteration where (in configadmin repository), I’m >>>>> checking >>>>>>> ALL env variables to find one matching. >>>>>>>> It would mean something like: >>>>>>>> >>>>>>>> $ export KARAF.MY_PID.prop=value >>>>>>>> >>>>>>>> For instance. >>>>>>>> >>>>>>>> We would need a "env variable format". >>>>>>>> >>>>>>>> Thoughts ? >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> >>>>>>>>> Le 28 sept. 2020 à 10:59, Grzegorz Grzybek <gr.grzy...@gmail.com >> <mailto:gr.grzy...@gmail.com> >>>>>>> <mailto:gr.grzy...@gmail.com <mailto:gr.grzy...@gmail.com> <mailto: >> gr.grzy...@gmail.com <mailto:gr.grzy...@gmail.com>>>> a écrit : >>>>>>>>> >>>>>>>>> Hello >>>>>>>>> >>>>>>>>> Good idea! >>>>>>>>> >>>>>>>>> Shouldn't configadmin do it by default? >>>>>>>>> >>>>>>>>> Like dissect "KARAF_SSH_PORT" or similar env variables into: >>>>>>>>> - prefix (KARAF_) - rejected >>>>>>>>> - PID pointer (e.g., SSH → org.apache.karaf.shell) >>>>>>>>> - property (e.g PORT → sshPort) >>>>>>>>> ? >>>>>>>>> >>>>>>>>> This way it could be done in one place... Just my random >> observation, >>>>>>>>> because I can't dig this problem further for now ;) >>>>>>>>> >>>>>>>>> regards >>>>>>>>> Grzegorz Grzybek >>>>>>>>> >>>>>>>>> pon., 28 wrz 2020 o 10:51 Jean-Baptiste Onofre <j...@nanthrax.net >> <mailto:j...@nanthrax.net> >>>>> <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net>> >>>>>>> <mailto:j...@nanthrax.net <mailto:j...@nanthrax.net> <mailto: >> j...@nanthrax.net <mailto:j...@nanthrax.net>>> <mailto: >>>>> j...@nanthrax.net <mailto:j...@nanthrax.net> <mailto:j...@nanthrax.net >> <mailto:j...@nanthrax.net>> <mailto:j...@nanthrax.net >> <mailto:j...@nanthrax.net> >> <mailto: >>>>> j...@nanthrax.net <mailto:j...@nanthrax.net>>>>> >>>>>>> napisał(a): >>>>>>>>> >>>>>>>>>> Hi guys, >>>>>>>>>> >>>>>>>>>> In order to easily use Karaf in docker container, I created the >>>>>>> following >>>>>>>>>> PR: >>>>>>>>>> >>>>>>>>>> https://github.com/apache/karaf/pull/1203 < >> https://github.com/apache/karaf/pull/1203> < >>>>> https://github.com/apache/karaf/pull/1203 < >> https://github.com/apache/karaf/pull/1203>> < >>>>>>> https://github.com/apache/karaf/pull/1203 < >> https://github.com/apache/karaf/pull/1203> < >>>>> https://github.com/apache/karaf/pull/1203 < >> https://github.com/apache/karaf/pull/1203>>> < >>>>>>> https://github.com/apache/karaf/pull/1203 < >>>>> https://github.com/apache/karaf/pull/1203> < >>>>>>> https://github.com/apache/karaf/pull/1203 < >>>>> https://github.com/apache/karaf/pull/1203>>> < >>>>>>>>>> https://github.com/apache/karaf/pull/1203 < >>>>>>> https://github.com/apache/karaf/pull/1203> < >>>>>>> https://github.com/apache/karaf/pull/1203 < >>>>>>> https://github.com/apache/karaf/pull/1203>>> >>>>>>>>>> >>>>>>>>>> The purpose is allow use to override some configuration properties >>>>>>> using >>>>>>>>>> env variables. >>>>>>>>>> >>>>>>>>>> For instance, if you want to use 8102 instead of default 8101 ssh >>>>> port >>>>>>>>>> number, you can do: >>>>>>>>>> >>>>>>>>>> $ export KARAF_SSH_PORT=8102 >>>>>>>>>> $ bin/karaf >>>>>>>>>> >>>>>>>>>> I listed the environment variables here: >>>>>>>>>> >>>>>>>>>> >>>>>>> >>>>> >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >> < >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >>> >>>>> < >>>>> >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >>>>>> >>>>>>> < >>>>>>> >>>>> >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >>>>>>>> >>>>>>>>>> < >>>>>>>>>> >>>>>>> >>>>> >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >>>>>>> < >>>>>>> >>>>> >> https://github.com/apache/karaf/blob/4eda325e73d1d7dfbc0508258bde582e93d4f05e/manual/src/main/asciidoc/user-guide/configuration.adoc >>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I didn’t define environment variables for all properties. If you >> see >>>>>>> some >>>>>>>>>> properties that it would be interesting to override by env >> variables, >>>>>>>>>> please let me know, I will update the PR. >>>>>>>>>> >>>>>>>>>> NB: I will also update pax* to use similar approach. >>>>>>>>>> >>>>>>>>>> Thoughts ? >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> JB >>> >> >>