Skip to content

Commit 441577c

Browse files
authored
FFM-11654 Sort serving rules in cache code (#192)
1 parent 808bd25 commit 441577c

File tree

5 files changed

+16
-9
lines changed

5 files changed

+16
-9
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,14 @@ Add the following Maven dependency in your project's pom.xml file:
7878
<dependency>
7979
<groupId>io.harness</groupId>
8080
<artifactId>ff-java-server-sdk</artifactId>
81-
<version>1.6.0</version>
81+
<version>1.6.1</version>
8282
</dependency>
8383
```
8484

8585
#### Gradle
8686

8787
```
88-
implementation 'io.harness:ff-java-server-sdk:1.6.0'
88+
implementation 'io.harness:ff-java-server-sdk:1.6.1'
8989
```
9090

9191
### Code Sample

examples/src/main/java/io/harness/ff/examples/GettingStarted.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ private static String getEnvOrDefault(String key, String defaultValue) {
6767
}
6868
return value;
6969
}
70-
}
70+
}

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dependencyResolutionManagement {
44
versionCatalogs {
55
libs {
66
// main sdk version
7-
version('sdk', '1.6.0');
7+
version('sdk', '1.6.1');
88

99
// sdk deps
1010
version('okhttp3', '4.12.0')

src/main/java/io/harness/cf/client/api/Evaluator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ private boolean isTargetIncludedOrExcludedInSegment(List<String> segmentList, Ta
226226
// New style rules, if sent by BE prefer those first
227227
List<GroupServingRule> newServingRules = segment.getServingRules();
228228
if (newServingRules != null && !newServingRules.isEmpty()) {
229-
newServingRules.sort(Comparator.comparing(GroupServingRule::getPriority));
230229

231230
for (GroupServingRule servingRule : newServingRules) {
232231
if (evaluateClausesV2(servingRule.getClauses(), target)) {

src/main/java/io/harness/cf/client/api/StorageRepository.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
33
import io.harness.cf.client.common.Cache;
44
import io.harness.cf.client.common.Storage;
55
import io.harness.cf.client.common.Utils;
6-
import io.harness.cf.model.Clause;
7-
import io.harness.cf.model.FeatureConfig;
8-
import io.harness.cf.model.Segment;
9-
import io.harness.cf.model.ServingRule;
6+
import io.harness.cf.model.*;
107
import java.util.ArrayList;
8+
import java.util.Comparator;
119
import java.util.List;
1210
import java.util.Optional;
1311
import lombok.NonNull;
@@ -131,6 +129,10 @@ public void setSegment(@NonNull String identifier, @NonNull Segment segment) {
131129
log.debug("Segment {} already exists", identifier);
132130
return;
133131
}
132+
133+
// Sort the serving rules before storing the segment
134+
sortSegmentServingRules(segment);
135+
134136
final String segmentKey = formatSegmentKey(identifier);
135137
if (store != null) {
136138
store.set(segmentKey, segment);
@@ -196,6 +198,12 @@ protected boolean isSegmentOutdated(@NonNull String identifier, @NonNull Segment
196198
return false;
197199
}
198200

201+
private void sortSegmentServingRules(Segment segment) {
202+
if (segment.getServingRules() != null && segment.getServingRules().size() > 1) {
203+
segment.getServingRules().sort(Comparator.comparing(GroupServingRule::getPriority));
204+
}
205+
}
206+
199207
@NonNull
200208
protected String formatFlagKey(@NonNull String identifier) {
201209
return String.format("flags/%s", identifier);

0 commit comments

Comments
 (0)