Skip to content

feat(proxy) astubbs#242: the sidecar as a real process - binds, serves its lifecycle, and shuts down cleanly - #384

Draft
astubbs wants to merge 5 commits into
feats/proxy-protocol-contractfrom
feats/proxy-server-shell
Draft

astubbs wants to merge 5 commits into
feats/proxy-protocol-contractfrom
feats/proxy-server-shell

Conversation

@astubbs

@astubbs astubbs commented Aug 31, 2026 •

Copy link
Copy Markdown
Owner

Part of #242.

depends on #383

Description

The parallel-consumer-proxy module: a sidecar that is a real process, and nothing above that.
It builds, it starts, it binds a loopback port and announces it, it admits or rejects a connection
under its own rules, it hosts a service a client can actually reach, and it shuts down cleanly -
releasing the socket - when its parent dies. There is no engine in it.

The claim this PR makes, and what to check it against: the packaging and runtime boundary exists
and is exercised end to end through the entry point, and the failure modes that would make that
claim hollow - a server that never shut down, a session that hangs, a bind failure that looks like a
clean exit - each go red when the term responsible is broken. The sabotage arms are below.

The honest state of the build is a first-class part of it. A client that opens a session is
answered UNIMPLEMENTED with a description naming the piece that is missing. The alternative -
answering a Configure with a fabricated Configured - would let a client believe it had
configured an engine that does not exist, which is a worse failure than a clear refusal, and it
would also make this rung unreviewable: a reader could not tell a real engine from a mock.

Where this came from

Extracted from #293, the language-proxy god PR, as extraction A5 of
docs/plans/2026-08-31-001-process-god-branch-decomposition-plan.md - the rung above
#383, whose "deliberately left for the rungs above" list names exactly this
content ("the proxy module, its executable and its gRPC lifecycle (A5)"). Taken by path-scoped
checkout rather than rewritten.

The entry point is not on that branch. #293 has no production main at
all - its only one is TestModeMain, in src/test, booting on MockConsumer. The production
sidecar entry point was written on feats/sidecar-entry-point (unit U10), which is a sibling
of #293 stacked above it, not an extraction of it, and which has no PR. See
"the prior-art branch" below.

What is in it, and why each piece is in the minimal cut

The transport - and the three classes are inseparable, which is a fact about the code rather than
a judgement.
ProxyServer.start() constructs AuthorityAllowlistInterceptor and
SingleConnectionGuard itself and wraps the hosted service in both, in that order, so a rejected
authority is turned away before it can consume the admission slot. A "server" without them is a
different server with a different security posture. What they assert:

  • Loopback-only by default on an ephemeral port; the bind is forAddress with an explicit address
    and never forPort, which binds the wildcard. A non-loopback address refuses to start unless the
    opt-in is set, the refusal names the setting, and when set the warning states the whole surface.
  • One live stream, rejected rather than replaced, with a generation counter so a late
    termination callback from a superseded stream cannot release the slot out from under the holder.
  • An unlisted declared :authority refused with PERMISSION_DENIED, distinct from the slot's
    RESOURCE_EXHAUSTED so a client can tell "not allowed" from "taken" by status code alone.

Both rejections are proven to happen before the service method by counters on the stand-in
service, because a test asserting only the client-visible status passes just as well after the
method has already run.

Main. Refuses arguments - configuration travels the protocol, and a sidecar that silently
discarded --bootstrap-servers would leave the operator debugging why their flag did nothing.
Prints port: <n> as stdout line one. Serves until the parent dies. Closes the listener.

ParentDeathWatchdog. An orphaned sidecar holds a consumer-group membership on behalf of an
application that no longer exists, so this is correctness rather than housekeeping - and without it
Main has nothing to wait on and no way to stop. EOF on the inherited pipe is the primary signal;
a ProcessHandle pid poll backs it up for the wrapper-process case, with the parent handle captured
once because a re-parented process would otherwise report a living parent forever.

NoEngineSessionService. The transport's contract with what it hosts is BindableService, but
a server with no service is not a server. Main#sessionServiceFactory is the one call site the
engine rung replaces, and this class goes with it.

Deliberately NOT in this rung

Named so neither side reads as an oversight: connect-time configuration and the options mapping,
dispatch waves and the remote-execution semantics, the in-flight registry, epochs, the manifest and
reconnect reconciliation, leases and heartbeats, the produce path, capability negotiation, the
shutdown drain that waits on records held in a foreign process, conformance, the clients, and the
native image. The engine semantics remain #293's residue.

Also left behind: this module's src/test/CLAUDE.md write-time bridge, for the same reason
#383 left its own - the document it imports and the file-reference gate's
parser fix both arrive with #378.

The prior-art branch, and what it turned out to be

feats/sidecar-entry-point was checked before anything was cut, on the possibility that it was
already a shell extraction to build on rather than duplicate. It is not. It is unit U10 stacked
on top of #293's whole tree - forward work that ADDS the production entry
point, the parent-death watchdog and a shutdown drain to a module that already has an engine. Its
commit bodies say so outright, and one of them names the seam it deliberately leaves open.

So it is built on rather than duplicated: ParentDeathWatchdog and its four tests are taken from it
unchanged, and Main is its Main minus the engine, the configuration handler and the drain.
Writing a fresh EOF loop beside a reviewed one on a sibling branch would have been the
parallel-implementation antipattern this repository names by name. That branch has no PR yet, and
whoever opens it reconciles against this rung
- its remaining content is the drain, the
integration test that spawns a real sidecar against a real broker, and the shared spawn helper.

feats/graalvm-sidecar-virtual-threads was read too: it is inflight notes and benchmark arms about
GraalVM and virtual threads, with no module shell in it. Nothing to reconcile.

Four places this differs from its sources on purpose

  1. parallel-consumer-core is dropped from compile scope. feat(proxy) astubbs#242: a sidecar giving non-JVM runtimes key-ordered concurrency, in eleven languages #293
    declares it because the module it belongs to has an engine. This one does not reference a
    Parallel Consumer type anywhere, so carrying it would be an unused declaration - and its absence
    is the shortest possible proof of the rung's whole claim. The pom says so at the site so nobody
    adds it back as a fix. The core test-jar stays and is used, for the shared ArchUnit rules.
  2. A bind failure exits 4, not the usage code. feats/sidecar-entry-point returns the usage code
    for both; a port collision that reports a usage error sends an operator to the command line for a
    socket problem. Its exit code 3 - a drain that timed out with records still held - is not here,
    because there is nothing to drain until there is an engine.
  3. error_prone_annotations managed module-locally - the same pin, for the same reason, as the
    protocol module's: gRPC drags it in twice at different versions and master's
    requireUpperBoundDeps fails the resolved graph. Repeated rather than hoisted, because hoisting
    would impose gRPC's transitive graph on every module in the repository. It sits a version above
    the protocol module's, and the pom says why - see the CVE finding below.
  4. docs/simplifications-declined.md is trimmed to the candidates whose subject is in this
    module.
    It has to come now rather than later because AuthorityAllowlistInterceptor cites it
    by path, at the one site where the diff looks strictly better and only the reasoning says
    otherwise (Guava's HostAndPort throws on a bare unbracketed IPv6 authority that method
    deliberately admits - a security-posture change wearing a library swap). The rest of the pass
    travels with the code it is about.

Two smaller ones: MainTest moves out of the lifecycle package to sit beside its subject, and
ProxyServerTest's comment on why its log capture needs a synchronized list cited a test in a module
that is not here, so it now states the race directly.

Three sabotage arms, with a control on either side

Each arm changes one term, runs the one test that should break, and restores from a pristine copy.
Same-magnitude-different-position, not a bigger hammer.

=== CONTROL: untouched tree, all five lifecycle assertions ===
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 -- MainTest
EXIT=0

=== ARM 1: leak the server instead of closing it (try-with-resources -> plain assignment) ===
MainTest.announcesItsPortServesOnItAndReleasesItWhenTheParentDies
  the listener must be gone once the sidecar has shut down, not merely unattended
  ==> Expected java.io.IOException to be thrown, but nothing was thrown.
EXIT=1

=== ARM 2: the no-engine service accepts the session silently instead of refusing it ===
MainTest.aSessionIsAnsweredWithUnimplementedNamingTheMissingEngine -- Time elapsed: 30.34 s
  the session must terminate rather than hang
EXIT=1

=== ARM 3: a bind failure exits 0, indistinguishable from a clean shutdown ===
MainTest.aPortItCannotBindIsADistinguishableNonZeroExit
  expected: 4
EXIT=1

=== RESTORED: control arm again, tree byte-identical ===
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0 -- MainTest
EXIT=0

Arm 1 is the one that matters most, because it is the assertion a reviewer would most reasonably
expect to be redundant. A run that returns 0 proves the method returned; it proves nothing about
whether the gRPC server was shut down, because a leaked one lives on its own Netty threads and keeps
the port bound afterwards. The port is the observable that separates "returned" from "shut down", so
the close is asserted against the socket rather than against the return value - and the arm shows
that without it the test passes on a sidecar that never released anything.

Arm 2's shape is the finding, not just its colour. Removing the refusal does not fail fast; it
hangs, and the test lands on its bounded latch after 30 seconds. That is the behaviour a client
author would hit against a silently-accepting sidecar, and it is why the refusal is explicit rather
than left to gRPC's generated default.

How it was verified

JDK 17, macOS, on this branch:

  • ./mvnw clean then a full-reactor install - BUILD SUCCESS, seventeen modules, the new one
    among them.
  • The module's own suite green: transport (bind posture, the non-loopback opt-in and its warning,
    the authority allowlist, the one-connection slot), the watchdog's two signals plus its negative
    control, the entry point's five, and the ArchUnit conventions wrapper.
  • bin/check-all.sh on its real exit code: 0. Two gates report CANNOT RUN -
    check-proto-breaking.sh and check-proto-lint.sh, both wanting a buf this machine does not
    have. Both belong to the base rung, neither is affected by this diff, and CI is where they run.
  • COPYRIGHT_CHECK_REQUIRE_FORK_POINT=1 bin/check-copyright-headers.sh - 0 violations against a
    real fork point, with --report showing every new file classified enforce rather than skipped.

Two dependency questions were settled by experiment rather than by reading imports, since both
answers looked obvious in opposite directions: removing parallel-consumer-core from compile scope
and rebuilding the whole reactor (green - so it is genuinely unused, and it went); and removing the
commons-lang3 test dependency, which also passes but was kept, because its declaration carries
an inherited reason about what core's test-jar needs and "today's tests do not reach that path" is
not evidence against it.

Does this compile against a master that does not have #295? Yes, and
the clean reactor build above is that arm: this branch's base contains current master, and
#295 is open and unmerged. Nothing here touches WorkContainer or the
verdict-free abandonment path - the module has no bz.stub.parallelconsumer import outside the
proxy packages at all, except the ArchUnit rules from core's test-jar. So there is no
depends on astubbs/parallel-consumer#295 line, deliberately.

What CI added that the local runs could not

The whole-tree CVE scan went red, and it was right to. com.google.code.gson:gson:2.11.0,
CVE-2025-53864, CVSS 6.9 - reaching the tree for the first time because gRPC brings gson in at
runtime for JSON service-config parsing and this is the first module to depend on gRPC's transport.

The advisory's affected product is com.nimbusds:nimbus-jose-jwt, which nothing here depends on;
its own text says the flaw is "independent of the Gson 2.11.0 issue", and Sonatype's matcher has
taken a version out of the sentence that exists to distinguish the two. It was pinned forward to
gson 2.14.0 rather than excluded
anyway: an excludeVulnerabilityIds entry has to carry a
retirement condition, and this one would have none that anybody could ever discharge - the record is
correct about a library we do not use, so it will never be withdrawn. Moving off the matched version
costs one managed line and is an upgrade wanted regardless. Verified by re-running the same scan
with the one term changed: Detected 1 vulnerable components before, none after.

error_prone_annotations moves to 2.48.0 in the same change, because gson 2.14.0 asks for it. That
leaves this module a version above the protocol module's 2.47.0 pin, which is not drift - the rule
is "manage up to the highest requester", and the two modules have different highest requesters. The
pom says so, since two near-identical pins a version apart is exactly what a later reader would
"fix".

The duplication reports, read

dups: clones passes both engines - PMD CPD and jscpd each report zero new clones and a
duplication percentage at or below the base branch's.

dups: similarity is red on the TestConventionsArchTest.java family, at ~77-83% against the
nine that already exist. That duplication is deliberate and required by a different gate:
EveryModuleWiresUpArchUnitTest fails any module with a src/test/java and no wired wrapper, and
its javadoc records why the wrapper cannot be inherited instead (surefire's dependenciesToScan
pulls the whole test-jar into every module). Those nine already sit at similar percentages against
each other on master; this is the tenth, and it only reads as new because the file is. Same
finding and same answer as #380 and #383.

The analysis surfaces, read

bin/check-pr-analysis-surfaces.sh 384 reports 13 findings on lines this diff wrote and none
inherited
, all from SpotBugs, which passes as a check - they are advisory. Every one is declined,
in four groups, with a reason rather than silently:

  • UNENCRYPTED_SOCKET / UNENCRYPTED_SERVER_SOCKET (5, all in tests). Every one is a test
    connecting to this sidecar's own loopback listener, which is plaintext by design: loopback-only
    plus one-connection admission is what this module offers instead of transport security, and the
    reasoning is in ProxyServer's javadoc and the module README. A test that used TLS would be
    testing a listener that does not exist.
  • USO_UNSAFE_METHOD_SYNCHRONIZATION (4). synchronized methods on ProxyServer and
    ParentDeathWatchdog lock this, which a caller holding the instance could also lock. The threat
    model here is entirely out-of-process - anything in this JVM holding a ProxyServer can already
    call close() on it - so a private lock object would buy nothing against any attacker this module
    has, at the cost of diverging from feat(proxy) astubbs#242: a sidecar giving non-JVM runtimes key-ordered concurrency, in eleven languages #293's copy of both classes.
  • PSC_PRESIZE_COLLECTIONS (1). A LinkedHashSet in AuthorityAllowlistInterceptor built
    without a capacity hint, once per server start, over an allowlist of about five entries. This
    module's docs/simplifications-declined.md records "any change to AuthorityAllowlistInterceptor
    or SingleConnectionGuard" as declined - security posture, and their apparent simplicity is the
    point - and a presize is not the exception that earns.
  • LO_SUSPECT_LOG_CLASS and SLF4J_ILLEGAL_PASSED_CLASS (2, in ProxyServerTest). The test
    asks LoggerFactory for ProxyServer's logger on purpose: it is asserting on what ProxyServer
    logs. Fixing the finding would remove the test's subject. Same for
    USO_UNSAFE_OBJECT_SYNCHRONIZATION on the capture list, which is synchronized deliberately because
    the server's own threads write it while the test reads it.

Known-red, and not a fault

roadmap-stage: N/A - the language-proxy-sidecar entry names #293 as its carrier and sits at limited-poc on the strength of that PR's content. Landing a sidecar that hosts no engine on master makes no more advanced artifact exist - it cannot process a record or reach a broker - so its stage is unchanged.

Checklist

  • Docs updated - the module README.md rewritten to describe what is actually in it and what is
    not, AGENTS.md's module table, docs/simplifications-declined.md trimmed to this module's
    entries, and the module-maturity and testing-evidence records. The protocol module's
    support-posture row said the sidecar was not on master at all, which this change makes false, so
    it is corrected rather than left to rot.
  • User-facing feature documentation data added under docs/features/ - N/A - nothing here is a
    user-facing feature. The module publishes to no registry and cannot be configured to reach a
    broker; the release-documentation records it does earn are the maturity and evidence rows, which
    are in this PR and say in both directions what is and is not evidenced.
  • Tests added/updated - the transport's suite comes with it; the entry point's five and the
    watchdog's four are new to master. Three were proven able to fail by sabotage, with control arms
    on either side, above.
  • Title & body reflect the final content of this PR
  • Ran ce-simplify and ce-code-review locally - N/A - neither was run. Most of the diff is
    code taken from feat(proxy) astubbs#242: a sidecar giving non-JVM runtimes key-ordered concurrency, in eleven languages #293 and feats/sidecar-entry-point where it was already
    reviewed, and the changes this rung made to it are named one by one above; the cheaper place to
    spend a review is @claude review this on the PR, which is also the only route that opens inline
    threads.

…sion rules that make loopback safe

The `parallel-consumer-proxy` module arrives with exactly one thing in it: the transport. It binds,
it decides who may talk to it, and it hosts whatever service it is given - which for now is nobody,
because the engine is a later change.

The three classes are inseparable and were not separated. `ProxyServer.start()` constructs
`AuthorityAllowlistInterceptor` and `SingleConnectionGuard` itself and wraps the hosted service in
both, in that order, so a rejected authority is turned away before it can consume the admission
slot. A "server" without them would be a different server with a different security posture, and
the posture is the reviewable claim here:

- Loopback-only by default, on an ephemeral port. The bind is `forAddress` with an explicit address
  and never `forPort`, which binds the wildcard. A non-loopback address refuses to start unless the
  opt-in is set, the refusal names the setting, and when it is set the warning states the whole
  surface - no authentication, offset advancement, plus receipt of Kafka credentials and a
  class-instantiating property map.
- One live stream, rejected rather than replaced, so the engine never observes its peer silently
  swapped mid-session. The slot carries a generation counter because release is driven by
  asynchronous termination callbacks, and a late one from a superseded stream must not open the door
  to a second concurrent stream.
- An unlisted declared `:authority` is refused with PERMISSION_DENIED, distinct from the slot's
  RESOURCE_EXHAUSTED so a client can tell "not allowed" from "taken" by status code alone. A
  connection declaring NO authority is accepted, because the browser threat this exists for always
  declares one.

Both rejections are proven to happen BEFORE the service method by counters on the stand-in service -
service invocations and application messages, both unchanged across a rejection - because a test
asserting only the client-visible status passes just as well after the method has already run.

THE ENGINE-FACING BOUNDARY IS `BindableService` AND NOTHING MORE. That is what makes this rung
possible: the transport compiles against no generated protocol type and no engine type, so it can be
reviewed without either. The connect-time configuration handler will be handed to the same builder
method the tests hand a counter to.

Taken from #293 by path-scoped checkout rather than rewritten. Two
differences, both forced by master having moved under that branch:

- `error_prone_annotations` is managed to 2.47.0, module-locally. gRPC drags it in twice at
  different versions, resolution settles on the lower one, and master's `requireUpperBoundDeps`
  fails the build. The same pin, for the same reason, as the protocol module's; repeated rather than
  hoisted, because hoisting would impose gRPC's transitive graph on every module in the repository.
- `docs/simplifications-declined.md` is trimmed to the candidates whose subject is in this module.
  The rest travel with the code they are about. The file has to come now rather than later because
  `AuthorityAllowlistInterceptor` cites it by path at the one site where the diff looks strictly
  better and only the reasoning says otherwise - Guava's `HostAndPort` throws on a bare unbracketed
  IPv6 authority that method deliberately admits, which is a security-posture change wearing a
  library swap.

One inherited comment was reworded rather than left dangling: `ProxyServerTest`'s note on why the
log capture needs a synchronized list cited a test in a module that is not here, so it now states
the race directly.
…ill holds a group membership

The sidecar is the application's child. If it outlives its parent it keeps a consumer-group
membership on behalf of an application that no longer exists, and the partitions stay assigned to a
process nobody is talking to - so parent-death detection is correctness, not housekeeping, and it
arrives with the entry point rather than after it.

TWO SIGNALS, AND THE SECOND ONE IS WHY THE FIRST IS NOT ENOUGH. The parent holds the write end of an
inherited pipe and never writes down it, so when it dies for ANY reason including SIGKILL the kernel
closes the last write end and the read returns -1. Pure Java, identical on Linux and macOS,
unchanged between the jar and a native image. `PR_SET_PDEATHSIG` was rejected on reach and on the
merits: it needs `java.lang.foreign`, unavailable at this module's Java 17 release level, and it
fires on parent THREAD death, is cleared across fork and setuid, and races a parent that died before
the call.

The pipe has one hole a client can fall into by accident: a wrapper process between the application
and the sidecar inherits the write end and holds it open, so EOF never arrives. Launching through a
shell is the everyday way to create one. The contract is "launch the proxy directly", and because
"must" is not a mechanism, a `ProcessHandle` parent-pid poll catches it anyway.

THE PARENT HANDLE IS CAPTURED ONCE, at construction. After the real parent dies this process is
re-parented to init or a subreaper, so re-reading the parent on each poll would find a living
process and report health forever - it would be answering "does this process have a parent" when the
question is "is the parent it started with still alive". A JVM with no visible parent gets a poll
that always says alive: unable to tell is not the same as dead.

Reporting death is all it does. What happens next belongs to the caller, and separating them is what
lets either be tested without killing a process.

Four tests, no wall-clock sleeps - every wait is a bounded latch await, so a slow machine makes them
slower rather than red. Two prove the signals fire; one is the NEGATIVE CONTROL that a live parent
on an open pipe never reports death, because a watchdog that fired spuriously would pass the other
two and kill every healthy sidecar in production. The fourth uses a stub stream rather than a
`PipedInputStream`, because closing one of those from another thread does not wake a reader already
blocked in `read()` - the pipe could only ever time out and read as a defect in this class.

Taken unchanged from `feats/sidecar-entry-point` (unit U10 of the language-proxy plan), which is
where this class and the sidecar's entry point were written. That branch has no PR; this is the
extraction it will reconcile against, and its shutdown drain - the wait for records still held in a
foreign process - is deliberately left behind, because it needs the engine.
…serves, and shuts down cleanly

The proxy has never had a production entry point. Nothing in this module has ever been a process,
which is what made "the sidecar" an assertion rather than an artifact. `Main` makes it one, and the
claim it lets a reviewer check is exactly the packaging and runtime boundary: it builds, it starts,
it serves its lifecycle, and it stops - releasing the socket - when its parent dies.

THE SPAWNING CONTRACT. Bind an ephemeral loopback port, print `port: <n>` as the first line of
stdout, then serve until the parent dies. Everything a client needs to find this process is on that
one line, so the client half of the contract is a line read rather than a discovery protocol.

IT PARSES NO CONFIGURATION, AND THAT IS A RULE RATHER THAN AN OMISSION (R39, U7). Bootstrap servers,
credentials, ordering, concurrency and subscription all arrive connect-time in `Configure` over the
protocol. An argument is therefore a caller misunderstanding, and this refuses to start rather than
ignoring it: a sidecar that silently discarded `--bootstrap-servers` would be configured over the
protocol anyway, and the operator would be left debugging why their flag did nothing. The usage text
says where configuration actually goes, so the refusal is an answer rather than a rejection.

WHAT IT HOSTS, AND WHY THAT IS NOT A STUB. The transport's contract with the thing it serves is
`BindableService` and nothing more, which is what let the listener be reviewed with no engine in the
room - but a server with no service is not a server, so something has to fill the slot.
`NoEngineSessionService` refuses every session with UNIMPLEMENTED and a description naming the piece
that is missing. That is the literal state of this build. The alternative - answering a `Configure`
with a fabricated `Configured` - would let a client believe it had configured an engine that does
not exist, which is a worse failure than a clear refusal. It is replaced, not extended:
`Main#sessionServiceFactory` is the one call site the engine changes, and this class goes with it.

A BIND FAILURE EXITS 4, NOT 2. `feats/sidecar-entry-point` returned the usage code for both, and
that is the one behaviour here deliberately changed rather than carried: a port collision sends an
operator who sees a usage code to the command line for a socket problem. Its own exit code costs
nothing and is exercised by a test that occupies a port first. That branch's exit code 3 - a drain
that timed out with records still held - is NOT here, because there is nothing to drain until there
is an engine; it returns with the drain.

THE CLOSE IS ASSERTED AGAINST THE SOCKET, NOT THE RETURN VALUE. A run that returns 0 proves the
method returned; it proves nothing about whether the gRPC server was shut down, because a leaked one
lives on its own Netty threads and keeps the port bound afterwards. So the test connects before,
and requires the connect to be refused after. Proven able to fail: replacing the try-with-resources
with a plain assignment - one term, nothing else touched - and the post-death probe connects
happily, `Expected java.io.IOException to be thrown, but nothing was thrown`. Restored, green again.

Two more arms, same method. Removing the `onError` from `NoEngineSessionService` so it accepts the
session silently: the session test fails on its terminate latch after 30s rather than hanging the
suite. Returning 0 instead of the bind-failure code: `expected: 4`. Control arms on both sides of
all three, tree byte-identical afterwards.

Five tests through the entry point rather than around it: arguments refused with a message naming
where configuration goes; the port announced, proven to answer, and proven gone after parent death;
a real gRPC session reaching the hosted service and being refused with a status naming what is
missing; two sidecars binding different ports, because one host running two applications must not be
a bind race; and the bind-failure exit code.

Taken from `feats/sidecar-entry-point` (unit U10), whose `Main` this is minus the engine, the
connect-time configuration handler and the drain. Two smaller differences from that branch, so
neither side reads as an oversight: its `MainTest` sat in the `lifecycle` package while testing a
class in the module root, and moves to sit beside its subject; and this module's
`src/test/CLAUDE.md` write-time bridge is left behind for the same reason the protocol rung left
its own - the document it imports and the file-reference gate's parser fix both arrive with
#378.

The module-maturity and testing-evidence records say what this does and does not evidence, in the
two directions that are easy to get wrong: the process boundary is real and tested, and nothing here
evidences a record being processed, an offset committed, or any protocol behaviour beyond a
handshake being refused. The protocol module's support-posture row said the sidecar was not on
master at all, which this change makes false, so it is corrected rather than left to rot.
…nd say why it is gone

#293's pom declares `parallel-consumer-core` in compile scope, because the
module it belongs to has an engine in it. This one does not, and carrying the dependency anyway
would be an unused declaration that reads as an oversight to a reviewer and to
`dependency:analyze` alike.

Removing it is better than tolerating it, because the absence is the claim: the transport's contract
with the service it hosts is `io.grpc.BindableService`, so nothing in this module references a
Parallel Consumer type at all, and the pom is now the shortest possible proof of that. Verified by
building the whole reactor clean and running the module's suite with it gone, rather than by reading
imports.

The pom says so at the site, so the next reader adds it back with the engine that needs it rather
than as a fix. The core TEST-jar stays: it is a different artifact and it is used, for the shared
ArchUnit convention rules.

`commons-lang3` stays too, deliberately, even though this rung's tests pass without it. Its
declaration carries an inherited reason - core's test-jar reaches for it, and test scope is not
transitive - and "today's tests happen not to reach that path" is not evidence against a claim about
what the test-jar needs.
@github-actions

github-actions Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 1 package(s) with unknown licenses.
See the Details below.

License Issues

parallel-consumer-proxy/pom.xml

PackageVersionLicenseIssue Type
bz.stub.parallelconsumer:parallel-consumer-proxy-protocol0.6.0.0-SNAPSHOTNullUnknown License
Excluded from license check: pkg:githubactions/actions/github-script

OpenSSF Scorecard

PackageVersionScoreDetails
maven/bz.stub.parallelconsumer:parallel-consumer-core 0.6.0.0-SNAPSHOT UnknownUnknown
maven/bz.stub.parallelconsumer:parallel-consumer-proxy-protocol 0.6.0.0-SNAPSHOT UnknownUnknown
maven/com.google.code.gson:gson 2.14.0 🟢 9.4
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 9Found 22/23 approved changesets -- score normalized to 9
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
Pinned-Dependencies🟢 7dependency not pinned by hash detected -- score normalized to 7
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Signed-Releases⚠️ -1no releases found
Vulnerabilities🟢 100 existing vulnerabilities detected
Security-Policy🟢 10security policy file detected
SAST🟢 10SAST tool is run on all commits
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 11 contributing companies or organizations
maven/com.google.errorprone:error_prone_annotations 2.48.0 🟢 7.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Code-Review⚠️ 0Found 0/30 approved changesets -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
License🟢 10license file detected
Pinned-Dependencies🟢 10all dependencies are pinned
Binary-Artifacts🟢 10no binaries found in the repo
Signed-Releases⚠️ -1no releases found
Fuzzing⚠️ 0project is not fuzzed
Security-Policy🟢 10security policy file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
maven/io.grpc:grpc-netty-shaded UnknownUnknown
maven/org.apache.commons:commons-lang3 UnknownUnknown

Scanned Files

  • parallel-consumer-proxy/pom.xml

@github-actions

Copy link
Copy Markdown

✅ Duplicate Code Report

Two engines run in parallel for cross-validation. Each has its own thresholds tuned to its baseline - the real safety net is the per-engine "max increase vs base" check.

✅ PMD CPD

PR Base Change
Clones 32 32 ➖ 0
Duplicated lines 1017 1017 ➖ 0
Duplication 0.13% 0.13% ➖ 0
Rule Limit Status
Max duplication 0.5% ✅ Pass (0.13%)
Max increase vs base +0.1% ✅ Pass (+0.00%)

No new clones introduced by this PR.

✅ jscpd (language-agnostic)

