From e2df25a5cdfdb300c95a1c86c545df13910be5a9 Mon Sep 17 00:00:00 2001 From: Simon Hornby Date: Thu, 4 Dec 2025 10:33:35 +0200 Subject: [PATCH] chore: resolve a bunch of linter warnings, no logic changes --- .../java/io/getunleash/DefaultUnleash.java | 3 -- .../metric/UnleashMetricServiceImpl.java | 3 -- .../util/UnleashScheduledExecutorImpl.java | 6 ++- .../io/getunleash/DefaultUnleashTest.java | 19 ++++---- .../getunleash/SynchronousTestExecutor.java | 2 +- src/test/java/io/getunleash/UnleashTest.java | 4 ++ .../metric/UnleashMetricServiceImplTest.java | 13 ++--- .../repository/FeatureRepositoryTest.java | 48 +++++++++---------- .../repository/OkHttpFeatureFetcherTest.java | 4 +- .../StreamingFeatureFetchingTest.java | 2 +- .../io/getunleash/util/UnleashConfigTest.java | 2 +- 11 files changed, 49 insertions(+), 57 deletions(-) diff --git a/src/main/java/io/getunleash/DefaultUnleash.java b/src/main/java/io/getunleash/DefaultUnleash.java index 71c01bea1..030dee002 100644 --- a/src/main/java/io/getunleash/DefaultUnleash.java +++ b/src/main/java/io/getunleash/DefaultUnleash.java @@ -8,7 +8,6 @@ import io.getunleash.event.IsEnabledImpressionEvent; import io.getunleash.event.ToggleEvaluated; import io.getunleash.event.VariantImpressionEvent; -import io.getunleash.metric.UnleashMetricService; import io.getunleash.repository.FeatureRepository; import io.getunleash.repository.YggdrasilAdapters; import io.getunleash.strategy.*; @@ -27,7 +26,6 @@ public class DefaultUnleash implements Unleash { private static ConcurrentHashMap initCounts = new ConcurrentHashMap<>(); - private final UnleashMetricService metricService; private final FeatureRepository featureRepository; private final UnleashContextProvider contextProvider; private final EventDispatcher eventDispatcher; @@ -69,7 +67,6 @@ public DefaultUnleash( this.config = unleashConfig; this.featureRepository = engineProxy; - this.metricService = engineProxy; this.contextProvider = contextProvider; this.eventDispatcher = eventDispatcher; initCounts.compute( diff --git a/src/main/java/io/getunleash/metric/UnleashMetricServiceImpl.java b/src/main/java/io/getunleash/metric/UnleashMetricServiceImpl.java index eb8a7e16c..0e027102b 100644 --- a/src/main/java/io/getunleash/metric/UnleashMetricServiceImpl.java +++ b/src/main/java/io/getunleash/metric/UnleashMetricServiceImpl.java @@ -8,11 +8,8 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Set; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class UnleashMetricServiceImpl implements UnleashMetricService { - private static final Logger LOGGER = LoggerFactory.getLogger(UnleashMetricServiceImpl.class); private final LocalDateTime started; private final UnleashConfig unleashConfig; private final MetricSender metricSender; diff --git a/src/main/java/io/getunleash/util/UnleashScheduledExecutorImpl.java b/src/main/java/io/getunleash/util/UnleashScheduledExecutorImpl.java index ea31ee08a..8ec2e4e53 100644 --- a/src/main/java/io/getunleash/util/UnleashScheduledExecutorImpl.java +++ b/src/main/java/io/getunleash/util/UnleashScheduledExecutorImpl.java @@ -48,7 +48,11 @@ public void setInterval(Runnable command, long initialDelaySec, long periodSec) @Override public Future scheduleOnce(Runnable runnable) { - return (Future) executorService.submit(runnable); + return executorService.submit( + () -> { + runnable.run(); + return null; + }); } @Override diff --git a/src/test/java/io/getunleash/DefaultUnleashTest.java b/src/test/java/io/getunleash/DefaultUnleashTest.java index 4c704bcc6..004b161c3 100644 --- a/src/test/java/io/getunleash/DefaultUnleashTest.java +++ b/src/test/java/io/getunleash/DefaultUnleashTest.java @@ -23,9 +23,7 @@ import io.getunleash.util.UnleashConfig; import java.net.URI; import java.net.URISyntaxException; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -56,7 +54,6 @@ public void setup() { UnleashConfig unleashConfig = UnleashConfig.builder().unleashAPI("http://fakeAPI").appName("fakeApp").build(); engineProxy = mock(EngineProxy.class); - Map strategyMap = new HashMap<>(); contextProvider = mock(UnleashContextProvider.class); eventDispatcher = mock(EventDispatcher.class); @@ -145,7 +142,7 @@ public void not_setting_current_time_falls_back_to_correct_now_instant() { @Test public void multiple_instantiations_of_the_same_config_gives_errors() { - ListAppender appender = new ListAppender(); + ListAppender appender = new ListAppender<>(); appender.start(); Logger unleashLogger = (Logger) LoggerFactory.getLogger(DefaultUnleash.class); unleashLogger.addAppender(appender); @@ -158,13 +155,13 @@ public void multiple_instantiations_of_the_same_config_gives_errors() { .apiKey("default:development:1234567890123456") .instanceId(instanceId) .build(); - Unleash unleash1 = new DefaultUnleash(config); + new DefaultUnleash(config); // We've only instantiated the client once, so no errors should've been logged assertThat(appender.list).isEmpty(); - Unleash unleash2 = new DefaultUnleash(config); + new DefaultUnleash(config); // We've now instantiated the client twice, so we expect an error log line. assertThat(appender.list).hasSize(1); - String id = config.getClientIdentifier(); + config.getClientIdentifier(); assertThat(appender.list) .extracting(ILoggingEvent::getFormattedMessage) .containsExactly( @@ -174,7 +171,7 @@ public void multiple_instantiations_of_the_same_config_gives_errors() { + instanceId + "] running. Please double check your code where you are instantiating the Unleash SDK"); appender.list.clear(); - Unleash unleash3 = new DefaultUnleash(config); + new DefaultUnleash(config); // We've now instantiated the client twice, so we expect an error log line. assertThat(appender.list).hasSize(1); assertThat(appender.list) @@ -197,10 +194,10 @@ public void supports_failing_hard_on_multiple_instantiations() { .instanceId("multiple_connection_exception") .build(); String id = config.getClientIdentifier(); - Unleash unleash1 = new DefaultUnleash(config); + new DefaultUnleash(config); assertThatThrownBy( () -> { - Unleash unleash2 = new DefaultUnleash(config, null, null, null, true); + new DefaultUnleash(config, null, null, null, true); }) .isInstanceOf(RuntimeException.class) .withFailMessage( @@ -294,7 +291,7 @@ public void asynchronous_fetch_on_initialisation_fails_silently_and_retries() .unleashFeatureFetcherFactory((UnleashConfig c) -> fetcher) .build(); - Unleash unleash = new DefaultUnleash(config); + new DefaultUnleash(config); Thread.sleep(1); verify(fetcher, times(1)).fetchFeatures(); Thread.sleep(1200); diff --git a/src/test/java/io/getunleash/SynchronousTestExecutor.java b/src/test/java/io/getunleash/SynchronousTestExecutor.java index edf692623..170993121 100644 --- a/src/test/java/io/getunleash/SynchronousTestExecutor.java +++ b/src/test/java/io/getunleash/SynchronousTestExecutor.java @@ -20,7 +20,7 @@ public void setInterval(Runnable command, long initialDelaySec, long periodSec) } @Override - public ScheduledFuture scheduleOnce(Runnable runnable) { + public ScheduledFuture scheduleOnce(Runnable runnable) { runnable.run(); return new AlreadyCompletedScheduledFuture(); } diff --git a/src/test/java/io/getunleash/UnleashTest.java b/src/test/java/io/getunleash/UnleashTest.java index c66fb22c6..53a43121b 100644 --- a/src/test/java/io/getunleash/UnleashTest.java +++ b/src/test/java/io/getunleash/UnleashTest.java @@ -59,6 +59,7 @@ public void fallback_function_should_be_invoked_and_return_true() { .thenReturn(new FlatResponse(false, null)); Unleash unleash = new DefaultUnleash(baseConfig, engineProxy); + @SuppressWarnings("unchecked") BiPredicate fallbackAction = mock(BiPredicate.class); when(fallbackAction.test(eq("test"), any(UnleashContext.class))).thenReturn(true); @@ -73,6 +74,7 @@ public void fallback_function_should_be_invoked_also_with_context() { .thenReturn(new FlatResponse(false, null)); Unleash unleash = new DefaultUnleash(baseConfig, engineProxy); + @SuppressWarnings("unchecked") BiPredicate fallbackAction = mock(BiPredicate.class); when(fallbackAction.test(eq("test"), any(UnleashContext.class))).thenReturn(true); @@ -89,6 +91,7 @@ void fallback_function_should_be_invoked_and_return_false() { .thenReturn(new FlatResponse(false, null)); Unleash unleash = new DefaultUnleash(baseConfig, engineProxy); + @SuppressWarnings("unchecked") BiPredicate fallbackAction = mock(BiPredicate.class); when(fallbackAction.test(eq("test"), any(UnleashContext.class))).thenReturn(false); @@ -103,6 +106,7 @@ void fallback_function_should_not_be_called_when_toggle_is_defined() { .thenReturn(new FlatResponse(true, true)); Unleash unleash = new DefaultUnleash(baseConfig, engineProxy); + @SuppressWarnings("unchecked") BiPredicate fallbackAction = mock(BiPredicate.class); when(fallbackAction.test(eq("test"), any(UnleashContext.class))).thenReturn(false); diff --git a/src/test/java/io/getunleash/metric/UnleashMetricServiceImplTest.java b/src/test/java/io/getunleash/metric/UnleashMetricServiceImplTest.java index 119cafb40..912535a39 100644 --- a/src/test/java/io/getunleash/metric/UnleashMetricServiceImplTest.java +++ b/src/test/java/io/getunleash/metric/UnleashMetricServiceImplTest.java @@ -28,8 +28,8 @@ public void should_register_future_for_sending_interval_regualry() { .unleashAPI("http://unleash.com") .build(); UnleashScheduledExecutor executor = mock(UnleashScheduledExecutor.class); - UnleashMetricService unleashMetricService = - new UnleashMetricServiceImpl(config, executor, null); + + new UnleashMetricServiceImpl(config, executor, null); verify(executor, times(1)).setInterval(any(Runnable.class), eq(interval), eq(interval)); } @@ -106,8 +106,7 @@ public void should_send_metrics() { DefaultHttpMetricsSender sender = mock(DefaultHttpMetricsSender.class); UnleashEngine engine = new UnleashEngine(); - UnleashMetricService unleashMetricService = - new UnleashMetricServiceImpl(config, sender, executor, engine); + new UnleashMetricServiceImpl(config, sender, executor, engine); ArgumentCaptor sendMetricsCallback = ArgumentCaptor.forClass(Runnable.class); verify(executor).setInterval(sendMetricsCallback.capture(), anyLong(), anyLong()); @@ -131,8 +130,7 @@ public void should_record_and_send_metrics() DefaultHttpMetricsSender sender = mock(DefaultHttpMetricsSender.class); UnleashEngine engine = new UnleashEngine(); - UnleashMetricService unleashMetricService = - new UnleashMetricServiceImpl(config, sender, executor, engine); + new UnleashMetricServiceImpl(config, sender, executor, engine); engine.isEnabled("someToggle", new Context()); engine.isEnabled("someToggle", new Context()); @@ -374,8 +372,7 @@ public void should_add_new_metrics_data_to_bucket() { DefaultHttpMetricsSender sender = mock(DefaultHttpMetricsSender.class); UnleashEngine engine = new UnleashEngine(); - UnleashMetricService unleashMetricService = - new UnleashMetricServiceImpl(config, sender, executor, engine); + new UnleashMetricServiceImpl(config, sender, executor, engine); ArgumentCaptor sendMetricsCallback = ArgumentCaptor.forClass(Runnable.class); verify(executor).setInterval(sendMetricsCallback.capture(), anyLong(), anyLong()); diff --git a/src/test/java/io/getunleash/repository/FeatureRepositoryTest.java b/src/test/java/io/getunleash/repository/FeatureRepositoryTest.java index 56bd60442..e5691de88 100644 --- a/src/test/java/io/getunleash/repository/FeatureRepositoryTest.java +++ b/src/test/java/io/getunleash/repository/FeatureRepositoryTest.java @@ -10,7 +10,6 @@ import io.getunleash.DefaultUnleash; import io.getunleash.FeatureDefinition; -import io.getunleash.Unleash; import io.getunleash.engine.UnleashEngine; import io.getunleash.event.ClientFeaturesResponse; import io.getunleash.streaming.StreamingFeatureFetcher; @@ -147,14 +146,13 @@ public void should_perform_synchronous_fetch_on_initialisation() { ClientFeaturesResponse.updated(loadMockFeatures("unleash-repo-v2.json")); when(fetcher.fetchFeatures()).thenReturn(response); - FeatureRepository featureRepository = - new FeatureRepositoryImpl( - config, - backupHandler, - new UnleashEngine(), - fetcher, - streamingFetcher, - bootstrapHandler); + new FeatureRepositoryImpl( + config, + backupHandler, + new UnleashEngine(), + fetcher, + streamingFetcher, + bootstrapHandler); verify(fetcher, times(1)).fetchFeatures(); } @@ -171,14 +169,13 @@ public void should_not_perform_synchronous_fetch_on_initialisation() { when(fetcher.fetchFeatures()).thenReturn(response); - FeatureRepositoryImpl featureRepository = - new FeatureRepositoryImpl( - config, - backupHandler, - new UnleashEngine(), - fetcher, - streamingFetcher, - bootstrapHandler); + new FeatureRepositoryImpl( + config, + backupHandler, + new UnleashEngine(), + fetcher, + streamingFetcher, + bootstrapHandler); verify(fetcher, times(0)).fetchFeatures(); } @@ -233,14 +230,13 @@ public void should_not_read_bootstrap_if_backup_was_found() { UnleashConfig config = defaultConfigBuilder().toggleBootstrapProvider(bootstrapHandler).build(); - FeatureRepositoryImpl featureRepository = - new FeatureRepositoryImpl( - config, - backupHandler, - new UnleashEngine(), - fetcher, - streamingFetcher, - bootstrapHandler); + new FeatureRepositoryImpl( + config, + backupHandler, + new UnleashEngine(), + fetcher, + streamingFetcher, + bootstrapHandler); verify(bootstrapHandler, times(0)).read(); } @@ -263,7 +259,7 @@ public void shouldCallStartupExceptionHandlerIfStartupFails() { .toggleBootstrapProvider(toggleBootstrapProvider) .build(); - Unleash unleash = new DefaultUnleash(config); + new DefaultUnleash(config); assertThat(failed).isTrue(); } diff --git a/src/test/java/io/getunleash/repository/OkHttpFeatureFetcherTest.java b/src/test/java/io/getunleash/repository/OkHttpFeatureFetcherTest.java index d2e1911a2..a2a544ffc 100644 --- a/src/test/java/io/getunleash/repository/OkHttpFeatureFetcherTest.java +++ b/src/test/java/io/getunleash/repository/OkHttpFeatureFetcherTest.java @@ -245,7 +245,7 @@ public void should_not_set_empty_ifNoneMatchHeader() throws URISyntaxException { URI uri = new URI("http://localhost:" + serverMock.getPort() + "/api/"); UnleashConfig config = UnleashConfig.builder().appName("test").unleashAPI(uri).build(); OkHttpFeatureFetcher okHttpToggleFetcher = new OkHttpFeatureFetcher(config); - ClientFeaturesResponse response = okHttpToggleFetcher.fetchFeatures(); + okHttpToggleFetcher.fetchFeatures(); verify(getRequestedFor(urlMatching("/api/client/features")).withoutHeader("If-None-Match")); } @@ -265,7 +265,7 @@ public void should_add_project_filter_to_toggles_url_if_config_has_it_set() UnleashConfig config = UnleashConfig.builder().appName("test").unleashAPI(uri).projectName("name").build(); OkHttpFeatureFetcher okHttpFeatureFetcher = new OkHttpFeatureFetcher(config); - ClientFeaturesResponse response = okHttpFeatureFetcher.fetchFeatures(); + okHttpFeatureFetcher.fetchFeatures(); verify(getRequestedFor(urlMatching("/api/client/features\\?project=name"))); } diff --git a/src/test/java/io/getunleash/streaming/StreamingFeatureFetchingTest.java b/src/test/java/io/getunleash/streaming/StreamingFeatureFetchingTest.java index ee6a8ccfc..198c5ad1a 100644 --- a/src/test/java/io/getunleash/streaming/StreamingFeatureFetchingTest.java +++ b/src/test/java/io/getunleash/streaming/StreamingFeatureFetchingTest.java @@ -1,4 +1,4 @@ -package io.getunleash.integration; +package io.getunleash.streaming; import static com.github.tomakehurst.wiremock.client.WireMock.*; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; diff --git a/src/test/java/io/getunleash/util/UnleashConfigTest.java b/src/test/java/io/getunleash/util/UnleashConfigTest.java index 5e3520015..6889160f2 100644 --- a/src/test/java/io/getunleash/util/UnleashConfigTest.java +++ b/src/test/java/io/getunleash/util/UnleashConfigTest.java @@ -189,7 +189,7 @@ public void should_add_custom_headers_from_provider_to_connection_if_present() throws IOException { String unleashAPI = "http://unleash.org"; Map result = - new HashMap() { + new HashMap() { { put("PROVIDER-HEADER", "Provider Value"); }