diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 9f1c5bbfb3..7849512f0d 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -29,7 +29,7 @@ jobs: if: github.repository == 'apache/shardingsphere-elasticjob' strategy: matrix: - java: [ 8, 17, 21, 22 ] + java: [ 8, 17, 19, 20, 21, 22 ] os: [ 'windows-latest', 'macos-latest', 'ubuntu-latest' ] runs-on: ${{ matrix.os }} steps: diff --git a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/setup/DefaultJobClassNameProviderTest.java b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/setup/DefaultJobClassNameProviderTest.java index 03cd4941eb..a7059520ef 100644 --- a/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/setup/DefaultJobClassNameProviderTest.java +++ b/kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/setup/DefaultJobClassNameProviderTest.java @@ -20,10 +20,11 @@ import org.apache.shardingsphere.elasticjob.kernel.fixture.job.DetailedFooJob; import org.apache.shardingsphere.elasticjob.kernel.fixture.job.FooJob; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledForJreRange; +import org.junit.jupiter.api.condition.EnabledForJreRange; import org.junit.jupiter.api.condition.JRE; import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; class DefaultJobClassNameProviderTest { @@ -35,9 +36,8 @@ void assertGetOrdinaryClassJobName() { assertThat(result, is("org.apache.shardingsphere.elasticjob.kernel.fixture.job.DetailedFooJob")); } - // TODO OpenJDK 21 breaks this unit test. @Test - @DisabledForJreRange(min = JRE.JAVA_21, max = JRE.OTHER) + @EnabledForJreRange(max = JRE.JAVA_20) void assertGetLambdaJobName() { JobClassNameProvider jobClassNameProvider = new DefaultJobClassNameProvider(); FooJob lambdaFooJob = shardingContext -> { @@ -45,4 +45,14 @@ void assertGetLambdaJobName() { String result = jobClassNameProvider.getJobClassName(lambdaFooJob); assertThat(result, is("org.apache.shardingsphere.elasticjob.kernel.internal.setup.DefaultJobClassNameProviderTest$$Lambda$")); } + + @Test + @EnabledForJreRange(min = JRE.JAVA_21) + void assertGetLambdaJobNameForJava21() { + JobClassNameProvider jobClassNameProvider = new DefaultJobClassNameProvider(); + FooJob lambdaFooJob = shardingContext -> { + }; + String result = jobClassNameProvider.getJobClassName(lambdaFooJob); + assertThat(result, startsWith("org.apache.shardingsphere.elasticjob.kernel.internal.setup.DefaultJobClassNameProviderTest$$Lambda/0x0000")); + } }