diff --git a/modules/account/src/main/resources/application.properties b/modules/account/src/main/resources/application.properties new file mode 100644 index 0000000..62c410b --- /dev/null +++ b/modules/account/src/main/resources/application.properties @@ -0,0 +1,5 @@ +quarkus.native.additional-build-args=\ +--initialize-at-run-time=org.redisson,\ +--initialize-at-run-time=io.netty + +%native.quarkus.arc.exclude-types=org.redisson.* \ No newline at end of file diff --git a/modules/account/src/main/scala/de/nowchess/account/config/NativeReflectionConfig.scala b/modules/account/src/main/scala/de/nowchess/account/config/NativeReflectionConfig.scala index d9ba14f..18814b9 100644 --- a/modules/account/src/main/scala/de/nowchess/account/config/NativeReflectionConfig.scala +++ b/modules/account/src/main/scala/de/nowchess/account/config/NativeReflectionConfig.scala @@ -40,13 +40,11 @@ import io.quarkus.runtime.annotations.RegisterForReflection classOf[DeclineRequest], classOf[ChallengeListDto], classOf[ErrorDto], - classOf[ChallengeStatus], - classOf[ChallengeColor], - classOf[DeclineReason], classOf[CorePlayerInfo], classOf[CoreTimeControl], classOf[CoreCreateGameRequest], classOf[CoreGameResponse], + classOf[OfficialChallengeResponse], ), ) class NativeReflectionConfig diff --git a/modules/account/src/main/scala/de/nowchess/account/config/RedissonProducer.scala b/modules/account/src/main/scala/de/nowchess/account/config/RedissonProducer.scala index 38fb951..bff2b14 100644 --- a/modules/account/src/main/scala/de/nowchess/account/config/RedissonProducer.scala +++ b/modules/account/src/main/scala/de/nowchess/account/config/RedissonProducer.scala @@ -6,7 +6,8 @@ import jakarta.enterprise.inject.Produces import jakarta.inject.Inject import org.redisson.Redisson import org.redisson.api.RedissonClient -import org.redisson.config.Config +import org.redisson.config.{Config, TransportMode} + import scala.compiletime.uninitialized @ApplicationScoped diff --git a/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala b/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala index dba3473..cc7a877 100644 --- a/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala +++ b/modules/account/src/main/scala/de/nowchess/account/resource/OfficialChallengeResource.scala @@ -14,6 +14,7 @@ import org.jboss.logging.Logger import scala.compiletime.uninitialized import java.util.UUID +import java.util.concurrent.ThreadLocalRandom @Path("/api/challenge/official") @ApplicationScoped @@ -68,7 +69,7 @@ class OfficialChallengeResource: val userIsWhite = playerColor match case "white" => true case "black" => false - case _ => scala.util.Random.nextBoolean() + case _ => ThreadLocalRandom.current().nextBoolean() val (white, black, botColor) = if userIsWhite then (CorePlayerInfo(user.id.toString, user.username), CorePlayerInfo(bot.id.toString, bot.name), "black") diff --git a/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala b/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala index b95eb15..ab7693d 100644 --- a/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala +++ b/modules/account/src/main/scala/de/nowchess/account/service/ChallengeService.scala @@ -29,6 +29,7 @@ import scala.compiletime.uninitialized import java.time.Instant import java.time.temporal.ChronoUnit import java.util.UUID +import java.util.concurrent.ThreadLocalRandom @ApplicationScoped class ChallengeService: @@ -158,7 +159,7 @@ class ChallengeService: case ChallengeColor.White => (challenger, destUser) case ChallengeColor.Black => (destUser, challenger) case ChallengeColor.Random => - if scala.util.Random.nextBoolean() then (challenger, destUser) else (destUser, challenger) + if ThreadLocalRandom.current().nextBoolean() then (challenger, destUser) else (destUser, challenger) private def buildTimeControl(challenge: Challenge): Option[CoreTimeControl] = challenge.timeControlType match