Skip to content

Commit fb66059

Browse files
authored
Merge pull request #451 from splitio/SDKS-7676
[SDKS-7676] Add ThreadFactory in the config builder
2 parents 7c16859 + 7bd580b commit fb66059

File tree

3 files changed

+52
-26
lines changed

3 files changed

+52
-26
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -905,6 +905,17 @@ public Builder customStorageWrapper(CustomStorageWrapper customStorageWrapper) {
905905
return this;
906906
}
907907

908+
/**
909+
* Thread Factory
910+
*
911+
* @param threadFactory
912+
* @return this builder
913+
*/
914+
public Builder threadFactory(ThreadFactory threadFactory) {
915+
_threadFactory = threadFactory;
916+
return this;
917+
}
918+
908919
public SplitClientConfig build() {
909920
if (_featuresRefreshRate < 5 ) {
910921
throw new IllegalArgumentException("featuresRefreshRate must be >= 5: " + _featuresRefreshRate);

client/src/main/java/io/split/client/impressions/UniqueKeysTrackerImp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public synchronized boolean track(String featureFlagName, String key) {
5757
}
5858
value.add(key);
5959
uniqueKeysTracker.put(featureFlagName, value);
60-
_logger.debug("The feature flag" + featureFlagName + " and key " + key + " was added");
60+
_logger.debug("The feature flag " + featureFlagName + " and key " + key + " was added");
6161
if (uniqueKeysTracker.size() == MAX_AMOUNT_OF_TRACKED_UNIQUE_KEYS){
6262
_logger.warn("The UniqueKeysTracker size reached the maximum limit");
6363
try {

client/src/test/java/io/split/client/SplitClientConfigTest.java

Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package io.split.client;
22

3+
import com.google.common.util.concurrent.ThreadFactoryBuilder;
34
import io.split.client.impressions.Impression;
45
import io.split.client.impressions.ImpressionListener;
56
import io.split.client.impressions.ImpressionsManager;
67
import io.split.integrations.IntegrationsConfig;
7-
import org.hamcrest.Matchers;
88
import org.junit.Assert;
99
import org.junit.Test;
1010

@@ -15,14 +15,14 @@
1515
public class SplitClientConfigTest {
1616

1717
@Test(expected = IllegalArgumentException.class)
18-
public void cannot_set_feature_refresh_rate_to_less_than_5() {
18+
public void cannotSetFeatureRefreshRateToLessThan5() {
1919
SplitClientConfig.builder()
2020
.featuresRefreshRate(4)
2121
.build();
2222
}
2323

2424
@Test(expected = IllegalArgumentException.class)
25-
public void cannot_set_segment_refresh_rate_to_less_than_30() {
25+
public void cannotSetSegmentRefreshRateToLessThan30() {
2626
SplitClientConfig.builder()
2727
.segmentsRefreshRate(29)
2828
.build();
@@ -77,58 +77,62 @@ public void testImpressionRefreshRateConstraints() {
7777
}
7878

7979
@Test
80-
public void set_impression_refresh_rate_works() {
81-
SplitClientConfig.builder()
82-
.impressionsRefreshRate(1)
80+
public void setImpressionRefreshRateWorks() {
81+
SplitClientConfig config = SplitClientConfig.builder()
82+
.impressionsRefreshRate(65)
8383
.build();
84+
Assert.assertEquals(65, config.impressionsRefreshRate());
8485
}
8586

8687
@Test(expected = IllegalArgumentException.class)
87-
public void cannot_set_events_flush_rate_to_equal_to_1000() {
88+
public void cannotSetEventsFlushRateToEqualTo1000() {
8889
SplitClientConfig.builder()
8990
.eventFlushIntervalInMillis(999)
9091
.build();
9192
}
9293

9394
@Test
94-
public void events_flush_rate_works() {
95-
SplitClientConfig.builder()
95+
public void eventsFlushRateWorks() {
96+
SplitClientConfig config = SplitClientConfig.builder()
9697
.eventFlushIntervalInMillis(1000)
9798
.build();
99+
Assert.assertEquals(1000, config.eventSendIntervalInMillis());
98100
}
99101

100102
@Test(expected = IllegalArgumentException.class)
101-
public void cannot_set_metrics_refresh_rate_to_less_than_30() {
103+
public void cannotSetMetricsRefreshRateToLessThan30() {
102104
SplitClientConfig.builder()
103105
.metricsRefreshRate(29)
104106
.build();
105107
}
106108

107109
@Test
108-
public void can_set_refresh_rates_to__30() {
109-
SplitClientConfig.builder()
110+
public void canSetRefreshRatesTo30() {
111+
SplitClientConfig cfg = SplitClientConfig.builder()
110112
.featuresRefreshRate(30)
111113
.segmentsRefreshRate(30)
112-
.impressionsRefreshRate(30)
113-
.metricsRefreshRate(30)
114+
.impressionsRefreshRate(65)
115+
.metricsRefreshRate(65)
114116
.build();
117+
Assert.assertEquals(30, cfg.featuresRefreshRate());
118+
Assert.assertEquals(30, cfg.segmentsRefreshRate());
119+
Assert.assertEquals(65, cfg.impressionsRefreshRate());
120+
Assert.assertEquals(65, cfg.metricsRefreshRate());
115121
}
116122

117123
@Test
118-
public void config_does_not_crash_if_new_relic_class_not_present() {
124+
public void configDoesNotCrashIfNewRelicClassNotPresent() {
119125
SplitClientConfig cfg = SplitClientConfig.builder()
120126
.integrations(IntegrationsConfig.builder()
121127
.newRelicImpressionListener()
122128
.build())
123129
.build();
124130

125-
Assert.assertThat(
126-
cfg.integrationsConfig().getImpressionsListeners(IntegrationsConfig.Execution.SYNC).size(),
127-
is(equalTo(0)));
131+
Assert.assertEquals(0, cfg.integrationsConfig().getImpressionsListeners(IntegrationsConfig.Execution.SYNC).size());
128132
}
129133

130134
@Test
131-
public void old_impression_listener_config_still_works() {
135+
public void oldImpressionListenerConfigStillWorks() {
132136
SplitClientConfig cfg = SplitClientConfig.builder()
133137
.impressionListener(new ImpressionListener() {
134138
@Override
@@ -139,18 +143,16 @@ public void close() { /* noop */ }
139143
}, 1000)
140144
.build();
141145

142-
Assert.assertThat(
143-
cfg.integrationsConfig().getImpressionsListeners(IntegrationsConfig.Execution.ASYNC).size(),
144-
is(equalTo(1)));
146+
Assert.assertEquals(1, cfg.integrationsConfig().getImpressionsListeners(IntegrationsConfig.Execution.ASYNC).size());
145147
}
146148

147149
@Test
148150
public void testVersion() {
149151
SplitClientConfig config = SplitClientConfig.builder()
150152
.build();
151153

152-
Assert.assertThat(config.splitSdkVersion, Matchers.not(Matchers.equalTo("undefined")));
153-
Assert.assertThat(config.splitSdkVersion, Matchers.startsWith("java-"));
154+
Assert.assertNotEquals("undefined", config.splitSdkVersion);
155+
Assert.assertTrue(config.splitSdkVersion.startsWith("java-"));
154156
}
155157

156158
@Test(expected = IllegalArgumentException.class)
@@ -179,6 +181,7 @@ public void streamingReconnectBackoffBaseAllowed() {
179181
SplitClientConfig cfg = SplitClientConfig.builder()
180182
.streamingReconnectBackoffBase(1)
181183
.build();
184+
Assert.assertEquals(1, cfg.streamingReconnectBackoffBase());
182185
}
183186

184187
@Test
@@ -187,4 +190,16 @@ public void checkDefaultRateForFeatureAndSegment(){
187190
Assert.assertEquals(60, config.featuresRefreshRate());
188191
Assert.assertEquals(60, config.segmentsRefreshRate());
189192
}
190-
}
193+
194+
@Test
195+
public void threadFactoryNull() {
196+
SplitClientConfig config = SplitClientConfig.builder().build();
197+
Assert.assertNull(config.getThreadFactory());
198+
}
199+
200+
@Test
201+
public void threadFactoryNotNull() {
202+
SplitClientConfig config = SplitClientConfig.builder().threadFactory(new ThreadFactoryBuilder().build()).build();
203+
Assert.assertNotNull(config.getThreadFactory());
204+
}
205+
}

0 commit comments

Comments
 (0)