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