Upgrade baseline to Java 17 and Jakarata EE 9

Closes gh-426
This commit is contained in:
Brian Clozel
2022-06-24 15:07:42 +02:00
parent ae8c68d7d8
commit e522beaf5f
14 changed files with 57 additions and 55 deletions

View File

@@ -1,12 +1,12 @@
plugins { plugins {
id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'org.jetbrains.kotlin.jvm' version '1.6.20' apply false id 'org.jetbrains.kotlin.jvm' version '1.7.0' apply false
} }
ext { ext {
moduleProjects = [project(":spring-graphql"), project(":spring-graphql-test")] moduleProjects = [project(":spring-graphql"), project(":spring-graphql-test")]
graphQlJavaVersion = "18.1" graphQlJavaVersion = "18.1"
bootVersion = "2.7.0-SNAPSHOT" bootVersion = "3.0.0-SNAPSHOT"
} }
description = "Spring for GraphQL" description = "Spring for GraphQL"
@@ -33,23 +33,23 @@ configure(moduleProjects) {
apply plugin: 'org.springframework.graphql.compiler' apply plugin: 'org.springframework.graphql.compiler'
java { java {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_17
} }
pluginManager.withPlugin("kotlin") { pluginManager.withPlugin("kotlin") {
compileKotlin { compileKotlin {
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "17"
languageVersion = "1.3" languageVersion = "1.7"
apiVersion = "1.3" apiVersion = "1.7"
freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings", "-opt-in=kotlin.RequiresOptIn"] freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings", "-opt-in=kotlin.RequiresOptIn"]
allWarningsAsErrors = true allWarningsAsErrors = true
} }
} }
compileTestKotlin { compileTestKotlin {
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "17"
freeCompilerArgs = ["-Xjsr305=strict"] freeCompilerArgs = ["-Xjsr305=strict"]
} }
} }
@@ -58,29 +58,30 @@ configure(moduleProjects) {
dependencyManagement { dependencyManagement {
imports { imports {
mavenBom "com.fasterxml.jackson:jackson-bom:2.13.3" mavenBom "com.fasterxml.jackson:jackson-bom:2.13.3"
mavenBom "io.projectreactor:reactor-bom:2020.0.19" mavenBom "io.projectreactor:reactor-bom:2022.0.0-M2"
mavenBom "org.springframework:spring-framework-bom:5.3.20" mavenBom "org.springframework:spring-framework-bom:6.0.0-SNAPSHOT"
mavenBom "org.springframework.data:spring-data-bom:2021.2.0" mavenBom "org.springframework.data:spring-data-bom:2022.0.0-M4"
mavenBom "org.springframework.security:spring-security-bom:5.7.0" mavenBom "org.springframework.security:spring-security-bom:6.0.0-M5"
mavenBom "com.querydsl:querydsl-bom:5.0.0" mavenBom "com.querydsl:querydsl-bom:5.0.0"
mavenBom "io.rsocket:rsocket-bom:1.1.2" mavenBom "io.rsocket:rsocket-bom:1.1.2"
mavenBom "org.jetbrains.kotlin:kotlin-bom:1.6.21" mavenBom "org.jetbrains.kotlin:kotlin-bom:1.7.0"
mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.1" mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.1"
mavenBom "org.junit:junit-bom:5.8.2" mavenBom "org.junit:junit-bom:5.8.2"
mavenBom "org.testcontainers:testcontainers-bom:1.17.1" mavenBom "org.testcontainers:testcontainers-bom:1.17.1"
} }
dependencies { dependencies {
dependency "com.graphql-java:graphql-java:${graphQlJavaVersion}" dependency "com.graphql-java:graphql-java:${graphQlJavaVersion}"
dependency "javax.annotation:javax.annotation-api:1.3.2" dependency "jakarta.annotation:jakarta.annotation-api:2.0.0"
dependency "javax.servlet:javax.servlet-api:4.0.1" dependency "jakarta.persistence:jakarta.persistence-api:3.0.0"
dependency "jakarta.servlet:jakarta.servlet-api:5.0.0"
dependency "com.google.code.findbugs:jsr305:3.0.2" dependency "com.google.code.findbugs:jsr305:3.0.2"
dependency "org.assertj:assertj-core:3.22.0" dependency "org.assertj:assertj-core:3.23.1"
dependency "com.jayway.jsonpath:json-path:2.7.0" dependency "com.jayway.jsonpath:json-path:2.7.0"
dependency "org.skyscreamer:jsonassert:1.5.0" dependency "org.skyscreamer:jsonassert:1.5.0"
dependency "com.h2database:h2:2.1.212" dependency "com.h2database:h2:2.1.212"
dependency "javax.validation:validation-api:2.0.1.Final" dependency "jakarta.validation:jakarta.validation-api:3.0.1"
dependency "org.hibernate:hibernate-core:5.6.8.Final" dependency "org.hibernate:hibernate-core-jakarta:5.6.9.Final"
dependency "org.hibernate.validator:hibernate-validator:6.2.3.Final" dependency "org.hibernate.validator:hibernate-validator:7.0.4.Final"
dependencySet(group: 'org.mongodb', version: '4.6.0') { dependencySet(group: 'org.mongodb', version: '4.6.0') {
entry 'bson' entry 'bson'
entry 'mongodb-driver-core' entry 'mongodb-driver-core'
@@ -93,7 +94,7 @@ configure(moduleProjects) {
entry 'log4j-jul' entry 'log4j-jul'
entry 'log4j-slf4j-impl' entry 'log4j-slf4j-impl'
} }
dependencySet(group: 'org.mockito', version: '4.5.1') { dependencySet(group: 'org.mockito', version: '4.6.1') {
entry 'mockito-core' entry 'mockito-core'
entry 'mockito-inline' entry 'mockito-inline'
entry 'mockito-junit-jupiter' entry 'mockito-junit-jupiter'
@@ -105,8 +106,8 @@ configure(moduleProjects) {
} }
ext.javadocLinks = [ ext.javadocLinks = [
"https://docs.oracle.com/javase/8/docs/api/", "https://docs.oracle.com/en/java/javase/17/docs/api/",
"https://docs.spring.io/spring-framework/docs/5.3.x/javadoc-api/", "https://docs.spring.io/spring-framework/docs/6.0.x/javadoc-api/",
"https://javadoc.io/doc/com.graphql-java/graphql-java/18.1/" "https://javadoc.io/doc/com.graphql-java/graphql-java/18.1/"
] as String[] ] as String[]

View File

@@ -9,8 +9,8 @@ repositories {
maven { url "https://repo.spring.io/release" } maven { url "https://repo.spring.io/release" }
} }
sourceCompatibility = 1.8 sourceCompatibility = 17
targetCompatibility = 1.8 targetCompatibility = 17
dependencies { dependencies {
checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}" checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}"

View File

@@ -8,12 +8,12 @@ dependencies {
api 'org.springframework:spring-test' api 'org.springframework:spring-test'
api 'com.jayway.jsonpath:json-path' api 'com.jayway.jsonpath:json-path'
compileOnly 'javax.annotation:javax.annotation-api' compileOnly 'jakarta.annotation:jakarta.annotation-api'
compileOnly 'org.springframework:spring-webflux' compileOnly 'org.springframework:spring-webflux'
compileOnly 'org.springframework:spring-webmvc' compileOnly 'org.springframework:spring-webmvc'
compileOnly 'org.springframework:spring-websocket' compileOnly 'org.springframework:spring-websocket'
compileOnly 'org.springframework:spring-messaging' compileOnly 'org.springframework:spring-messaging'
compileOnly 'javax.servlet:javax.servlet-api' compileOnly 'jakarta.servlet:jakarta.servlet-api'
compileOnly 'io.rsocket:rsocket-core' compileOnly 'io.rsocket:rsocket-core'
compileOnly 'io.rsocket:rsocket-transport-netty' compileOnly 'io.rsocket:rsocket-transport-netty'
compileOnly 'org.skyscreamer:jsonassert' compileOnly 'org.skyscreamer:jsonassert'

View File

@@ -7,13 +7,13 @@ dependencies {
api 'io.projectreactor:reactor-core' api 'io.projectreactor:reactor-core'
api 'org.springframework:spring-context' api 'org.springframework:spring-context'
compileOnly 'javax.annotation:javax.annotation-api' compileOnly 'jakarta.annotation:jakarta.annotation-api'
compileOnly 'org.springframework:spring-webflux' compileOnly 'org.springframework:spring-webflux'
compileOnly 'org.springframework:spring-webmvc' compileOnly 'org.springframework:spring-webmvc'
compileOnly 'org.springframework:spring-websocket' compileOnly 'org.springframework:spring-websocket'
compileOnly 'org.springframework:spring-messaging' compileOnly 'org.springframework:spring-messaging'
compileOnly 'javax.servlet:javax.servlet-api' compileOnly 'jakarta.servlet:jakarta.servlet-api'
compileOnly 'javax.validation:validation-api' compileOnly 'jakarta.validation:jakarta.validation-api'
compileOnly 'org.springframework.security:spring-security-core' compileOnly 'org.springframework.security:spring-security-core'
@@ -42,7 +42,7 @@ dependencies {
testImplementation 'org.springframework.data:spring-data-keyvalue' testImplementation 'org.springframework.data:spring-data-keyvalue'
testImplementation 'org.springframework.data:spring-data-jpa' testImplementation 'org.springframework.data:spring-data-jpa'
testImplementation 'com.h2database:h2' testImplementation 'com.h2database:h2'
testImplementation 'org.hibernate:hibernate-core' testImplementation 'org.hibernate:hibernate-core-jakarta'
testImplementation 'org.hibernate.validator:hibernate-validator' testImplementation 'org.hibernate.validator:hibernate-validator'
testImplementation 'org.springframework.data:spring-data-mongodb' testImplementation 'org.springframework.data:spring-data-mongodb'
testImplementation 'org.mongodb:mongodb-driver-sync' testImplementation 'org.mongodb:mongodb-driver-sync'
@@ -52,13 +52,14 @@ dependencies {
testImplementation 'org.springframework.security:spring-security-core' testImplementation 'org.springframework.security:spring-security-core'
testImplementation 'com.querydsl:querydsl-core' testImplementation 'com.querydsl:querydsl-core'
testImplementation 'com.querydsl:querydsl-collections' testImplementation 'com.querydsl:querydsl-collections'
testImplementation 'javax.servlet:javax.servlet-api' testImplementation 'jakarta.servlet:jakarta.servlet-api'
testImplementation 'com.squareup.okhttp3:mockwebserver:3.14.9' testImplementation 'com.squareup.okhttp3:mockwebserver:3.14.9'
testImplementation 'io.rsocket:rsocket-transport-local' testImplementation 'io.rsocket:rsocket-transport-local'
testImplementation 'javax.validation:validation-api' testImplementation 'jakarta.persistence:jakarta.persistence-api'
testImplementation 'jakarta.validation:jakarta.validation-api'
testImplementation 'com.jayway.jsonpath:json-path' testImplementation 'com.jayway.jsonpath:json-path'
testImplementation 'com.fasterxml.jackson.core:jackson-databind' testImplementation 'com.fasterxml.jackson.core:jackson-databind'
testImplementation 'org.apache.tomcat.embed:tomcat-embed-el:9.0.55' testImplementation 'org.apache.tomcat.embed:tomcat-embed-el:10.0.21'
testRuntimeOnly 'org.apache.logging.log4j:log4j-core' testRuntimeOnly 'org.apache.logging.log4j:log4j-core'
testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl' testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl'

View File

@@ -29,7 +29,7 @@ import java.util.concurrent.Callable;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.validation.Validator; import jakarta.validation.Validator;
import graphql.schema.DataFetcher; import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment; import graphql.schema.DataFetchingEnvironment;
@@ -109,7 +109,7 @@ public class AnnotatedControllerConfigurer
AnnotatedControllerConfigurer.class.getClassLoader()); AnnotatedControllerConfigurer.class.getClassLoader());
private final static boolean beanValidationPresent = ClassUtils.isPresent( private final static boolean beanValidationPresent = ClassUtils.isPresent(
"javax.validation.executable.ExecutableValidator", "jakarta.validation.executable.ExecutableValidator",
AnnotatedControllerConfigurer.class.getClassLoader()); AnnotatedControllerConfigurer.class.getClassLoader());

View File

@@ -18,10 +18,10 @@ package org.springframework.graphql.data.method.annotation.support;
import java.util.Set; import java.util.Set;
import javax.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import javax.validation.Validation; import jakarta.validation.Validation;
import javax.validation.Validator; import jakarta.validation.Validator;
import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.graphql.data.method.HandlerMethod; import org.springframework.graphql.data.method.HandlerMethod;

View File

@@ -21,8 +21,8 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletException;
import jakarta.servlet.ServletException;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;

View File

@@ -21,10 +21,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
import javax.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import javax.validation.constraints.Max; import jakarta.validation.constraints.Max;
import javax.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.assertj.core.api.InstanceOfAssertFactories; import org.assertj.core.api.InstanceOfAssertFactories;
import org.assertj.core.api.IterableAssert; import org.assertj.core.api.IterableAssert;

View File

@@ -15,8 +15,8 @@
*/ */
package org.springframework.graphql.data.query.jpa; package org.springframework.graphql.data.query.jpa;
import javax.persistence.Entity; import jakarta.persistence.Entity;
import javax.persistence.Id; import jakarta.persistence.Id;
@Entity @Entity
public class Author { public class Author {

View File

@@ -16,10 +16,10 @@
package org.springframework.graphql.data.query.jpa; package org.springframework.graphql.data.query.jpa;
import javax.persistence.CascadeType; import jakarta.persistence.CascadeType;
import javax.persistence.Entity; import jakarta.persistence.Entity;
import javax.persistence.Id; import jakarta.persistence.Id;
import javax.persistence.OneToOne; import jakarta.persistence.OneToOne;
@Entity @Entity
public class Book { public class Book {

View File

@@ -24,8 +24,8 @@ import java.util.Optional;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource; import javax.sql.DataSource;
import jakarta.persistence.EntityManagerFactory;
import graphql.schema.DataFetcher; import graphql.schema.DataFetcher;
import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
@@ -44,8 +44,8 @@ import org.springframework.graphql.GraphQlSetup;
import org.springframework.graphql.ResponseHelper; import org.springframework.graphql.ResponseHelper;
import org.springframework.graphql.data.query.QueryByExampleDataFetcher; import org.springframework.graphql.data.query.QueryByExampleDataFetcher;
import org.springframework.graphql.execution.RuntimeWiringConfigurer; import org.springframework.graphql.execution.RuntimeWiringConfigurer;
import org.springframework.graphql.server.WebGraphQlRequest;
import org.springframework.graphql.server.WebGraphQlHandler; import org.springframework.graphql.server.WebGraphQlHandler;
import org.springframework.graphql.server.WebGraphQlRequest;
import org.springframework.graphql.server.WebGraphQlResponse; import org.springframework.graphql.server.WebGraphQlResponse;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.jdbc.datasource.DriverManagerDataSource;

View File

@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.UUID; import java.util.UUID;
import javax.servlet.ServletException; import jakarta.servlet.ServletException;
import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.JsonPath;

View File

@@ -22,7 +22,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import javax.servlet.ServletException; import jakarta.servlet.ServletException;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

View File

@@ -14,7 +14,7 @@
<property name="id" value="mainCodeIllegalImportCheck"/> <property name="id" value="mainCodeIllegalImportCheck"/>
<property name="regexp" value="true" /> <property name="regexp" value="true" />
<property name="illegalClasses" <property name="illegalClasses"
value="^javax.annotation.PostConstruct"/> value="^jakarta.annotation.PostConstruct"/>
</module> </module>
<module <module
name="com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheck"> name="com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheck">