diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml
index 1ebcb4b65..364ef65ae 100644
--- a/.github/workflows/pullrequest.yml
+++ b/.github/workflows/pullrequest.yml
@@ -8,13 +8,6 @@ permissions:
jobs:
build:
runs-on: ubuntu-latest
- # TODO: this can be removed with https://github.com/open-feature/java-sdk/issues/523
- services:
- flagd:
- image: ghcr.io/open-feature/flagd-testbed:latest
- ports:
- - 8013:8013
-
steps:
- name: Check out the code
uses: actions/checkout@96f53100ba2a5449eb71d2e6604bbcd94b9449b5
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 63c9d533e..7c0b03834 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -18,14 +18,9 @@ If you're adding tests to cover something in the spec, use the `@Specification`
## End-to-End Tests
-
+The continuous integration runs a set of [gherkin e2e tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using `InMemoryProvider`.
-The continuous integration runs a set of [gherkin e2e tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using [`flagd`](https://github.com/open-feature/flagd). These tests do not run with the default maven profile. If you'd like to run them locally, you can start the flagd testbed with
-
-```
-docker run -p 8013:8013 ghcr.io/open-feature/flagd-testbed:latest
-```
-and then run
+to run alone:
```
mvn test -P e2e-test
```
diff --git a/pom.xml b/pom.xml
index 098d6eb0a..09c52f91e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,8 +11,6 @@
1.8
${maven.compiler.source}
5.10.0
-
- **/e2e/*.java
${groupId}.${artifactId}
@@ -21,10 +19,10 @@
https://openfeature.dev
- abrahms
- Justin Abrahms
- eBay
- https://justin.abrah.ms/
+ abrahms
+ Justin Abrahms
+ eBay
+ https://justin.abrah.ms/
@@ -120,9 +118,9 @@
- io.cucumber
- cucumber-junit-platform-engine
- test
+ io.cucumber
+ cucumber-junit-platform-engine
+ test
@@ -139,39 +137,33 @@
test
-
- dev.openfeature.contrib.providers
- flagd
- 0.5.10
- test
-
-
org.awaitility
awaitility
4.2.0
test
+
-
- io.cucumber
- cucumber-bom
- 7.13.0
- pom
- import
-
-
-
- org.junit
- junit-bom
- 5.10.0
- pom
- import
-
+
+ io.cucumber
+ cucumber-bom
+ 7.13.0
+ pom
+ import
+
+
+
+ org.junit
+ junit-bom
+ 5.10.0
+ pom
+ import
+
@@ -203,7 +195,7 @@
-
+
maven-dependency-plugin
3.6.0
@@ -249,7 +241,7 @@
${testExclusions}
-
+
@@ -271,7 +263,7 @@
- prepare-agent
+ prepare-agent
prepare-agent
@@ -319,7 +311,7 @@
-
+
@@ -496,14 +488,11 @@
-
-
-
e2e-test
-
+
diff --git a/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java b/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
index 78e04c718..b324c07cb 100644
--- a/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
+++ b/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
@@ -40,6 +40,7 @@ public static FlagEvaluationDetails from(ProviderEvaluation providerEv
.value(providerEval.getValue())
.variant(providerEval.getVariant())
.reason(providerEval.getReason())
+ .errorMessage(providerEval.getErrorMessage())
.errorCode(providerEval.getErrorCode())
.flagMetadata(providerEval.getFlagMetadata())
.build();
diff --git a/src/main/java/dev/openfeature/sdk/Structure.java b/src/main/java/dev/openfeature/sdk/Structure.java
index f8b552125..46274e70e 100644
--- a/src/main/java/dev/openfeature/sdk/Structure.java
+++ b/src/main/java/dev/openfeature/sdk/Structure.java
@@ -9,6 +9,8 @@
import java.util.function.Function;
import java.util.stream.Collectors;
+import static dev.openfeature.sdk.Value.objectToValue;
+
/**
* {@link Structure} represents a potentially nested object type which is used to represent
* structured data.
@@ -123,4 +125,16 @@ default Map merge(Function