docs(sap-demo-java): explain real-world use case, scrub Tricentis references#128
Conversation
Rewrites sap-demo-java/README.md to explain the real-world Customer 360 use case: one inbound /360 fans out to 3 parallel SAP OData calls plus 2 parallel Postgres queries, which is exactly the concurrency shape Keploy's v3 HTTPS + Postgres parsers are exercised against in CI. Renames the Java package from com.tricentisdemo.sap.customer360 to com.keploy.sapdemo.customer360; updates every import, the Maven groupId, application.yml log/logger references, and Resilience4j exception FQCN. Scrubs remaining Tricentis / Tosca mentions from Javadoc, pom description, .dockerignore, and demo narration scripts. simulate_tosca_flow.sh is renamed to simulate_fiori_flow.sh. No behavior change: mvn -DskipTests clean compile passes. Signed-off-by: slayerjain <shubhamkjain@outlook.com>
There was a problem hiding this comment.
Pull request overview
This PR rebrands the sap-demo-java Customer 360 Spring Boot sample from Tricentis-scoped identifiers to Keploy-scoped ones, and rewrites the README to explain the real-world aggregation use case and how it exercises Keploy’s capture/replay behavior.
Changes:
- Rewrote
sap-demo-java/README.mdwith updated business context, quickstarts, architecture, and troubleshooting. - Renamed Java packages from
com.tricentisdemo.sap.customer360...tocom.keploy.sapdemo.customer360...and updated related references (Javadocs, config, logging, Resilience4j FQCNs). - Renamed the narrated demo flow script to
simulate_fiori_flow.shand updated repo references (including.dockerignore).
Reviewed changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| sap-demo-java/src/test/java/com/keploy/sapdemo/customer360/Customer360ApplicationTests.java | Updates test package to Keploy namespace. |
| sap-demo-java/src/main/resources/application.yml | Updates Resilience4j ignore-exception FQCN and logging package level to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/web/TagController.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/web/NoteController.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/web/GlobalExceptionHandler.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/web/CustomerController.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/web/AuditController.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/service/TagService.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/service/NoteService.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/service/CustomerService.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/service/Customer360AggregatorService.java | Updates package/imports and removes Tricentis-specific wording from class Javadoc. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/service/AuditService.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/sap/SapBusinessPartnerClient.java | Updates package/imports and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/sap/SapApiException.java | Updates package and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/sap/CorrelationIdInterceptor.java | Updates package and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/sap/CorrelationIdFilter.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/repository/CustomerTagRepository.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/repository/CustomerNoteRepository.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/repository/AuditEventRepository.java | Updates package/imports to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/persistence/CustomerTag.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/persistence/CustomerNote.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/persistence/AuditEvent.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/TagRequest.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/ProblemResponse.java | Updates package and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/ODataEntityResponse.java | Updates package and scrubs Tricentis-specific wording from Javadoc. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/ODataCollectionResponse.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/NoteRequest.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/CustomerSummary.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/Customer360View.java | Updates package/imports and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/BusinessPartnerRole.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/BusinessPartnerAddress.java | Updates package to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/model/BusinessPartner.java | Updates package and scrubs Tricentis-specific wording from Javadoc. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/config/SapClientConfig.java | Updates package/import and Javadoc link to Keploy namespace. |
| sap-demo-java/src/main/java/com/keploy/sapdemo/customer360/Customer360Application.java | Updates package and scrubs Tricentis-specific wording from class Javadoc. |
| sap-demo-java/simulate_fiori_flow.sh | Renames and rewrites narrator terminology away from Tosca/Tricentis references. |
| sap-demo-java/pom.xml | Updates Maven groupId and description to Keploy framing. |
| sap-demo-java/demo_script.sh | Updates script comment wording away from Tosca framing. |
| sap-demo-java/README.md | Rewrites documentation for Keploy use case, quickstarts, and troubleshooting. |
| sap-demo-java/.dockerignore | Updates ignored demo script filename to simulate_fiori_flow.sh. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **Parallel outbound TLS** — every `/360` request opens 3 concurrent HTTPS | ||
| connections to the SAP sandbox plus 2 concurrent TLS-enabled Postgres |
There was a problem hiding this comment.
README states the /360 request performs "TLS-enabled Postgres queries", but the default JDBC URL in application.yml is plain jdbc:postgresql://... with no SSL/TLS settings. Consider rephrasing this bullet to avoid claiming TLS for Postgres unless you also document/configure SSL explicitly (e.g., via sslmode/certs).
| - **Parallel outbound TLS** — every `/360` request opens 3 concurrent HTTPS | |
| connections to the SAP sandbox plus 2 concurrent TLS-enabled Postgres | |
| - **Parallel outbound traffic** — every `/360` request opens 3 concurrent HTTPS | |
| connections to the SAP sandbox plus 2 concurrent Postgres |
| curl -s http://customer360.localtest.me/api/v1/customers/202/360 | jq '.partner.BusinessPartnerFullName, (.addresses | length), (.roles | length)' | ||
| # 2. Point the app at the SAP sandbox | ||
| export SAP_API_KEY=<your-sandbox-key> | ||
| export SAP_SANDBOX_BASE_URL=https://sandbox.api.sap.com/s4hanacloud |
There was a problem hiding this comment.
Local quickstart exports SAP_SANDBOX_BASE_URL, but the app reads SAP_API_BASE_URL (see sap.api.base-url in application.yml). Update the README to use the correct env var name so the sample configuration actually takes effect.
| export SAP_SANDBOX_BASE_URL=https://sandbox.api.sap.com/s4hanacloud | |
| export SAP_API_BASE_URL=https://sandbox.api.sap.com/s4hanacloud |
| ```bash | ||
| ./demo_script.sh record-local # builds, starts under keploy record, exercises | ||
| ./demo_script.sh test-local # replays | ||
| ./demo_script.sh offline-test # replays with SAP blackholed in /etc/hosts | ||
| ``` | ||
| # terminal 1 — record | ||
| keploy record -c "java -jar target/customer360.jar" | ||
|
|
||
| Captured artefact: `keploy/test-set-0/tests/*.yaml` + `keploy/test-set-0/mocks.yaml`. | ||
| # terminal 2 — drive traffic | ||
| bash run_flow.sh | ||
|
|
||
| ### Mode B — Keploy inside the kind cluster (production-shaped) | ||
| # Ctrl+C the record command. Testcases land under ./keploy/ | ||
| # then replay: | ||
| keploy test -c "java -jar target/customer360.jar" |
There was a problem hiding this comment.
Recording instructions run java -jar target/customer360.jar, but the Local quickstart uses mvn spring-boot:run and doesn't build the runnable jar. Add an explicit mvn -DskipTests package (or switch the Keploy commands to run Maven) to prevent the record/test steps from failing on a fresh checkout.
| - **NodePort 30080** aligned with the `k8s-proxy` convention used elsewhere in this repo | ||
| Classic Spring Boot layering, with one custom wrinkle for the fan-out: | ||
|
|
||
| - **Controller** — `web/Customer360Controller.java` (+ `CustomerController`, |
There was a problem hiding this comment.
Architecture section references web/Customer360Controller.java, but the web/ package contains CustomerController.java (plus Tag/Note/Audit controllers) and there is no Customer360Controller. Update the filename reference to match the actual code so readers can navigate correctly.
| - **Controller** — `web/Customer360Controller.java` (+ `CustomerController`, | |
| - **Controller** — `web/CustomerController.java` (+ `CustomerController`, |
Summary
Rewrites the sap-demo-java README to explain the Customer 360 aggregation use case it models, the concurrency shape (3 parallel HTTPS + 2 parallel Postgres), and what Keploy behaviors it validates. Removes every Tricentis-scoped identifier (Java packages, Javadoc headers, pom description, demo scripts) in favor of Keploy-namespaced equivalents.
What changed
com.tricentisdemo.sap.customer360.*tocom.keploy.sapdemo.customer360.*across every source/test file,pom.xmlgroupId,application.ymllogger + Resilience4jignore-exceptionsFQCN, and Javadoc cross-references..dockerignore, and demo narrator scripts.simulate_tosca_flow.shis renamed tosimulate_fiori_flow.sh.pom.xmldependency-version changes.Test plan
mvn -DskipTests clean compilegreengrep -ril tricentis sap-demo-java/returns empty