Skip to content

Commit f3b09f5

Browse files
committed
self review
1 parent 4610e6f commit f3b09f5

2 files changed

Lines changed: 73 additions & 79 deletions

File tree

lib/sdk/server/src/main/java/com/launchdarkly/sdk/server/DataSourceUpdatesImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -368,9 +368,7 @@ private void onTimeout() {
368368
private static String describeErrorCount(Map.Entry<ErrorInfo, Integer> entry) {
369369
return entry.getKey() + " (" + entry.getValue() + (entry.getValue() == 1 ? " time" : " times") + ")";
370370
}
371-
372-
// ===== ITransactionalDataSourceUpdates methods =====
373-
371+
374372
@Override
375373
public boolean apply(ChangeSet<ItemDescriptor> changeSet) {
376374
if (store instanceof TransactionalDataStore) {

lib/sdk/server/src/test/java/com/launchdarkly/sdk/server/DataSourceUpdatesImplTest.java

Lines changed: 72 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,78 @@ private static ChangeSet<ItemDescriptor> makePartialChangeSet(FeatureFlag... fla
158158
null
159159
);
160160
}
161-
162-
// ===== Tests =====
161+
162+
private static class LegacyDataStore implements DataStore {
163+
private final Map<DataKind, Map<String, ItemDescriptor>> data = new HashMap<>();
164+
165+
@Override
166+
public void init(FullDataSet<ItemDescriptor> allData) {
167+
data.clear();
168+
for (Map.Entry<DataKind, KeyedItems<ItemDescriptor>> kindEntry : allData.getData()) {
169+
DataKind kind = kindEntry.getKey();
170+
Map<String, ItemDescriptor> items = new HashMap<>();
171+
for (Map.Entry<String, ItemDescriptor> itemEntry : kindEntry.getValue().getItems()) {
172+
items.put(itemEntry.getKey(), itemEntry.getValue());
173+
}
174+
data.put(kind, items);
175+
}
176+
}
177+
178+
@Override
179+
public boolean upsert(DataKind kind, String key, ItemDescriptor item) {
180+
Map<String, ItemDescriptor> items = data.get(kind);
181+
if (items == null) {
182+
items = new HashMap<>();
183+
data.put(kind, items);
184+
}
185+
186+
ItemDescriptor oldItem = items.get(key);
187+
if (oldItem != null && oldItem.getVersion() >= item.getVersion()) {
188+
return false;
189+
}
190+
191+
items.put(key, item);
192+
return true;
193+
}
194+
195+
@Override
196+
public ItemDescriptor get(DataKind kind, String key) {
197+
Map<String, ItemDescriptor> items = data.get(kind);
198+
if (items != null) {
199+
return items.get(key);
200+
}
201+
return null;
202+
}
203+
204+
@Override
205+
public KeyedItems<ItemDescriptor> getAll(DataKind kind) {
206+
Map<String, ItemDescriptor> items = data.get(kind);
207+
if (items != null) {
208+
return new KeyedItems<>(ImmutableList.copyOf(items.entrySet()));
209+
}
210+
return new KeyedItems<>(ImmutableList.of());
211+
}
212+
213+
@Override
214+
public boolean isInitialized() {
215+
return !data.isEmpty();
216+
}
217+
218+
@Override
219+
public boolean isStatusMonitoringEnabled() {
220+
return false;
221+
}
222+
223+
@Override
224+
public DataStoreStatusProvider.CacheStats getCacheStats() {
225+
return null;
226+
}
227+
228+
@Override
229+
public void close() throws IOException {
230+
// No-op
231+
}
232+
}
163233

164234
@Test
165235
public void sendsEventsOnInitForNewlyAddedFlags() throws Exception {
@@ -823,80 +893,6 @@ public void applyPartialChangeSetSendsEventsForFlagsWhoseSegmentsChanged() throw
823893
expectEvents(eventSink, "flag2", "flag4");
824894
}
825895

826-
// Tests for legacy (non-transactional) data store path
827-
828-
private static class LegacyDataStore implements DataStore {
829-
private final Map<DataKind, Map<String, ItemDescriptor>> data = new HashMap<>();
830-
831-
@Override
832-
public void init(FullDataSet<ItemDescriptor> allData) {
833-
data.clear();
834-
for (Map.Entry<DataKind, KeyedItems<ItemDescriptor>> kindEntry : allData.getData()) {
835-
DataKind kind = kindEntry.getKey();
836-
Map<String, ItemDescriptor> items = new HashMap<>();
837-
for (Map.Entry<String, ItemDescriptor> itemEntry : kindEntry.getValue().getItems()) {
838-
items.put(itemEntry.getKey(), itemEntry.getValue());
839-
}
840-
data.put(kind, items);
841-
}
842-
}
843-
844-
@Override
845-
public boolean upsert(DataKind kind, String key, ItemDescriptor item) {
846-
Map<String, ItemDescriptor> items = data.get(kind);
847-
if (items == null) {
848-
items = new HashMap<>();
849-
data.put(kind, items);
850-
}
851-
852-
ItemDescriptor oldItem = items.get(key);
853-
if (oldItem != null && oldItem.getVersion() >= item.getVersion()) {
854-
return false;
855-
}
856-
857-
items.put(key, item);
858-
return true;
859-
}
860-
861-
@Override
862-
public ItemDescriptor get(DataKind kind, String key) {
863-
Map<String, ItemDescriptor> items = data.get(kind);
864-
if (items != null) {
865-
return items.get(key);
866-
}
867-
return null;
868-
}
869-
870-
@Override
871-
public KeyedItems<ItemDescriptor> getAll(DataKind kind) {
872-
Map<String, ItemDescriptor> items = data.get(kind);
873-
if (items != null) {
874-
return new KeyedItems<>(ImmutableList.copyOf(items.entrySet()));
875-
}
876-
return new KeyedItems<>(ImmutableList.of());
877-
}
878-
879-
@Override
880-
public boolean isInitialized() {
881-
return !data.isEmpty();
882-
}
883-
884-
@Override
885-
public boolean isStatusMonitoringEnabled() {
886-
return false;
887-
}
888-
889-
@Override
890-
public DataStoreStatusProvider.CacheStats getCacheStats() {
891-
return null;
892-
}
893-
894-
@Override
895-
public void close() throws IOException {
896-
// No-op
897-
}
898-
}
899-
900896
@Test
901897
public void applyFullChangeSetToLegacyStoreCallsInit() throws Exception {
902898
LegacyDataStore legacyStore = new LegacyDataStore();

0 commit comments

Comments
 (0)