Thanks, I will take a look once the current releases are on vote.
Regards
JB
On 10/01/2022 00:53, Łukasz Dywicki wrote:
I made finally an issue for that improvement:
https://issues.apache.org/jira/browse/KARAF-7325
Took me a little bit longer than promised (C).
Leaving link at mailing list for tracking purposes. ;-)
Best,
Łukasz
--
http://code-house.org
On 11.06.2021 12:25, Jean-Baptiste Onofre wrote:
Hi Lukasz
It’s a good idea for system/custom properties. It’s similar/extend of
the custom.system.properties we already have in system.properties right ?
For json/cfg files, it’s not necessary as we can already override with
system properties or env variables (useful with docker) IMHO.
Regards
JB
Le 11 juin 2021 à 10:34, Łukasz Dywicki <l...@code-house.org> a écrit :
Hey all,
I recently been going over few Karaf assemblies I created in past years
and I realized that in many cases I had to copy entire configuration
shipped by Karaf distribution in order to include a new config in
bootstrap process.
Quite often my requirements were quite small, yet I had to create two
files and take care of updates of distro shipped file in order to keep
assembly well behaving.
Looking at base resources:
https://github.com/apache/karaf/tree/karaf-4.3.2/assemblies/features/base/src/main/filtered-resources/resources/etc
If distro builder wants to override or extend any of properties defined
in these he needs to copy a whole file. While it is not a problem for
custom properties it is a burden for jre and system properties which
vary between releases.
This week I attempted a bit simplified approach which can be
summarized as:
1) Define default ${optionals} dedicated to overrides, ie. ${optionals}
= custom.config.properties
2) Update each interesting system property to contain an placeholder
with fallback. For example:
org.osgi.framework.system.packages=\
... \
org.apache.karaf.info;version="4.2.9",\
${jre-${java.specification.version}}, \
${custom.org.osgi.framework.system.packages:-}
With this approach user who needs to add an extra import or export for
his environment needs to do just one thing. Create a
"custom.config.properties" file with a single line:
custom.org.osgi.framework.system.packages=jdk.internal.math
Packager work related to overrides of distro files is completely
removed. More over this also leaves end user free of the need to fight
ordering of dependencies in maven poms to shade Karaf defaults.
While above is quite handy there is a security consideration to be made.
First of all, creation of an optional file might simplify process of
affecting existing Karaf installations through easier injection of
additional options. I believe that proper file and folder permissions
should prevent that, however it must be noted that distro will have more
flexible configuration injection with all pros and cons.
Best,
Łukasz
--
Integrate software (Code-House) & hardware (ConnectorIO)
http://code-house.org
http://connectorio.com