diff --git a/src/main/java/dev/openfeature/javasdk/FeatureProvider.java b/src/main/java/dev/openfeature/javasdk/FeatureProvider.java index 40c0f83f..f6794214 100644 --- a/src/main/java/dev/openfeature/javasdk/FeatureProvider.java +++ b/src/main/java/dev/openfeature/javasdk/FeatureProvider.java @@ -13,18 +13,13 @@ public interface FeatureProvider { return new ArrayList<>(); } - ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options); + ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx); - ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options); + ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx); - ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options); + ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx); - ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options); + ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx); - ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, - EvaluationContext invocationContext, FlagEvaluationOptions options); + ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, EvaluationContext ctx); } diff --git a/src/main/java/dev/openfeature/javasdk/NoOpProvider.java b/src/main/java/dev/openfeature/javasdk/NoOpProvider.java index 7ce8beb3..35818a7a 100644 --- a/src/main/java/dev/openfeature/javasdk/NoOpProvider.java +++ b/src/main/java/dev/openfeature/javasdk/NoOpProvider.java @@ -21,8 +21,7 @@ public class NoOpProvider implements FeatureProvider { } @Override - public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options) { + public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) @@ -31,8 +30,7 @@ public class NoOpProvider implements FeatureProvider { } @Override - public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options) { + public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) @@ -41,8 +39,7 @@ public class NoOpProvider implements FeatureProvider { } @Override - public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options) { + public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) @@ -51,8 +48,7 @@ public class NoOpProvider implements FeatureProvider { } @Override - public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx, - FlagEvaluationOptions options) { + public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) @@ -62,8 +58,7 @@ public class NoOpProvider implements FeatureProvider { @Override public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, - EvaluationContext invocationContext, - FlagEvaluationOptions options) { + EvaluationContext invocationContext) { return ProviderEvaluation.builder() .value(defaultValue) .variant(PASSED_IN_DEFAULT) diff --git a/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java b/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java index dd233a95..d8615540 100644 --- a/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java +++ b/src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java @@ -115,15 +115,15 @@ public class OpenFeatureClient implements Client { ) { switch (type) { case BOOLEAN: - return provider.getBooleanEvaluation(key, (Boolean) defaultValue, invocationContext, options); + return provider.getBooleanEvaluation(key, (Boolean) defaultValue, invocationContext); case STRING: - return provider.getStringEvaluation(key, (String) defaultValue, invocationContext, options); + return provider.getStringEvaluation(key, (String) defaultValue, invocationContext); case INTEGER: - return provider.getIntegerEvaluation(key, (Integer) defaultValue, invocationContext, options); + return provider.getIntegerEvaluation(key, (Integer) defaultValue, invocationContext); case DOUBLE: - return provider.getDoubleEvaluation(key, (Double) defaultValue, invocationContext, options); + return provider.getDoubleEvaluation(key, (Double) defaultValue, invocationContext); case OBJECT: - return provider.getObjectEvaluation(key, (Structure) defaultValue, invocationContext, options); + return provider.getObjectEvaluation(key, (Structure) defaultValue, invocationContext); default: throw new GeneralError("Unknown flag type"); } diff --git a/src/test/java/dev/openfeature/javasdk/AlwaysBrokenProvider.java b/src/test/java/dev/openfeature/javasdk/AlwaysBrokenProvider.java index e2035525..cd172afc 100644 --- a/src/test/java/dev/openfeature/javasdk/AlwaysBrokenProvider.java +++ b/src/test/java/dev/openfeature/javasdk/AlwaysBrokenProvider.java @@ -13,27 +13,27 @@ public class AlwaysBrokenProvider implements FeatureProvider { } @Override - public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx) { throw new NotImplementedException("BORK"); } @Override - public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx) { throw new NotImplementedException("BORK"); } @Override - public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx) { throw new NotImplementedException("BORK"); } @Override - public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx) { throw new NotImplementedException("BORK"); } @Override - public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext, FlagEvaluationOptions options) { + public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext) { throw new NotImplementedException("BORK"); } } diff --git a/src/test/java/dev/openfeature/javasdk/DoSomethingProvider.java b/src/test/java/dev/openfeature/javasdk/DoSomethingProvider.java index 25435b32..91600e09 100644 --- a/src/test/java/dev/openfeature/javasdk/DoSomethingProvider.java +++ b/src/test/java/dev/openfeature/javasdk/DoSomethingProvider.java @@ -14,21 +14,21 @@ public class DoSomethingProvider implements FeatureProvider { } @Override - public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx) { savedContext = ctx; return ProviderEvaluation.builder() .value(!defaultValue).build(); } @Override - public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getStringEvaluation(String key, String defaultValue, EvaluationContext ctx) { return ProviderEvaluation.builder() .value(new StringBuilder(defaultValue).reverse().toString()) .build(); } @Override - public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getIntegerEvaluation(String key, Integer defaultValue, EvaluationContext ctx) { savedContext = ctx; return ProviderEvaluation.builder() .value(defaultValue * 100) @@ -36,7 +36,7 @@ public class DoSomethingProvider implements FeatureProvider { } @Override - public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { + public ProviderEvaluation getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx) { savedContext = ctx; return ProviderEvaluation.builder() .value(defaultValue * 100) @@ -44,7 +44,7 @@ public class DoSomethingProvider implements FeatureProvider { } @Override - public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext, FlagEvaluationOptions options) { + public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext) { savedContext = invocationContext; return ProviderEvaluation.builder() .value(null) diff --git a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java index b45cd82b..01374074 100644 --- a/src/test/java/dev/openfeature/javasdk/HookSpecTest.java +++ b/src/test/java/dev/openfeature/javasdk/HookSpecTest.java @@ -382,7 +382,7 @@ public class HookSpecTest implements HookFixtures { @Test void flag_eval_hook_order() { Hook hook = mockBooleanHook(); FeatureProvider provider = mock(FeatureProvider.class); - when(provider.getBooleanEvaluation(any(), any(), any(), any())) + when(provider.getBooleanEvaluation(any(), any(), any())) .thenReturn(ProviderEvaluation.builder() .value(true) .build()); @@ -395,7 +395,7 @@ public class HookSpecTest implements HookFixtures { FlagEvaluationOptions.builder().hook(hook).build()); order.verify(hook).before(any(), any()); - order.verify(provider).getBooleanEvaluation(any(), any(), any(), any()); + order.verify(provider).getBooleanEvaluation(any(), any(), any()); order.verify(hook).after(any(), any(), any()); order.verify(hook).finallyAfter(any(), any()); } @@ -484,7 +484,7 @@ public class HookSpecTest implements HookFixtures { when(hook.before(any(), any())).thenReturn(Optional.of(hookCtx)); FeatureProvider provider = mock(FeatureProvider.class); - when(provider.getBooleanEvaluation(any(), any(), any(), any())).thenReturn(ProviderEvaluation.builder() + when(provider.getBooleanEvaluation(any(), any(), any())).thenReturn(ProviderEvaluation.builder() .value(true) .build()); @@ -497,7 +497,7 @@ public class HookSpecTest implements HookFixtures { .build()); ArgumentCaptor captor = ArgumentCaptor.forClass(EvaluationContext.class); - verify(provider).getBooleanEvaluation(any(), any(), captor.capture(), any()); + verify(provider).getBooleanEvaluation(any(), any(), captor.capture()); EvaluationContext ec = captor.getValue(); assertEquals("works", ec.getValue("test").asString()); assertEquals("exists", ec.getValue("another").asString()); diff --git a/src/test/java/dev/openfeature/javasdk/NoOpProviderTest.java b/src/test/java/dev/openfeature/javasdk/NoOpProviderTest.java index fc85ebfa..4a45860c 100644 --- a/src/test/java/dev/openfeature/javasdk/NoOpProviderTest.java +++ b/src/test/java/dev/openfeature/javasdk/NoOpProviderTest.java @@ -7,33 +7,33 @@ import org.junit.jupiter.api.Test; public class NoOpProviderTest { @Test void bool() { NoOpProvider p = new NoOpProvider(); - ProviderEvaluation eval = p.getBooleanEvaluation("key", true, null, null); + ProviderEvaluation eval = p.getBooleanEvaluation("key", true, null); assertEquals(true, eval.getValue()); } @Test void str() { NoOpProvider p = new NoOpProvider(); - ProviderEvaluation eval = p.getStringEvaluation("key", "works", null, null); + ProviderEvaluation eval = p.getStringEvaluation("key", "works", null); assertEquals("works", eval.getValue()); } @Test void integer() { NoOpProvider p = new NoOpProvider(); - ProviderEvaluation eval = p.getIntegerEvaluation("key", 4, null, null); + ProviderEvaluation eval = p.getIntegerEvaluation("key", 4, null); assertEquals(4, eval.getValue()); } @Test void noOpdouble() { NoOpProvider p = new NoOpProvider(); - ProviderEvaluation eval = p.getDoubleEvaluation("key", 0.4, null, null); + ProviderEvaluation eval = p.getDoubleEvaluation("key", 0.4, null); assertEquals(0.4, eval.getValue()); } @Test void structure() { NoOpProvider p = new NoOpProvider(); Structure s = new Structure(); - ProviderEvaluation eval = p.getObjectEvaluation("key", s, null, null); + ProviderEvaluation eval = p.getObjectEvaluation("key", s, null); assertEquals(s, eval.getValue()); } } diff --git a/src/test/java/dev/openfeature/javasdk/ProviderSpecTest.java b/src/test/java/dev/openfeature/javasdk/ProviderSpecTest.java index 3e88c9b8..43a3eee9 100644 --- a/src/test/java/dev/openfeature/javasdk/ProviderSpecTest.java +++ b/src/test/java/dev/openfeature/javasdk/ProviderSpecTest.java @@ -24,19 +24,19 @@ public class ProviderSpecTest { @Specification(number="2.9.1", text="The flag resolution structure SHOULD accept a generic " + "argument (or use an equivalent language feature) which indicates the type of the wrapped value field.") @Test void flag_value_set() { - ProviderEvaluation int_result = p.getIntegerEvaluation("key", 4, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation int_result = p.getIntegerEvaluation("key", 4, new EvaluationContext()); assertNotNull(int_result.getValue()); - ProviderEvaluation double_result = p.getDoubleEvaluation("key", 0.4, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation double_result = p.getDoubleEvaluation("key", 0.4, new EvaluationContext()); assertNotNull(double_result.getValue()); - ProviderEvaluation string_result = p.getStringEvaluation("key", "works", new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation string_result = p.getStringEvaluation("key", "works", new EvaluationContext()); assertNotNull(string_result.getValue()); - ProviderEvaluation boolean_result = p.getBooleanEvaluation("key", false, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation boolean_result = p.getBooleanEvaluation("key", false, new EvaluationContext()); assertNotNull(boolean_result.getValue()); - ProviderEvaluation object_result = p.getObjectEvaluation("key", new Structure(), new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation object_result = p.getObjectEvaluation("key", new Structure(), new EvaluationContext()); assertNotNull(object_result.getValue()); } @@ -44,14 +44,14 @@ public class ProviderSpecTest { @Specification(number="2.6", text="The provider SHOULD populate the flag resolution structure's " + "reason field with a string indicating the semantic reason for the returned flag value.") @Test void has_reason() { - ProviderEvaluation result = p.getBooleanEvaluation("key", false, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation result = p.getBooleanEvaluation("key", false, new EvaluationContext()); assertEquals(Reason.DEFAULT, result.getReason()); } @Specification(number="2.7", text="In cases of normal execution, the provider MUST NOT populate " + "the flag resolution structure's error code field, or otherwise must populate it with a null or falsy value.") @Test void no_error_code_by_default() { - ProviderEvaluation result = p.getBooleanEvaluation("key", false, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation result = p.getBooleanEvaluation("key", false, new EvaluationContext()); assertNull(result.getErrorCode()); } @@ -63,16 +63,16 @@ public class ProviderSpecTest { @Specification(number="2.5", text="In cases of normal execution, the provider SHOULD populate the " + "flag resolution structure's variant field with a string identifier corresponding to the returned flag value.") @Test void variant_set() { - ProviderEvaluation int_result = p.getIntegerEvaluation("key", 4, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation int_result = p.getIntegerEvaluation("key", 4, new EvaluationContext()); assertNotNull(int_result.getReason()); - ProviderEvaluation double_result = p.getDoubleEvaluation("key", 0.4, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation double_result = p.getDoubleEvaluation("key", 0.4, new EvaluationContext()); assertNotNull(double_result.getReason()); - ProviderEvaluation string_result = p.getStringEvaluation("key", "works", new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation string_result = p.getStringEvaluation("key", "works", new EvaluationContext()); assertNotNull(string_result.getReason()); - ProviderEvaluation boolean_result = p.getBooleanEvaluation("key", false, new EvaluationContext(), FlagEvaluationOptions.builder().build()); + ProviderEvaluation boolean_result = p.getBooleanEvaluation("key", false, new EvaluationContext()); assertNotNull(boolean_result.getReason()); }