Skip to content

Extract impressions module#625

Merged
gthea merged 6 commits intomod_baselinefrom
FME-15373-impressions_6
Apr 28, 2026
Merged

Extract impressions module#625
gthea merged 6 commits intomod_baselinefrom
FME-15373-impressions_6

Conversation

@gthea
Copy link
Copy Markdown
Contributor

@gthea gthea commented Apr 28, 2026

Extracted impressions module. Murmur3 implementation was copied to prevent coupling to targeting-engine module (one class only).

gthea added 6 commits April 28, 2026 13:23
…d empty source tree

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
…rs, and clean strategy files to impressions module

- Move impression DTOs (KeyImpression, TestImpressions, ImpressionCount, DecoratedImpression, UniqueKeys)
- Move core impression files (Impression, ImpressionCounter, ImpressionHasher, ImpressionObserver,
  ImpressionUtils, ImpressionsResult, ImpressionsSender, ImpressionsStorage*, InMemoryImpressionsStorage,
  ImpressionsManager, ImpressionListener, UniqueKeysTracker)
- Move filters/ package wholesale (BloomFilterImp, Filter, FilterAdapter, FilterAdapterImpl)
- Move clean strategy files (ProcessImpressionDebug, ProcessImpressionNone, ProcessImpressionStrategy)
- Copy MurmurHash3 into impressions module to avoid targeting-engine dependency
- Replace Preconditions.checkNotNull with Objects.requireNonNull in ImpressionCounter
- Add hamcrest-all test dep; fix ImpressionObserverTest logger reference
- impressions module builds and all moved tests pass standalone

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
… ThreadFactoryBuilder with inline ThreadFactory

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
… UniqueKeysTrackerImp from TelemetrySynchronizer

- Add UniqueKeysSender interface replacing TelemetrySynchronizer dependency
- git mv UniqueKeysTrackerImp to impressions module
- Constructor now accepts UniqueKeysSender instead of TelemetrySynchronizer
- Replace Lists.partition (Guava) with local partition() helper using subList
- Replace SplitExecutorFactory with Executors.newSingleThreadScheduledExecutor
- Update tests to mock UniqueKeysSender

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
…ionsTelemetryRecorder; decouple ImpressionsManagerImpl and ProcessImpressionOptimized

- Add ImpressionsManagerConfig (replaces SplitClientConfig reads)
- Add ImpressionsTelemetryRecorder interface + NoopImpressionsTelemetryRecorder
- git mv ImpressionsManagerImpl: accepts ImpressionsManagerConfig + ImpressionsTelemetryRecorder,
  removes SplitClientConfig/TelemetryRuntimeProducer/SplitExecutorFactory deps,
  inlines scheduler with Executors.newScheduledThreadPool, removes @VisibleForTesting/checkNotNull
- git mv ProcessImpressionOptimized: uses ImpressionsTelemetryRecorder instead of TelemetryRuntimeProducer
- git mv ImpressionsManagerImplTest: updated all 25 tests to use new abstractions

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
Add impressions dependency to client/pom.xml. Add adapter classes
TelemetryRuntimeImpressionsRecorder and TelemetryUniqueKeysSender to
bridge the old telemetry interfaces to the new impressions module
boundaries. Update SplitFactoryImpl to build ImpressionsManagerConfig
and use the adapters when constructing ImpressionsManagerImpl and
UniqueKeysTrackerImp. Move strategy tests and UniqueKeysTrackerImpTest
to the impressions module where their dependencies now live.

AI-Session-Id: 52375eb8-af89-45b8-bbad-1698b6636202
AI-Tool: claude-code
AI-Model: unknown
@gthea gthea self-assigned this Apr 28, 2026
@gthea gthea marked this pull request as ready for review April 28, 2026 19:32
@gthea gthea requested a review from a team as a code owner April 28, 2026 19:32
@sonarqube-pull-requests
Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
66.8% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube

@gthea gthea merged commit f3859c4 into mod_baseline Apr 28, 2026
6 of 7 checks passed
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