Skip to content

Commit 3d6800d

Browse files
authored
Merge pull request #565 from splitio/prereq-dtos
Added and updated DTOs
2 parents 919fc54 + dcaa726 commit 3d6800d

File tree

14 files changed

+138
-101
lines changed

14 files changed

+138
-101
lines changed

client/src/main/java/io/split/client/CacheUpdaterService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void updateCache(Map<SplitAndKey, LocalhostSplit> map) {
5151
String treatment = conditions.size() > 0 ? Treatments.CONTROL : localhostSplit.treatment;
5252
configurations.put(localhostSplit.treatment, localhostSplit.config);
5353

54-
split = new ParsedSplit(splitName, 0, false, treatment,conditions, LOCALHOST, 0, 100, 0, 0, configurations, new HashSet<>(), true);
54+
split = new ParsedSplit(splitName, 0, false, treatment,conditions, LOCALHOST, 0, 100, 0, 0, configurations, new HashSet<>(), true, null);
5555
parsedSplits.removeIf(parsedSplit -> parsedSplit.feature().equals(splitName));
5656
parsedSplits.add(split);
5757
}

client/src/main/java/io/split/client/api/SplitView.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.split.client.api;
22

33
import io.split.client.dtos.Partition;
4+
import io.split.client.dtos.Prerequisites;
45
import io.split.engine.experiments.ParsedCondition;
56
import io.split.engine.experiments.ParsedSplit;
67

@@ -27,6 +28,7 @@ public class SplitView {
2728
public List<String> sets;
2829
public String defaultTreatment;
2930
public boolean impressionsDisabled;
31+
public List<Prerequisites> prerequisites;
3032

3133
public static SplitView fromParsedSplit(ParsedSplit parsedSplit) {
3234
SplitView splitView = new SplitView();
@@ -48,6 +50,7 @@ public static SplitView fromParsedSplit(ParsedSplit parsedSplit) {
4850
splitView.treatments = new ArrayList<String>(treatments);
4951
splitView.configs = parsedSplit.configurations() == null? Collections.<String, String>emptyMap() : parsedSplit.configurations() ;
5052
splitView.impressionsDisabled = parsedSplit.impressionsDisabled();
53+
splitView.prerequisites = parsedSplit.prerequisites() != null ? parsedSplit.prerequisites(): new ArrayList<>();
5154

5255
return splitView;
5356
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.split.client.dtos;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
import java.util.List;
6+
7+
public class Prerequisites {
8+
@SerializedName("n")
9+
public String featureFlagName;
10+
@SerializedName("ts")
11+
public List<String> treatments;
12+
}

client/src/main/java/io/split/client/dtos/Split.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class Split {
1919
public Map<String, String> configurations;
2020
public HashSet<String> sets;
2121
public Boolean impressionsDisabled = null;
22+
public List<Prerequisites> prerequisites;
2223

2324
@Override
2425
public String toString() {

client/src/main/java/io/split/engine/experiments/ParsedSplit.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.split.engine.experiments;
22

33
import com.google.common.collect.ImmutableList;
4+
import io.split.client.dtos.Prerequisites;
45
import io.split.engine.matchers.AttributeMatcher;
56
import io.split.engine.matchers.RuleBasedSegmentMatcher;
67
import io.split.engine.matchers.UserDefinedSegmentMatcher;
@@ -34,6 +35,7 @@ public class ParsedSplit {
3435
private final Map<String, String> _configurations;
3536
private final HashSet<String> _flagSets;
3637
private final boolean _impressionsDisabled;
38+
private List<Prerequisites> _prerequisites;
3739

3840
public static ParsedSplit createParsedSplitForTests(
3941
String feature,
@@ -45,7 +47,8 @@ public static ParsedSplit createParsedSplitForTests(
4547
long changeNumber,
4648
int algo,
4749
HashSet<String> flagSets,
48-
boolean impressionsDisabled
50+
boolean impressionsDisabled,
51+
List<Prerequisites> prerequisites
4952
) {
5053
return new ParsedSplit(
5154
feature,
@@ -60,7 +63,8 @@ public static ParsedSplit createParsedSplitForTests(
6063
algo,
6164
null,
6265
flagSets,
63-
impressionsDisabled
66+
impressionsDisabled,
67+
prerequisites
6468
);
6569
}
6670

@@ -75,7 +79,8 @@ public static ParsedSplit createParsedSplitForTests(
7579
int algo,
7680
Map<String, String> configurations,
7781
HashSet<String> flagSets,
78-
boolean impressionsDisabled
82+
boolean impressionsDisabled,
83+
List<Prerequisites> prerequisites
7984
) {
8085
return new ParsedSplit(
8186
feature,
@@ -90,7 +95,8 @@ public static ParsedSplit createParsedSplitForTests(
9095
algo,
9196
configurations,
9297
flagSets,
93-
impressionsDisabled
98+
impressionsDisabled,
99+
prerequisites
94100
);
95101
}
96102

@@ -107,7 +113,8 @@ public ParsedSplit(
107113
int algo,
108114
Map<String, String> configurations,
109115
HashSet<String> flagSets,
110-
boolean impressionsDisabled
116+
boolean impressionsDisabled,
117+
List<Prerequisites> prerequisites
111118
) {
112119
_split = feature;
113120
_seed = seed;
@@ -125,6 +132,7 @@ public ParsedSplit(
125132
_configurations = configurations;
126133
_flagSets = flagSets;
127134
_impressionsDisabled = impressionsDisabled;
135+
_prerequisites = prerequisites;
128136
}
129137

130138
public String feature() {
@@ -171,6 +179,7 @@ public Map<String, String> configurations() {
171179
public boolean impressionsDisabled() {
172180
return _impressionsDisabled;
173181
}
182+
public List<Prerequisites> prerequisites() { return _prerequisites; }
174183

175184
@Override
176185
public int hashCode() {
@@ -205,7 +214,8 @@ public boolean equals(Object obj) {
205214
&& _changeNumber == other._changeNumber
206215
&& _algo == other._algo
207216
&& _configurations == null ? other._configurations == null : _configurations.equals(other._configurations)
208-
&& _impressionsDisabled == other._impressionsDisabled;
217+
&& _impressionsDisabled == other._impressionsDisabled
218+
&& _prerequisites == other._prerequisites;
209219
}
210220

211221
@Override
@@ -231,6 +241,9 @@ public String toString() {
231241
bldr.append(_configurations);
232242
bldr.append(", impressionsDisabled:");
233243
bldr.append(_impressionsDisabled);
244+
bldr.append(", prerequisites:");
245+
bldr.append(_prerequisites);
246+
234247
return bldr.toString();
235248

236249
}

client/src/main/java/io/split/engine/experiments/SplitParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ private ParsedSplit parseWithoutExceptionHandling(Split split) {
6868
split.algo,
6969
split.configurations,
7070
split.sets,
71-
split.impressionsDisabled);
71+
split.impressionsDisabled,
72+
split.prerequisites);
7273
}
7374
}

client/src/main/java/io/split/storages/memory/InMemoryCacheImp.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ public void kill(String splitName, String defaultTreatment, long changeNumber) {
131131
parsedSplit.algo(),
132132
parsedSplit.configurations(),
133133
parsedSplit.flagSets(),
134-
parsedSplit.impressionsDisabled()
134+
parsedSplit.impressionsDisabled(),
135+
parsedSplit.prerequisites()
135136
);
136137

137138
_concurrentMap.put(splitName, updatedSplit);

0 commit comments

Comments
 (0)