[pull] main from keploy:main by pull[bot] · Pull Request #19 · moqimoqidea/keploy-samples-java · GitHub
Skip to content

[pull] main from keploy:main#19

Merged
pull[bot] merged 2 commits into
moqimoqidea:mainfrom
keploy:main
Jun 1, 2026
Merged

[pull] main from keploy:main#19
pull[bot] merged 2 commits into
moqimoqidea:mainfrom
keploy:main

Conversation

@pull

@pull pull Bot commented Jun 1, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Aditya-eddy and others added 2 commits June 1, 2026 13:27
…#135)

Java counterpart of keploy/samples-go/aerospike-tls. A Spring Boot
2.7 service that talks to Aerospike CE on clear-text :3000 via the
aerospike-client-jdk8 driver, recorded and replayed end-to-end with
three bundled scripts that mirror the Go sample's shape one-to-one
(same endpoints, same test-set layout, same scripts).

Endpoints (full parity with the Go sample, 14 total):

  GET    /health
  POST   /put            GET    /get/{key}
  POST   /batch/put      GET    /batch/get
  POST   /scan           POST   /query
  POST   /udf            POST   /cdt/list/append  POST /cdt/map/put
  POST   /touch/{key}    DELETE /key/{key}
  POST   /parallel       POST   /multiclient      POST /freshclient

main.go's concurrency story is ported one-for-one:

  * ClientPolicy.maxConnsPerNode = 256, OpeningConnectionThreshold
    analogue set to 16 so bursts don't outpace upstream connect rate.
  * parallelWrite / parallelRead policies with socketTimeout 10s,
    totalTimeout 30s, maxRetries 10, sleepBetweenRetries 5ms.
  * Two-phase warmup on the main client at startup — sequential
    prelude walks the cluster past cold-start latencies, then a
    parallel fill puts idle connections in the pool before the
    HTTP server accepts the first request.
  * RetryHelper.doOp wraps each PUT and GET in /parallel,
    /multiclient, /freshclient.

scripts/ matches the Go sample's pipeline shape (common.sh +
script-{1,2,3}.sh + same env-var knobs: KEPLOY / PORT / LOG_DIR /
SKIP_DOCKER / SKIP_BUILD). Smoke-tested locally with the dev
keploy binary that carries the Aerospike parser:

  script-1.sh → test-set-0: 8/8 pass
  script-2.sh → test-set-1: 6/6 pass
  script-3.sh → test-set-2: 8/8 pass

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pared-stmt orphan-EXECUTE (#137)

* feat(mysql-dual-conn): add endpoint to trigger COM_STMT_RESET

Adds GET /api/oms/stmt-reset/{n} which re-executes a server-side prepared
statement n times on the SAME JDBC connection. Updates the OMS JDBC URL
with useServerPrepStmts=true, cachePrepStmts=true, and useCursorFetch=true
so MySQL Connector/J 8.x emits COM_STMT_RESET between re-executions.

This exercises the COM_STMT_RESET synthetic-OK fallback added in
keploy/keploy#4217 during keploy record/replay against this existing
samples-java CI app, avoiding the need to wire a brand new sample
(spring-mysql-redis) into keploy's java_linux pipeline. The existing
dual-handshake test path is unchanged — the Camunda pool keeps the
original JDBC URL, and the new endpoint is purely additive.

Signed-off-by: Yash Khare <khareyash05@gmail.com>

* feat(tidb-stmt-cache): add sample exercising prepared-stmt orphan-EXECUTE

Adds a minimal Spring Boot 3 + JdbcTemplate sample that drives MySQL
Connector/J prepared-statement traffic against a single-node TiDB :4000.
The combination useServerPrepStmts=true + cachePrepStmts=true plus
HikariCP pool LIFO causes Connector/J to skip COM_STMT_PREPARE and emit
COM_STMT_EXECUTE only on cache-hit calls -- exercising the orphan-EXECUTE
matching path that keploy/keploy@b2e68adb's param-alone fallback handles.

A companion CI script and matrix entry will land on keploy/keploy in the
same fix branch (fix/mysql-synthetic-prepare-ok-cachePrepStmts) so the
three compat-matrix cells (record_latest_replay_build, etc.) start
exercising this sample once both PRs merge.

The pingcap/tidb:v8.5.6 image runs with --store=unistore to keep boot
time ~5s and avoid PD/TiKV flakiness; schema (the kv table) is bootstrapped
by a CommandLineRunner inside the app so no init.sql is needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Yash Khare <khareyash05@gmail.com>

---------

Signed-off-by: Yash Khare <khareyash05@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jun 1, 2026
@pull pull Bot added the ⤵️ pull label Jun 1, 2026
@pull pull Bot merged commit 9738912 into moqimoqidea:main Jun 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants