Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
19d9c02
chore: adds fdv2 payload parsing and protocol handling
tanderson-ld Jan 12, 2026
fbea872
adding package info files and fixing package name issue
tanderson-ld Jan 12, 2026
adcaa0e
more checkstyle fixes
tanderson-ld Jan 12, 2026
f2b209d
chore: Add interfaces for synchronizer/initializer.
kinyoklion Jan 13, 2026
8c115cc
Merge branch 'main' into rlamb/add-fdv2-data-source-interfaces
kinyoklion Jan 13, 2026
de2fded
Revert version change
kinyoklion Jan 13, 2026
98d3b39
feat: Add FDv2 polling support.
kinyoklion Jan 13, 2026
da3c639
Merge remote-tracking branch 'origin' into rlamb/add-fdv2-data-source…
kinyoklion Jan 13, 2026
8fb88ed
WIP: Polling initializer/synchronizer.
kinyoklion Jan 14, 2026
da27015
Use updated internal lib.
kinyoklion Jan 14, 2026
aba46ef
Update comment
kinyoklion Jan 14, 2026
7401331
Add termination.
kinyoklion Jan 14, 2026
bba0cdc
Remove test file that isn't ready.
kinyoklion Jan 14, 2026
89bd017
Polling tests and some fixes.
kinyoklion Jan 14, 2026
228f3e6
Try pre block.
kinyoklion Jan 14, 2026
9469b23
Add streaming path.
kinyoklion Jan 14, 2026
9a450e6
Merge branch 'main' of github.com:launchdarkly/java-core into rlamb/a…
kinyoklion Jan 14, 2026
4b8313b
Use the DataStoreTypes.ChangeSet type for data source results.
kinyoklion Jan 14, 2026
31eb13e
Make iterable async queue package private.
kinyoklion Jan 14, 2026
4a2fe3b
Revert Version.java
kinyoklion Jan 14, 2026
3428591
Add comments to SelectorSource.
kinyoklion Jan 14, 2026
ff60216
Revert build.gradle.
kinyoklion Jan 14, 2026
e985f80
Update launchdarklyJavaSdkInternal version to 1.6.1
kinyoklion Jan 14, 2026
a956484
Move mermaid out of doc comment.
kinyoklion Jan 14, 2026
ff2376e
Merge branch 'rlamb/add-fdv2-data-source-interfaces' of github.com:la…
kinyoklion Jan 14, 2026
376bb1f
chore: Add streaming synchronizer.
kinyoklion Jan 14, 2026
194c30c
PR feedback.
kinyoklion Jan 14, 2026
707fe0e
Implement more shutdown logic.
kinyoklion Jan 14, 2026
cb79f5e
Change null check.
kinyoklion Jan 14, 2026
6702239
Merge branch 'rlamb/add-fdv2-data-source-interfaces' into rlamb/strea…
kinyoklion Jan 14, 2026
0aba424
chore: Implement streaming synchronizer.
kinyoklion Jan 14, 2026
49c6008
Merge remote-tracking branch 'origin' into rlamb/streaming-synchronizer
kinyoklion Jan 15, 2026
b429eba
Basic streaming synchronizer.
kinyoklion Jan 15, 2026
278f670
Extend test coverage
kinyoklion Jan 15, 2026
84be62d
Add payload filter and more testing.
kinyoklion Jan 16, 2026
ec609a5
Add comments to FDv2 data source interfaces.
kinyoklion Jan 16, 2026
3461149
Remove extra blank lines
kinyoklion Jan 16, 2026
b32d3ca
Revert requestor change
kinyoklion Jan 16, 2026
97ac7c4
Remove leftover file.
kinyoklion Jan 16, 2026
7c84a68
Extend polling tests for INTERNAL_ERROR
kinyoklion Jan 16, 2026
9c43cbb
Handle close before start.
kinyoklion Jan 16, 2026
a383fc9
Threading and tests.
kinyoklion Jan 16, 2026
9c1c4c4
Update documentation.
kinyoklion Jan 16, 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 @@ -124,8 +124,20 @@ protected CompletableFuture<FDv2SourceResult> poll(Selector selector, boolean on
case NONE:
break;
case INTERNAL_ERROR: {
FDv2ProtocolHandler.FDv2ActionInternalError internalErrorAction = (FDv2ProtocolHandler.FDv2ActionInternalError) res;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gap identified working on streaming.

DataSourceStatusProvider.ErrorKind kind = DataSourceStatusProvider.ErrorKind.UNKNOWN;
switch (internalErrorAction.getErrorType()) {
case MISSING_PAYLOAD:
case JSON_ERROR:
kind = DataSourceStatusProvider.ErrorKind.INVALID_DATA;
break;
case UNKNOWN_EVENT:
case IMPLEMENTATION_ERROR:
case PROTOCOL_ERROR:
break;
}
DataSourceStatusProvider.ErrorInfo info = new DataSourceStatusProvider.ErrorInfo(
DataSourceStatusProvider.ErrorKind.UNKNOWN,
kind,
0,
"Internal error occurred during polling",
new Date().toInstant());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ public PollingSynchronizerImpl(
private void doPoll() {
try {
FDv2SourceResult res = poll(selectorSource.getSelector(), false).get();
switch(res.getResultType()) {
boolean shouldShutdown = false;
switch (res.getResultType()) {
case CHANGE_SET:
break;
case STATUS:
switch(res.getStatus().getState()) {
switch (res.getStatus().getState()) {
case INTERRUPTED:
break;
case SHUTDOWN:
Expand All @@ -54,6 +55,7 @@ private void doPoll() {
task.cancel(true);
}
internalShutdown();
shouldShutdown = true;
break;
case GOODBYE:
// We don't need to take any action, as the connection for the poll
Expand All @@ -63,7 +65,11 @@ private void doPoll() {
}
break;
}
resultQueue.put(res);
if (shouldShutdown) {
shutdownFuture.complete(res);
} else {
resultQueue.put(res);
}
} catch (InterruptedException | ExecutionException e) {
// TODO: Determine if handling is needed.
}
Expand Down
Loading
Loading