From f2347cb620d4b7fbe9c2756c579dec342b0d2cfc Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Sun, 26 Mar 2023 13:33:01 -0400 Subject: [PATCH] Use Provider for MetricsConfigurator in MultiverseCore. --- .../com/onarandombox/MultiverseCore/MultiverseCore.java | 7 +++++-- .../MultiverseCore/utils/metrics/MetricsConfigurator.java | 2 ++ .../org/mvplugins/multiverse/core/inject/InjectionTest.kt | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index ec5ab05e..8db783ae 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -62,7 +62,9 @@ public class MultiverseCore extends JavaPlugin implements MVCore { @Inject private Provider commandManagerProvider; @Inject - private ProviderdestinationsProviderProvider; + private Provider destinationsProviderProvider; + @Inject + private Provider metricsConfiguratorProvider; // Counter for the number of plugins that have registered with us private int pluginCount; @@ -226,7 +228,8 @@ public class MultiverseCore extends JavaPlugin implements MVCore { private void setupMetrics() { if (TestingMode.isDisabled()) { // Load metrics - serviceLocator.createAndInitialize(MetricsConfigurator.class); + Try.of(() -> metricsConfiguratorProvider.get()) + .onFailure(throwable -> Logging.severe("Failed to setup metrics", throwable)); } else { Logging.info("Metrics are disabled in testing mode."); } diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/metrics/MetricsConfigurator.java b/src/main/java/com/onarandombox/MultiverseCore/utils/metrics/MetricsConfigurator.java index b25077fc..eee549d1 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/metrics/MetricsConfigurator.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/metrics/MetricsConfigurator.java @@ -13,7 +13,9 @@ import jakarta.inject.Inject; import org.apache.commons.lang.WordUtils; import org.bstats.bukkit.Metrics; import org.bukkit.World; +import org.jvnet.hk2.annotations.Service; +@Service public class MetricsConfigurator { private static final int PLUGIN_ID = 7765; diff --git a/src/test/java/org/mvplugins/multiverse/core/inject/InjectionTest.kt b/src/test/java/org/mvplugins/multiverse/core/inject/InjectionTest.kt index cf4c354c..3578df19 100644 --- a/src/test/java/org/mvplugins/multiverse/core/inject/InjectionTest.kt +++ b/src/test/java/org/mvplugins/multiverse/core/inject/InjectionTest.kt @@ -23,6 +23,7 @@ import com.onarandombox.MultiverseCore.teleportation.SimpleLocationManipulation import com.onarandombox.MultiverseCore.teleportation.SimpleSafeTTeleporter import com.onarandombox.MultiverseCore.utils.MVPermissions import com.onarandombox.MultiverseCore.utils.UnsafeCallWrapper +import com.onarandombox.MultiverseCore.utils.metrics.MetricsConfigurator import com.onarandombox.MultiverseCore.world.SimpleMVWorldManager import org.mvplugins.multiverse.core.TestWithMockBukkit import kotlin.test.assertEquals @@ -141,4 +142,10 @@ class InjectionTest : TestWithMockBukkit() { // and that the getService method doesn't throw an exception assertNull(multiverseCore.getService(MVConfig::class.java)) } + + @Test + fun `MetricsConfigurator is not available as a service`() { + // Also making sure this is not loaded automatically since it's supposed to be disabled during tests + assertNull(multiverseCore.getService(MetricsConfigurator::class.java)) + } }