From e635e29a1691dff44896912874b281d3db72c4cc Mon Sep 17 00:00:00 2001 From: TheMode Date: Sun, 20 Jun 2021 22:32:06 +0200 Subject: [PATCH] Replace guava cache to caffeine --- build.gradle | 2 ++ .../server/command/builder/CommandDispatcher.java | 6 +++--- .../net/minestom/server/utils/cache/TemporaryCache.java | 8 ++++---- .../minestom/server/utils/cache/TemporaryPacketCache.java | 6 ++++-- .../net/minestom/server/utils/mojang/MojangUtils.java | 8 ++++---- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index c1286d6e6..3879f18dd 100644 --- a/build.gradle +++ b/build.gradle @@ -138,6 +138,8 @@ dependencies { // https://search.maven.org/artifact/org.fusesource.jansi/jansi/2.3.2/jar implementation 'org.fusesource.jansi:jansi:2.3.2' + implementation 'com.github.ben-manes.caffeine:caffeine:3.0.2' + // Guava 21.0+ required for Mixin api 'com.google.guava:guava:30.1-jre' diff --git a/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java b/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java index dc930af34..efbd1595c 100644 --- a/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java +++ b/src/main/java/net/minestom/server/command/builder/CommandDispatcher.java @@ -1,7 +1,7 @@ package net.minestom.server.command.builder; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import net.minestom.server.command.CommandSender; import net.minestom.server.command.builder.arguments.Argument; @@ -25,7 +25,7 @@ public class CommandDispatcher { private final Map commandMap = new HashMap<>(); private final Set commands = new HashSet<>(); - private final Cache cache = CacheBuilder.newBuilder() + private final Cache cache = Caffeine.newBuilder() .expireAfterWrite(30, TimeUnit.SECONDS) .build(); diff --git a/src/main/java/net/minestom/server/utils/cache/TemporaryCache.java b/src/main/java/net/minestom/server/utils/cache/TemporaryCache.java index da2e64a23..beb1bff2b 100644 --- a/src/main/java/net/minestom/server/utils/cache/TemporaryCache.java +++ b/src/main/java/net/minestom/server/utils/cache/TemporaryCache.java @@ -1,8 +1,8 @@ package net.minestom.server.utils.cache; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.RemovalListener; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import com.github.benmanes.caffeine.cache.RemovalListener; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -24,7 +24,7 @@ public class TemporaryCache { * @param duration the time before considering an object unused */ public TemporaryCache(long duration, TimeUnit timeUnit, RemovalListener removalListener) { - this.cache = CacheBuilder.newBuilder() + this.cache = Caffeine.newBuilder() .expireAfterWrite(duration, timeUnit) .removalListener(removalListener) .build(); diff --git a/src/main/java/net/minestom/server/utils/cache/TemporaryPacketCache.java b/src/main/java/net/minestom/server/utils/cache/TemporaryPacketCache.java index 6d6fe1d5e..7d805e904 100644 --- a/src/main/java/net/minestom/server/utils/cache/TemporaryPacketCache.java +++ b/src/main/java/net/minestom/server/utils/cache/TemporaryPacketCache.java @@ -6,8 +6,10 @@ import java.util.concurrent.TimeUnit; public class TemporaryPacketCache extends TemporaryCache { public TemporaryPacketCache(long duration, TimeUnit timeUnit) { - super(duration, timeUnit, notification -> { - final ByteBuf buffer = notification.getValue().getBuffer(); + super(duration, timeUnit, (key, value, cause) -> { + if (value == null) + return; + final ByteBuf buffer = value.getBuffer(); synchronized (buffer) { buffer.release(); } diff --git a/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java b/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java index 04e0df2d7..d019bdc1b 100644 --- a/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java +++ b/src/main/java/net/minestom/server/utils/mojang/MojangUtils.java @@ -1,7 +1,7 @@ package net.minestom.server.utils.mojang; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import net.minestom.server.MinecraftServer; @@ -17,12 +17,12 @@ import java.util.concurrent.TimeUnit; */ public final class MojangUtils { - private static final Cache UUID_CACHE = CacheBuilder.newBuilder() + private static final Cache UUID_CACHE = Caffeine.newBuilder() .expireAfterWrite(30, TimeUnit.SECONDS) .softValues() .build(); - private static final Cache USERNAME_CACHE = CacheBuilder.newBuilder() + private static final Cache USERNAME_CACHE = Caffeine.newBuilder() .expireAfterWrite(30, TimeUnit.SECONDS) .softValues() .build();