Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
42d4219
WIP
gthea Jan 5, 2026
bcb4c5e
Fix javadoc
gthea Jan 5, 2026
7fe76b5
Add missing tests
gthea Jan 6, 2026
9b93aad
Update README
gthea Jan 6, 2026
610bafe
Test
gthea Jan 6, 2026
bacaffe
API changes
gthea Jan 7, 2026
78e2141
Domain changes
gthea Jan 7, 2026
2e65c56
Update tests
gthea Jan 7, 2026
dd00b28
Add missing tests
gthea Jan 7, 2026
bf50533
Fix segments clearance
gthea Jan 7, 2026
a4cbcd1
Merge branch 'FME-11237_baseline' into FME-12217-segments
gthea Jan 7, 2026
fe4a8ac
RBS metadata
gthea Jan 7, 2026
e77fcc9
Merge branch 'FME-12217-segments' into FME-12217-segments_2
gthea Jan 7, 2026
45d4884
Style fixes
gthea Jan 7, 2026
e856ee3
Merge branch 'FME-11237_baseline' into FME-12217-segments_2
gthea Jan 7, 2026
783f72c
Fix test
gthea Jan 7, 2026
3a423e4
Non null names in metadata
gthea Jan 7, 2026
83426cc
Fix tests
gthea Jan 8, 2026
6ca4e09
Remove usage of public types in events domain
gthea Jan 8, 2026
cbc1a23
Add missing tests
gthea Jan 8, 2026
2943422
Update test comments
gthea Jan 8, 2026
3941804
Segments updated
gthea Jan 8, 2026
1d9be33
Merge branch 'FME-11237_baseline' into FME-12217-segments_3
gthea Jan 8, 2026
15a9d99
Fix tests
gthea Jan 9, 2026
18aa166
Simultaneous membership update test
gthea Jan 9, 2026
e566d15
Remove duplication
gthea Jan 9, 2026
2941c8c
Update tests
gthea Jan 9, 2026
d14b69b
Refactor segments change checker
gthea Jan 9, 2026
bd38dbc
Flag names only
gthea Jan 12, 2026
b078793
Update version
gthea Jan 12, 2026
3bb3556
Fix test
gthea Jan 13, 2026
440e780
Merge branch 'FME-11237_baseline' into FME-12217-segments_3
gthea Jan 13, 2026
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 @@ -19,12 +19,16 @@ public final class SdkUpdateMetadata {
public enum Type {
/**
* Feature flags were updated.
* <p>
* {@link #getNames()} returns the list of flag names that changed.
*/
FLAGS_UPDATE,

/**
* Rule-based segments were updated.
* Segments were updated (rule-based segments, memberships, or large segments).
* <p>
* Note: {@link #getNames()} always returns an empty list for this type.
* Segment names are not included in the metadata.
*/
SEGMENTS_UPDATE
}
Expand Down Expand Up @@ -59,10 +63,10 @@ public Type getType() {
/**
* Returns the list of entity names that changed in this update.
* <p>
* For {@link Type#FLAGS_UPDATE}, this contains flag names.
* For {@link Type#SEGMENTS_UPDATE}, this contains rule-based segment names.
* For {@link Type#FLAGS_UPDATE}, this contains flag names that were updated.
* For {@link Type#SEGMENTS_UPDATE}, this is always an empty list (segment names are not included).
*
* @return the list of updated entity names, never null (empty list if none)
* @return the list of updated entity names, never null (empty list for SEGMENTS_UPDATE or if none)
*/
@NonNull
public List<String> getNames() {
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ apply plugin: 'com.vanniktech.maven.publish'
apply from: "$rootDir/gradle/jacoco-root.gradle"

ext {
splitVersion = '5.5.0-rc5'
splitVersion = '5.5.0-rc6'
jacocoVersion = '0.8.8'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import androidx.annotation.Nullable;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;

Expand Down Expand Up @@ -31,15 +32,16 @@ public static EventMetadata createUpdatedFlagsMetadata(List<String> updatedFlagN
}

/**
* Creates metadata for SDK_UPDATE events when rule-based segments are updated.
* Creates metadata for SDK_UPDATE events when segments are updated.
* <p>
* SEGMENTS_UPDATE always has empty names - segment names are not included in the metadata.
*
* @param updatedSegmentNames the list of rule-based segment names that were updated
* @return the event metadata with TYPE=SEGMENTS_UPDATE and NAMES containing the segment names
* @return the event metadata with TYPE=SEGMENTS_UPDATE and empty NAMES list
*/
public static EventMetadata createUpdatedSegmentsMetadata(List<String> updatedSegmentNames) {
public static EventMetadata createUpdatedSegmentsMetadata() {
return new EventMetadataBuilder()
.put(MetadataKeys.TYPE, MetadataKeys.TYPE_SEGMENTS_UPDATE)
.put(MetadataKeys.NAMES, new ArrayList<>(new HashSet<>(updatedSegmentNames)))
.put(MetadataKeys.NAMES, Collections.emptyList())
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,15 @@ public void convertForSdkUpdateConvertsFlagsMetadataCorrectly() {

@Test
public void convertForSdkUpdateConvertsSegmentsMetadataCorrectly() {
List<String> expectedSegments = Arrays.asList("segment1", "segment2");

EventMetadata eventMetadata = EventMetadataHelpers.createUpdatedSegmentsMetadata(expectedSegments);
// SEGMENTS_UPDATE always has empty names
EventMetadata eventMetadata = EventMetadataHelpers.createUpdatedSegmentsMetadata();

// Call conversion method
SdkUpdateMetadata converted = TypedTaskConverter.convertForSdkUpdate(eventMetadata);

assertNotNull(converted);
assertEquals(SdkUpdateMetadata.Type.SEGMENTS_UPDATE, converted.getType());
assertEquals(expectedSegments.size(), converted.getNames().size());
assertTrue(converted.getNames().containsAll(expectedSegments));
assertTrue("Names should be empty for SEGMENTS_UPDATE", converted.getNames().isEmpty());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,16 @@ public void createUpdatedFlagsMetadataContainsTypeAndNames() {
// Tests for createUpdatedSegmentsMetadata
@Test
@SuppressWarnings("unchecked")
public void createUpdatedSegmentsMetadataContainsTypeAndNames() {
List<String> segments = Arrays.asList("segment1", "segment2");
EventMetadata metadata = EventMetadataHelpers.createUpdatedSegmentsMetadata(segments);
public void createUpdatedSegmentsMetadataContainsTypeAndEmptyNames() {
EventMetadata metadata = EventMetadataHelpers.createUpdatedSegmentsMetadata();

assertTrue(metadata.containsKey(MetadataKeys.TYPE));
assertEquals(MetadataKeys.TYPE_SEGMENTS_UPDATE, metadata.get(MetadataKeys.TYPE));

// Check names
// Check names - should always be empty
assertTrue(metadata.containsKey(MetadataKeys.NAMES));
List<String> result = (List<String>) metadata.get(MetadataKeys.NAMES);
assertEquals(2, result.size());
assertTrue(result.contains("segment1"));
assertTrue(result.contains("segment2"));
assertTrue("Names should be empty for SEGMENTS_UPDATE", result.isEmpty());
}

// Tests for createReadyMetadata
Expand Down
Loading
Loading