From 465d1139d5b30ae223561c4b3418a4efaa13bb1d Mon Sep 17 00:00:00 2001 From: Justin Abrahms Date: Mon, 22 Aug 2022 16:26:36 -0700 Subject: [PATCH] Remove guava dependency. Ensure unused dependencies are removed from pom.xml --- pom.xml | 33 +++++++++++++++---- .../openfeature/javasdk/FeatureProvider.java | 5 ++- .../dev/openfeature/javasdk/HookSupport.java | 18 +++++----- .../dev/openfeature/javasdk/HookSpecTest.java | 11 ++++--- .../javasdk/internal/ObjectUtilsTest.java | 14 +++++--- 5 files changed, 54 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 7d521c67..ec69ec2b 100644 --- a/pom.xml +++ b/pom.xml @@ -41,12 +41,6 @@ - - com.google.guava - guava - 30.1.1-jre - - org.projectlombok lombok @@ -60,6 +54,7 @@ com.github.spotbugs spotbugs 4.7.1 + compile @@ -79,7 +74,7 @@ uk.org.lidalia slf4j-test - 1.1.0 + 1.2.0 test @@ -126,6 +121,30 @@ + + maven-dependency-plugin + 3.3.0 + + + verify + + analyze + + + + + true + + com.github.spotbugs:* + org.junit* + + + com.google.code.findbugs* + com.github.spotbugs* + uk.org.lidalia:lidalia-slf4j-ext:* + + + maven-compiler-plugin 3.8.1 diff --git a/src/main/java/dev/openfeature/javasdk/FeatureProvider.java b/src/main/java/dev/openfeature/javasdk/FeatureProvider.java index b3c142dc..bc660f51 100644 --- a/src/main/java/dev/openfeature/javasdk/FeatureProvider.java +++ b/src/main/java/dev/openfeature/javasdk/FeatureProvider.java @@ -1,7 +1,6 @@ package dev.openfeature.javasdk; -import com.google.common.collect.Lists; - +import java.util.ArrayList; import java.util.List; /** @@ -11,7 +10,7 @@ public interface FeatureProvider { Metadata getMetadata(); default List getProviderHooks() { - return Lists.newArrayList(); + return new ArrayList<>(); } ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, diff --git a/src/main/java/dev/openfeature/javasdk/HookSupport.java b/src/main/java/dev/openfeature/javasdk/HookSupport.java index 2b5c23b3..d78243b0 100644 --- a/src/main/java/dev/openfeature/javasdk/HookSupport.java +++ b/src/main/java/dev/openfeature/javasdk/HookSupport.java @@ -1,14 +1,11 @@ package dev.openfeature.javasdk; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.Stream; -import com.google.common.collect.Lists; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -74,8 +71,13 @@ class HookSupport { private Stream callBeforeHooks(FlagValueType flagValueType, HookContext hookCtx, List hooks, Map hints) { // These traverse backwards from normal. - return Lists - .reverse(hooks) + List reversedHooks = IntStream + .range(0, hooks.size()) + .map(i -> hooks.size() - 1 - i) + .mapToObj(hooks::get) + .collect(Collectors.toList()); + + return reversedHooks .stream() .filter(hook -> hook.supportsFlagValueType(flagValueType)) .map(hook -> hook.before(hookCtx, hints)) diff --git a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java index 1da9608f..81144771 100644 --- a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java +++ b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java @@ -2,8 +2,6 @@ package dev.openfeature.javasdk; import java.util.*; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; import dev.openfeature.javasdk.fixtures.HookFixtures; import lombok.SneakyThrows; import org.junit.jupiter.api.*; @@ -177,7 +175,7 @@ public class HookSpecTest implements HookFixtures { OpenFeatureAPI api = OpenFeatureAPI.getInstance(); api.setProvider(new NoOpProvider() { public List getProviderHooks() { - return Lists.newArrayList(new BooleanHook() { + return Collections.singletonList(new BooleanHook() { @Override public Optional before(HookContext ctx, Map hints) { @@ -186,7 +184,8 @@ public class HookSpecTest implements HookFixtures { } @Override - public void after(HookContext ctx, FlagEvaluationDetails details, Map hints) { + public void after(HookContext ctx, FlagEvaluationDetails details, Map hints) { evalOrder.add("provider after"); } @@ -348,7 +347,9 @@ public class HookSpecTest implements HookFixtures { } }; - Map hh = new HashMap<>(ImmutableMap.of(hintKey, "My hint value")); + Map hh = new HashMap<>(); + hh.put(hintKey, "My hint value"); + hh = Collections.unmodifiableMap(hh); client.getBooleanValue("key", false, new EvaluationContext(), FlagEvaluationOptions.builder() .hook(mutatingHook) diff --git a/src/test/java/dev/openfeature/javasdk/internal/ObjectUtilsTest.java b/src/test/java/dev/openfeature/javasdk/internal/ObjectUtilsTest.java index 0fd21f87..9c283260 100644 --- a/src/test/java/dev/openfeature/javasdk/internal/ObjectUtilsTest.java +++ b/src/test/java/dev/openfeature/javasdk/internal/ObjectUtilsTest.java @@ -2,7 +2,6 @@ package dev.openfeature.javasdk.internal; import java.util.*; -import com.google.common.collect.ImmutableMap; import org.junit.jupiter.api.*; import static dev.openfeature.javasdk.internal.ObjectUtils.defaultIfNull; @@ -65,7 +64,9 @@ class ObjectUtilsTest { @Test @DisplayName("should return default map if given one is null") void shouldReturnDefaultMapIfGivenOneIsNull() { - Map defaultValue = ImmutableMap.of("key", "default"); + HashMap hm = new HashMap<>(); + hm.put("key", "default"); + Map defaultValue = Collections.unmodifiableMap(hm); Map actual = defaultIfNull(null, () -> defaultValue); @@ -75,8 +76,13 @@ class ObjectUtilsTest { @Test @DisplayName("should return given map if not null") void shouldReturnGivenMapIfNotNull() { - Map defaultValue = ImmutableMap.of("key", "default"); - Map expectedValue = ImmutableMap.of("key", "expected"); + Map dv = new HashMap<>(); + dv.put("key", "default"); + Map defaultValue = Collections.unmodifiableMap(dv); + + Map ev = new HashMap<>(); + ev.put("key", "expected"); + Map expectedValue = Collections.unmodifiableMap(ev); Map actual = defaultIfNull(expectedValue, () -> defaultValue);