Skip to content

feat: integrate eppo module with android-sdk-framework (v4 migration 2/2) - #261

Open
typotter wants to merge 3 commits into
typo/v4-split-1/framework-modulefrom
typo/v4-split-2/eppo-integration
Open

typotter wants to merge 3 commits into
typo/v4-split-1/framework-modulefrom
typo/v4-split-2/eppo-integration

Conversation

@typotter

Copy link
Copy Markdown
Collaborator

Summary

  • EppoClient extends AndroidBaseClient<Configuration, JsonNode> (was BaseEppoClient directly)
  • JacksonConfigurationParser: 2-param ConfigurationParser with parseFlagConfig + buildConfig(FlagConfigResponse, ...)
  • OkHttpEppoClient: implements EppoConfigurationClient interface
  • Example module: GsonConfigurationParser, GsonConfigurationCodec, CustomClientActivity
  • Removes old ConfigurationStore, BaseCacheFile, ConfigCacheFile (moved to framework)
  • Bumps :eppo to 5.0.0-SNAPSHOT, sdk-common-jvm to 4.0.0

Depends on #260.

Test plan

  • Unit tests pass: ./gradlew :eppo:test
  • Connected tests pass (46 tests): ./gradlew :eppo:connectedDebugAndroidTest
  • Example app installs and runs: ./gradlew :example:installDebug

@typotter

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@typotter, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ae9123cb-6884-43ce-99bd-260e5c264709

📥 Commits

Reviewing files that changed from the base of the PR and between e83b8bc and 9040aa0.

📒 Files selected for processing (30)
  • android-batteries-included-notes.md
  • eppo/build.gradle
  • eppo/src/androidTest/java/cloud/eppo/android/EppoClientTest.java
  • eppo/src/androidTest/java/cloud/eppo/android/TestConfigCacheFile.java
  • eppo/src/androidTest/java/cloud/eppo/android/helpers/AssignmentTestCase.java
  • eppo/src/androidTest/java/cloud/eppo/android/helpers/AssignmentTestCaseDeserializer.java
  • eppo/src/main/java/cloud/eppo/android/BaseCacheFile.java
  • eppo/src/main/java/cloud/eppo/android/ConfigCacheFile.java
  • eppo/src/main/java/cloud/eppo/android/ConfigurationStore.java
  • eppo/src/main/java/cloud/eppo/android/EppoClient.java
  • eppo/src/main/java/cloud/eppo/android/JacksonConfigurationParser.java
  • eppo/src/main/java/cloud/eppo/android/OkHttpEppoClient.java
  • eppo/src/main/java/cloud/eppo/android/PrecomputedCacheFile.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/BanditParametersResponseDeserializer.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/DateSerializer.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/EppoModule.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/EppoValueDeserializer.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/EppoValueSerializer.java
  • eppo/src/main/java/cloud/eppo/android/dto/adapters/FlagConfigResponseDeserializer.java
  • example/build.gradle
  • example/src/main/AndroidManifest.xml
  • example/src/main/java/cloud/eppo/androidexample/Constants.java
  • example/src/main/java/cloud/eppo/androidexample/CustomClientActivity.java
  • example/src/main/java/cloud/eppo/androidexample/GsonConfigurationCodec.java
  • example/src/main/java/cloud/eppo/androidexample/GsonConfigurationParser.java
  • example/src/main/java/cloud/eppo/androidexample/HeaderInjectingEppoClient.java
  • example/src/main/java/cloud/eppo/androidexample/MainActivity.java
  • example/src/main/java/cloud/eppo/androidexample/SecondActivity.java
  • example/src/main/res/layout/activity_main.xml
  • example/src/main/res/values/strings.xml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@typotter
typotter force-pushed the typo/v4-split-2/eppo-integration branch from 9040aa0 to 4e65faa Compare August 20, 2026 22:17
Wire the :eppo module to use :android-sdk-framework abstractions:

- EppoClient extends AndroidBaseClient<Configuration, JsonNode>
- JacksonConfigurationParser: implements 2-param ConfigurationParser
  with parseFlagConfig + buildConfig(FlagConfigResponse, ...)
- OkHttpEppoClient: implements EppoConfigurationClient interface
- GsonConfigurationParser + GsonConfigurationCodec in example module

Removes old ConfigurationStore, BaseCacheFile, ConfigCacheFile (moved
to framework). Bumps eppo to 5.0.0-SNAPSHOT, sdk-common-jvm to
4.0.0-SNAPSHOT.
@typotter
typotter force-pushed the typo/v4-split-2/eppo-integration branch from 4e65faa to f92f834 Compare August 21, 2026 12:53
Delete cloud.eppo.android.dto.adapters/ — these were near-identical
copies of cloud.eppo.ufc.dto.adapters/ from sdk-common-jvm. The :eppo
module already depends on sdk-common-jvm, so import directly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant