From f47ff5e008522358b8b5be328c9eccc4dbb3ce56 Mon Sep 17 00:00:00 2001 From: Tim203 Date: Sat, 3 Jun 2023 13:13:07 +0200 Subject: [PATCH] Update Micronaut to 4.0.0-M2. No Jackson & use JDK http client variant --- core/build.gradle.kts | 4 ++++ .../core/database/PlayerLinkRepository.java | 2 +- .../core/database/entity/LinkRequest.java | 4 ++-- .../core/database/entity/LinkedPlayer.java | 4 ++-- .../floodgate/core/http/link/LinkedPlayer.java | 17 ++++++++++++----- .../core/http/xbox/GetGamertagResult.java | 4 +++- .../floodgate/core/http/xbox/GetXuidResult.java | 4 +++- .../floodgate/core/http/xbox/XboxClient.java | 4 ++-- database/build.gradle.kts | 2 +- gradle.properties | 2 +- gradle/libs.versions.toml | 10 +++++++--- .../floodgate/spigot/util/ClassNames.java | 3 +-- 12 files changed, 39 insertions(+), 21 deletions(-) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 3540a0f1..86f47bef 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -25,6 +25,10 @@ dependencies { api(libs.micronaut.http.client) api(libs.micronaut.validation) + api(libs.micronaut.serde.jsonp) + compileOnlyApi(libs.jsonb.annotations) + annotationProcessor(libs.micronaut.serde.processor) + //todo add hibernate dependency back in core, // it's not possible to make it optional as the service files would be messed up api(projects.database) diff --git a/core/src/main/java/org/geysermc/floodgate/core/database/PlayerLinkRepository.java b/core/src/main/java/org/geysermc/floodgate/core/database/PlayerLinkRepository.java index 95c7a550..0afba13e 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/database/PlayerLinkRepository.java +++ b/core/src/main/java/org/geysermc/floodgate/core/database/PlayerLinkRepository.java @@ -28,9 +28,9 @@ package org.geysermc.floodgate.core.database; import io.micronaut.context.annotation.Requires; import io.micronaut.data.annotation.Repository; import io.micronaut.data.repository.async.AsyncCrudRepository; +import jakarta.validation.constraints.NotNull; import java.util.Optional; import java.util.UUID; -import javax.validation.constraints.NotNull; import org.geysermc.floodgate.core.database.entity.LinkedPlayer; @Repository diff --git a/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkRequest.java b/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkRequest.java index 6e349b63..24e50f38 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkRequest.java +++ b/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkRequest.java @@ -26,11 +26,11 @@ package org.geysermc.floodgate.core.database.entity; import io.micronaut.core.annotation.AccessorsStyle; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; import java.time.Instant; import java.util.Objects; import java.util.UUID; -import javax.persistence.Entity; -import javax.persistence.Id; @Entity @AccessorsStyle(readPrefixes = "", writePrefixes = "") diff --git a/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkedPlayer.java b/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkedPlayer.java index 6e55adfc..74114c87 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkedPlayer.java +++ b/core/src/main/java/org/geysermc/floodgate/core/database/entity/LinkedPlayer.java @@ -26,10 +26,10 @@ package org.geysermc.floodgate.core.database.entity; import io.micronaut.core.annotation.AccessorsStyle; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; import java.util.Objects; import java.util.UUID; -import javax.persistence.Entity; -import javax.persistence.Id; @Entity @AccessorsStyle(readPrefixes = "", writePrefixes = "") diff --git a/core/src/main/java/org/geysermc/floodgate/core/http/link/LinkedPlayer.java b/core/src/main/java/org/geysermc/floodgate/core/http/link/LinkedPlayer.java index cd5cdb27..f0dbcc16 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/http/link/LinkedPlayer.java +++ b/core/src/main/java/org/geysermc/floodgate/core/http/link/LinkedPlayer.java @@ -25,17 +25,24 @@ package org.geysermc.floodgate.core.http.link; -import com.fasterxml.jackson.annotation.JsonProperty; +import io.micronaut.serde.annotation.Serdeable; +import jakarta.annotation.Nullable; +import jakarta.json.bind.annotation.JsonbProperty; import java.util.UUID; import org.geysermc.floodgate.core.util.Utils; +@Serdeable public record LinkedPlayer( - @JsonProperty("bedrock_id") - long xuid, + @JsonbProperty("bedrock_id") + @Nullable + Long xuid, + @Nullable String gamertag, - @JsonProperty("java_id") + @JsonbProperty("java_id") + @Nullable UUID uuid, - @JsonProperty("java_name") + @JsonbProperty("java_name") + @Nullable String username ) { public boolean isLinked() { diff --git a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetGamertagResult.java b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetGamertagResult.java index 84bd4797..7023e96e 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetGamertagResult.java +++ b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetGamertagResult.java @@ -25,5 +25,7 @@ package org.geysermc.floodgate.core.http.xbox; -public record GetGamertagResult(String gamertag) { +import jakarta.annotation.Nullable; + +public record GetGamertagResult(@Nullable String gamertag) { } diff --git a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetXuidResult.java b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetXuidResult.java index f9670f53..b86ee02c 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetXuidResult.java +++ b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/GetXuidResult.java @@ -25,5 +25,7 @@ package org.geysermc.floodgate.core.http.xbox; -public record GetXuidResult(Long xuid) { +import jakarta.annotation.Nullable; + +public record GetXuidResult(@Nullable Long xuid) { } diff --git a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/XboxClient.java b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/XboxClient.java index 07c79fa8..a930ee57 100644 --- a/core/src/main/java/org/geysermc/floodgate/core/http/xbox/XboxClient.java +++ b/core/src/main/java/org/geysermc/floodgate/core/http/xbox/XboxClient.java @@ -31,9 +31,9 @@ import static io.micronaut.http.HttpHeaders.USER_AGENT; import io.micronaut.http.annotation.Get; import io.micronaut.http.annotation.Header; import io.micronaut.http.client.annotation.Client; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.concurrent.CompletableFuture; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; @Client("${http.baseUrl}/v2/xbox") @Header(name = USER_AGENT, value = "${http.userAgent}") diff --git a/database/build.gradle.kts b/database/build.gradle.kts index b8716edb..2be90159 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -6,7 +6,7 @@ plugins { configurations.runtimeClasspath.get() .exclude("org.slf4j", "slf4j-api") - .exclude("javax.validation", "validation-api") + .exclude("jakarta.validation", "validation-api") .exclude("io.micronaut", "micronaut-aop") .exclude("io.micronaut", "micronaut-core") .exclude("io.micronaut", "micronaut-runtime") diff --git a/gradle.properties b/gradle.properties index 7c421476..bd8bc197 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.parallel=true systemProp.org.gradle.unsafe.kotlin.assignment=true version=2.2.2-SNAPSHOT -micronautVersion=3.9.0 \ No newline at end of file +micronautVersion=4.0.0-M2 \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 50066111..4d012a6a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # parent -micronaut-gradle = "3.7.9" +micronaut-gradle = "4.0.0-M2" lombok = "8.0.1" # api @@ -59,12 +59,16 @@ guava = { module = "com.google.guava:guava", version.ref = "guava" } micronaut-inject = { module = "io.micronaut:micronaut-inject-java" } micronaut-context = { module = "io.micronaut:micronaut-context" } -micronaut-http-client = { module = "io.micronaut:micronaut-http-client" } -micronaut-validation = { module = "io.micronaut:micronaut-validation" } +micronaut-http-client = { module = "io.micronaut:micronaut-http-client-jdk" } +micronaut-validation = { module = "io.micronaut.validation:micronaut-validation" } micronaut-data-processor = { module = "io.micronaut.data:micronaut-data-processor" } micronaut-hibernate = { module = "io.micronaut.data:micronaut-data-hibernate-jpa" } micronaut-hikari = { module = "io.micronaut.sql:micronaut-jdbc-hikari" } +micronaut-serde-jsonp = { module = "io.micronaut.serde:micronaut-serde-jsonp" } +micronaut-serde-processor = { module = "io.micronaut.serde:micronaut-serde-processor" } +jsonb-annotations = { module = "jakarta.json.bind:jakarta.json.bind-api" } + netty-codec = { module = "io.netty:netty-codec", version.ref = "netty" } # database types diff --git a/spigot/base/src/main/java/org/geysermc/floodgate/spigot/util/ClassNames.java b/spigot/base/src/main/java/org/geysermc/floodgate/spigot/util/ClassNames.java index cb82d236..2fcf9fae 100644 --- a/spigot/base/src/main/java/org/geysermc/floodgate/spigot/util/ClassNames.java +++ b/spigot/base/src/main/java/org/geysermc/floodgate/spigot/util/ClassNames.java @@ -43,7 +43,6 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.SocketAddress; import java.util.function.BooleanSupplier; -import javax.annotation.CheckForNull; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.checkerframework.checker.nullness.qual.Nullable; @@ -233,7 +232,7 @@ public class ClassNames { ) != null; } - private static T checkNotNull(@CheckForNull T toCheck, @CheckForNull String objectName) { + private static T checkNotNull(T toCheck, String objectName) { return Preconditions.checkNotNull(toCheck, objectName + " cannot be null"); } }