Skip to content

chore: make AndroidBaseClient generic for injectable configuration - #259

Closed
typotter wants to merge 10 commits into
snapshot/typo/v5from
typo/android-generic-configuration
Closed

chore: make AndroidBaseClient generic for injectable configuration#259
typotter wants to merge 10 commits into
snapshot/typo/v5from
typo/android-generic-configuration

Conversation

@typotter

Copy link
Copy Markdown
Collaborator

Picks up Heath's work from #257, adds spotless formatting fixes.

Changes

  • AndroidBaseClient, CachingConfigurationStore, FileBackedConfigStore parameterized over SerializableEppoConfiguration
  • Applied spotless formatting

Base

Targets snapshot/typo/v5. Supersedes #257.
Depends on sdk-common-jdk #243 (Configuration generics).

Note

This PR is based on the 3-param ConfigurationParser design. Will need updating once sdk-common-jdk #243 (which redesigns to 2-param) is merged and SNAPSHOT republished.

typotter added 6 commits July 24, 2026 09:50
Adapt JacksonConfigurationParser and GsonConfigurationParser to the
new 2-param ConfigurationParser<ConfigurationType, JSONFlagType>
interface from sdk-common-jdk #243.

Old methods removed: buildConfig(byte[], ...), requiresUpdatedBanditModels,
applyBanditParameters.

New methods: parseFlagConfig(byte[]) and buildConfig(FlagConfigResponse,
snapshotId, previousConfig, banditParamsBytes).

Bump dependencies to release versions (eppo-sdk-framework 0.1.0,
sdk-common-jvm 4.0.0) matching core main post-#243.
Implement IConfigurationStore subscriber methods from sdk-common-jdk
#248. Subscribers are notified after saveConfiguration updates the
in-memory cache. Uses CopyOnWriteArrayList for thread safety.

This enables BaseEppoClient.onConfigurationChange to delegate to the
store (sdk-common-jdk #252) and supports setConfiguration.
Replace hand-rolled subscribe/unsubscribe with AbstractConfigurationStore
from sdk-common-jdk #248. CachingConfigurationStore now implements
persist() instead of saveConfiguration() — base class handles callback
notification via CallbackManager.
@typotter

Copy link
Copy Markdown
Collaborator Author

Split into #260 and #261

@typotter typotter closed this Aug 20, 2026
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.

2 participants