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>
12 tasks
- Use org.jacoco.agent.rt.RT.getAgent() to dump coverage in-process via reflection so the SDK does not depend on the runtime classifier at build time. - Cache the resolved agent and fall back to TCP server mode if the runtime API is unavailable, preserving KEPLOY_JACOCO_HOST and KEPLOY_JACOCO_PORT for explicit overrides. - Remove the requirement to launch JaCoCo in tcpserver mode and pass --pass-through-ports for the JaCoCo port; the in-process API bypasses Keploy's network proxy entirely. - Update README to reflect the simpler default and document the TCP fallback path. Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
This was referenced Apr 25, 2026
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
4 tasks
- Adds .woodpecker/build.yml with parallel JDK 8, 17, and 21 builds using maven:3.9-eclipse-temurin-N images. - Removes .github/workflows/maven.yml (single JDK 17 check). - Matrix catches accidental newer-JDK API usage that the source/target 1.8 setting alone does not enforce, and validates the JaCoCo runtime API and junixsocket native loading on every supported JDK. Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
- Adds .woodpecker/release.yml that fires on tags matching v*. - Imports the GPG private key, writes ~/.m2/settings.xml that pulls Sonatype credentials from environment variables, derives the artifact version by stripping the leading 'v' from the tag, and runs `mvn -P release clean deploy` to publish to Maven Central via the existing nexus-staging-maven-plugin (autoReleaseAfterClose=true). - End users release with `git tag v2.0.0 && git push origin v2.0.0`. - Requires Woodpecker secrets: maven_gpg_private_key, maven_gpg_passphrase, ossrh_username, ossrh_password. Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
- Replaces the placeholder N.N.N version in the README install snippet with the upcoming 2.0.0 release tag, so end users can copy-paste the dependency block directly into their pom.xml after we publish. Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
ayush3160
approved these changes
Apr 26, 2026
gouravkrosx
approved these changes
Apr 26, 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 JaCoCo TCP server mode or--pass-through-ports.KEPLOY_JACOCO_HOSTandKEPLOY_JACOCO_PORTstill configure that fallback.sun.java.command, which fixes Docker layouts wherejava.class.pathdoes not include the runnable jar.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.mvn -B -DskipTests -Dgpg.skip=true clean install -pl keploy-sdk -amfor the local sample app build.git diff --check.samples-java/java-dedupagainst 1000 committed replay fixtures in Docker Compose: 1000 successes, 0 failures.samples-java/java-dedupagainst 1000 committed replay fixtures in directdocker run: 1000 successes, 0 failures.keploy dedup --path .produced 982 duplicates and 18 retained tests.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 by default. If the in-process API cannot be located, the SDK falls back to JaCoCo's TCP server mode automatically. Docker and restricted Docker modes still require Enterprise and application containers/processes to share
/tmpso the control/data Unix sockets are visible.Checklist:
Screenshots (if any)
NA