PR Base Change
Clones 93 93 ➖ 0
Duplicated lines 1313 1313 ➖ 0
Duplication 1.00% 1.01% 🙂 -0.01%
Rule Limit Status
Max duplication 2% ✅ Pass (1.00%)
Max increase vs base +0.1% ✅ Pass (-0.01%)

No new clones introduced by this PR.

Powered by astubbs/duplicate-code-cross-check

@github-actions

github-actions Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

📌 Duplicate code detection tool report

The tool analyzed your source code and found the following degree of similarity between the files:

🆕 New file similarities introduced

File A File B Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 83.0 ❌
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 82.0 ❌
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 81.3 ❌
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 80.9 ❌
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 80.5 ❌
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 78.4
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.5
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.5
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.5
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 76.1
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 76.1
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuard.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuardTest.java 40.9
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/ProxyServer.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/ProxyServerTest.java 40.0
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdogTest.java 34.0
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/NoEngineSessionService.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/CountingSessionService.java 31.7
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/MainTest.java 31.3
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java 30.5
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 30.1
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCModule.java 30.1
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 30.0

...and 1 more

🔺 Increased similarities

File A File B Base (%) PR (%) Change
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/ReactorAppTest.java parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java 46.6 47.9 +1.3
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java 35.5 36.6 +1.0
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 42.8 43.7 +0.9
parallel-consumer-examples/parallel-consumer-example-reactor/src/main/java/bz/stub/parallelconsumer/examples/reactor/ReactorApp.java parallel-consumer-examples/parallel-consumer-example-vertx/src/main/java/bz/stub/parallelconsumer/examples/vertx/VertxApp.java 70.3 71.2 +0.8
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 42.5 43.3 +0.8
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 50.5 51.3 +0.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 59.4 60.1 +0.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 55.4 56.1 +0.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 32.4 33.1 +0.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/LongPollingMockConsumerSubject.java 30.5 31.2 +0.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 31.2 31.8 +0.6
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 30.8 31.4 +0.6
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 33.4 34.0 +0.6
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 37.5 38.0 +0.6
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 37.4 37.9 +0.5
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 37.8 38.2 +0.5
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 34.5 35.0 +0.5
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 35.4 35.8 +0.5
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionStateManager.java parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 43.9 44.3 +0.4
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java parallel-consumer-vertx/src/test-integration/java/bz/stub/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 35.8 36.2 +0.4

...and 66 more

Full similarity report
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/BootstrapResetTripleWriteProbes.java

📄 jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/BootstrapResetTripleWriteProbes.java

File Similarity (%)
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CommitPathVisibilityProbes.java 40.33
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/SeenSucceededOrderingProbes.java 36.12
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CalibrationProbes.java

📄 jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CalibrationProbes.java

File Similarity (%)
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CommitPathVisibilityProbes.java 37.05
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/SeenSucceededOrderingProbes.java 37.0
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CommitPathVisibilityProbes.java

📄 jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CommitPathVisibilityProbes.java

File Similarity (%)
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/SeenSucceededOrderingProbes.java 54.99 ⚠️
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/BootstrapResetTripleWriteProbes.java 40.33
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CalibrationProbes.java 37.05
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/SeenSucceededOrderingProbes.java

📄 jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/SeenSucceededOrderingProbes.java

File Similarity (%)
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CommitPathVisibilityProbes.java 54.99 ⚠️
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/CalibrationProbes.java 37.0
jcstress-poc/src/main/java/bz/stub/parallelconsumer/jcstress/BootstrapResetTripleWriteProbes.java 36.12
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java 56.08 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 38.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 34.15
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java 33.2
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 32.34
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 32.21
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 31.42
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 65.65 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 60.12 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 43.67
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 43.42
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 36.74
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 34.09
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 33.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 31.36
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/LongPollingMockConsumerSubject.java 31.2
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 65.65 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 56.12 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 43.26
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 36.22
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 35.85
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 33.53
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 31.83
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 30.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCModule.java 30.06
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PCRetriableException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PCRetriableException.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/PCRetriableExceptionTest.java 33.89
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtils.java 31.88
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 56.08 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 47.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 37.75
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java 30.64
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 30.59
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerOptions.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerOptions.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ProducerManager.java 30.06
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 60.12 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 56.12 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 51.26 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 37.9
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 35.81
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 34.02
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 30.03
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 30.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 51.26 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 43.67
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 43.26
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 38.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContext.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContext.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 44.18
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 30.48
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 37.9
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 36.74
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 35.85
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java 34.97
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContext.java 30.48
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/RecordContextInternal.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContext.java 44.18
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PollContextInternal.java 34.97
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 31.36
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 30.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/SubmitWorkToPoolShutdownRaceTest.java 43.25
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java 39.57
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 37.81
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/BrokerPollSystem.java 35.44
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ProducerManager.java 30.63
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 30.47
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionState.java 30.24
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 30.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/BrokerPollSystem.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/BrokerPollSystem.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 35.44
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ConsumerOffsetCommitter.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ConsumerOffsetCommitter.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitResponseTimeoutSymptomTest.java 30.15
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/ExternalEnginePipelineBufferTest.java 43.17
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 39.57
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 36.57
parallel-consumer-reactor/src/main/java/bz/stub/parallelconsumer/reactor/ReactorProcessor.java 30.96
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 54.92 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java 50.52 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java 48.14
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java 47.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 38.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCInternalRuntimeException.java 37.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 32.07
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCInternalRuntimeException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCInternalRuntimeException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 37.27
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCModule.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCModule.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PCModuleCollaboratorOwnershipTest.java 32.48
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 30.06
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosis.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosis.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosisTest.java 30.78
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/AmbientProbeExtension.java 30.64
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ProducerManager.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ProducerManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 30.63
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerOptions.java 30.06
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/Java8StreamUtils.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/Java8StreamUtils.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/JavaUtils.java 30.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/JavaUtils.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/JavaUtils.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/CollectionUtils.java 35.34
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/Java8StreamUtils.java 30.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtils.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtils.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtilsTest.java 35.31
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PCRetriableException.java 31.88
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/metrics/PCMetrics.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/metrics/PCMetrics.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/metrics/PCMetrics859Test.java 42.74
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/MetricsTeardownCannotBreakCloseTest.java 32.15
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 47.78
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 33.98
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 33.14
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 32.34
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 32.07
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java 30.59
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 54.92 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 47.78
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java 47.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 45.92
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java 44.8
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 44.79
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java 37.75
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 34.15
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 48.14
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java 46.39
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 44.8
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 34.55
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 33.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/OffsetDecodingError.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/InternalException.java 50.52 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 47.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java 46.39
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 33.2
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelConsumerException.java 30.64
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 60.21 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 45.92
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java 34.55
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 33.98
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 32.21
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 60.21 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/EncodingNotSupportedException.java 44.79
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/NoEncodingPossibleException.java 33.7
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 33.14
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ExceptionInUserFunctionException.java 31.42
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionState.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionState.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 34.49
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionStateManager.java 33.23
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 30.24
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionStateManager.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionStateManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 44.33
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionState.java 33.23
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardPopulationRaceTest.java 39.4
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ShardManager.java 38.38
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkContainer.java 38.12
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 37.93
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardAvailableCountOwnershipTest.java 37.58
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 30.47
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ShardManager.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ShardManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 38.38
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java 37.01
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardPopulationRaceTest.java 33.67
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkContainer.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkContainer.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkClaimStateMachineTest.java 48.26
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 38.12
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java

📄 parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionStateManager.java 44.33
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 37.93
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 37.81
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ShardManager.java 37.01
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/PartitionState.java 34.49
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/AmbientProbeExtension.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/AmbientProbeExtension.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AmbientProbeExtensionTest.java 30.67
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosis.java 30.64
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/KafkaSanityTests.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/KafkaSanityTests.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/LoopingResumingIteratorTest.java 32.75
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 57.13 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 43.79
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 36.33
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 40.27
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 39.88
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 36.33
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceTest.java 35.95
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java 35.95
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 54.42 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 43.79
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 39.88
parallel-consumer-vertx/src/test-integration/java/bz/stub/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 31.34
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 57.13 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 54.42 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 40.27
parallel-consumer-vertx/src/test-integration/java/bz/stub/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 36.19
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkKeyOrderIT.java 38.67
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 38.27
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java 37.7
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ProgressProbe.java 32.97
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 32.19
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java 47.25
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 38.27
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java 32.3
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkKeyOrderIT.java 52.36 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 47.25
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 37.7
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java 34.78
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ProgressProbe.java 30.0
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeDrainIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeDrainIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkDrainIT.java 38.81
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 42.03
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkDrainIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkDrainIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeDrainIT.java 38.81
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java 42.03
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 32.19
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkKeyOrderIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkKeyOrderIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java 52.36 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 38.67
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java 34.78
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 32.3
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCap.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCap.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCapIT.java 52.52 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCapIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCapIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/DiagnosticQuietCap.java 52.52 ⚠️
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedger.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedger.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedgerIT.java 31.16
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedgerIT.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedgerIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/KeyOrderLedger.java 31.16
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ProgressProbe.java

