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 <[email protected]> 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 <[email protected]> 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 <[email protected]
>> <mailto:[email protected]>> a
>> écrit :
>>
>>> Fair enough (and I agree ;)).
>>>
>>> Regards
>>> JB
>>>
>>>> Le 28 sept. 2020 à 11:09, Grzegorz Grzybek <[email protected]> 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 <[email protected]
>>>> <mailto:[email protected]> <mailto:
>>> [email protected] <mailto:[email protected]>>> 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 <[email protected]
>>>>>> <mailto:[email protected]>> 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 <[email protected]
>>>>>>> <mailto:[email protected]>
>>>>> <mailto:[email protected] <mailto:[email protected]>
>>>>> <mailto:[email protected] <mailto:[email protected]>>>> 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 <[email protected]
>>>>>>> <mailto:[email protected]>
>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>> <mailto:[email protected] <mailto:[email protected]>
>>>>> <mailto:[email protected] <mailto:[email protected]>>> <mailto:
>>> [email protected] <mailto:[email protected]> <mailto:[email protected]
>>> <mailto:[email protected]>> <mailto:[email protected]
>>> <mailto:[email protected]> <mailto:
>>> [email protected] <mailto:[email protected]>>>>>
>>>>> 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
>