Skip to content

Commit c7ec7d4

Browse files
Merge pull request #77 from Flagsmith/release/5.0.3
Release 5.0.3
2 parents b9ce5d9 + 64ef2e5 commit c7ec7d4

4 files changed

Lines changed: 23 additions & 15 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.flagsmith</groupId>
88
<artifactId>flagsmith-java-client</artifactId>
9-
<version>5.0.2</version>
9+
<version>5.0.3</version>
1010
<packaging>jar</packaging>
1111

1212
<name>Flagsmith Java Client</name>

src/main/java/com/flagsmith/models/Flags.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ public BaseFlag getFlag(String featureName) throws FlagsmithClientError {
183183
if (analyticsProcessor != null && flag instanceof Flag) {
184184
Flag flagObj = (Flag) flag;
185185
if (flagObj.getFeatureId() != null) {
186-
analyticsProcessor.trackFeature(flagObj.getFeatureId());
186+
analyticsProcessor.trackFeature(flagObj.getFeatureName());
187187
}
188188
}
189189

src/main/java/com/flagsmith/threads/AnalyticsProcessor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class AnalyticsProcessor {
2121

2222
private final String analyticsEndpoint = "analytics/flags/";
2323
private Integer analyticsTimer = 10;
24-
private Map<Integer, Integer> analyticsData;
24+
private Map<String, Integer> analyticsData;
2525
@ToString.Exclude private FlagsmithSdk api;
2626
private Long nextFlush;
2727
private RequestProcessor requestProcessor;
@@ -63,7 +63,7 @@ public AnalyticsProcessor(FlagsmithSdk api, OkHttpClient client, FlagsmithLogger
6363
*/
6464
public AnalyticsProcessor(
6565
FlagsmithSdk api, FlagsmithLogger logger, RequestProcessor requestProcessor) {
66-
this.analyticsData = new HashMap<Integer, Integer>();
66+
this.analyticsData = new HashMap<String, Integer>();
6767
this.requestProcessor = requestProcessor;
6868
this.logger = logger;
6969
this.nextFlush = Instant.now().getEpochSecond() + analyticsTimer;
@@ -134,10 +134,10 @@ public void flush() {
134134

135135
/**
136136
* Track the feature usage for analytics.
137-
* @param featureId feature id
137+
* @param featureName name of the feature to track evaluation for
138138
*/
139-
public void trackFeature(Integer featureId) {
140-
analyticsData.put(featureId, analyticsData.getOrDefault(featureId, 0) + 1);
139+
public void trackFeature(String featureName) {
140+
analyticsData.put(featureName, analyticsData.getOrDefault(featureName, 0) + 1);
141141
if (nextFlush.compareTo(Instant.now().getEpochSecond()) < 0) {
142142
this.flush();
143143
}

src/test/java/com/flagsmith/threads/AnalyticsProcessorTest.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.testng.annotations.BeforeMethod;
2121
import org.testng.annotations.Test;
2222

23-
@Test(groups="unit")
23+
2424
public class AnalyticsProcessorTest {
2525

2626
private FlagsmithApiWrapper api;
@@ -48,31 +48,39 @@ public void init() {
4848
analytics = new AnalyticsProcessor(api, flagsmithLogger, requestProcessor);
4949
}
5050

51+
@Test(groups = "unit")
5152
public void AnalyticsProcessor_checkAnalyticsData() {
52-
analytics.trackFeature(1);
53-
Assert.assertTrue(analytics.getAnalyticsData().containsKey(1));
53+
String featureName = "foo";
54+
55+
analytics.trackFeature(featureName);
56+
Assert.assertTrue(analytics.getAnalyticsData().containsKey(featureName));
5457
Assert.assertEquals(analytics.getAnalyticsData().size(), 1);
5558

56-
analytics.trackFeature(1);
59+
analytics.trackFeature(featureName);
5760
Assert.assertEquals(analytics.getAnalyticsData().size(), 1);
58-
Assert.assertEquals(analytics.getAnalyticsData().get(1).intValue(), 2);
61+
Assert.assertEquals(analytics.getAnalyticsData().get(featureName).intValue(), 2);
5962
}
6063

64+
@Test(groups = "unit")
6165
public void AnalyticsProcessor_checkAnalyticsDataCheckFlushRuns() throws InterruptedException {
66+
String featureName = "foo";
6267
Long nextFlush = analytics.getNextFlush();
63-
analytics.trackFeature(1);
68+
analytics.trackFeature(featureName);
6469
Assert.assertEquals(nextFlush, analytics.getNextFlush());
6570
Thread.sleep(11000);
66-
analytics.trackFeature(1);
71+
analytics.trackFeature(featureName);
6772
Assert.assertEquals(analytics.getAnalyticsData().size(), 0);
6873
Assert.assertNotEquals(nextFlush, analytics.getNextFlush());
6974
verify(api, times(1)).newPostRequest(any(), any());
7075
verify(requestProcessor, times(1)).executeAsync(any(), any());
7176
}
7277

78+
@Test(groups = "unit")
7379
public void AnalyticsProcessor_checkAnalyticsRequestCheckFlushRuns() {
80+
String featureName = "foo";
81+
7482
Long nextFlush = analytics.getNextFlush();
75-
analytics.trackFeature(1);
83+
analytics.trackFeature(featureName);
7684
Assert.assertEquals(nextFlush, analytics.getNextFlush());
7785

7886
analytics.flush();

0 commit comments

Comments
 (0)