📄 parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ProgressProbe.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 32.97
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/chaostests/ChaosKeyOrderIT.java 30.0
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorConfigurationTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorConfigurationTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/SubmitWorkToPoolShutdownRaceTest.java 38.6
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessorTest.java 33.01
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/KafkaTestUtils.java 31.3
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AmbientProbeExtensionTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AmbientProbeExtensionTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/AmbientProbeExtension.java 30.67
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/BatchTestBase.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/BatchTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java 30.22
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CheckQuarantineOwnersScriptTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CheckQuarantineOwnersScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineLaneReportScriptTest.java 47.55
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineRegistryScriptTest.java 45.23
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitRejectionTestBase.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitRejectionTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitResponseTimeoutSymptomTest.java 31.88
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitResponseTimeoutSymptomTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitResponseTimeoutSymptomTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerTestBase.java 35.9
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitRejectionTestBase.java 31.88
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ConsumerOffsetCommitter.java 30.15
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorBatchTest.java 52.1 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyBatchTest.java 50.79 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/VertxBatchTest.java 44.68
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/BatchTestBase.java 30.22
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcBoundaryProbe.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcBoundaryProbe.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcContextPropagationTest.java 36.95
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcContextPropagationTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcContextPropagationTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MdcBoundaryProbe.java 36.95
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerCommitTimeoutTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerCommitTimeoutTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerSaslAuthenticationTest.java 44.38
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerSaslAuthenticationTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerSaslAuthenticationTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerCommitTimeoutTest.java 44.38
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerTestBase.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/MockConsumerTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CommitResponseTimeoutSymptomTest.java 35.9
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/PCRetriableExceptionTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/PCRetriableExceptionTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/PCRetriableException.java 33.89
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessorTest.java 32.89
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessorTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessorTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java 33.01
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java 32.89
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineLaneReportScriptTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineLaneReportScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CheckQuarantineOwnersScriptTest.java 47.55
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineRegistryScriptTest.java 30.15
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineRegistryScriptTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineRegistryScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CheckQuarantineOwnersScriptTest.java 45.23
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/QuarantineLaneReportScriptTest.java 30.15
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 86.56 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 86.16 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 85.69 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 85.58 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 81.97 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 80.97 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 80.97 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 80.87 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/EpochAndRecordsMapRaceTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/EpochAndRecordsMapRaceTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerStaleContainerTest.java 34.05
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/ExternalEnginePipelineBufferTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/ExternalEnginePipelineBufferTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java 43.17
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/MetricsTeardownCannotBreakCloseTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/MetricsTeardownCannotBreakCloseTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/metrics/PCMetrics859Test.java 37.41
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/metrics/PCMetrics.java 32.15
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PCModuleCollaboratorOwnershipTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PCModuleCollaboratorOwnershipTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PCModule.java 32.48
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosisTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosisTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/PollThreadStallDiagnosis.java 30.78
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/SubmitWorkToPoolShutdownRaceTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/SubmitWorkToPoolShutdownRaceTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 43.25
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorConfigurationTest.java 38.6
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/TestParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 35.81
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 33.11
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 31.83
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserter.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserter.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserterTest.java 30.53
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserterTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserterTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/BlockedThreadAsserter.java 30.53
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/CollectionUtils.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/CollectionUtils.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/JavaUtils.java 35.34
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/KafkaTestUtils.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/KafkaTestUtils.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java 31.3
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/LoopingResumingIteratorTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/LoopingResumingIteratorTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/KafkaSanityTests.java 32.75
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtilsTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtilsTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/utils/ThrowableUtils.java 35.31
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/metrics/PCMetrics859Test.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/metrics/PCMetrics859Test.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/metrics/PCMetrics.java 42.74
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/MetricsTeardownCannotBreakCloseTest.java 37.41
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java 37.87
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java 37.87
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckHarness.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckHarness.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java 31.38
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckToolchainProbeTest.java 30.97
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckToolchainProbeTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckToolchainProbeTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java 35.84
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckHarness.java 30.97
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/OffsetEncoderWidenedRangeRaceTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/OffsetEncoderWidenedRangeRaceTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitEncodeShift894Test.java 46.33
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingEncodeWindowState.java 38.18
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitEncodeShift894Test.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitEncodeShift894Test.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/OffsetEncoderWidenedRangeRaceTest.java 46.33
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitShiftCompounding894Test.java 42.63
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java 33.73
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitShiftCompounding894Test.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitShiftCompounding894Test.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitEncodeShift894Test.java 42.63
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateCommitEncodeShift894Test.java 33.73
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java 32.82
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RetryQueueLincheckTest.java 31.23
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerLincheckTest.java 30.34
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ProcessingShardStaleReplacement909Test.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ProcessingShardStaleReplacement909Test.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerStaleContainerTest.java 44.33
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingCommitCycleState.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingCommitCycleState.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingEncodeWindowState.java 58.96 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingEncodeWindowState.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingEncodeWindowState.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RacingCommitCycleState.java 58.96 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/OffsetEncoderWidenedRangeRaceTest.java 38.18
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RetryQueueLincheckTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RetryQueueLincheckTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java 41.32
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java 31.23
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerLincheckTest.java 30.2
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardAvailableCountOwnershipTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardAvailableCountOwnershipTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 37.58
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardPopulationRaceTest.java 33.51
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerLincheckTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RetryQueueLincheckTest.java 41.32
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckToolchainProbeTest.java 35.84
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java 32.82
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/LincheckHarness.java 31.38
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerRevokeSweepNpeTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerRevokeSweepNpeTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerStaleCheckDoubleLookupTest.java 34.04
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerStaleContainerTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerStaleContainerTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ProcessingShardStaleReplacement909Test.java 44.33
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/internal/EpochAndRecordsMapRaceTest.java 34.05
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardPopulationRaceTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardPopulationRaceTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ProcessingShard.java 39.4
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/ShardManager.java 33.67
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardAvailableCountOwnershipTest.java 33.51
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkClaimStateMachineTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkClaimStateMachineTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerTest.java 52.4 ⚠️
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/state/WorkContainer.java 48.26
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerLincheckTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerLincheckTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/PartitionStateLincheckTest.java 30.34
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/RetryQueueLincheckTest.java 30.2
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerStaleCheckDoubleLookupTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerStaleCheckDoubleLookupTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/ShardManagerRevokeSweepNpeTest.java 34.04
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerTest.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkManagerTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/state/WorkClaimStateMachineTest.java 52.4 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/CommitHistorySubject.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/CommitHistorySubject.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/LongPollingMockConsumerSubject.java 36.24
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/LongPollingMockConsumerSubject.java

📄 parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/LongPollingMockConsumerSubject.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/truth/CommitHistorySubject.java 36.24
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 31.2
parallel-consumer-examples/parallel-consumer-example-core/src/main/java/bz/stub/parallelconsumer/examples/core/CoreApp.java

📄 parallel-consumer-examples/parallel-consumer-example-core/src/main/java/bz/stub/parallelconsumer/examples/core/CoreApp.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-reactor/src/main/java/bz/stub/parallelconsumer/examples/reactor/ReactorApp.java 36.8
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java

📄 parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/ReactorAppTest.java 39.83
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java 36.56
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/integrationTests/CoreAppMetricsIntegrationTest.java 36.52
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java

📄 parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java

📄 parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 80.97 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 80.09 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 79.72 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 79.4 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 79.29 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 76.06 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 75.04 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 74.92 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/integrationTests/CoreAppMetricsIntegrationTest.java

📄 parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/integrationTests/CoreAppMetricsIntegrationTest.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java 36.52
parallel-consumer-examples/parallel-consumer-example-reactor/src/main/java/bz/stub/parallelconsumer/examples/reactor/ReactorApp.java

📄 parallel-consumer-examples/parallel-consumer-example-reactor/src/main/java/bz/stub/parallelconsumer/examples/reactor/ReactorApp.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-vertx/src/main/java/bz/stub/parallelconsumer/examples/vertx/VertxApp.java 71.15 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/main/java/bz/stub/parallelconsumer/examples/core/CoreApp.java 36.8
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/ReactorAppTest.java

📄 parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/ReactorAppTest.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java 47.91
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java 39.83
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java

📄 parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java

📄 parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 80.97 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 80.09 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 79.72 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 79.4 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 79.29 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 76.06 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 75.04 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 74.92 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/main/java/bz/stub/parallelconsumer/examples/vertx/VertxApp.java

📄 parallel-consumer-examples/parallel-consumer-example-vertx/src/main/java/bz/stub/parallelconsumer/examples/vertx/VertxApp.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-reactor/src/main/java/bz/stub/parallelconsumer/examples/reactor/ReactorApp.java 71.15 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java

📄 parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 82.55 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 77.87 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 76.38 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java

📄 parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/VertxAppTest.java

File Similarity (%)
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/ReactorAppTest.java 47.91
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/CoreAppTest.java 36.56
parallel-consumer-mutiny/src/main/java/bz/stub/parallelconsumer/mutiny/MutinyProcessor.java

📄 parallel-consumer-mutiny/src/main/java/bz/stub/parallelconsumer/mutiny/MutinyProcessor.java

File Similarity (%)
parallel-consumer-reactor/src/main/java/bz/stub/parallelconsumer/reactor/ReactorProcessor.java 44.98
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyBatchTest.java

📄 parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorBatchTest.java 80.97 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java 50.79 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/VertxBatchTest.java 49.08
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyMdcPropagationTest.java

📄 parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyMdcPropagationTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorMdcPropagationTest.java 47.99
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyPCTest.java

📄 parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyPCTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorPCTest.java 69.28 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyUnitTestBase.java

📄 parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyUnitTestBase.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorUnitTestBase.java 31.22
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java

📄 parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 86.16 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 85.23 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 84.49 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 84.37 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 81.28 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 80.93 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 79.84 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 79.72 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 79.72 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java

📄 parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 81.87 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 80.87 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 80.22 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 79.84 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 79.41 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 78.42 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 76.5 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 75.04 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 75.04 ⚠️
parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireDurations.java

📄 parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireDurations.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestamps.java 47.85
parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestamps.java

📄 parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestamps.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/main/java/bz/stub/parallelconsumer/proxy/protocol/WireDurations.java 47.85
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/GoldenSessionFixture.java

📄 parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/GoldenSessionFixture.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/ProxyProtocolRoundTripTest.java 44.1
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/ProxyProtocolRoundTripTest.java

📄 parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/ProxyProtocolRoundTripTest.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/GoldenSessionFixture.java 44.1
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java

