Skip to content

Commit 2330cff

Browse files
Fixes on tests and final refactor.
1 parent f1bd3fc commit 2330cff

25 files changed

+319
-712
lines changed

client/src/main/java/io/split/cache/SegmentCacheInMemoryImpMauro.java

Lines changed: 0 additions & 58 deletions
This file was deleted.
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.split.cache;
22

33
import com.google.common.collect.Maps;
4-
import io.split.engine.segments.SegmentImplementation;
4+
import io.split.engine.segments.SegmentImp;
55
import org.slf4j.Logger;
66
import org.slf4j.LoggerFactory;
77

@@ -15,32 +15,32 @@
1515
public class SegmentCacheInMemoryImpl implements SegmentCache {
1616
private static final Logger _log = LoggerFactory.getLogger(SegmentCacheInMemoryImpl.class);
1717
private static final long DEFAULT_CHANGE_NUMBER = -1l;
18-
private final ConcurrentMap<String, SegmentImplementation> _segmentFetchers = Maps.newConcurrentMap();
18+
private final ConcurrentMap<String, SegmentImp> _segments = Maps.newConcurrentMap();
1919

2020
public SegmentCacheInMemoryImpl(){};
2121

2222
@Override
2323
public void updateSegment(String segmentName, List<String> toAdd, List<String> toRemove) {
24-
if(_segmentFetchers.get(segmentName) == null){
25-
_segmentFetchers.put(segmentName, new SegmentImplementation(DEFAULT_CHANGE_NUMBER, segmentName,toAdd));
24+
if(_segments.get(segmentName) == null){
25+
_segments.put(segmentName, new SegmentImp(DEFAULT_CHANGE_NUMBER, segmentName,toAdd));
2626
}
2727

28-
_segmentFetchers.get(segmentName).updateSegment(toAdd,toRemove);
28+
_segments.get(segmentName).update(toAdd,toRemove);
2929
}
3030

3131
@Override
3232
public boolean isInSegment(String segmentName, String key) {
33-
if(_segmentFetchers.get(segmentName) == null){
33+
if(_segments.get(segmentName) == null){
3434
_log.error("Segment " + segmentName + "Not founded.");
3535
return false;
3636
}
37-
return _segmentFetchers.get(segmentName).contains(key);
37+
return _segments.get(segmentName).contains(key);
3838
}
3939

4040
@Override
4141
public void setChangeNumber(String segmentName, long changeNumber) {
42-
if(_segmentFetchers.get(segmentName) != null){
43-
_segmentFetchers.get(segmentName).setChangeNumber(changeNumber);
42+
if(_segments.get(segmentName) != null){
43+
_segments.get(segmentName).setChangeNumber(changeNumber);
4444
}
4545
else{
4646
_log.error("Segment " + segmentName + "Not founded.");
@@ -49,15 +49,15 @@ public void setChangeNumber(String segmentName, long changeNumber) {
4949

5050
@Override
5151
public long getChangeNumber(String segmentName) {
52-
if(_segmentFetchers.get(segmentName) == null){
52+
if(_segments.get(segmentName) == null){
5353
_log.error("Segment " + segmentName + "Not founded.");
5454
return DEFAULT_CHANGE_NUMBER;
5555
}
56-
return _segmentFetchers.get(segmentName).changeNumber();
56+
return _segments.get(segmentName).getChangeNumber();
5757
}
5858

5959
@Override
6060
public void clear() {
61-
_segmentFetchers.clear();
61+
_segments.clear();
6262
}
6363
}

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@
2222
import io.split.engine.experiments.SplitSynchronizationTask;
2323
import io.split.engine.experiments.SplitChangeFetcher;
2424
import io.split.engine.experiments.SplitParser;
25-
import io.split.engine.segments.RefreshableSegmentFetcher;
2625
import io.split.engine.segments.SegmentChangeFetcher;
2726
import io.split.cache.SegmentCache;
2827
import io.split.cache.SegmentCacheInMemoryImpl;
29-
import io.split.engine.segments.SegmentSynchronizationTaskMauro;
28+
import io.split.engine.segments.SegmentSynchronizationTaskImp;
3029
import io.split.integrations.IntegrationsConfig;
3130
import org.apache.hc.client5.http.auth.AuthScope;
3231
import org.apache.hc.client5.http.auth.Credentials;
@@ -111,12 +110,13 @@ public SplitFactoryImpl(String apiToken, SplitClientConfig config) throws URISyn
111110
SegmentChangeFetcher segmentChangeFetcher = HttpSegmentChangeFetcher.create(httpclient, rootTarget, uncachedFireAndForget);
112111
//This segmentCache is for inMemory Storage (the only one supported by java-client for the moment
113112
SegmentCache segmentCache = new SegmentCacheInMemoryImpl();
114-
final SegmentSynchronizationTaskMauro segmentSynchronizationTaskMauro = new SegmentSynchronizationTaskMauro(segmentChangeFetcher,
113+
final SegmentSynchronizationTaskImp segmentSynchronizationTaskImp = new SegmentSynchronizationTaskImp(segmentChangeFetcher,
115114
findPollingPeriod(RANDOM, config.segmentsRefreshRate()),
116115
config.numThreadsForSegmentFetch(),
117-
gates);
116+
gates,
117+
segmentCache);
118118

119-
SplitParser splitParser = new SplitParser(segmentFetcher);
119+
SplitParser splitParser = new SplitParser(segmentSynchronizationTaskImp, segmentCache);
120120

121121
// Feature Changes
122122
SplitChangeFetcher splitChangeFetcher = HttpSplitChangeFetcher.create(httpclient, rootTarget, uncachedFireAndForget);
@@ -146,7 +146,7 @@ public SplitFactoryImpl(String apiToken, SplitClientConfig config) throws URISyn
146146
final EventClient eventClient = EventClientImpl.create(httpclient, eventsRootTarget, config.eventsQueueSize(), config.eventFlushIntervalInMillis(), config.waitBeforeShutdown());
147147

148148
// SyncManager
149-
final SyncManager syncManager = SyncManagerImp.build(config.streamingEnabled(), splitSynchronizationTask, splitFetcher, segmentSynchronizationTaskMauro, splitCache, config.authServiceURL(), httpclient, config.streamingServiceURL(), config.authRetryBackoffBase(), buildSSEdHttpClient(config), segmentCache);
149+
final SyncManager syncManager = SyncManagerImp.build(config.streamingEnabled(), splitSynchronizationTask, splitFetcher, segmentSynchronizationTaskImp, splitCache, config.authServiceURL(), httpclient, config.streamingServiceURL(), config.authRetryBackoffBase(), buildSSEdHttpClient(config), segmentCache);
150150
syncManager.start();
151151

152152
// Evaluator
@@ -156,7 +156,7 @@ public SplitFactoryImpl(String apiToken, SplitClientConfig config) throws URISyn
156156
public void run() {
157157
_log.info("Shutdown called for split");
158158
try {
159-
segmentSynchronizationTaskMauro.close();
159+
segmentSynchronizationTaskImp.close();
160160
_log.info("Successful shutdown of segment fetchers");
161161
splitSynchronizationTask.close();
162162
_log.info("Successful shutdown of splits");

client/src/main/java/io/split/client/jmx/SplitJmxMonitor.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import io.split.cache.SplitCache;
66
import io.split.engine.experiments.SplitFetcher;
77
import io.split.engine.segments.SegmentFetcher;
8-
import io.split.engine.segments.SegmentFetcherImpMauro;
9-
import io.split.engine.segments.SegmentSynchronizationTaskMauro;
8+
import io.split.engine.segments.SegmentFetcherImp;
9+
import io.split.engine.segments.SegmentSynchronizationTaskImp;
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212

@@ -23,15 +23,15 @@ public class SplitJmxMonitor implements SplitJmxMonitorMBean {
2323
private final SplitFetcher _featureFetcher;
2424
private final SplitCache _splitCache;
2525
//private final SegmentFetcher _segmentFetcher;
26-
private final SegmentSynchronizationTaskMauro _segmentSynchronizationTaskMauro;
26+
private final SegmentSynchronizationTaskImp _segmentSynchronizationTaskImp;
2727
private SegmentCache _segmentCache;
2828

29-
public SplitJmxMonitor(SplitClient splitClient, SplitFetcher featureFetcher, SplitCache splitCache, SegmentFetcher segmentFetcher, SegmentSynchronizationTaskMauro segmentSynchronizationTaskMauro) {
29+
public SplitJmxMonitor(SplitClient splitClient, SplitFetcher featureFetcher, SplitCache splitCache, SegmentFetcher segmentFetcher, SegmentSynchronizationTaskImp segmentSynchronizationTaskImp) {
3030
_client = checkNotNull(splitClient);
3131
_featureFetcher = checkNotNull(featureFetcher);
3232
_splitCache = checkNotNull(splitCache);
3333
//_segmentFetcher = checkNotNull(segmentFetcher);
34-
_segmentSynchronizationTaskMauro = segmentSynchronizationTaskMauro;
34+
_segmentSynchronizationTaskImp = segmentSynchronizationTaskImp;
3535
}
3636

3737
@Override
@@ -43,8 +43,7 @@ public boolean forceSyncFeatures() {
4343

4444
@Override
4545
public boolean forceSyncSegment(String segmentName) {
46-
//_segmentFetcher.segment(segmentName).forceRefresh();
47-
SegmentFetcherImpMauro fetcher = _segmentSynchronizationTaskMauro.getFetcher(segmentName);
46+
SegmentFetcher fetcher = _segmentSynchronizationTaskImp.getFetcher(segmentName);
4847
fetcher.fetch();
4948

5049
_log.info("Segment " + segmentName + " successfully refreshed via JMX");

client/src/main/java/io/split/engine/common/SyncManagerImp.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
import io.split.cache.SplitCache;
77
import io.split.engine.experiments.SplitFetcherImp;
88
import io.split.engine.experiments.SplitSynchronizationTask;
9-
import io.split.engine.segments.RefreshableSegmentFetcher;
10-
import io.split.engine.segments.SegmentSynchronizationTaskMauro;
9+
import io.split.engine.segments.SegmentSynchronizationTaskImp;
1110
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
1211
import org.slf4j.Logger;
1312
import org.slf4j.LoggerFactory;
@@ -50,7 +49,7 @@ public class SyncManagerImp implements SyncManager {
5049
public static SyncManagerImp build(boolean streamingEnabledConfig,
5150
SplitSynchronizationTask splitSynchronizationTask,
5251
SplitFetcherImp splitFetcher,
53-
SegmentSynchronizationTaskMauro segmentSynchronizationTaskMauro,
52+
SegmentSynchronizationTaskImp segmentSynchronizationTaskImp,
5453
SplitCache splitCache,
5554
String authUrl,
5655
CloseableHttpClient httpClient,
@@ -59,7 +58,7 @@ public static SyncManagerImp build(boolean streamingEnabledConfig,
5958
CloseableHttpClient sseHttpClient,
6059
SegmentCache segmentCache) {
6160
LinkedBlockingQueue<PushManager.Status> pushMessages = new LinkedBlockingQueue<>();
62-
Synchronizer synchronizer = new SynchronizerImp(splitSynchronizationTask, splitFetcher, segmentSynchronizationTaskMauro, splitCache, segmentCache);
61+
Synchronizer synchronizer = new SynchronizerImp(splitSynchronizationTask, splitFetcher, segmentSynchronizationTaskImp, splitCache, segmentCache);
6362
PushManager pushManager = PushManagerImp.build(synchronizer, streamingServiceUrl, authUrl, httpClient, authRetryBackOffBase, pushMessages, sseHttpClient);
6463
return new SyncManagerImp(streamingEnabledConfig, synchronizer, pushManager, pushMessages);
6564
}

client/src/main/java/io/split/engine/common/SynchronizerImp.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import io.split.cache.SplitCache;
77
import io.split.engine.experiments.SplitFetcherImp;
88
import io.split.engine.experiments.SplitSynchronizationTask;
9-
import io.split.engine.segments.SegmentFetcherImpMauro;
10-
import io.split.engine.segments.SegmentSynchronizationTaskMauro;
9+
import io.split.engine.segments.SegmentFetcher;
10+
import io.split.engine.segments.SegmentFetcherImp;
11+
import io.split.engine.segments.SegmentSynchronizationTask;
12+
import io.split.engine.segments.SegmentSynchronizationTaskImp;
1113
import org.slf4j.Logger;
1214
import org.slf4j.LoggerFactory;
1315

@@ -23,19 +25,19 @@ public class SynchronizerImp implements Synchronizer {
2325

2426
private final SplitSynchronizationTask _splitSynchronizationTask;
2527
private final SplitFetcherImp _splitFetcher;
26-
private final SegmentSynchronizationTaskMauro _segmentSynchronizationTaskMauro;
28+
private final SegmentSynchronizationTask _segmentSynchronizationTaskImp;
2729
private final ScheduledExecutorService _syncAllScheduledExecutorService;
2830
private final SplitCache _splitCache;
2931
private final SegmentCache _segmentCache;
3032

3133
public SynchronizerImp(SplitSynchronizationTask splitSynchronizationTask,
3234
SplitFetcherImp splitFetcher,
33-
SegmentSynchronizationTaskMauro segmentSynchronizationTaskMauro,
35+
SegmentSynchronizationTask segmentSynchronizationTaskImp,
3436
SplitCache splitCache,
3537
SegmentCache segmentCache) {
3638
_splitSynchronizationTask = checkNotNull(splitSynchronizationTask);
3739
_splitFetcher = checkNotNull(splitFetcher);
38-
_segmentSynchronizationTaskMauro = checkNotNull(segmentSynchronizationTaskMauro);
40+
_segmentSynchronizationTaskImp = checkNotNull(segmentSynchronizationTaskImp);
3941
_splitCache = checkNotNull(splitCache);
4042
_segmentCache = checkNotNull(segmentCache);
4143

@@ -50,22 +52,22 @@ public SynchronizerImp(SplitSynchronizationTask splitSynchronizationTask,
5052
public void syncAll() {
5153
_syncAllScheduledExecutorService.schedule(() -> {
5254
_splitFetcher.run();
53-
_segmentSynchronizationTaskMauro.run();
55+
_segmentSynchronizationTaskImp.run();
5456
}, 0, TimeUnit.SECONDS);
5557
}
5658

5759
@Override
5860
public void startPeriodicFetching() {
5961
_log.debug("Starting Periodic Fetching ...");
6062
_splitSynchronizationTask.startPeriodicFetching();
61-
_segmentSynchronizationTaskMauro.startPeriodicFetching();
63+
_segmentSynchronizationTaskImp.startPeriodicFetching();
6264
}
6365

6466
@Override
6567
public void stopPeriodicFetching() {
6668
_log.debug("Stop Periodic Fetching ...");
6769
_splitSynchronizationTask.stop();
68-
_segmentSynchronizationTaskMauro.stop();
70+
_segmentSynchronizationTaskImp.stop();
6971
}
7072

7173
@Override
@@ -86,7 +88,7 @@ public void localKillSplit(String splitName, String defaultTreatment, long newCh
8688
@Override
8789
public void refreshSegment(String segmentName, long changeNumber) {
8890
if (changeNumber > _segmentCache.getChangeNumber(segmentName)) {
89-
SegmentFetcherImpMauro fetcher = _segmentSynchronizationTaskMauro.getFetcher(segmentName);
91+
SegmentFetcher fetcher = _segmentSynchronizationTaskImp.getFetcher(segmentName);
9092
fetcher.fetch();
9193
}
9294
}

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@
2727
import io.split.engine.matchers.strings.RegularExpressionMatcher;
2828
import io.split.engine.matchers.strings.StartsWithAnyOfMatcher;
2929
import io.split.engine.matchers.strings.WhitelistMatcher;
30-
import io.split.engine.segments.Segment;
31-
import io.split.engine.segments.SegmentFetcher;
32-
import io.split.engine.segments.SegmentSynchronizationTaskMauro;
30+
import io.split.engine.segments.SegmentSynchronizationTask;
31+
import io.split.engine.segments.SegmentSynchronizationTaskImp;
3332
import org.slf4j.Logger;
3433
import org.slf4j.LoggerFactory;
3534

@@ -48,12 +47,12 @@ public final class SplitParser {
4847
public static final int CONDITIONS_UPPER_LIMIT = 50;
4948
private static final Logger _log = LoggerFactory.getLogger(SplitParser.class);
5049

51-
private final SegmentSynchronizationTaskMauro _segmentSynchronizationTaskMauro;
50+
private final SegmentSynchronizationTask _segmentSynchronizationTaskImp;
5251
private final SegmentCache _segmentCache;
5352

54-
public SplitParser(SegmentSynchronizationTaskMauro segmentSynchronizationTaskMauro,
53+
public SplitParser(SegmentSynchronizationTask segmentSynchronizationTaskImp,
5554
SegmentCache segmentCache) {
56-
_segmentSynchronizationTaskMauro = checkNotNull(segmentSynchronizationTaskMauro);
55+
_segmentSynchronizationTaskImp = checkNotNull(segmentSynchronizationTaskImp);
5756
_segmentCache = checkNotNull(segmentCache);
5857
}
5958

@@ -111,7 +110,7 @@ private AttributeMatcher toMatcher(Matcher matcher) {
111110
case IN_SEGMENT:
112111
checkNotNull(matcher.userDefinedSegmentMatcherData);
113112
String segmentName = matcher.userDefinedSegmentMatcherData.segmentName;
114-
_segmentSynchronizationTaskMauro.initializeSegment(segmentName);
113+
_segmentSynchronizationTaskImp.initializeSegment(segmentName);
115114
delegate = new UserDefinedSegmentMatcher(_segmentCache, segmentName);
116115
break;
117116
case WHITELIST:

0 commit comments

Comments
 (0)