Use Provider for MetricsConfigurator in MultiverseCore.

This commit is contained in:
Jeremy Wood 2023-03-26 13:33:01 -04:00
parent a8ec599b35
commit f2347cb620
No known key found for this signature in database
GPG Key ID: C5BAD04C77B91B4B
3 changed files with 14 additions and 2 deletions

View File

@ -62,7 +62,9 @@ public class MultiverseCore extends JavaPlugin implements MVCore {
@Inject
private Provider<MVCommandManager> commandManagerProvider;
@Inject
private Provider<DestinationsProvider>destinationsProviderProvider;
private Provider<DestinationsProvider> destinationsProviderProvider;
@Inject
private Provider<MetricsConfigurator> 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.");
}

View File

@ -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;

View File

@ -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))
}
}