📄 parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 85.58 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 84.89 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 84.49 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 84.03 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 82.98 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 81.87 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 80.95 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 79.4 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 79.4 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireDurationsTest.java

📄 parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireDurationsTest.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestampsTest.java 72.0 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestampsTest.java

📄 parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireTimestampsTest.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/WireDurationsTest.java 72.0 ⚠️
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java

📄 parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java

File Similarity (%)
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/MainTest.java 31.33
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java 30.47
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/NoEngineSessionService.java

📄 parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/NoEngineSessionService.java

File Similarity (%)
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/CountingSessionService.java 31.72
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java

📄 parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java

File Similarity (%)
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdogTest.java 34.0
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java 30.47
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/ProxyServer.java

📄 parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/ProxyServer.java

File Similarity (%)
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/ProxyServerTest.java 39.97
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuard.java

📄 parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuard.java

File Similarity (%)
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuardTest.java 40.93
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/MainTest.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/MainTest.java

File Similarity (%)
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/Main.java 31.33
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 82.98 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 81.97 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 81.31 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 80.93 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 80.49 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 78.42 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 77.54 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 76.06 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 76.06 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdogTest.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdogTest.java

File Similarity (%)
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/lifecycle/ParentDeathWatchdog.java 34.0
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/CountingSessionService.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/CountingSessionService.java

File Similarity (%)
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/NoEngineSessionService.java 31.72
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/ProxyServerTest.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/ProxyServerTest.java

File Similarity (%)
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/ProxyServer.java 39.97
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuardTest.java

📄 parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuardTest.java

File Similarity (%)
parallel-consumer-proxy/src/main/java/bz/stub/parallelconsumer/proxy/transport/SingleConnectionGuard.java 40.93
parallel-consumer-reactor/src/main/java/bz/stub/parallelconsumer/reactor/ReactorProcessor.java

📄 parallel-consumer-reactor/src/main/java/bz/stub/parallelconsumer/reactor/ReactorProcessor.java

File Similarity (%)
parallel-consumer-mutiny/src/main/java/bz/stub/parallelconsumer/mutiny/MutinyProcessor.java 44.98
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java 30.96
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorBatchTest.java

📄 parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorBatchTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyBatchTest.java 80.97 ⚠️
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java 52.1 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/VertxBatchTest.java 50.32 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorMdcPropagationTest.java

📄 parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorMdcPropagationTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyMdcPropagationTest.java 47.99
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorPCTest.java

📄 parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorPCTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyPCTest.java 69.28 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorUnitTestBase.java

📄 parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorUnitTestBase.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyUnitTestBase.java 31.22
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java

📄 parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 85.69 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java 84.76 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 84.37 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 84.03 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 80.83 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 80.49 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 79.41 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 79.29 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 79.29 ⚠️
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 43.42
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 41.82
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelStreamProcessor.java 38.52
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 38.23
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 36.22
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 34.02
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelStreamProcessor.java 43.09
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 41.82
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelStreamProcessor.java 38.02
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelEoSStreamProcessor.java 34.09
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/JStreamParallelStreamProcessor.java 33.53
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/ParallelEoSStreamProcessor.java 30.03
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelStreamProcessor.java 41.28
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 38.23
parallel-consumer-core/src/main/java/bz/stub/parallelconsumer/internal/ExternalEngine.java 36.57
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 43.09
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 41.28
parallel-consumer-vertx/src/main/java/bz/stub/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 38.52
parallel-consumer-vertx/src/test-integration/java/bz/stub/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java

📄 parallel-consumer-vertx/src/test-integration/java/bz/stub/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 36.19
parallel-consumer-core/src/test-integration/java/bz/stub/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 31.34
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java

📄 parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/TestConventionsArchTest.java 86.56 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/TestConventionsArchTest.java 85.23 ⚠️
parallel-consumer-proxy-protocol/src/test/java/bz/stub/parallelconsumer/proxy/protocol/TestConventionsArchTest.java 84.89 ⚠️
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/TestConventionsArchTest.java 84.76 ⚠️
parallel-consumer-examples/parallel-consumer-example-core/src/test/java/bz/stub/parallelconsumer/examples/core/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-examples/parallel-consumer-example-reactor/src/test/java/bz/stub/parallelconsumer/examples/reactor/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-examples/parallel-consumer-example-vertx/src/test/java/bz/stub/parallelconsumer/examples/vertx/TestConventionsArchTest.java 81.66 ⚠️
parallel-consumer-proxy/src/test/java/bz/stub/parallelconsumer/proxy/TestConventionsArchTest.java 81.31 ⚠️
parallel-consumer-proxy-clients/parallel-consumer-proxy-client-java/src/test/java/bz/stub/parallelconsumer/client/TestConventionsArchTest.java 80.22 ⚠️
parallel-consumer-examples/parallel-consumer-example-metrics/src/test/java/bz/stub/parallelconsumer/examples/metrics/TestConventionsArchTest.java 80.09 ⚠️
parallel-consumer-examples/parallel-consumer-example-streams/src/test/java/bz/stub/parallelconsumer/examples/streams/TestConventionsArchTest.java 80.09 ⚠️
parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/VertxBatchTest.java

📄 parallel-consumer-vertx/src/test/java/bz/stub/parallelconsumer/vertx/VertxBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/bz/stub/parallelconsumer/reactor/ReactorBatchTest.java 50.32 ⚠️
parallel-consumer-mutiny/src/test/java/bz/stub/parallelconsumer/mutiny/MutinyBatchTest.java 49.08
parallel-consumer-core/src/test/java/bz/stub/parallelconsumer/CoreBatchTest.java 44.68

@github-actions

Copy link
Copy Markdown

🧪🔒 Quarantine Lane Report

Quarantined test Outcome Owner Meaning
ProducerManagerTest.producedRecordsCantBeInTransactionWithoutItsOffsetDirect 🔴 failing (expected) #262 quarantine holding

🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its @Quarantined annotation + docs/quarantined-tests.md entry (a merge-blocking review thread has been opened). Lane: non-gating; rules: see the Quarantine Audit check.

@github-actions

Copy link
Copy Markdown

⚠️ SpotBugs Report

423 bug(s) found (rule-level exclusions only - see docs/inflight/static-spotbugs-rule-registry.md). See the annotations on the Files Changed tab for details.

…erent library matches

The whole-tree CVE scan went red on this branch's first push: `com.google.code.gson:gson:2.11.0`,
CVE-2025-53864, CVSS 6.9, reaching the tree for the first time because gRPC 1.75 brings gson in at
runtime for JSON service-config parsing and this is the first module to depend on gRPC's transport.

THE ADVISORY IS ABOUT `com.nimbusds:nimbus-jose-jwt`, NOT GSON. Its affected product is Nimbus JOSE
+ JWT before 10.0.2 / 9.37.4, and its own text says the flaw is "independent of the Gson 2.11.0
issue" - so Sonatype's matcher has taken a version out of a sentence that exists to distinguish the
two. Nothing in this repository depends on nimbus-jose-jwt.

PINNED FORWARD ANYWAY, RATHER THAN EXCLUDED, and that is the decision worth recording. An
`excludeVulnerabilityIds` entry is repo-wide debt that has to carry a retirement condition, and this
one would have no dischargeable condition: the record is CORRECT about a library we do not use, so
it will never be withdrawn and the exclusion would sit there permanently. Moving off the matched
version costs one managed line, removes the finding at its source, and is an upgrade wanted
regardless. gson is transitive and not independently upgradable, so a managed version is the only
lever available.

Settled by the scan itself rather than by argument, one term changed and nothing else:

    CONTROL  (gson 2.11.0)  Detected 1 vulnerable components:
                              com.google.code.gson:gson:jar:2.11.0:runtime
                              * [CVE-2025-53864] ... (6.9)
    FIXED    (gson 2.14.0)  no vulnerable components; gson:jar:2.14.0:runtime in the tree

`error_prone_annotations` moves 2.47.0 -> 2.48.0 in the same change, because gson 2.14.0 asks for
2.48.0 and `requireUpperBoundDeps` fails a graph that settles below its highest requester. That
leaves this module a version above the protocol module's pin, which is not drift: the rule is
"manage it up to what the highest requester asks for", and the two modules have different highest
requesters. The pom says so, because two nearly-identical pins a version apart is exactly what a
later reader would try to "fix".

Full reactor build and the module's suite green afterwards; `bin/check-all.sh` exit 0.
@astubbs
astubbs marked this pull request as draft August 31, 2026 06:25
astubbs added a commit that referenced this pull request Aug 31, 2026
…han abandoning it

SpotBugs on the PR: awaitAnnouncedPort "may fail to close stream". It was right, and the fix is the
one the finding points at rather than a suppression - the method wrapped the process's stdout in a
BufferedReader, read one line, and dropped it.

The reader is now opened beside the process it belongs to and closed with it, in a
try-with-resources around the whole arm, with the helper taking it as a parameter. That is also why
it is not closed the moment the port line is parsed: closing it closes the process's stdout pipe,
which must outlive the parse.

The two remaining findings on these lines are UNENCRYPTED_SOCKET, and they are declined for the same
reason #384 declines five of them: every one is a connection to this
sidecar's own loopback listener, which is plaintext BY DESIGN - loopback-only plus one-connection
admission is what this module offers instead of transport security. A probe that used TLS would be
probing a listener that does not exist.

Re-run: the native build and all four lifecycle arms green, the module suite green,
bin/check-all.sh 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Aug 31, 2026
…s engine back

Merges `feats/proxy-dispatch-clients` (#390, the top of the Wagon A
stack) into this branch, so that #293 can be retargeted onto that rung
and its displayed diff collapse to the engine residue. This is the plan's "retarget move" -
`docs/plans/2026-08-31-001-process-god-branch-decomposition-plan.md` - and it is an ordinary
merge: no history was rewritten and nothing was force-pushed. The pre-merge tip is preserved as
`origin/backup/pre-stack-merge-293`.

