QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 1e25bb5a243dfdcd95d4b9a4f780200ff8c8778a] (push) Successful in 9s
QRun-IO/ci-policy: native / native-result (push) Successful in 8s
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / original-business (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / original-voyage (push) Skipped
QRun-IO/ci-policy: ci / original-cli (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (push) Skipped
QRun-IO/ci-policy: ci / ci-result (push) Successful in 7s
QRun-IO/ci-policy: ci / fork-guard (pull_request) Skipped
QRun-IO/ci-policy: native / fork-deny (pull_request) Skipped
QRun-IO/ci-policy: native / dotnet-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / Scoped workflow [workflow 1e25bb5a243dfdcd95d4b9a4f780200ff8c8778a] (pull_request) Successful in 10s
QRun-IO/ci-policy: native / native-result (pull_request) Successful in 8s
QRun-IO/ci-policy: ci / head-profile (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy (pull_request) Skipped
QRun-IO/ci-policy: ci / application-template-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / gradle-1 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (pull_request) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (pull_request) Skipped
QRun-IO/ci-policy: ci / node-8 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-9 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-10 (pull_request) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (pull_request) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-13 (pull_request) Skipped
QRun-IO/ci-policy: ci / source-config-14 (pull_request) Skipped
QRun-IO/ci-policy: ci / android-0 (pull_request) Skipped
QRun-IO/ci-policy: ci / original-business (pull_request) Skipped
QRun-IO/ci-policy: ci / original-mcp (pull_request) Skipped
QRun-IO/ci-policy: ci / original-voyage (pull_request) Skipped
QRun-IO/ci-policy: ci / original-cli (pull_request) Skipped
QRun-IO/ci-policy: ci / not-enrolled (pull_request) Skipped
QRun-IO/ci-policy: ci / shared-pipeline (pull_request) Skipped
QRun-IO/ci-policy: ci / ci-result (pull_request) Successful in 6s
maven / build (push) Failing after 7s
build / maven (push) Failing after 7s
Replace the in-flight snapshot coordinates that the shared-session work was built against (qqq-bom-pom 4.1.0-collab-33464d37e-SNAPSHOT, qbit-redis 0.1.0-redis-7fe5492-SNAPSHOT) with published coordinates exposed as overridable properties: qqq.version=4.1.0-RC.22, the first release-line core carrying QSessionStoreRegistry.getInstance(QInstance) and clearIfSame, and qbit-redis.version=0.1.0-RC.1, whose public api is a strict superset of the 7fe5492 snapshot. The revision stays 0.1.0-SNAPSHOT: the shared ci-workflows Maven workflow assigns 0.1.0-RC.N from release/0.1 and 0.1.0 from the v0.1.0 tag, so no version is hand-edited here. CHANGELOG records the 0.1.0 contents; README gains a compatibility matrix and the release/publication procedure for this repository. Verification (Maven 3.9.11, Temurin 21, Docker 29.9.2 for Testcontainers): mvn verify with the same sources installed locally under local-labeled versions (core release/4.1 tip f1cdf31e9 as 4.1.0-local.f1cdf31e9, qbit-redis tag v0.1.0-RC.1 as 0.1.0-local.6b0814d, because the Gitea registry needs an authenticated read from this host): 67 unit tests, 29 integration tests (RedisSessionStoreProviderIT, SharedRedisSessionStoreProviderIT, TableBasedSessionStoreProviderIT) with zero failures/errors/skips, zero Checkstyle violations, JaCoCo coverage gates met. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: James Maes <james@kof22.com>
2.0 KiB
2.0 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] - 0.1.0
First published release. Version numbers are assigned by the shared Gitea
Maven workflow from the branch or tag that publishes (see README "Releasing");
the revision property on develop stays 0.1.0-SNAPSHOT until the release
merges back.
Added
- In-memory session store provider with LRU eviction
- Table-based session store provider using QQQ tables
- Redis session store provider with native TTL via Jedis
- Custom provider support via QCodeReference
- Sliding expiration (configurable per-provider)
- Scheduled cleanup process for expired sessions
- QBit producer for declarative configuration
SHARED_REDISprovider: application-scoped shared sessions on the pool owned by the optionalqbit-redisQBit, with explicit deployment/application/ authentication-domain namespacing, bounded payloads, atomic GETEX touch, and a runtime service that releases registrations on stop and rebuilds them on restart (docs/SESSION-REGISTRATION.md)- Explicit
QInstanceoverloads onQSessionStoreQBitContextand application-scoped registration throughQSessionStoreRegistry.getInstance(qInstance); two applications in one JVM no longer see each other's sessions - Health check reports the target application selected by
HealthCheckInput
Changed
- Depends on published QQQ core
4.1.0-RC.22(the first release-line core withQSessionStoreRegistry.getInstance(QInstance)) andqbit-redis 0.1.0-RC.1; the snapshot coordinates used while the shared-session work was in flight (4.1.0-collab-33464d37e-SNAPSHOT,0.1.0-redis-7fe5492-SNAPSHOT) are gone - Jedis 7.2.0, Testcontainers 2.0.3, AssertJ 3.27.7 (GHSA-rqfh-9r24-8c9r)
- Hosts that register a provider with core outside a request context must use
the explicit
QSessionStoreRegistry.getInstance(qInstance)overload