diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b23c8f32..c3defcaf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,11 +17,11 @@ jobs: persist-credentials: false fetch-depth: 0 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11.0' + java-version: '17.0' cache: 'gradle' - name: Get new version @@ -57,7 +57,7 @@ jobs: uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11.0' + java-version: '17.0' cache: 'gradle' - name: Tag release commit diff --git a/.github/workflows/voter.yml b/.github/workflows/voter.yml index fa056c33..6f34a57a 100644 --- a/.github/workflows/voter.yml +++ b/.github/workflows/voter.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - java: ['11.0'] + java: ['11.0', '17.0'] platform: [ubuntu-18.04] # macOS-latest, windows-latest steps: @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK 11 + - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v2 with: distribution: 'temurin' diff --git a/build.gradle b/build.gradle index 5a40c9f3..53ae8e13 100644 --- a/build.gradle +++ b/build.gradle @@ -143,8 +143,7 @@ task annotationProcessing(type: JavaCompile, group: 'build') { destinationDirectory = project.file('src/generated/java') options.compilerArgs = [ "-proc:only", - "-processor", "io.vertx.codegen.CodeGenProcessor", - "-Acodegen.output=${project.projectDir}/src/main" + "-processor", "io.vertx.codegen.CodeGenProcessor" ] } @@ -194,6 +193,9 @@ clean { // ############ Test Phase test { + // Is required for ReflectionsHelper + jvmArgs += ['--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED'] + // deactivate parallel execution of tests temporary until parallel execution works again if (false && !org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.getCurrentOperatingSystem().isMacOsX()) { systemProperties = [ @@ -300,8 +302,16 @@ tasks.withType(Javadoc) { doFirst { gradle.services.get(LoggingOutputInternal).addOutputEventListener(new OutputEventListener() { void onOutput(OutputEvent event) { - if (event.toString() =~ " warning: ") { - exceptions << "Javadoc warning: ${event.toString()}" + String eventString = event.toString() + if (eventString =~ " warning: ") { + if (eventString =~ " warning: no comment") { + // Ignore warnings if a class is missing a JavaDoc, + // therefore we have checkstyle + // With Java 18 we can also suppress this warnings in the console + // https://bugs.openjdk.java.net/browse/JDK-8189591 + } else { + exceptions << "Javadoc warning: ${event.toString()}" + } } } }) diff --git a/gradle.properties b/gradle.properties index 2aab3de6..9448daa3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1,6 @@ -org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=1g +org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=1g \ + --add-exports jdk.compiler/com.sun.tools.javac.api\=ALL-UNNAMED \ + --add-exports jdk.compiler/com.sun.tools.javac.file\=ALL-UNNAMED \ + --add-exports jdk.compiler/com.sun.tools.javac.parser\=ALL-UNNAMED \ + --add-exports jdk.compiler/com.sun.tools.javac.tree\=ALL-UNNAMED \ + --add-exports jdk.compiler/com.sun.tools.javac.util\=ALL-UNNAMED diff --git a/src/test/java/io/neonbee/entity/EntityVerticleTest.java b/src/test/java/io/neonbee/entity/EntityVerticleTest.java index 91f93a54..805c0863 100644 --- a/src/test/java/io/neonbee/entity/EntityVerticleTest.java +++ b/src/test/java/io/neonbee/entity/EntityVerticleTest.java @@ -205,7 +205,7 @@ void requestEntityWithConsolidationVerticleTest(VertxTestContext testContext) { new FullQualifiedName(dq.getHeader(ConsolidationVerticle.ENTITY_TYPE_NAME_HEADER)); assertThat(entityTypeName).isEqualTo(EntityVerticleImpl1.FQN_ERP_CUSTOMERS); testContext.completeNow(); - return null; + return new EntityWrapper(EntityVerticleImpl1.FQN_ERP_CUSTOMERS, (Entity) null); }); undeployVerticles(ConsolidationVerticle.class).compose(v -> deployVerticle(dummy)) diff --git a/src/test/java/io/neonbee/test/helper/ReflectionHelper.java b/src/test/java/io/neonbee/test/helper/ReflectionHelper.java index b8d87c26..124d8223 100644 --- a/src/test/java/io/neonbee/test/helper/ReflectionHelper.java +++ b/src/test/java/io/neonbee/test/helper/ReflectionHelper.java @@ -1,5 +1,10 @@ package io.neonbee.test.helper; +import static java.lang.invoke.MethodHandles.lookup; +import static java.lang.invoke.MethodHandles.privateLookupIn; + +import java.lang.invoke.MethodHandles.Lookup; +import java.lang.invoke.VarHandle; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -135,9 +140,9 @@ private static Class resolveClass(Object object) { } private static void removeFinalModifier(Field field) throws NoSuchFieldException, IllegalAccessException { - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); + Lookup lookup = privateLookupIn(Field.class, lookup()); + VarHandle modifiers = lookup.findVarHandle(Field.class, "modifiers", int.class); + modifiers.set(field, field.getModifiers() & ~Modifier.FINAL); } private ReflectionHelper() {