On Wednesday, 3 March 2021 19:17:01 CET Eric Norman wrote: > Hi Oliver, > > I don't get it – where are the requirements for Scripting and CA Config > > > coming from? > > Ok, let me try to unwind what I was seeing. > > The scripting feature got pulled into the set as required because the > "org.apache.sling:org.apache.sling.starter:slingosgifeature:base:12-SNAPSHOT > " feature includes the "org.apache.geronimo.bundles:jstl:1.2_1" and > "org.apache.sling:org.apache.sling.models.impl:1.4.12" bundles which > reported the following errors from the feature-analyzer when the scripting > feature was excluded: > > [ERROR] org.apache.geronimo.bundles:jstl:1.2_1: is importing package(s) > [javax.servlet.jsp.tagext, javax.servlet.jsp, javax.el, > javax.servlet.jsp.el] in start level 20 but no bundle is exporting these > for that start level. > [ERROR] org.apache.sling:org.apache.sling.models.impl:1.4.12: is importing > package(s) [org.apache.sling.scripting.core, > org.apache.sling.scripting.api] in start level 20 but no bundle is > exporting these for that start level. > > And then once the scripting feature is included, then the caconfig gets > pulled in as required because > the "org.apache.sling:org.apache.sling.scripting.jsp.taglib:2.4.0" reported > this error: > > [ERROR] org.apache.sling:org.apache.sling.scripting.jsp.taglib:2.4.0: is > importing package(s) org.apache.sling.caconfig.resource in start level 20 > but no bundle is exporting these for that start level. > > So, it seems to me that the feature definitions in the starter could use > some further refinement to split them into smaller pieces or move things to > different places. Also, some bundles may not be properly declaring > optional stuff as optional? > > Does that make sense?
Absolutely! But for me this means also the features in Starter are far away from being useful as source for Exam Options. For now I will stick to Sling's Karaf Features and release Testing PaxExam hopefully with latest releases soon. Thanks! O. > Regards, > -Eric > > On Wed, Mar 3, 2021 at 7:15 AM Oliver Lietz <[email protected]> wrote: > > On Tuesday, 2 March 2021 21:35:46 CET Eric Norman wrote: > > > Hi Oliver, > > > > > > Sure I gave it a shot and I stashed the code changes for what I came up > > > with at [1] if you wish to review. Most of the effort was to create a > > > simple tool to scan all the possible features and find out what bundles > > > > are > > > > > included in each of those and then scan each of those bundles to find > > > out > > > what packages/capabilities are provided and match up what was missing > > > > with > > > > > the smallest feature that contained those things. > > > > > > After building the project from the fork, I launched the feature to > > > > confirm > > > > > it starts with this command: > > > java -jar > > > > ~/.m2/repository/org/apache/sling/org.apache.sling.feature.launcher/1.1.16 > > /o> > > > rg.apache.sling.feature.launcher-1.1.16.jar -f > > > target/slingfeature-tmp/feature-it-testing.json > > > > > > 1. > > > > https://github.com/enapps-enorman/sling-org-apache-sling-jcr-maintenance/c > > om> > > > mit/a713ad93496f5d58a246c84c7207f6e714c79036 > > > > > > How does that look to you? > > > > I don't get it – where are the requirements for Scripting and CA Config > > coming > > from? > > > > > > https://github.com/enapps-enorman/sling-org-apache-sling-jcr-maintenance/b > > lob/ testing/paxexam/src/test/features/starter.ref > > <https://github.com/enapps-enorman/sling-org-apache-sling-jcr-maintenance/ > > blob/testing/paxexam/src/test/features/starter.ref> > > > > Please help me. > > > > O. > > > > > Regards, > > > -Eric > > > > > > On Tue, Mar 2, 2021 at 3:05 AM Oliver Lietz <[email protected]> > > > > wrote: > > > > On Tuesday, 2 March 2021 01:04:06 CET Eric Norman wrote: > > > > > Hi Oliver, > > > > > > > > Hi Eric, > > > > > > > > > I'm not sure about how a "feature model" feature would express > > > > > > > > dependencies > > > > > > > > > on other features or whether that is even necessary. > > > > > > > > > > But as an experiment, I just tried to create a simple aggregate > > > > feature > > > > > > > that contains just the jcr maintenance feature and nothing else. > > > > > > > > > > During the build the analyse-features goal processes that incomplete > > > > > aggregate feature and I get a nice report back (see below) about > > > > > what > > > > > packages and capabilities are missing and then I can go look for the > > > > > features or bundles that would provide those and add them, and > > > > > repeat > > > > > > > > that > > > > > > > > > cycle until there are no errors. I guess I'm just saying that it is > > > > a > > > > > > > nicer error report and fails faster than trying to parse the log > > > > files > > > > > > > generated during a paxexam test to figure out why it didn't work. > > > > And > > > > > > if I > > > > > > > > > go through all the work to create a working aggregate feature model > > > > it > > > > > > > seems like it would be nice to be able to use that directly in my > > > > > paxexam integration tests rather than trying to recreate the same > > > > > configuration in java code. > > > > > > > > > > For example, the mvn output may look something like this: > > > > > ========================================= > > > > > [INFO] Starting analyzing feature > > > > 'experiment:starter:slingosgifeature:jcr_maintenance:1.0.0-SNAPSHOT'... > > > > > > > [INFO] - Executing APIs jar properties check [apis-jar]... > > > > > [INFO] - Executing Bundle Import/Export Check [bundle-packages]... > > > > > [INFO] - Executing Repoinit Check [repoinit]... > > > > > [INFO] - Executing Requirements Capabilities check > > > > > [requirements-capabilities]... > > > > > [INFO] Analyzing feature > > > > > 'experiment:starter:slingosgifeature:jcr_maintenance:1.0.0-SNAPSHOT' > > > > > finished : 0 warnings, 2 errors. > > > > > [ERROR] org.apache.sling:org.apache.sling.jcr.maintenance:1.0.0: is > > > > > importing package(s) [org.apache.jackrabbit.oak.api.jmx, > > > > > org.apache.jackrabbit.oak.commons.jmx, org.slf4j, > > > > > > > > org.apache.felix.hc.api, > > > > > > > > > javax.jcr.version, org.apache.sling.api.resource, javax.jcr] in > > > > > start > > > > > > > > level > > > > > > > > > 20 but no bundle is exporting these for that start level. > > > > > [ERROR] org.apache.sling:org.apache.sling.jcr.maintenance:1.0.0: > > > > > Artifact > > > > > org.apache.sling:org.apache.sling.jcr.maintenance:1.0.0 requires > > > > > [org.apache.sling.jcr.maintenance/1.0.0] osgi.extender; > > > > filter:="(&(osgi.extender=osgi.component)(version>=1.4.0)(!(version>=2.0.0 > > > > > > ))> > > > > > > > > > )" in start level 20 but no artifact is providing a matching > > > > capability > > > > > > in > > > > > > > > > this start level. > > > > > [ERROR] Analyser detected errors on feature > > > > > 'experiment:starter:slingosgifeature:jcr_maintenance:1.0.0-SNAPSHOT' > > > > > . > > > > > See > > > > > log output for error messages. > > > > > > > > Can you proceed with this approach, collect all bundles and > > > > configurations > > > > > > and > > > > let me know how much effort it is in total to have a working Sling > > > > instance to > > > > test Sling JCR Maintenance? (There are no ITs currently for the module > > > > so > > > > > > effort is not wasted.) > > > > > > > > Thanks, > > > > O. > > > > > > > > > Regards, > > > > > -Eric > > > > > > > > > > On Mon, Mar 1, 2021 at 2:57 PM Oliver Lietz <[email protected]> > > > > > > > > wrote: > > > > > > On Monday, 1 March 2021 18:51:42 CET Eric Norman wrote: > > > > > > > Hi Oliver, > > > > > > > > > > > > Hi Eric, > > > > > > > > > > > > > The problem I frequently run into is that the default > > > > configurations > > > > > > > > > from > > > > > > > SlingOptions are almost always providing versions of bundles > > > > > > > that > > > > > > > are > > > > > > > too > > > > > > > old to use for testing new features. And then at that point it > > > > > > > > requires > > > > > > > > > > a > > > > > > > > > > > > > lot of research and trial and error to find a compatible set of > > > > > > > > bundles > > > > > > > > > > to > > > > > > > > > > > > > get it to start up properly. This is why I would think the > > > > feature > > > > > > > > model + > > > > > > > > > > > > > the build time "analyse-features" goals may be useful in > > > > identifying > > > > > > > > > configuration troubles earlier and with better error messages > > > > when > > > > > > > > > things > > > > > > > go wrong. > > > > > > > > > > > > Feel free to create options for your tests from the feature model. > > > > > > > > > > > > > On the other hand with Sling Feature Model there is a big > > > > drawback. > > > > > > > > There is > > > > > > > > > > > > > > only a full blown Sling, no fine grained features. > > > > > > > > > > > > > > I don't think this is true, you can assemble things in any way > > > > you > > > > > > want, > > > > > > > > > > > and in fact the starter already has many feature descriptors > > > > > > > > published > > > > > > > > > > > under different classifiers that you could reference > > > > independently. > > > > > > > > > But I would agree that the sling starter isn't the best place to > > > > > > > > define > > > > > > > > > > the > > > > > > > > > > > > > features. The starter should really just be aggregating > > > > > > > features > > > > > > > defined > > > > > > > elsewhere and each feature should be released on its own > > > > schedule. > > > > > > The > > > > > > > > > > > recently released sling-org-apache-sling-jcr-maintenance project > > > > is > > > > > > > > > a > > > > > > > > > > > > good > > > > > > > > > > > > > example of doing something like this as the starter is just > > > > > > > > referencing > > > > > > > > > > the > > > > > > > > > > > > > released feature instead of defining everything inside the > > > > starter. > > > > > > > > AFAIK by design there is no way to express dependencies in > > > > OSGi/Sling > > > > > > > > Features. > > > > > > > > > > > > You cannot tell from the feature of Sling JCR Maintenance what is > > > > > > > > required > > > > > > > > > > to > > > > > > get it up and running. Is Jackrabbit required or even Oak? Which > > > > > > > > version? > > > > > > > > > > I haven't looked into the "analyse-features" goal. Does it take > > > > > > Capabilities/ > > > > > > Requirements into account? How is it working around the fact that > > > > for > > > > > > > > several > > > > > > bundles the meta data is missing? > > > > > > > > > > > > If you tell me there is a way to declare and maintain features > > > > > > automatically – > > > > > > great! Until now a lot of manual work was required for Sling's > > > > Karaf > > > > > > > > Features. > > > > > > > > > > > > Regards, > > > > > > O. > > > > > > > > > > > > > Regards > > > > > > > -Eric > > > > > > > > > > > > > > On Mon, Mar 1, 2021 at 2:22 AM Oliver Lietz < > > > > [email protected]> > > > > > > > > wrote: > > > > > > > > On Friday, 26 February 2021 18:54:28 CET Bertrand Delacretaz > > > > wrote: > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > On Fri, Feb 26, 2021 at 6:31 PM Eric Norman < > > > > [email protected]> > > > > > > > > wrote: > > > > > > > > > > ...Someday, maybe the sling feature model could be used to > > > > > > > > derive > > > > > > > > > > the > > > > > > > > > > > > > > > > paxexam configuration so it would be less mysterious and > > > > > > > > easier to > > > > > > > > > > > > > > debug?.. > > > > > > > > > > > > > > > > This can be implemented quite easily but you would need > > > > > > > > regular > > > > > > > > > > > > "releases" > > > > > > > > > > > > > > of > > > > > > > > Sling Starter or you would have to deal with a moving target. > > > > > > > > > > > > > > > > On the other hand with Sling Feature Model there is a big > > > > > > > > drawback. > > > > > > > > > > > > There > > > > > > > > > > > > > > is > > > > > > > > only a full blown Sling, no fine grained features. > > > > > > > > > > > > > > > > The purpose of Sling Testing PaxExam (extending OPS4J Pax > > > > *Exam* > > > > > > for > > > > > > > > > > use > > > > > > > > > > > > > > in > > > > > > > > > > Sling project) is described here: > > https://sling.apache.org/documentation/development/testing-paxexam.html#fe > > > > > > > > > > atures > > > > > > > > > > > > > > > > You get well tested sets of bundles (2-3 times) via > > > > SlingOptions > > > > > > and > > > > > > > > > > some > > > > > > > > > > > > > > helpers in TestSupport. > > > > > > > > > > > > > > > > Tested bundle sets: > > > > > > > > 1. (all) > > > > https://github.com/apache/sling-org-apache-sling-karaf-integration-tests/t > > > > > > ree/master/src/test/java/org/apache/sling/karaf/tests/bootstrap 2. > > > > > > > > (all) > > > > https://github.com/apache/sling-org-apache-sling-testing-paxexam/ > > > > tree/master/src/test/java/org/apache/sling/testing/paxexam/it/test > > > > > > > > > > s > > > > > > > > < > > > > https://github.com/apache/sling-org-apache-sling-testing-paxexam/tree/ma > > > > > > > > > > ster/src/test/java/org/apache/sling/testing/paxexam/it/tests> > > > > 3. > > > > > > > > > > ("launchpad") > > > > https://github.com/apache/sling-org-apache-sling-karaf-launchpad-oak-tar-i > > > > > > > > > > ntegration-tests/blob/master/src/test/java/org/apache/ > > > > > > > > sling/karaf/tests/configuration/SlingQuickstartOakTarConfiguration.jav > > > > > > > > > > > > a > > > > > > > > < > > > > https://github.com/apache/sling-org-apache-sling-karaf-launchpad-oak-tar > > > > > > > > -integration-tests/blob/master/src/test/java/org/apache/sling/karaf/tests/ > > > > > > > > > > configuration/SlingQuickstartOakTarConfiguration.java> > > > > > > > > > > > > > > > > Let me know if the documentation is unclear and needs to be > > > > fixed. > > > > > > > > > > O. > > > > > > > > > > > > > > > > > That would be great, and in the meantime I suppose the > > > > various > > > > > > > > > > > versions of the lists of bundles at [1] can help find out > > > > about > > > > > > the > > > > > > > > > > > > > right combinations. Assuming those are not defined in [2] > > > > > > > > already. > > > > > > > > > > > > > -Bertrand > > > > > > > > > > > > > > > > > > [1] > > > > https://github.com/apache/sling-org-apache-sling-starter/tree/master/src/m > > > > > > > > > > a > > > > > > > > > > > > > > > > > in/features [2] > > > > https://github.com/apache/sling-org-apache-sling-testing-paxexam
