Skip to content

Commit

Permalink
Merge pull request #391 from dmlloyd/jdk24
Browse files Browse the repository at this point in the history
Add support for JDK 24
  • Loading branch information
dmlloyd authored Jan 17, 2025
2 parents 660967d + 829ac8a commit 138ae83
Showing 1 changed file with 185 additions and 0 deletions.
185 changes: 185 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1872,6 +1872,191 @@
</plugins>
</build>
</profile>

<!-- This profile is activated when Java 24 or later is used to build -->
<profile>
<id>java24-mr-build</id>
<activation>
<jdk>[24,)</jdk>
<file>
<exists>${basedir}/src/main/java24</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile-java24</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>24</release>
<buildDirectory>${project.build.directory}</buildDirectory>
<compileSourceRoots>${project.basedir}/src/main/java24</compileSourceRoots>
<multiReleaseOutput>true</multiReleaseOutput>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Multi-Release>true</Multi-Release>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</profile>

<!-- This profile is activated when Java 25 or later is used to test a project that supports Java 24 -->
<profile>
<id>java24-test</id>
<activation>
<jdk>[25,)</jdk>
<property>
<name>java24.home</name>
</property>
<file>
<exists>${basedir}/build-test-java24</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>java24-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<jvm>${java24.home}/bin/java</jvm>
<classesDirectory>${project.build.directory}/classes/META-INF/versions/24
</classesDirectory>
<additionalClasspathElements>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/23
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/22
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/21
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/20
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/19
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/18
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/17
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/16
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/15
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/14
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/13
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/12
</additionalClasspathElement>
<additionalClasspathElement>${project.build.outputDirectory}
</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>

<!-- This profile is activated when the baseline JDK version running tests is Java 24 -->
<profile>
<id>java24-test-classpath</id>
<activation>
<jdk>[24,25)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<configuration>
<classesDirectory>${project.build.outputDirectory}/META-INF/versions/24
</classesDirectory>
<additionalClasspathElements>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/23
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/22
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/21
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/20
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/19
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/18
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/17
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/16
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/15
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/14
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/13
</additionalClasspathElement>
<additionalClasspathElement>
${project.build.directory}/classes/META-INF/versions/12
</additionalClasspathElement>
<additionalClasspathElement>${project.build.outputDirectory}
</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

<!--
Expand Down

0 comments on commit 138ae83

Please sign in to comment.