Skip to content

Commit

Permalink
feat: ensure compatibility with Java 17
Browse files Browse the repository at this point in the history
  • Loading branch information
pk-work authored and s4heid committed Jun 3, 2022
1 parent e4e9355 commit 6adeaad
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 14 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/voter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ jobs:

strategy:
matrix:
java: ['11.0']
java: ['11.0', '17.0']
platform: [ubuntu-18.04] # macOS-latest, windows-latest

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Set up JDK 11
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v2
with:
distribution: 'temurin'
Expand Down
18 changes: 14 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
}

Expand Down Expand Up @@ -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 = [
Expand Down Expand Up @@ -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()}"
}
}
}
})
Expand Down
7 changes: 6 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion src/test/java/io/neonbee/entity/EntityVerticleTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
11 changes: 8 additions & 3 deletions src/test/java/io/neonbee/test/helper/ReflectionHelper.java
Original file line number Diff line number Diff line change
@@ -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;

Expand Down Expand Up @@ -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() {
Expand Down

0 comments on commit 6adeaad

Please sign in to comment.