Skip to content

UNOMI-968: Pluggable persistence IT harness for ES, OS, and other backends#833

Merged
sergehuber merged 3 commits into
masterfrom
UNOMI-968-pluggable-persistence-itests
Jul 21, 2026
Merged

UNOMI-968: Pluggable persistence IT harness for ES, OS, and other backends#833
sergehuber merged 3 commits into
masterfrom
UNOMI-968-pluggable-persistence-itests

Conversation

@sergehuber

Copy link
Copy Markdown
Contributor

Summary

  • Extract a test-only PersistenceITBackend SPI (featureOptions, configurationOptions, distribution feature, ConfigAdmin PID, lifecycle hooks) so Elasticsearch / OpenSearch wiring moves out of BaseIT without changing default CI behaviour.
  • Add backend-agnostic PersistenceITCapabilities (HTTP admin API, rollover API shape, snapshot-restore migration, health probes, flattened-range query outcome) so search-specific ITs Assume-skip on unsupported providers instead of hard-coding vendor names.
  • Keep AllITs and new CorePersistenceITs membership identical for maximum coverage; publish unomi-itests test-jar + document ServiceLoader / -Dunomi.persistence.it.backend extension in itests/README.md.

JIRA: UNOMI-968

Test plan

  • CI Elasticsearch Failsafe (AllITs) green
  • CI OpenSearch Failsafe (AllITs) green
  • Confirm RolloverIT still asserts ILM on ES / ISM on OS
  • Confirm Migrate16xToCurrentVersionIT runs fully on ES and is Assumed skipped on OS (not false-pass)
  • Confirm HealthCheckIT still expects exactly 5 probes on ES/OS
  • Confirm JSONSchemaIT flattened-range branch: EMPTY on ES, HITS on OS
  • Optional out-of-tree: PostgreSQL consumer runs CorePersistenceITs via ServiceLoader (not part of this ASF change)

…kends

Extract PersistenceITBackend SPI with capability-based skips so the same
CorePersistenceITs/AllITs suite runs on Elasticsearch and OpenSearch as
before, while external providers (PostgreSQL, etc.) can plug in via
ServiceLoader without forking Unomi IT sources.
…er file

RAT requires the Apache License header on the META-INF/services registration
file. Also document -Pintegration-tests when installing the itests test-jar.
Scale remaining-time estimates from historical per-test durations (EMA),
keyed by persistence provider, and skip failed/ignored tests so CI and
local runs get stabler ETAs without mixing ES/OS/PostgreSQL timings.
@sergehuber
sergehuber merged commit 360a4d8 into master Jul 21, 2026
6 checks passed
@sergehuber
sergehuber deleted the UNOMI-968-pluggable-persistence-itests branch July 21, 2026 09:47
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