Glad to hear that you are getting further along.

Per OAK-9105, it looks like oak version 1.32.0 has defined the required
minimum version of jackrabbit as version 2.20.1.  So if you are switching
to oak 1.32.0 then it means you have to also switch the jackrabbit bundles
in your configuration to version 2.20.1 later.

I agree that when writing a new paxexam test, I spend probably 20% of the
time writing the test and 80% of the time trying to figure out the right
combination of bundles and configurations to make it start up.

Someday, maybe the sling feature model could be used to derive the paxexam
configuration so it would be less mysterious and easier to debug?

Regards,
Eric

On Fri, Feb 26, 2021 at 7:28 AM Cris Rockwell <[email protected]> wrote:

> Thank you! I was indeed missing both the org.apache.felix.framework and
> @RunWith(PaxExam.class)
>
> Now my tests fail because of bundle wiring according to the log …
> target/failsafe-reports/org.apache.sling.auth.saml2.impl.SamlHandlerIT-output.txt
>
> my configuration looks like this
>
> @Configuration
> public Option[] configuration() {
>     // Patch versions of features provided by SlingOptions
>     HTTP_PORT = findFreePort();
>     DEST_HTTP_PORT = findFreePort();
>     SlingOptions.versionResolver.setVersionFromProject("org.apache.sling",
> "org.apache.sling.auth.saml2");
>     SlingOptions.versionResolver.setVersion("commons-codec",
> "commons-codec", "1.14");
>     SlingOptions.versionResolver.setVersion("org.apache.jackrabbit",
> "oak-jackrabbit-api", "1.32.0");
>     SlingOptions.versionResolver.setVersion("org.apache.jackrabbit",
> "oak-api", "1.32.0");
>     SlingOptions.versionResolver.setVersion("org.apache.jackrabbit",
> "oak-core", "1.32.0");
>     SlingOptions.versionResolver.setVersion("org.apache.jackrabbit",
> "oak-commons", "1.32.0");
>     SlingOptions.versionResolver.setVersion("org.apache.jackrabbit",
> "oak-blob", "1.32.0");
>
>     return new Option[]{
>
> systemProperty("org.osgi.service.http.port").value(String.valueOf(HTTP_PORT)),
>         baseConfiguration(),
>         slingQuickstart(),
>         CoreOptions.mavenBundle("org.apache.felix",
> "org.apache.felix.webconsole.plugins.ds", "2.0.8"),
>         junitBundles(),
>         logback(),
>         // build artifact
>         testBundle("bundle.filename"), // from TestSupport
>     };
> }
>
>
>
> But I’m still seeing a lot of Bundle Wiring problems related to Oak
>
> ERROR: Bundle org.apache.jackrabbit.oak-blob [102] Error starting
> file:/Users/cmrockwe/Documents/a3workspace/sling-whiteboard/saml-handler/target/paxexam/SamlHandlerIT/c0ccc2e3-e466-4472-bf32-2ad1edf4756e/pax-exam-downloads/org.apache.jackrabbit.oak-blob_1.32.0.jar
> (org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-blob [102](R 102.0): missing requirement
> [org.apache.jackrabbit.oak-blob [102](R 102.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.commons.cache)(version>=1.0.0)(!(version>=2.0.0)))
> [caused by: Unable to resolve org.apache.jackrabbit.oak-commons [104](R
> 104.0): missing requirement [org.apache.jackrabbit.oak-commons [104](R
> 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))]
> Unresolved requirements: [[org.apache.jackrabbit.oak-blob [102](R 102.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.commons.cache)(version>=1.0.0)(!(version>=2.0.0)))])
> org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-blob [102](R 102.0): missing requirement
> [org.apache.jackrabbit.oak-blob [102](R 102.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.commons.cache)(version>=1.0.0)(!(version>=2.0.0)))
> [caused by: Unable to resolve org.apache.jackrabbit.oak-commons [104](R
> 104.0): missing requirement [org.apache.jackrabbit.oak-commons [104](R
> 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))]
> Unresolved requirements: [[org.apache.jackrabbit.oak-blob [102](R 102.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.commons.cache)(version>=1.0.0)(!(version>=2.0.0)))]
>         at
> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4368)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2281)
>         at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1539)
>         at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>         at java.base/java.lang.Thread.run(Thread.java:834)
> ERROR: Bundle org.apache.jackrabbit.oak-blob-plugins [103] Error starting
> file:/Users/cmrockwe/Documents/a3workspace/sling-whiteboard/saml-handler/target/paxexam/SamlHandlerIT/c0ccc2e3-e466-4472-bf32-2ad1edf4756e/pax-exam-downloads/org.apache.jackrabbit.oak-blob-plugins_1.12.0.jar
> (org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-blob-plugins [103](R 103.0): missing requirement
> [org.apache.jackrabbit.oak-blob-plugins [103](R 103.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.api.blob)(version>=1.0.0)(!(version>=1.1.0)))
> Unresolved requirements: [[org.apache.jackrabbit.oak-blob-plugins [103](R
> 103.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.api.blob)(version>=1.0.0)(!(version>=1.1.0)))])
> org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-blob-plugins [103](R 103.0): missing requirement
> [org.apache.jackrabbit.oak-blob-plugins [103](R 103.0)]
> osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.api.blob)(version>=1.0.0)(!(version>=1.1.0)))
> Unresolved requirements: [[org.apache.jackrabbit.oak-blob-plugins [103](R
> 103.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.oak.api.blob)(version>=1.0.0)(!(version>=1.1.0)))]
>         at
> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4368)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2281)
>         at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1539)
>         at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>         at java.base/java.lang.Thread.run(Thread.java:834)
> ERROR: Bundle org.apache.jackrabbit.oak-commons [104] Error starting
> file:/Users/cmrockwe/Documents/a3workspace/sling-whiteboard/saml-handler/target/paxexam/SamlHandlerIT/c0ccc2e3-e466-4472-bf32-2ad1edf4756e/pax-exam-downloads/org.apache.jackrabbit.oak-commons_1.32.0.jar
> (org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-commons [104](R 104.0): missing requirement
> [org.apache.jackrabbit.oak-commons [104](R 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))
> Unresolved requirements: [[org.apache.jackrabbit.oak-commons [104](R
> 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))])
> org.osgi.framework.BundleException: Unable to resolve
> org.apache.jackrabbit.oak-commons [104](R 104.0): missing requirement
> [org.apache.jackrabbit.oak-commons [104](R 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))
> Unresolved requirements: [[org.apache.jackrabbit.oak-commons [104](R
> 104.0)] osgi.wiring.package;
> (&(osgi.wiring.package=org.apache.jackrabbit.util)(version>=2.5.0)(!(version>=3.0.0)))]
>         at
> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4368)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2281)
>         at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1539)
>         at
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
>         at java.base/java.lang.Thread.run(Thread.java:834)
>
> (and several more)
>
>
> Any other thoughts?
>
> Cris
>
> > On Feb 25, 2021, at 6:41 PM, Eric Norman <[email protected]> wrote:
> >
> > Also, you'll need to add a version of the felix framework as a dependency
> > with something like this:
> >
> >      <!-- Apache Felix -->
> >      <dependency>
> >        <groupId>org.apache.felix</groupId>
> >        <artifactId>org.apache.felix.framework</artifactId>
> >        <version>6.0.3</version>
> >        <scope>test</scope>
> >      </dependency>
> >
> > On Thu, Feb 25, 2021 at 3:18 PM Eric Norman <[email protected]> wrote:
> >
> >> Hi,
> >> I think you might be missing the annotation declaring that you want to
> use
> >> the PaxExam test runner for the test class.
> >>
> >> For example, something like this may get you further:
> >>
> >> import org.ops4j.pax.exam.junit.PaxExam;
> >> import org.junit.runner.RunWith;
> >>
> >> @RunWith(PaxExam.class)
> >>
> >>
> >> On Thu, Feb 25, 2021 at 3:09 PM Cris Rockwell <[email protected]>
> wrote:
> >>
> >>> Hello it’s me again
> >>>
> >>> I was wondering if someone knowledgable about PAX testing in Sling
> could
> >>> help me out with my Sling Whiteboard project (saml-handler) [1] on
> branch
> >>> SLING-9397/improve-test-coverage
> >>>
> >>> The project uses Java 11, but I think that’s supported and should be
> >>> fine. The pom [2] should be straight according to this docs [3]
> >>>
> >>> The IT test [4] doesn’t do much yet, because I’m trying to validate
> >>> whether it’s working or not.
> >>>
> >>>
> >>> if I run "mvn clean install", then I expect there to be something under
> >>> target/paxexam according this
> >>>
> >>>
> https://github.com/apache/sling-org-apache-sling-testing-paxexam/blob/master/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
> >>> <
> >>>
> https://github.com/apache/sling-org-apache-sling-testing-paxexam/blob/master/src/main/java/org/apache/sling/testing/paxexam/TestSupport.java
> >
> >>>
> >>>
> >>>
> >>> But its not there
> >>> ➜  saml-handler git:(SLING-9397/improve-test-coverage) ls target/
> >>> classes/
> >>> generated-test-sources/                                 maven-status/
> >>>                                     rat.txt
> >>> failsafe-reports/                                       maven-archiver/
> >>>
> >>> org.apache.sling.auth.saml2-0.2.0-SNAPSHOT-sources.jar
> surefire-reports/
> >>> generated-sources/
> >>> maven-shared-archive-resources/
> >>> org.apache.sling.auth.saml2-0.2.0-SNAPSHOT.jar          test-classes/
> >>>
> >>>
> >>> So I don’t think I’m doing this right. But I’m spending several days
> and
> >>> getting nowhere close to improving test coverage of this bundle. Any
> help
> >>> getting this setup properly would be muy apreciado!
> >>>
> >>> Regards
> >>> Cris
> >>>
> >>>
> >>> [1]
> >>>
> https://github.com/apache/sling-whiteboard/tree/SLING-9397/improve-test-coverage/saml-handler
> >>> <
> >>>
> https://github.com/apache/sling-whiteboard/tree/SLING-9397/improve-test-coverage/saml-handler
> >>>>
> >>> [2]
> >>>
> https://github.com/apache/sling-whiteboard/blob/SLING-9397/improve-test-coverage/saml-handler/pom.xml
> >>> <
> >>>
> https://github.com/apache/sling-whiteboard/blob/SLING-9397/improve-test-coverage/saml-handler/pom.xml
> >>>>
> >>> [3]
> >>>
> https://sling.apache.org/documentation/development/testing-paxexam.html <
> >>>
> https://sling.apache.org/documentation/development/testing-paxexam.html>
> >>> [4]
> >>>
> https://github.com/apache/sling-whiteboard/blob/SLING-9397/improve-test-coverage/saml-handler/src/test/java/org/apache/sling/auth/saml2/impl/SamlHandlerIT.java
> >>> <
> >>>
> https://github.com/apache/sling-whiteboard/blob/SLING-9397/improve-test-coverage/saml-handler/src/test/java/org/apache/sling/auth/saml2/impl/SamlHandlerIT.java
> >>>>
> >>
> >>
>
>

Reply via email to