The merge also brings `master` forward, because the stack is current with it and this branch was
not. That is most of the volume and most of the conflicts.

## Which side won, and why

The rule was: the god branch's SEMANTIC content, expressed on the stack's refined STRUCTURE.

- **Engine-only files stayed** - `ProxyProcessor`, `ConfigureHandler`, the dispatch waves, epochs,
  leases, reconnect and the produce path. They are the residue this campaign exists to expose.
- **Stack-only files were taken** - the ten foreign clients, the runner registry, the sidecar shim,
  the self-retiring guards, `Main` and `ParentDeathWatchdog`.
- **Records lost, everywhere.** The stack converted five value types from Java records to plain
  final classes because Jabel rewrites a record into a class with no source positions and Error
  Prone 2.42.0 crashes rather than reporting on it. This branch never met that only because its
  root pom had no Error Prone; master's does now, so the conversion is load-bearing here.
- **Dependency pins are the stack's**: protobuf 3.25.8 (`requireUpperBoundDeps` refuses 3.25.5
  against grpc-protobuf's transitive ask), gson 2.14.0, `error_prone_annotations` 2.48.0 in the
  proxy and the Java client aggregator and 2.47.0 in the protocol module - deliberately unequal,
  because their highest requesters differ.
- **`clients.yml` is this branch's**, not the stack's. The stack's copy is a smaller earlier file
  whose own header says it has no conformance lane, no per-language static analysis and no
  dependency audit; only its `--component clippy` fix and its workflow-level
  `PC_FOREIGN_CLIENTS_STRICT` were folded in.
- **Master's copy won for everything master owns** - the gate scripts, the copyright checker and
  its self-test, `repo-hygiene.yml`, `docs/ci.md`, `docs/copyright.md`. This branch's only delta in
  most of those was a copyright header in a pre-canonical form, written before #338 landed
  the canonical one on master.
- **The two ledgers were merged as unions**, not resolved to a side.
  `docs/inflight/bug-857-family.md` keeps both sides' sightings, this branch's renumbered per the
  file's own stated convention; `docs/quarantined-tests.md` drops three entries whose owning PRs
  retired the annotation on master, because a registry entry without a `@Quarantined` test is a
  hard gate failure.

## The verdict-free work return, re-expressed on master's shape

Unit U4 is still on this branch as `WorkManager.onAbandonedResult` and its call sites, and
`WorkManager.java` auto-merged keeping them - so resolving `WorkContainer`, `ProcessingShard` and
`ShardManager` to master alone would have compiled to nothing. Master moved underneath it:
#335 collapsed `inFlight` and `maybeUserFunctionSucceeded` into one atomic `ExecutionState`,
and #336 and #373 replaced the shard's raw `availableWorkContainerCnt` with a
compare-and-set claim.

