QUEUE-144: Legacy listener source; deliver through #1746 [do not merge] - #1725
Draft
peter-lawrey wants to merge 5 commits into
Conversation
This was referenced Aug 7, 2026
peter-lawrey
force-pushed
the
feature/QUEUE-143-queue-integration-points
branch
from
August 7, 2026 09:05
41a6ae9 to
90bbd3c
Compare
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-context-listener-core-split-base
branch
from
August 7, 2026 09:07
b858453 to
e3a9ebe
Compare
peter-lawrey
changed the base branch from
feature/QUEUE-143-queue-integration-points
to
feature/QUEUE-144-queue-default-time-provider
August 10, 2026 08:01
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-context-listener-core-split-base
branch
from
August 10, 2026 11:40
627ea1f to
7bdb6b6
Compare
peter-lawrey
marked this pull request as ready for review
August 10, 2026 11:45
There was a problem hiding this comment.
Pull request overview
Adds per-appender context listeners that emit context before the first data document of each queue roll.
Changes:
- Adds queue- and appender-level listener configuration.
- Supports retained/progressive writers and rejects incompatible buffering.
- Adds lifecycle and rollover tests.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
ContextListenerCoreTest.java |
Tests listener lifecycle and rollover behavior. |
StoreTailer.java |
Exposes the current cycle as context count. |
StoreAppender.java |
Integrates listener invocation into writes. |
SingleChronicleQueueBuilder.java |
Adds listener configuration and validation. |
SingleChronicleQueue.java |
Propagates listener state to appenders. |
ContextListenerState.java |
Implements listener state and writer handling. |
ExcerptAppender.java |
Documents and exposes listener configuration. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-context-listener-core-split-base
branch
from
August 10, 2026 13:05
47be341 to
e2c7a28
Compare
tgd
approved these changes
Aug 10, 2026
This was referenced Aug 11, 2026
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-default-time-provider
branch
from
August 11, 2026 10:53
5e25823 to
62469a2
Compare
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-context-listener-core-split-base
branch
from
August 11, 2026 10:53
e4979ac to
331f70d
Compare
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-default-time-provider
branch
from
August 18, 2026 08:43
62469a2 to
648cedd
Compare
peter-lawrey
force-pushed
the
feature/QUEUE-144-queue-context-listener-core-split-base
branch
from
August 18, 2026 08:46
331f70d to
a3f42ae
Compare
peter-lawrey
marked this pull request as draft
September 12, 2026 08:10
This was referenced Sep 12, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deliver the complete listener lifecycle once through #1746, based on #1745 and the merged Wire #1280 implementation. Preserve this older branch as a comparison/reference; do not split its API, helper and integration into incomplete children.
There is a substantive semantic difference. This branch's
ContextListenerCoreTest.indexedWriteDoesNotNotifyButStartsAppenderconsumes ordinary registration through an indexed write. #1746 instead testsindexedWriteDoesNotNotifyOrConsumeListenerRegistrationandexactHistoricalRecoveryDoesNotChangeOrdinaryContext. The modern policy keeps exact recovery from consuming ordinary registration and includes stronger callback escape/failure handling.Builder configuration, appender-local state, first notification, retained writers, nested/held documents, rollback and re-entry must agree on that modern contract. The old default-clock prerequisite #1729 remains part of the reference history; no second listener delivery is created on it.
Retained source
71c9db2f3c9f6a55a4cc5bc487802253df83930cincludes current develop and the updated old prerequisite. The refresh's full test pass remains evidence for that older tree, not evidence that the two lifecycle policies are interchangeable.