diff --git a/pom.xml b/pom.xml
index 6a23b2752..edcffb8a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,8 +29,8 @@
dev.openfeature
javasdk
-
- [0.1,)
+
+ [0.2,)
provided
diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java
index 0cf34028c..2821e0f9e 100644
--- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java
+++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java
@@ -145,14 +145,14 @@ public ProviderEvaluation getIntegerEvaluation(String key, Integer defa
}
@Override
- public ProviderEvaluation getObjectEvaluation(String key, Structure defaultValue,
+ public ProviderEvaluation getObjectEvaluation(String key, Value defaultValue,
EvaluationContext ctx) {
ResolveObjectRequest request = ResolveObjectRequest.newBuilder()
.setFlagKey(key)
.setContext(this.convertContext(ctx))
.build();
ResolveObjectResponse r = this.serviceStub.resolveObject(request);
- return ProviderEvaluation.builder()
+ return ProviderEvaluation.builder()
.value(this.convertObjectResponse(r.getValue()))
.variant(r.getVariant())
.reason(this.mapReason(r.getReason()))
@@ -174,10 +174,10 @@ private Reason mapReason(String flagDreason) {
}
/**
- * Recursively convert protobuf structure to openfeature structure.
+ * Recursively convert protobuf structure to openfeature value.
*/
- private Structure convertObjectResponse(com.google.protobuf.Struct protobuf) {
- return new Structure(this.convertProtobufMap(protobuf.getFieldsMap()).asStructure().asMap());
+ private Value convertObjectResponse(com.google.protobuf.Struct protobuf) {
+ return this.convertProtobufMap(protobuf.getFieldsMap());
}
/**
@@ -268,9 +268,7 @@ private com.google.protobuf.Value convertPrimitive(Value value) {
builder.setBoolValue(value.asBoolean());
} else if (value.isString()) {
builder.setStringValue(value.asString());
- } else if (value.isInteger()) {
- builder.setNumberValue(Double.valueOf(value.asInteger()));
- } else if (value.isDouble()) {
+ } else if (value.isNumber()) {
builder.setNumberValue(value.asDouble());
} else {
builder.setNullValue(null);
@@ -290,7 +288,7 @@ private Value convertPrimitive(com.google.protobuf.Value protobuf) {
} else if (protobuf.hasNumberValue()) {
value = new Value(protobuf.getNumberValue());
} else {
- value = new Value((Boolean) null);
+ value = new Value();
}
return value;
}
diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdProviderTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdProviderTest.java
index 101c03603..0d494102e 100644
--- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdProviderTest.java
+++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdProviderTest.java
@@ -121,8 +121,9 @@ void resolvers_call_grpc_service_and_return_details() {
assertEquals(DOUBLE_VARIANT, floatDetails.getVariant());
assertEquals(DEFAULT, floatDetails.getReason());
- FlagEvaluationDetails objectDetails = api.getClient().getObjectDetails(FLAG_KEY, new Structure());
- assertEquals(INNER_STRUCT_VALUE, objectDetails.getValue().asMap().get(INNER_STRUCT_KEY).asString());
+ FlagEvaluationDetails objectDetails = api.getClient().getObjectDetails(FLAG_KEY, new Value());
+ assertEquals(INNER_STRUCT_VALUE, objectDetails.getValue().asStructure()
+ .asMap().get(INNER_STRUCT_KEY).asString());
assertEquals(OBJECT_VARIANT, objectDetails.getVariant());
assertEquals(DEFAULT, objectDetails.getReason());
}
@@ -196,7 +197,8 @@ void reason_mapped_correctly_if_unknown() {
OpenFeatureAPI.getInstance().setProvider(new FlagdProvider(serviceBlockingStubMock));
- FlagEvaluationDetails booleanDetails = api.getClient().getBooleanDetails(FLAG_KEY, false, new EvaluationContext());
+ FlagEvaluationDetails booleanDetails = api.getClient()
+ .getBooleanDetails(FLAG_KEY, false, new EvaluationContext());
assertEquals(Reason.UNKNOWN, booleanDetails.getReason()); // reason should be converted to UNKNOWN
}
}
\ No newline at end of file