Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Added and updated DTOs #565

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public void updateCache(Map<SplitAndKey, LocalhostSplit> map) {
String treatment = conditions.size() > 0 ? Treatments.CONTROL : localhostSplit.treatment;
configurations.put(localhostSplit.treatment, localhostSplit.config);

split = new ParsedSplit(splitName, 0, false, treatment,conditions, LOCALHOST, 0, 100, 0, 0, configurations, new HashSet<>(), true);
split = new ParsedSplit(splitName, 0, false, treatment,conditions, LOCALHOST, 0, 100, 0, 0, configurations, new HashSet<>(), true, null);
parsedSplits.removeIf(parsedSplit -> parsedSplit.feature().equals(splitName));
parsedSplits.add(split);
}
Expand Down
3 changes: 3 additions & 0 deletions client/src/main/java/io/split/client/api/SplitView.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.split.client.api;

import io.split.client.dtos.Partition;
import io.split.client.dtos.Prerequisites;
import io.split.engine.experiments.ParsedCondition;
import io.split.engine.experiments.ParsedSplit;

Expand All @@ -27,6 +28,7 @@ public class SplitView {
public List<String> sets;
public String defaultTreatment;
public boolean impressionsDisabled;
public List<Prerequisites> prerequisites;

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

return splitView;
}
Expand Down
12 changes: 12 additions & 0 deletions client/src/main/java/io/split/client/dtos/Prerequisites.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package io.split.client.dtos;

import com.google.gson.annotations.SerializedName;

import java.util.List;

public class Prerequisites {
@SerializedName("n")
public String featureFlagName;
@SerializedName("ts")
public List<String> treatments;
}
1 change: 1 addition & 0 deletions client/src/main/java/io/split/client/dtos/Split.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class Split {
public Map<String, String> configurations;
public HashSet<String> sets;
public Boolean impressionsDisabled = null;
public List<Prerequisites> prerequisites;

@Override
public String toString() {
Expand Down
25 changes: 19 additions & 6 deletions client/src/main/java/io/split/engine/experiments/ParsedSplit.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.split.engine.experiments;

import com.google.common.collect.ImmutableList;
import io.split.client.dtos.Prerequisites;
import io.split.engine.matchers.AttributeMatcher;
import io.split.engine.matchers.RuleBasedSegmentMatcher;
import io.split.engine.matchers.UserDefinedSegmentMatcher;
Expand Down Expand Up @@ -34,6 +35,7 @@ public class ParsedSplit {
private final Map<String, String> _configurations;
private final HashSet<String> _flagSets;
private final boolean _impressionsDisabled;
private List<Prerequisites> _prerequisites;

public static ParsedSplit createParsedSplitForTests(
String feature,
Expand All @@ -45,7 +47,8 @@ public static ParsedSplit createParsedSplitForTests(
long changeNumber,
int algo,
HashSet<String> flagSets,
boolean impressionsDisabled
boolean impressionsDisabled,
List<Prerequisites> prerequisites
) {
return new ParsedSplit(
feature,
Expand All @@ -60,7 +63,8 @@ public static ParsedSplit createParsedSplitForTests(
algo,
null,
flagSets,
impressionsDisabled
impressionsDisabled,
prerequisites
);
}

Expand All @@ -75,7 +79,8 @@ public static ParsedSplit createParsedSplitForTests(
int algo,
Map<String, String> configurations,
HashSet<String> flagSets,
boolean impressionsDisabled
boolean impressionsDisabled,
List<Prerequisites> prerequisites
) {
return new ParsedSplit(
feature,
Expand All @@ -90,7 +95,8 @@ public static ParsedSplit createParsedSplitForTests(
algo,
configurations,
flagSets,
impressionsDisabled
impressionsDisabled,
prerequisites
);
}

Expand All @@ -107,7 +113,8 @@ public ParsedSplit(
int algo,
Map<String, String> configurations,
HashSet<String> flagSets,
boolean impressionsDisabled
boolean impressionsDisabled,
List<Prerequisites> prerequisites
) {
_split = feature;
_seed = seed;
Expand All @@ -125,6 +132,7 @@ public ParsedSplit(
_configurations = configurations;
_flagSets = flagSets;
_impressionsDisabled = impressionsDisabled;
_prerequisites = prerequisites;
}

public String feature() {
Expand Down Expand Up @@ -171,6 +179,7 @@ public Map<String, String> configurations() {
public boolean impressionsDisabled() {
return _impressionsDisabled;
}
public List<Prerequisites> prerequisites() { return _prerequisites; }

@Override
public int hashCode() {
Expand Down Expand Up @@ -205,7 +214,8 @@ public boolean equals(Object obj) {
&& _changeNumber == other._changeNumber
&& _algo == other._algo
&& _configurations == null ? other._configurations == null : _configurations.equals(other._configurations)
&& _impressionsDisabled == other._impressionsDisabled;
&& _impressionsDisabled == other._impressionsDisabled
&& _prerequisites == other._prerequisites;
}

@Override
Expand All @@ -231,6 +241,9 @@ public String toString() {
bldr.append(_configurations);
bldr.append(", impressionsDisabled:");
bldr.append(_impressionsDisabled);
bldr.append(", prerequisites:");
bldr.append(_prerequisites);

return bldr.toString();

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ private ParsedSplit parseWithoutExceptionHandling(Split split) {
split.algo,
split.configurations,
split.sets,
split.impressionsDisabled);
split.impressionsDisabled,
split.prerequisites);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ public void kill(String splitName, String defaultTreatment, long changeNumber) {
parsedSplit.algo(),
parsedSplit.configurations(),
parsedSplit.flagSets(),
parsedSplit.impressionsDisabled()
parsedSplit.impressionsDisabled(),
parsedSplit.prerequisites()
);

_concurrentMap.put(splitName, updatedSplit);
Expand Down
Loading