Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JCRVLT-708 Increase runtime requirements for JR2/Oak #296

Merged
merged 3 commits into from
Jul 4, 2023

Conversation

kwin
Copy link
Member

@kwin kwin commented Jun 13, 2023

Manage minimum versions and maximum versions separately Minimum dependency versions are used for calculating the import-package version range used in OSGi containers.
Maximum dependency versions are used for running tests and for embedded dependencies

@kwin
Copy link
Member Author

kwin commented Jun 13, 2023

@reschke Can you have a look why the tests fail with

[INFO] Running org.apache.jackrabbit.vault.packaging.integration.CugHandlingTest
15:48:19.606 [main] ERROR o.a.j.v.p.impl.ZipVaultPackage - Error during install.
java.lang.ClassCastException: class org.apache.jackrabbit.oak.jcr.session.NodeImpl cannot be cast to class javax.jcr.Node (org.apache.jackrabbit.oak.jcr.session.NodeImpl and javax.jcr.Node are in unnamed module of loader 'app')
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.getNodeOrNull(SessionImpl.java:181)
	at org.apache.jackrabbit.oak.jcr.session.SessionImpl.nodeExists(SessionImpl.java:348)
	at org.apache.jackrabbit.vault.fs.io.Importer$TxInfo.getParentNode(Importer.java:1267)
	at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1027)
	at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:905)
	at org.apache.jackrabbit.vault.fs.io.Importer.run(Importer.java:511)
	at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:284)
	at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:168)
	at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:175)
	at org.apache.jackrabbit.vault.packaging.integration.CugHandlingTest.extractVaultPackage(CugHandlingTest.java:224)
	at org.apache.jackrabbit.vault.packaging.integration.CugHandlingTest.extractVaultPackage(CugHandlingTest.java:219)
	at org.apache.jackrabbit.vault.packaging.integration.CugHandlingTest.testCugMergePreserve(CugHandlingTest.java:122)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:377)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:284)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:248)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:167)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:456)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:169)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:595)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581)

I don't see any obvious issue in the test classpath...

@kwin
Copy link
Member Author

kwin commented Jun 13, 2023

Ok, figured it out. Running tests with Oak 1.48.0 (current max version) requires a newer JR API on the classpath. So I think that for now we just execute both UTs and ITs with the minimum supported Oak version only.

@reschke
Copy link
Contributor

reschke commented Jun 13, 2023

Sounds reasonable.

Manage minimum versions and maximum versions separately
Minimum dependency versions are used for calculating the import-package
version range used in OSGi containers and running tests.
Maximum dependency versions are used for embedded dependencies
@kwin kwin force-pushed the feature/raise-min-runtime-requirements branch from 432fb95 to b7693b7 Compare June 14, 2023 09:25
@kwin
Copy link
Member Author

kwin commented Jun 23, 2023

Minimum Oak version doesn't support Java > 14. I am investigating running both max and min version in ITs

@kwin kwin force-pushed the feature/raise-min-runtime-requirements branch 5 times, most recently from 15d6b04 to 58893c3 Compare July 3, 2023 13:21
Allows to set up proper test execution classpath for testing with
multiple JCR implementations
@kwin kwin force-pushed the feature/raise-min-runtime-requirements branch from 58893c3 to 6af36d0 Compare July 3, 2023 14:01
@kwin kwin marked this pull request as ready for review July 3, 2023 14:26
@kwin kwin requested a review from reschke July 3, 2023 14:26
@kwin kwin merged commit 8186901 into master Jul 4, 2023
1 check passed
@kwin kwin deleted the feature/raise-min-runtime-requirements branch July 4, 2023 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants