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 >