From e522beaf5faaa68aa503191bf0da33d8e3f04ea5 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Fri, 24 Jun 2022 15:07:42 +0200 Subject: [PATCH] Upgrade baseline to Java 17 and Jakarata EE 9 Closes gh-426 --- build.gradle | 45 ++++++++++--------- buildSrc/build.gradle | 4 +- spring-graphql-test/build.gradle | 4 +- spring-graphql/build.gradle | 15 ++++--- .../AnnotatedControllerConfigurer.java | 4 +- .../support/HandlerMethodInputValidator.java | 8 ++-- .../server/webmvc/GraphQlHttpHandler.java | 2 +- .../HandlerMethodInputValidatorTests.java | 8 ++-- .../graphql/data/query/jpa/Author.java | 4 +- .../graphql/data/query/jpa/Book.java | 8 ++-- .../QueryByExampleDataFetcherJpaTests.java | 4 +- .../webmvc/GraphQlHttpHandlerTests.java | 2 +- .../server/webmvc/GraphiQlHandlerTests.java | 2 +- src/checkstyle/checkstyle.xml | 2 +- 14 files changed, 57 insertions(+), 55 deletions(-) diff --git a/build.gradle b/build.gradle index 4de7ec2a..aaf547d9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,12 @@ plugins { 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 { moduleProjects = [project(":spring-graphql"), project(":spring-graphql-test")] graphQlJavaVersion = "18.1" - bootVersion = "2.7.0-SNAPSHOT" + bootVersion = "3.0.0-SNAPSHOT" } description = "Spring for GraphQL" @@ -33,23 +33,23 @@ configure(moduleProjects) { apply plugin: 'org.springframework.graphql.compiler' java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } pluginManager.withPlugin("kotlin") { compileKotlin { kotlinOptions { - jvmTarget = "1.8" - languageVersion = "1.3" - apiVersion = "1.3" + jvmTarget = "17" + languageVersion = "1.7" + apiVersion = "1.7" freeCompilerArgs = ["-Xjsr305=strict", "-Xsuppress-version-warnings", "-opt-in=kotlin.RequiresOptIn"] allWarningsAsErrors = true } } compileTestKotlin { kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" freeCompilerArgs = ["-Xjsr305=strict"] } } @@ -58,29 +58,30 @@ configure(moduleProjects) { dependencyManagement { imports { mavenBom "com.fasterxml.jackson:jackson-bom:2.13.3" - mavenBom "io.projectreactor:reactor-bom:2020.0.19" - mavenBom "org.springframework:spring-framework-bom:5.3.20" - mavenBom "org.springframework.data:spring-data-bom:2021.2.0" - mavenBom "org.springframework.security:spring-security-bom:5.7.0" + mavenBom "io.projectreactor:reactor-bom:2022.0.0-M2" + mavenBom "org.springframework:spring-framework-bom:6.0.0-SNAPSHOT" + mavenBom "org.springframework.data:spring-data-bom:2022.0.0-M4" + mavenBom "org.springframework.security:spring-security-bom:6.0.0-M5" mavenBom "com.querydsl:querydsl-bom:5.0.0" 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.junit:junit-bom:5.8.2" mavenBom "org.testcontainers:testcontainers-bom:1.17.1" } dependencies { dependency "com.graphql-java:graphql-java:${graphQlJavaVersion}" - dependency "javax.annotation:javax.annotation-api:1.3.2" - dependency "javax.servlet:javax.servlet-api:4.0.1" + dependency "jakarta.annotation:jakarta.annotation-api:2.0.0" + 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 "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 "org.skyscreamer:jsonassert:1.5.0" dependency "com.h2database:h2:2.1.212" - dependency "javax.validation:validation-api:2.0.1.Final" - dependency "org.hibernate:hibernate-core:5.6.8.Final" - dependency "org.hibernate.validator:hibernate-validator:6.2.3.Final" + dependency "jakarta.validation:jakarta.validation-api:3.0.1" + dependency "org.hibernate:hibernate-core-jakarta:5.6.9.Final" + dependency "org.hibernate.validator:hibernate-validator:7.0.4.Final" dependencySet(group: 'org.mongodb', version: '4.6.0') { entry 'bson' entry 'mongodb-driver-core' @@ -93,7 +94,7 @@ configure(moduleProjects) { entry 'log4j-jul' 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-inline' entry 'mockito-junit-jupiter' @@ -105,8 +106,8 @@ configure(moduleProjects) { } ext.javadocLinks = [ - "https://docs.oracle.com/javase/8/docs/api/", - "https://docs.spring.io/spring-framework/docs/5.3.x/javadoc-api/", + "https://docs.oracle.com/en/java/javase/17/docs/api/", + "https://docs.spring.io/spring-framework/docs/6.0.x/javadoc-api/", "https://javadoc.io/doc/com.graphql-java/graphql-java/18.1/" ] as String[] diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index b85a5dbf..bec45191 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -9,8 +9,8 @@ repositories { maven { url "https://repo.spring.io/release" } } -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +sourceCompatibility = 17 +targetCompatibility = 17 dependencies { checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${javaFormatVersion}" diff --git a/spring-graphql-test/build.gradle b/spring-graphql-test/build.gradle index 9037dbbf..9bf491ac 100644 --- a/spring-graphql-test/build.gradle +++ b/spring-graphql-test/build.gradle @@ -8,12 +8,12 @@ dependencies { api 'org.springframework:spring-test' 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-webmvc' compileOnly 'org.springframework:spring-websocket' 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-transport-netty' compileOnly 'org.skyscreamer:jsonassert' diff --git a/spring-graphql/build.gradle b/spring-graphql/build.gradle index 192ef76f..66311ff6 100644 --- a/spring-graphql/build.gradle +++ b/spring-graphql/build.gradle @@ -7,13 +7,13 @@ dependencies { api 'io.projectreactor:reactor-core' 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-webmvc' compileOnly 'org.springframework:spring-websocket' compileOnly 'org.springframework:spring-messaging' - compileOnly 'javax.servlet:javax.servlet-api' - compileOnly 'javax.validation:validation-api' + compileOnly 'jakarta.servlet:jakarta.servlet-api' + compileOnly 'jakarta.validation:jakarta.validation-api' 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-jpa' testImplementation 'com.h2database:h2' - testImplementation 'org.hibernate:hibernate-core' + testImplementation 'org.hibernate:hibernate-core-jakarta' testImplementation 'org.hibernate.validator:hibernate-validator' testImplementation 'org.springframework.data:spring-data-mongodb' testImplementation 'org.mongodb:mongodb-driver-sync' @@ -52,13 +52,14 @@ dependencies { testImplementation 'org.springframework.security:spring-security-core' testImplementation 'com.querydsl:querydsl-core' 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 '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.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-slf4j-impl' diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/AnnotatedControllerConfigurer.java b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/AnnotatedControllerConfigurer.java index 1dc67894..5b60fe7d 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/AnnotatedControllerConfigurer.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/AnnotatedControllerConfigurer.java @@ -29,7 +29,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.Executor; import java.util.stream.Collectors; -import javax.validation.Validator; +import jakarta.validation.Validator; import graphql.schema.DataFetcher; import graphql.schema.DataFetchingEnvironment; @@ -109,7 +109,7 @@ public class AnnotatedControllerConfigurer AnnotatedControllerConfigurer.class.getClassLoader()); private final static boolean beanValidationPresent = ClassUtils.isPresent( - "javax.validation.executable.ExecutableValidator", + "jakarta.validation.executable.ExecutableValidator", AnnotatedControllerConfigurer.class.getClassLoader()); diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidator.java b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidator.java index d775ca56..94798183 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidator.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidator.java @@ -18,10 +18,10 @@ package org.springframework.graphql.data.method.annotation.support; import java.util.Set; -import javax.validation.ConstraintViolation; -import javax.validation.ConstraintViolationException; -import javax.validation.Validation; -import javax.validation.Validator; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.Validation; +import jakarta.validation.Validator; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.graphql.data.method.HandlerMethod; diff --git a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandler.java b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandler.java index 4b8eced7..1189854f 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandler.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandler.java @@ -21,8 +21,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import reactor.core.publisher.Mono; diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidatorTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidatorTests.java index b7c6955e..cedd8f2b 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidatorTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/method/annotation/support/HandlerMethodInputValidatorTests.java @@ -21,10 +21,10 @@ import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; import java.util.Arrays; -import javax.validation.ConstraintViolation; -import javax.validation.ConstraintViolationException; -import javax.validation.constraints.Max; -import javax.validation.constraints.NotNull; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.NotNull; import org.assertj.core.api.InstanceOfAssertFactories; import org.assertj.core.api.IterableAssert; diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Author.java b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Author.java index 36f62030..38c338fa 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Author.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Author.java @@ -15,8 +15,8 @@ */ package org.springframework.graphql.data.query.jpa; -import javax.persistence.Entity; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; @Entity public class Author { diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Book.java b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Book.java index c549d3d1..6ee7820d 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Book.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/Book.java @@ -16,10 +16,10 @@ package org.springframework.graphql.data.query.jpa; -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToOne; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.OneToOne; @Entity public class Book { diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/QueryByExampleDataFetcherJpaTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/QueryByExampleDataFetcherJpaTests.java index b71e2a70..6a5d63a6 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/QueryByExampleDataFetcherJpaTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/query/jpa/QueryByExampleDataFetcherJpaTests.java @@ -24,8 +24,8 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.stream.Collectors; -import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; +import jakarta.persistence.EntityManagerFactory; import graphql.schema.DataFetcher; import org.junit.jupiter.api.Disabled; @@ -44,8 +44,8 @@ import org.springframework.graphql.GraphQlSetup; import org.springframework.graphql.ResponseHelper; import org.springframework.graphql.data.query.QueryByExampleDataFetcher; import org.springframework.graphql.execution.RuntimeWiringConfigurer; -import org.springframework.graphql.server.WebGraphQlRequest; import org.springframework.graphql.server.WebGraphQlHandler; +import org.springframework.graphql.server.WebGraphQlRequest; import org.springframework.graphql.server.WebGraphQlResponse; import org.springframework.http.HttpHeaders; import org.springframework.jdbc.datasource.DriverManagerDataSource; diff --git a/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandlerTests.java b/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandlerTests.java index ef9b1a05..1a3e5713 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandlerTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphQlHttpHandlerTests.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Locale; import java.util.UUID; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; diff --git a/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphiQlHandlerTests.java b/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphiQlHandlerTests.java index d1673a9b..4a4801b9 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphiQlHandlerTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/server/webmvc/GraphiQlHandlerTests.java @@ -22,7 +22,7 @@ import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import org.junit.jupiter.api.Test; diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index 9475dbe7..2853a86c 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -14,7 +14,7 @@ + value="^jakarta.annotation.PostConstruct"/>