`ProcessingShard.onAbandoned` and `ShardManager.onAbandoned` are therefore taken verbatim from
`feats/proxy-verdict-free-return` (#295), which is cut on current master
and is the authoritative re-expression - it routes the restore through `includeInSelection` rather
than incrementing a counter that no longer exists.

`WorkContainer` is NOT #295's, and the difference is deliberate: that branch marks
abandonment with an `AtomicBoolean` cleared by the claim winner, while this branch keys it by
delivery (`markAbandoned(long)`, `isAbandonedForCurrentDelivery`, `isReturnForSupersededDelivery`).
The delivery-keyed form is strictly more: it tells a late return for delivery n from a live return
for delivery n+1, which the boolean cannot, and acting on that confusion ends a running flight and
decrements `numberRecordsOutForProcessing` twice. It also needs no clearing on redelivery, so it
does not race the claim. Master's own `deliveryCount` - already an `AtomicLong` incremented only by
a won claim - supplies the identity, so the field is the one thing added.

## The reconciliation duties #387 and #390 recorded

Both are discharged, and the guards they left behind now pass because the gap closed rather than
because anything was edited.

**`ProxyHarness` and `ConformanceHarness` are one class again.** #387 cut the latter out of
the former with the engine lane removed, and wrote into the class header, the module pom and a
deferred inflight note that whoever landed the engine must merge them - leaving open which module
it ends up in, on the grounds that "the engine lane decides". It decides the sidecar module: the
lane needs `ConfigureHandler` and `ProxyProcessor`, and `TestModeMain` - the process a spawned
foreign runner actually starts - is in that same test tree and would otherwise have to import the
conformance module and close a cycle. So the NAME is the extracted rung's and the MODULE is this
branch's, and `parallel-consumer-proxy-conformance` reaches it through the proxy test-jar its pom
already declared. The stack's refinements to the class survive: `Delivery` stays a plain final
class, and the `startEmbeddedClient` lane stays beside the restored `startEngine`.

**`ConformanceDriver.spawnAgainst` is back**, with `LanguageRunner` a `ConformanceBinding` again -
it stopped being one on #390 for exactly as long as there was no engine to spawn against -
and the ten foreign bindings are registered in `ConformanceBindings.selectable()`.

`ConformanceBindings.deferredUntilTheEngineArrives()` is kept and now returns an empty list, which
is the honest reading: nothing is deferred. It is not deleted because
`TheEngineArrivingMustBringTheForeignCellsTest` reads it, and because the next capability to arrive
without a cell needs that list rather than a new one.

## Two duplications the merge surfaced, resolved rather than left

- **The protocol documents existed twice.** #383 moved `protocol-specification.md` and
  `client-authoring-guide.md` into `parallel-consumer-proxy-protocol/docs/` and predicted the
  rename conflict here. The protocol module wins on the merits - all three artifacts are the
  contract rather than the server - but the CONTENT is this branch's, because the stack's copies
  carry "no client generates from this schema yet" and a `git show` fallback for a Go generator
  script that exists here. `SpecificationCoverageTest` moved with them; every citation was
  re-pointed.
- **`HarnessScenario` existed twice**, once per harness. The stack's plain-class version won, in
  the sidecar module beside the class it serves.

## Five Java records had to become plain final classes, or nothing compiled

`master` gained Error Prone after this branch forked, and Error Prone 2.42.0 does not report on a
Jabel-desugared record - it crashes, failing the whole compilation with a message attributed to line
1 of an unrelated file. #387 hit this one rung down and converted its five
value types; the same thing was waiting here for `ProxyProcessor.ManifestOutcome`,
`ManifestReconciler.Reconciliation`, `InFlightRegistry.InFlight`, `LivenessSettings` and
`TestModeMainTest.Run`. Neither term can move - the root pom pins Error Prone at 2.42.0 because
2.43.0 needs a JVM this build cannot use, and Jabel serves the release 8 target - so the records lost,
which is what the rest of the repository already does. `grep -rn "record "` now finds none.

## Two defects this merge introduced and then fixed

- **The default lane ran a test that needs a profile.** Keeping BOTH sidecar-spawning tests - this
  branch's engine-backed `OneRecordThroughTheSidecarTest` and the stack's engine-less
  `SidecarHandshakeTest` - left the Kotlin and Scala exclusion property naming only the first, so the
  second ran in an ordinary build with no `sidecar-classpath.txt` and failed. Both are now behind one
  regex, which is also the arrangement that makes the pairing legible.
- **Every proxy module's data record existed twice.** This branch keeps module-maturity and
  testing-evidence records in per-module `docs/data/*.d/` fragments; the stack, which never imported
  that mechanism, wrote them into the monolithic files. The merge kept both and
  `bin/check-docs-data.sh` went from green to 37 structural problems. The fragments win, and deleting
  the monolithic copies also deleted eleven rows asserting "NO RECORD HAS CROSSED THE WIRE" - true on
  a stack whose sidecar hosts no engine, false here.

## How it was verified

JDK 17, macOS. Full default reactor `./mvnw --fail-at-end test`: **BUILD SUCCESS**, every module
green including the conformance suite - so the `java-grpc` cell runs against a live engine for the
first time, and `GrpcSpikeConformanceTest` answers all five scenarios over a real gRPC stream.

The four self-retiring guards #387 and #390 left
behind all pass, and **none of them was edited**:
`TheEngineArrivingMustBringTheGrpcBindingTest`, `TheEngineArrivingMustBringTheGrpcCellTest`,
`TheEngineArrivingMustBringTheForeignCellsTest` (which asserts about every registered language, not
one) and `SelectorMatchingNothingFailsTest`.

`bin/check-all.sh` real exit code 1, with three gates failing and all three inherited, established
against the pre-merge tip rather than assumed: `check-inflight-tags` reports the same 53 problems
before and after; `check-file-refs` was already red for the `@`-prefixed bridge imports that
#378 fixes; and `check-branch-self-reference` did not exist on this branch
before the merge - its findings are on notes inherited from `master` byte-identical.
`check-proto-lint` and `check-proto-breaking` report CANNOT RUN for want of `buf`.

**Not run locally: `-Dpc.foreignClients`.** It builds C++ and Swift inside containers, and this box
is under a low-disk warning that names a container build as what would tip it over. CI's per-language
rows are where that lane runs.

## Two findings recorded rather than fixed

- `ParallelEoSStreamProcessorTest.processInKeyOrder` failed its own preamble sanity check once here -
  and the control arm reddened `master` HARDER: unmodified `master`, uncontended, failed all three
  parameterisations where this branch under concurrent load failed one. That refutes the existing
  ledger's "the base branch was green" row, and is the first evidence the flake is master-state.
  Recorded in `docs/inflight/test-processinkeyorder-sanity-check-races-the-first-poll.md`.
- One `java-grpc` conformance run left its last record unsettled, 1 of 2 full-reactor runs and green
  3 of 3 in isolation. `core` and `java-direct` were green in the same run, so the suspect is the
  engine's settle path under a full ceiling rather than the scenario. The scenario was NOT weakened -
  `docs/inflight/proxy-a-java-grpc-ceiling-run-left-its-last-record-unsettled.md`.

## What is deliberately NOT done here

`Main#sessionServiceFactory` still returns `NoEngineSessionService`, so the production entry point
hosts no engine. That is unit U10's, which #384 named as still having no PR,
and it owns the drain that must land with the engine - plus eight cross-language handshake tests
assert the `UNIMPLEMENTED` refusal by status code specifically. Recorded rather than faked, in
`docs/inflight/proxy-the-production-entry-point-still-hosts-no-engine.md`. The engine is exercised end
to end through `TestModeMain` regardless.
astubbs added a commit that referenced this pull request Sep 1, 2026
… engine back

Forward-merges `feats/proxy-requirements` (#293) into this branch after
that branch took the Wagon A stack (merge 8a7dc3e) and was retargeted onto
`feats/proxy-dispatch-clients`. This is the descendant-chain half of the plan's retarget move -
`docs/plans/2026-08-31-001-process-god-branch-decomposition-plan.md` - and it is an ordinary merge:
no history was rewritten, nothing was force-pushed, and this PR's base is unchanged. The pre-merge
tip is preserved as `origin/backup/pre-forward-merge-328`.

Most of the volume is content this branch was simply behind on: the ten foreign clients, the
conformance framework, the protocol module's documents, current `master`, and the five records that
became plain final classes because Error Prone crashes on a Jabel-desugared record. Only four files
conflicted.

## The one that mattered: two `Main`s, and only one of them can be the sidecar

`Main` was an add/add conflict, and the two sides are the same class written for opposite worlds.

- This branch's is **unit U10**: it hosts `ConfigureHandler`, drains records held in a foreign
  process on shutdown, accepts `--socket` to listen on a Unix domain socket, and reserves exit 3 for
  a drain that timed out. `ReferenceDemo` - the whole point of this rung, and the 27x headline -
  spawns it through `SidecarProcess`, so a `Main` without an engine is a demo that cannot run.
- The stack's is #384's engine-less shell: `NoEngineSessionService` behind
  a named `sessionServiceFactory()` seam, `EXIT_BIND_FAILED`, and a package-private `run` overload
  that lets a test name a port so the bind failure is reachable.

The result is this branch's semantics on the stack's structure. `Main` keeps the seam, the bind
exit code and the testable port; `sessionServiceFactory()` now returns the engine; the drain runs
against whatever the session actually reached. Both usage texts, both sets of exit codes and both
transports survive.

## Landing the engine there was not free, and the rung below said exactly what it would cost

`docs/inflight/proxy-the-production-entry-point-still-hosts-no-engine.md` was written for this
moment. It named the substitution as one call site, and then named the three things that had to
happen with it - all three are done here, and the note is deleted rather than left describing a
world that no longer exists:

- **`NoEngineSessionService` is demoted to a test fixture, not deleted**, which is the outcome the
  note predicted. Eight cross-language `SidecarHandshakeTest`s (Kotlin, Scala, Go, Python,
  TypeScript, Rust, Ruby, C#) spawn a sidecar and assert the refusal arrives as `UNIMPLEMENTED`
  *specifically* - `PERMISSION_DENIED` and `RESOURCE_EXHAUSTED` are what the two interceptors raise
  before the service method runs, so the status code is the assertion rather than "it failed". An
  engine behind `Main` makes their subject vanish.
- **`NoEngineMain` is the entry point they now spawn.** It is in the proxy module's test tree, so it
  ships in the test jar every client's sidecar classpath already includes for `TestModeMain` -
  nothing about how any of them spawns changed except the class name. It reimplements no lifecycle:
  it calls `Main`'s own seam with the no-engine supplier, so the binary those tests drive is the
  production lifecycle with one substitution, not a second copy that can drift.
- **Nine call sites were re-pointed**: the eight foreign constants plus the Java client's own
  handshake test, which runs in-JVM and so calls `NoEngineMain.run` rather than spawning. The prose
  around each was corrected too - six of them described the thing they spawn as "the production
  `Main`", which is now the wrong binary rather than a wrong adjective.

**`MainTest` is one class again.** Both sides grew one for the same class, in different packages,
overlapping on arguments-refused, port-announced and two-sidecars. They are merged in `Main`'s own
package keeping every assertion either side had, with the `UNIMPLEMENTED` test re-pointed at the
no-engine service through the seam. `theProductionEntryPointHostsTheEngine` is new and is the
substitution made assertable: without it the two suppliers could quietly swap back and every other
test here would still pass, because the lifecycle is identical either way.

## The other three conflicts

- **`.github/workflows/maven.yml`** - both sides added a matrix entry and neither displaced the
  other: this branch's `Demo (both entry points)` lane and master's `Chaos Pain Suite`. Union.
- **`bin/check-copyright-headers.sh`** - master's refactor wins for the code (`check_derived`,
  `check_always_derived`, `fork_point_path`; this branch's copy still called `fp_path_of`, which no
  longer exists). The `Demo.java` recovery comment is this branch's, because master's version says
  the entry is ahead of its file and cites no ledger path *because none resolved on master* - both
  the file and `docs/inflight/branch-classic-comparison-demo.md` are here, so the path is cited.
- **`ParentDeathWatchdog`** - a javadoc line only. This branch's wording wins because it is the one
  that is now true: the response to death is `DrainCoordinator`'s, and master's "once there is an
  engine it is the shutdown drain's" describes a future that has arrived.

## What was corrected because this merge falsified it

`AGENTS.md`'s module table said the proxy module "hosts no engine, so a session is answered
UNIMPLEMENTED", and the Python client's README called the engine-less sidecar "the production
`Main`". Both are now wrong by one commit, so both were changed rather than left to rot.

## What was NOT corrected, and is a finding rather than an omission

`docs/data/testing-evidence.d/parallel-consumer-proxy.yaml` says the module has no
`src/test-integration` at all and that "there is no production entry point yet". Both were already
false on this branch's own pre-merge tip - U10 landed `SidecarLifecycleIT` and `Main` without
updating the record - so this is inherited rather than introduced, and rewriting an evidence record
is the author's editorial call rather than a merge resolution.

## Two gates that the merge, not the code, turned red

Both are 328's own files meeting analysers that arrived from `master` after this branch forked, so
neither existed as a finding on either parent alone.

- **SpotBugs now runs over this module** (`includeTests`, plus fb-contrib), and reported thirteen
  findings in the demo: three SLF4J format rules, class-envy and an over-concrete parameter on
  `ReferenceDemo`, a non-owned lock in its raw-gRPC arm, five exception-softening findings in
  `DemoBroker`, and two more in the test tree. **They arrive in two batches depending on whether
  `target/test-classes` exists when the gate runs** - the gate binds at `process-classes`, which is
  before `test-compile`, so a build that stops at `test-compile` sees the main-code findings only
  and a full `test` on a warm tree sees both. Do not read the first count as the whole set. Each
  was read at the site and dismissed in this module's own
  `spotbugs-exclude.xml`, class by class and pattern by pattern with the reason beside it - the
  shape the Java client aggregator's pom already prescribes and the api module already uses. None
  is a mute: a demo's output *is* pre-rendered text, a table renderer *does* read the rows it
  renders, and a `main()` whose only caller is a person reading a terminal is the one place
  `EXS_EXCEPTION_SOFTENING_NO_CONSTRAINTS` is the wrong rule.
- **An unreadable exclude filter is a WARNING SpotBugs continues past.** The first version of that
  file quoted two command-line flags in an XML comment, and a double hyphen may not appear inside
  one - so the filter loaded as nothing, the gate kept failing with the same count, and the only
  evidence was one line reading `Unable to read filter` buried in the build log. Worth knowing
  before writing the next one.

## How it was verified

JDK 17, macOS/arm64, toolchains through `mise` (`ruby 3.4.10`, `buf 1.72.0`).

- **Full default reactor `./mvnw --fail-at-end test`.** Every module green, including the
  conformance suite over eleven of the thirteen bindings - so `java-grpc` runs against a live
  engine, and the Java, Kotlin and Scala handshake tests exercise the re-pointed no-engine entry
  point end to end.
- **`bin/check-all.sh` on its real exit code: 1**, three gates failing and all three inherited.
  Established rather than assumed: the same gates on the incoming tip report the same
  `check-file-refs` and `check-branch-self-reference` findings, `check-inflight-tags` reports the
  same problems, and every *additional* finding names a file this merge did not touch - each
  verified with `git diff --quiet HEAD -- <file>`. `check-proto-lint` and `check-proto-breaking`,
  which report CANNOT RUN without `buf`, both pass under `mise`.
- **`COPYRIGHT_CHECK_REQUIRE_FORK_POINT=1 bin/check-copyright-headers.sh`** - 0 violations against
  a real fork point.

**Two things this box cannot answer, both established as inherited rather than assumed:**

- **The `cpp` and `swift` conformance cells fail all ten of their scenarios with exit 126**, "found
  but cannot execute". Their runners are built in a container and extracted, so on macOS the
  artefact is a Linux binary - `file` reports `ELF 64-bit ... GNU/Linux` for both on a `Darwin
  arm64` host, which is the whole diagnosis and has nothing to do with anything in this merge. It
  is the condition #331 documents and fixes with
  `bin/run-conformance-in-container.sh`, one rung up. They are deselected here with
  `-Dpc.conformance.language`, named rather than silently skipped.
- **Six of the eight foreign `SidecarHandshakeTest`s were not run** - Go, Python, TypeScript, Rust,
  Ruby and C# sit behind `-Dpc.foreignClients`, and C++ and Swift build inside containers on a box
  under a low-disk warning. Kotlin and Scala are JVM modules in the default reactor and did run, as
  did the Java client's in-JVM equivalent. What changed in all of them is one constant, and the
  process they now spawn is the same lifecycle with one supplier swapped.
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