Hi guys, I’m working on several improvements this week where I would need your review and thoughts.
1. JAXB remove We have a JAXB dependency in Karaf core just for the features service. As the features model is "static" (we don’t change features model at runtime), I would like to remove the JAXB dependency and generate the parser at build time with SXC for instance. I will add a build profile to generate the parse when the model change (it doesn’t happen very often to be honest). The purpose is to provide a even lighter Karaf runtime. About that, I would like also to promote a bit the minimal distribution and do it even lighter. I propose to push minimal as official docker image, allowing people to start from minimal to create their own docker image (we will provide improved tools about that). 2. Features JSON As an alternative to features XML repo, I’ve working on features JSON repo. It’s similar in term of content, but you will now have the choice between XML and JSON. 3. Simple resolver Several users complained about the features resolver: it might be seen as complex (you have to understand req/caps, etc), it’s not always predictable (due to refresh with optional import, etc). I would like to propose an alternative: the simple resolver. It’s pretty simple: it just takes what you have in features definition. It’s an optional resolver, meaning that the default will be still the regular resolver. The simple resolver can be enabled in etc/org.apache.karaf.features.cfg. 4. Spec features and cleanup As already discussed, I would like to remove the lib/jdk9plus folder and all spec packages from etc/jre.properties to use spec features instead. That will give us more control in the specs version and support of JDK. 5. ConfigAdmin persistence repository overwrite with env var It will be possible now to overwrite configuration with env var. For instance, if you have a property foo in my.config pid, you will be able to overwrite this property with -Dmy.config:foo=bar at bootstrap. If you agree, I would like to include those improvements in coming release (4.2.9 and 4.3.0.RC2). Regards JB