Hello ad1) About JAXB. Currently, `org.apache.karaf.features.internal.model.processing` package contains not that complex model for "Feature override and blacklisting", which reads etc/org.apache.karaf.features.xml file to _alter_ features model using `org.apache.karaf.features.internal.service.FeaturesProcessor`. Nothing that can't be done without JAXB. But I'd have to rewrite some code to use StAX/SAX instead.
ad2) as long as the _model_ read from JSON feature files is still rooted at org.apache.karaf.features.internal.model.Features class, it's fine wrt _feature processing_ ;) ad3) +1 for simpler resolver. But I remember it's complex not for the sake of complexity, but due to complexity of bundle model and reqs/caps model. I have a _strange case_ in https://github.com/apache/karaf/commits/ggrzybek-conditionals, where resolution depends on whether (or not) a feature is in <conditional>/<condition>. ad4) +1 ad5) +2 regards Grzegorz Grzybek pon., 4 maj 2020 o 07:30 Jean-Baptiste Onofre <j...@nanthrax.net> napisał(a): > 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 > > >