icann / rdap-conformance-tool

New Library to validate RDAP Conformance
14 stars 7 forks source link

tests don't work with Java > 11 #34

Closed anewton1998 closed 4 months ago

anewton1998 commented 10 months ago

When using JDK 17 on Linux, the tests do not pass but they do under Java 11.

anewton1998 commented 9 months ago

The test appear to fail when running on MacOS using java11 and maven installed via brew.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.2.2:test (default-test) on project validator:
[ERROR]
[ERROR] Please refer to /Users/andy.newton/projects/rdap-conformance-tool/validator/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] There was an error in the forked process
[ERROR]
[ERROR] Cannot instantiate class org.icann.rdapconformance.validator.customvalidator.MediaTypesValidatorTest
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: There was an error in the forked process
[ERROR]
[ERROR] Cannot instantiate class org.icann.rdapconformance.validator.customvalidator.MediaTypesValidatorTest
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:631)
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:285)
[ERROR]     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:250)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1240)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1089)
[ERROR]     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:905)
[ERROR]     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
[ERROR]     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
[ERROR]     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
[ERROR]     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
[ERROR]     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
[ERROR]     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
[ERROR]     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
[ERROR]     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
[ERROR]     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
[ERROR]     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
[ERROR]     at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
[ERROR]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[ERROR]     at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
[ERROR]     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
[ERROR]
jcanop commented 4 months ago

I tested it on MacOS. The tests failed because Homebrew installs OpenJDK 21 by default, and this version is not supported by one dependency of mockito-testng. I downloaded OpenJDK 17 using Homebrew, and with this version, I could run the tests.

Download OpenJDK 17: $ brew install openjdk@17

Run the tests with OpenJDK 17: $ JAVA_HOME=/usr/local/Cellar/openjdk@17/17.0.11/ mvn test

[INFO] Results:
[INFO]
[INFO] Tests run: 15, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for rdap-conformance 1.0.2:
[INFO]
[INFO] rdap-conformance ................................... SUCCESS [  0.250 s]
[INFO] jitpack ............................................ SUCCESS [  0.056 s]
[INFO] rdap-conformance-validator ......................... SUCCESS [ 21.323 s]
[INFO] rdap-conformance-tool .............................. SUCCESS [  3.781 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  25.511 s
[INFO] Finished at: 2024-05-21T16:09:58-06:00
[INFO] ------------------------------------------------------------------------
j-bernard commented 4 months ago

@jcanop I'm not sure your issue is the same as the one from @anewton1998. You can run the test with Java 21 using a specific flag: mvn test -Dnet.bytebuddy.experimental=true

anewton1998 commented 4 months ago

So I was able to get it to run with Java 17 using this Dockerfile, which is just like the one in the repo but uses the official Maven image.

FROM maven:3-eclipse-temurin-17-alpine

RUN apk -q update ; apk -q add git jo

WORKDIR /app

COPY . /app

RUN mvn package

RUN jo definitionIdentifier=test > config.json

RUN mkdir datasets results

ADD https://www.iana.org/assignments/rdap-extensions/rdap-extensions.xml datasets/rdap-extensions.xml
ADD https://www.iana.org/assignments/registrar-ids/registrar-ids.xml datasets/registrar-ids.xml
ADD https://data.iana.org/rdap/dns.json datasets/dns.json
ADD https://www.iana.org/assignments/epp-repository-ids/epp-repository-ids.xml datasets/epp-repository-ids.xml
ADD https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xml datasets/iana-ipv4-special-registry.xml
ADD https://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml datasets/ipv4-address-space.xml
ADD https://www.iana.org/assignments/link-relations/link-relations.xml datasets/link-relations.xml
ADD https://www.iana.org/assignments/rdap-json-values/rdap-json-values.xml datasets/rdap-json-values.xml
ADD https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml datasets/ipv6-address-space.xml
ADD https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xml datasets/ds-rr-types.xml
ADD https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xml datasets/dns-sec-alg-numbers.xml
ADD https://www.iana.org/assignments/media-types/media-types.xml datasets/media-types.xml
ADD https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml datasets/iana-ipv6-special-registry.xml

ENTRYPOINT ["./docker-entrypoint.sh"]

I am gonna close this issue, but if anybody objects we can re-open it.