Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/multi-version-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Java-Version Compatibility Tests

on: [pull_request]

permissions: {}

jobs:
compatibility-test:
name: Test on Java ${{ matrix.java }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
java: [17, 21, 25]
steps:
- name: Check out
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
with:
persist-credentials: false

- name: Set up Java ${{ matrix.java }}
id: setup-java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}

- name: Cache local Maven repository
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-java${{ matrix.java }}-
${{ runner.os }}-maven-

- name: Build and test on Java ${{ matrix.java }}
run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dspotless.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true
183 changes: 98 additions & 85 deletions integration-tests/it-spring-boot-smoke-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
Spring Smoke Tests
</description>
<properties>
<java.version>25</java.version>
<java.version>${test.java.version}</java.version>
<junit-jupiter.version>6.0.2</junit-jupiter.version>
</properties>

Expand Down Expand Up @@ -89,95 +89,108 @@

<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<!-- editorconfig-checker-disable -->
<buildArgs>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue
</buildArg>
<buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain
</buildArg>
</buildArgs>
<!-- editorconfig-checker-enable -->
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<java>
<googleJavaFormat/>
</java>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

<profiles>
<profile>
<id>java17-plus</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<!-- editorconfig-checker-disable -->
<buildArgs>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.api.DisplayNameGenerator$IndicativeSentences
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor$MethodInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.engine.support.store.NamespacedHierarchicalStore$EvaluatedValue
</buildArg>
<buildArg>--initialize-at-build-time=org.junit.platform.launcher.core.DiscoveryIssueNotifier
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.launcher.core.HierarchicalOutputDirectoryProvider
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.launcher.core.LauncherDiscoveryResult$EngineResultInfo
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.suite.engine.SuiteTestDescriptor$LifecycleMethods
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.ConditionEvaluator
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.InterceptingExecutableInvoker
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.api.extension.ConditionEvaluationResult
</buildArg>
<buildArg>
--initialize-at-build-time=org.junit.jupiter.engine.execution.InvocationInterceptorChain
</buildArg>
</buildArgs>
<!-- editorconfig-checker-enable -->
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<java>
<googleJavaFormat/>
</java>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

</project>
Loading
Loading