Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: BabelQueue/babelqueue-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.0
Choose a base ref
...
head repository: BabelQueue/babelqueue-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: HEAD
Choose a head ref
  • 20 commits
  • 51 files changed
  • 2 contributors

Commits on Jun 7, 2026

  1. Configuration menu
    Copy the full SHA
    0c76a73 View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2026

  1. Configuration menu
    Copy the full SHA
    4230883 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2026

  1. Configuration menu
    Copy the full SHA
    3d62676 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ea69e5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    47a1724 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    47f51bd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b0601bb View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d93525b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9592a0f View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2026

  1. feat: optional idempotency (ADR-0022) and per-URN schema validation (…

    …ADR-0024) (#1)
    
    Opt-in, dependency-free helpers; wire envelope stays frozen. Includes the vendored payload_schema cross-SDK conformance cases.
    muhammetsafak authored Jun 18, 2026
    Configuration menu
    Copy the full SHA
    e7f5ba9 View commit details
    Browse the repository at this point in the history
  2. chore(release): v1.1.0

    muhammetsafak committed Jun 18, 2026
    Configuration menu
    Copy the full SHA
    ebe0836 View commit details
    Browse the repository at this point in the history
  3. build: bump central-publishing-maven-plugin 0.7.0 -> 0.11.0

    0.7.0 crashes parsing the new 'warnings' field in Sonatype Central's DeploymentApiResponse after a successful upload (false-fails the release; 1.1.0 published anyway). 0.11.0 handles it.
    muhammetsafak committed Jun 18, 2026
    Configuration menu
    Copy the full SHA
    a601393 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2026

  1. feat(otel): optional OpenTelemetry tracing module (ADR-0025) (#2)

    Mirrors the Go/Python/Node reference: a new com.babelqueue.otel package emitting produce/consume spans correlated across hops via trace_id<->32-hex OTel TraceId. Tracing.wrapHandler (consumer span) + Tracing.publish (producer span over a Sender). opentelemetry-api is declared optional, so the core stays zero-dependency at runtime for users who do not opt in. Envelope untouched (GR-1); opt-in.
    muhammetsafak authored Jun 19, 2026
    Configuration menu
    Copy the full SHA
    85f98a8 View commit details
    Browse the repository at this point in the history
  2. chore(release): v1.2.0

    muhammetsafak committed Jun 19, 2026
    Configuration menu
    Copy the full SHA
    8eddb59 View commit details
    Browse the repository at this point in the history
  3. feat(redrive): DLQ redrive tooling — safe replay (ADR-0026) (#3)

    Java mirror of babelqueue-go Redrive: Redrive.redrive(transport, dlq, opts) drains a DLQ and re-publishes each message (reset: strip dead_letter, attempts->0, preserve job/trace_id/data/meta) to its dead_letter.original_queue or opts.toQueue. Options all()/toQueue/max/dryRun/select. The codec-only core has no transport, so it works over a minimal Transport seam the caller implements (like the otel Sender). Drains-then-processes; acks only after a successful re-publish; restores undecodable bodies (a null-job envelope) and on publish failure. No new dependency; envelope frozen. Replay-Bypass header documented as phase two.
    muhammetsafak authored Jun 19, 2026
    Configuration menu
    Copy the full SHA
    a73865c View commit details
    Browse the repository at this point in the history
  4. chore(release): v1.3.0

    muhammetsafak committed Jun 19, 2026
    Configuration menu
    Copy the full SHA
    0ddfbf9 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2026

  1. feat(replay): Replay-Bypass guard — skip external side-effects on a d…

    …eliberate replay (ADR-0027) (#4)
    
    * feat(replay): Replay-Bypass guard — skip external side-effects on a deliberate replay (ADR-0027)
    
    Parity with the Go reference: ReceivedMessage headers + HeaderPublisher,
    Redrive bypass stamping bq-replay-bypass, and isReplay /
    bypassExternalEffects helpers. 72 tests pass (incl. ReplayTest).
    
    * chore(release): v1.4.0
    
    ---------
    muhammetsafak committed Jun 20, 2026
    Configuration menu
    Copy the full SHA
    a5a1f5b View commit details
    Browse the repository at this point in the history
  2. feat(otel): W3C traceparent transport-header propagation — Java core …

    …(ADR-0028)
    
    Mirrors the Go reference: a Map<String,String> header-carrier seam (HeaderSender
    produce-side + a Supplier<Map> consume-side on wrapHandler) and W3C traceparent
    inject/extract in the otel package. The producer writes the active span's
    traceparent onto the carrier (still stamping trace_id); the consumer starts its
    span as a child of the remote parent (true cross-hop linkage). No header falls
    back to the v0.1 trace_id behaviour. Uses the in-box W3CTraceContextPropagator
    from opentelemetry-api (already optional) — no new dependency (GR-7); envelope
    frozen (GR-1); trace_id preserved (GR-4). Per-transport wiring (babelqueue-java-
    sqs/-redis/-spring) is a documented follow-up. Bump to 1.5.0.
    muhammetsafak committed Jun 20, 2026
    Configuration menu
    Copy the full SHA
    dc8da67 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2026

  1. feat(outbox): transactional outbox helper — Java core (ADR-0029)

    Ports the producer-side transactional outbox in the new com.babelqueue.outbox:
    Outbox.write encodes the frozen envelope and persists it via a caller-bound
    OutboxStore inside the caller's own DB transaction (no dual-write), and
    OutboxRelay.flush/drain forwards stored rows verbatim through a byte-typed
    OutboxTransport — markPublished only after publish returns, a throwing publish
    -> markFailed + linear backoff (row stays pending), one poison row never blocks
    the batch. At-least-once handoff; consumers dedupe on meta.id. Frozen bytes ride
    verbatim (GR-1/4/5, defensive-cloned); OutboxStore is an interface so the core
    stays zero-dep (GR-7). v1.6.0.
    muhammetsafak committed Jun 21, 2026
    Configuration menu
    Copy the full SHA
    804be46 View commit details
    Browse the repository at this point in the history
  2. feat(gdpr): runtime field encryption for x-gdpr-sensitive — Java core…

    … (ADR-0030)
    
    The SDK-enforcement half of GDPR governance (mirrors the Go reference). New
    com.babelqueue.gdpr: a caller-bound Cipher interface (encrypt/decrypt onto
    KMS/Vault) + a JDK-only AesGcmCipher reference (javax.crypto, AES-256-GCM), and
    Gdpr.protect/unprotect that encrypt/decrypt exactly the schema's x-gdpr-sensitive
    leaves in place (nested + array + root), byte-for-byte round-trip, wrong key ->
    DecryptException. SensitivePaths.of parses x-gdpr-sensitive (validation-neutral);
    a small public JsonValues bridges the package-private codec for canonical leaf
    round-trips. data stays pure JSON (ciphertext string) so the envelope is frozen
    (GR-1, schema_version 1, trace_id preserved); the Cipher seam keeps the core
    zero-dep (GR-7). Opt-in; schema validation on cleartext. v1.7.0.
    muhammetsafak committed Jun 21, 2026
    Configuration menu
    Copy the full SHA
    920fcd0 View commit details
    Browse the repository at this point in the history
Loading