The hard part about Pax exam testing is getting the project bundle active given 
the dependency versions provided by the testing instance. I tried patching the 
test instance maven bundles and versions, but gave up after a certain point. 

Instead what I trying is logging the bundles and version 
    void logBundles() {
        for (final Bundle bundle : bundleContext.getBundles()) {
//            logs to target/test.log
            
logger.info(bundle.getSymbolicName()+":"+bundle.getVersion().toString());
        }
    }

And adjusting my maven pom.xml to allow a range
<dependency>
  <groupId>org.apache.jackrabbit</groupId>
  <artifactId>oak-auth-external</artifactId>
  <version>[1.12,1.32]</version>
</dependency>

But now I have this bundle wiring error

ERROR: Bundle org.apache.sling.auth.saml2 [187] Error starting 
file:/Users/cmrockwe/Documents/a3workspace/sling-whiteboard/saml-handler/target/paxexam/SamlHandlerIT/dbeeda70-55ff-4d85-ba39-c0a117fd83eb/pax-exam-downloads/org.apache.sling.auth.saml2_0.2.0.SNAPSHOT.jar
 (org.osgi.framework.BundleException: Unable to resolve 
org.apache.sling.auth.saml2 [187](R 187.0): missing requirement 
[org.apache.sling.auth.saml2 [187](R 187.0)] osgi.wiring.package; 
(&(osgi.wiring.package=org.apache.jackrabbit.api)(version>=2.6.0)(!(version>=3.0.0)))
 Unresolved requirements: [[org.apache.sling.auth.saml2 [187](R 187.0)] 
osgi.wiring.package; 
(&(osgi.wiring.package=org.apache.jackrabbit.api)(version>=2.6.0)(!(version>=3.0.0)))])
org.osgi.framework.BundleException: Unable to resolve 
org.apache.sling.auth.saml2 [187](R 187.0): missing requirement 
[org.apache.sling.auth.saml2 [187](R 187.0)] osgi.wiring.package; 
(&(osgi.wiring.package=org.apache.jackrabbit.api)(version>=2.6.0)(!(version>=3.0.0)))
 Unresolved requirements: [[org.apache.sling.auth.saml2 [187](R 187.0)] 
osgi.wiring.package; 
(&(osgi.wiring.package=org.apache.jackrabbit.api)(version>=2.6.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) 



so I try to add 
SlingOptions.versionResolver.setVersion("org.apache.jackrabbit", 
"oak-jackrabbit-api", "1.12.0");

But it gives this confusing shading error.

[ERROR] org.apache.sling.auth.saml2.impl.SamlHandlerIT  Time elapsed: 5.053 s  
<<< ERROR!
org.ops4j.pax.exam.TestContainerException: 
[mvn:org.apache.jackrabbit/oak-jackrabbit-api/1.12.0] could not be downloaded
Caused by: java.io.IOException: Error resolving artifact 
org.apache.jackrabbit:oak-jackrabbit-api:jar:1.12.0: [Could not find artifact 
org.apache.jackrabbit:oak-jackrabbit-api:jar:1.12.0 in apache-snapshots 
(https://repository.apache.org/snapshots/), Could not find artifact 
org.apache.jackrabbit:oak-jackrabbit-api:jar:1.12.0 in central 
(https://repo1.maven.org/maven2/)]
Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException: 
Error resolving artifact org.apache.jackrabbit:oak-jackrabbit-api:jar:1.12.0


And I just don't understand why I would have an error relating to 
org.apache.jackrabbit:oak-jackrabbit-api:jar:1.12.0 when Sling Options 
<https://github.com/apache/sling-org-apache-sling-testing-paxexam/blob/2bc462ae796f33c4d3099d64ac6af0bd104c083e/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java#L1059>
 has functions that setup Jackrabbit Oak. 

Any thoughts on this one?

Cris 

Reply via email to