Skip to content

Commit 27b4b8e

Browse files
committed
restore IOfflineHandler
1 parent 711ff13 commit 27b4b8e

File tree

6 files changed

+22
-15
lines changed

6 files changed

+22
-15
lines changed

src/main/java/com/flagsmith/FlagsmithClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,8 @@ public FlagsmithClient build() {
549549
throw new FlagsmithRuntimeError(
550550
"Cannot use both default flag handler and offline handler.");
551551
}
552-
client.evaluationContext = configuration.getOfflineHandler().getEvaluationContext();
552+
client.evaluationContext = EngineMappers.mapEnvironmentToContext(
553+
configuration.getOfflineHandler().getEnvironment());
553554
}
554555

555556
return this.client;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.flagsmith.interfaces;
22

3-
import com.flagsmith.flagengine.EvaluationContext;
3+
import com.flagsmith.models.environments.EnvironmentModel;
44

55
public interface IOfflineHandler {
6-
EvaluationContext getEvaluationContext();
6+
EnvironmentModel getEnvironment();
77
}
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package com.flagsmith.offline;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
43
import com.fasterxml.jackson.databind.ObjectMapper;
54
import com.flagsmith.MapperFactory;
65
import com.flagsmith.exceptions.FlagsmithClientError;
7-
import com.flagsmith.flagengine.EvaluationContext;
86
import com.flagsmith.interfaces.IOfflineHandler;
9-
import com.flagsmith.mappers.EngineMappers;
7+
import com.flagsmith.models.environments.EnvironmentModel;
108
import java.io.File;
119
import java.io.IOException;
1210

1311
public class LocalFileHandler implements IOfflineHandler {
14-
private EvaluationContext evaluationContext;
12+
private EnvironmentModel environmentModel;
1513
private ObjectMapper objectMapper = MapperFactory.getMapper();
1614

1715
/**
@@ -22,14 +20,13 @@ public class LocalFileHandler implements IOfflineHandler {
2220
public LocalFileHandler(String filePath) throws FlagsmithClientError {
2321
File file = new File(filePath);
2422
try {
25-
JsonNode environmentDocument = objectMapper.readValue(file, JsonNode.class);
26-
this.evaluationContext = EngineMappers.mapEnvironmentDocumentToContext(environmentDocument);
23+
this.environmentModel = objectMapper.readValue(file, EnvironmentModel.class);
2724
} catch (IOException e) {
2825
throw new FlagsmithClientError("Unable to read environment from file " + filePath);
2926
}
3027
}
3128

32-
public EvaluationContext getEvaluationContext() {
33-
return evaluationContext;
29+
public EnvironmentModel getEnvironment() {
30+
return environmentModel;
3431
}
3532
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.flagsmith;
22

3-
import com.flagsmith.flagengine.EvaluationContext;
43
import com.flagsmith.interfaces.IOfflineHandler;
4+
import com.flagsmith.models.environments.EnvironmentModel;
55

66
public class DummyOfflineHandler implements IOfflineHandler {
7-
public EvaluationContext getEvaluationContext() {
8-
return FlagsmithTestHelper.evaluationContext();
7+
public EnvironmentModel getEnvironment() {
8+
return FlagsmithTestHelper.environmentModel();
99
}
1010
}

src/test/java/com/flagsmith/FlagsmithTestHelper.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.flagsmith.models.FeatureStateModel;
1414
import com.flagsmith.models.Flag;
1515
import com.flagsmith.models.TraitModel;
16+
import com.flagsmith.models.environments.EnvironmentModel;
1617
import com.google.common.collect.ImmutableMap;
1718
import io.restassured.RestAssured;
1819
import io.restassured.http.Header;
@@ -348,6 +349,14 @@ public static String environmentString() {
348349
"}";
349350
}
350351

352+
public static EnvironmentModel environmentModel() {
353+
try {
354+
return MapperFactory.getMapper().readValue(environmentString(), EnvironmentModel.class);
355+
} catch (JsonProcessingException e) {
356+
throw new RuntimeException("Failed to parse environment JSON", e);
357+
}
358+
}
359+
351360
public static EvaluationContext evaluationContext() {
352361
try {
353362
return EngineMappers.mapEnvironmentDocumentToContext(MapperFactory.getMapper().readTree(environmentString()));

src/test/java/com/flagsmith/offline/LocalFileHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void testLocalFileHandler() throws FlagsmithClientError, IOException {
2424
LocalFileHandler handler = new LocalFileHandler(file.getAbsolutePath());
2525

2626
// Then
27-
assertEquals(FlagsmithTestHelper.evaluationContext(), handler.getEvaluationContext());
27+
assertEquals(FlagsmithTestHelper.environmentModel(), handler.getEnvironment());
2828

2929
file.delete();
3030
}

0 commit comments

Comments
 (0)