Open
Conversation
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
This was referenced Apr 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #180 (re-opened from keploy/java-sdk so the head ref lives in this repo instead of the fork).
Related Issue
Related PRs
Closes: NA
Describe the changes you've made
Rewrites the Java SDK repo to be dedup-only. The old record/test/grpc/integration SDK modules are deleted; the remaining published module is
keploy-sdkfor Java dynamic dedup replay support.KeployDedupAgentfor Enterprise dynamic dedup using/tmp/coverage_control.sockand/tmp/coverage_data.sock.START <test-set>/<test-id>by resetting JaCoCo counters.END <test-set>/<test-id>by dumping/resetting JaCoCo execution data, analyzing app classes, publishing{id, executedLinesByFile}, and ACKing Enterprise.org.jacoco.agent.rt.RT.getAgent().getExecutionData(...)) using reflection, so consumers do not need to launch JaCoCo intcpservermode or pass--pass-through-ports. Falls back to the TCP server transparently when the runtime API is unavailable;KEPLOY_JACOCO_HOSTandKEPLOY_JACOCO_PORTstill configure the fallback.KEPLOY_JAVA_CLASSPATH_FALLBACK=trueis set.javax.servlet; Jakarta/Spring Boot 3 and non-servlet apps can callKeployDedupAgent.start()directly.Type of change
How did you test your code changes?
mvn -B -DskipTests clean verify -pl keploy-sdk -amon JDK 8.mvn -B -DskipTests clean verify -pl keploy-sdk -amon JDK 17.mvn -B -DskipTests clean verify -pl keploy-sdk -amon JDK 21.git diff --check.samples-java/java-dedupapp against 1000 committed replay fixtures (in-process JaCoCo path): 1000 successes, 0 failures across four testsets.No unit tests were added by request; validation is build and replay coverage.
Describe if there is any unusual behaviour of your code(Write
NAif there isn't)Java dedup attaches the JaCoCo Java agent and reads coverage in-process; no TCP server mode is required by default. If the in-process API cannot be located (e.g. unusual classloader setups), the SDK falls back to JaCoCo's TCP server mode automatically. Docker and restricted Docker modes still require the Enterprise and application containers/processes to share
/tmpso the control/data Unix sockets are visible.Checklist:
Screenshots (if any)
NA