Repository navigation
[SDK-707] Replace request AsyncTask with SDK executor - #1096
Conversation
rtlsilva
left a comment
There was a problem hiding this comment.
The ticket says the full suite should contain no ShadowPausedAsyncTask references, but this head still has six references in BaseTest, IterableApiIntegrationTest, and IterableApiGetAndTrackDeepLinkTest.
Suggest removing the remaining shadow dependencies and synchronizing those tests through the new request seam or the appropriate executor/looper primitives.
419a140 to
ffe5431
Compare
|
Review feedback is addressed in ffe5431:
Verification on this commit:
Requesting another review. |
ffe5431 to
e697ce6
Compare
|
Updated SDK-707 after the stack rebase, preserving all prior review fixes and addressing the concurrency concern:
New focused coverage proves that the client routes ordinary and push requests to the correct lanes, a blocked online request does not serialize a second online request, and blocked online work does not delay push work. The synchronization uses latches with no sleeps. Verification:
CI is currently running on e697ce6. Ready for another review. |
|
Follow-up from the first CI run: the new concurrency and routing tests passed. CI exposed a separate Mockito spy race in IterableFirebaseMessagingServiceTest, where a pending initialization callback could call getDebugMode while the test was stubbing getInAppManager. Commit 2f34558 now drains initialization callbacks before creating the spy and uses safe doReturn stubbing. The affected service tests and executor tests pass locally; replacement CI is running. |
|
Final CI follow-up for 2f34558:
The branch is now waiting only on reviewer approval and the known external image-test failure. |
jferrao-itrbl
left a comment
There was a problem hiding this comment.
Great work @franco-zalamena-iterable . LGTM.
It might be worth checking the failing test though it seems unrelated with these changes.
7ca9382 to
b6d0d84
Compare
rtlsilva
left a comment
There was a problem hiding this comment.
Reopened a discussion, no other findings.
a34b9e3 to
5cb0451
Compare
5cb0451 to
d6e940b
Compare
Summary
Replaces the remaining API-request
AsyncTaskexecution with SDK-owned dispatchers while preserving the SDK's existing concurrency, retry ordering, callback threading, and offline-delivery behavior.Jira: SDK-707
This stacked PR builds on SDK-706.
Behavior
AsyncTask.execute()behavior.Compatibility
Verification
Passed:
./gradlew --no-daemon :iterableapi:testDebugUnitTest :iterableapi-ui:testDebugUnitTest./gradlew --no-daemon :iterableapi:lintDebug :iterableapi:checkstyle :iterableapi-ui:assembleDebug./gradlew --no-daemon :app:testDebugUnitTestThe required standalone inbox-customization sample still reaches
iterableapi-uicompilation and fails on its pre-existing Kotlin language-version mismatch: the sample uses Kotlin 1.8 while the UI module contains Kotlin 1.9data objectdeclarations.Changelog
Updated the Unreleased executor entry to describe concurrent online requests, serial automatic retries and offline-immediate work, and the independent stored-offline FIFO flow.
No documentation PR or GitHub issue is required.