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

Reply via email to