Skip to content

chore: cds5 upgrade and release prep#856

Merged
Schmarvinius merged 10 commits into
mainfrom
chore/cds5-upgrade-and-release-prep
Jul 14, 2026
Merged

chore: cds5 upgrade and release prep#856
Schmarvinius merged 10 commits into
mainfrom
chore/cds5-upgrade-and-release-prep

Conversation

@Schmarvinius

@Schmarvinius Schmarvinius commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Upgrade to CDS5 / CAP Java 5 and Release 1.6.0

Chore

🔧 Bumps the project to CAP Java 5 (cds.services.version5.0.0), @sap/cds-dk v10, Spring Boot 4.1.0, and Java 21, and cuts the final 1.6.0 release. Alongside the dependency upgrades, the build is hardened to use npm ci (instead of npm install), and all integration tests are migrated to the new spring-boot-webmvc-test split artifact introduced in Spring Boot 4.

Changes

  • .gitignore: Added exceptions for the two new package-lock.json files so they are tracked in source control.
  • pom.xml (root): Version bumped to 1.6.0 (was 1.6.0-rc1), Java target raised to 21, cds.services.version5.0.0, cds.cdsdk.version10.0.4, minimum Maven version enforcer updated to 3.9.14.
  • cds-feature-attachments/package.json + package-lock.json: New local package.json that pins @sap/cds-dk ^10 for the cds-maven-plugin build, with a committed lock file for reproducible installs.
  • cds-feature-attachments/pom.xml: Added a cds.npm-ci execution step that runs npm ci before the CDS build step.
  • integration-tests/package.json + package-lock.json: Added @sap/cds-dk ^10 dev dependency with a committed lock file.
  • integration-tests/pom.xml: Spring Boot BOM version bumped to 4.1.0.
  • integration-tests/generic/pom.xml: Added spring-boot-starter-webmvc-test test dependency; added cds.npm-ci Maven execution.
  • integration-tests/mtx-local/package.json: Bumped @sap/cds-dk^10, @sap/cds-mtxs^4.
  • integration-tests/mtx-local/mtx/sidecar/package.json: Bumped @sap/cds^10, @sap/cds-mtxs^4, express^5.
  • integration-tests/mtx-local/srv/pom.xml: Added spring-boot-starter-webmvc-test; switched npm installnpm ci; added clean step for node_modules/com.sap.cds.
  • Integration test Java classes (DraftOdataRequestValidationBase, OdataRequestValidationBase, MultiTenantAttachmentIsolationTest, SubscribeAndUnsubscribeTest, ApplicationTest): Replaced org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc with org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc to match the Spring Boot 4 package restructuring. Removed Spring-injected ObjectMapper beans in favor of locally instantiated instances.
  • samples/bookshop/pom.xml: Raised jdk.version to 21, cds.services.version5.0.0, Spring Boot → 4.1.0, cds-feature-attachments1.6.0.
  • samples/bookshop/srv/pom.xml: Added spring-boot-starter-webmvc-test test dependency.
  • samples/bookshop/srv/…/MalwareScanRestHandler.java: New REST controller demonstrating the standalone MalwareScannerService API (POST /api/v1/malware/scan and POST /api/v1/malware/scan/upload).
  • samples/bookshop/README.md: Added documentation section for the new standalone malware scanning endpoints, including local (no-binding) and BTP hybrid-mode usage examples.
  • 🔄 Regenerate and Update Summary
PR Bot Information

Version: 1.27.6

  • Event Trigger: pull_request.opened
  • LLM: anthropic--claude-4.6-sonnet
  • File Content Strategy: Full file content
  • Summary Prompt: Default Prompt
  • Correlation ID: a2e32a90-7f6f-11f1-8ea6-67b428453d8f
  • Output Template: Default Template

@Schmarvinius
Schmarvinius requested a review from a team as a code owner July 14, 2026 10:34

@hyperspace-pr-bot hyperspace-pr-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR upgrades the stack to CDS 10 / Spring Boot 4.1 / Java 21 and adds a standalone MalwareScannerService demo. The changes are generally correct, but there are a few issues to address: the new MalwareScanRestHandler is missing the required SAP license header (which will fail the Spotless CI gate), file.getOriginalFilename() is reflected back in the response without sanitisation, and the IOException catch block incorrectly maps scanner-side I/O failures to HTTP 400. Additionally, the spring-boot-starter-webmvc-test artifact ID should be verified against the Spring Boot 4.1.0 BOM to avoid a dependency-resolution build failure.

PR Bot Information

Version: 1.27.6

  • Event Trigger: pull_request.opened
  • LLM: anthropic--claude-4.6-sonnet
  • File Content Strategy: Full file content
  • Agent Instructions:
  • Correlation ID: a2e32a90-7f6f-11f1-8ea6-67b428453d8f

Comment thread integration-tests/generic/pom.xml
The @cap-js/db-service and @cap-js/sqlite resolved URLs pointed at
int.repositories.cloud.sap (SAP-internal Artifactory), which GitHub
Actions runners cannot reach. Regenerated the lock file with an explicit
--@cap-js:registry=https://registry.npmjs.org/ override so npm ci works
in CI.
Add .mvn/maven.config with Aether HTTP retry settings so that transient
'Connection reset' errors from Maven Central (as seen in the SonarQube
scan job on ci run 29328143776) don't fail the pipeline. The
reuseConnections=false flag specifically mitigates the 'Connection
reset' class of errors caused by server-side idle connection closure.

Applied automatically to every mvn invocation without workflow changes.

@lisajulia lisajulia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! I found some minor things only.

Comment thread integration-tests/generic/pom.xml
Comment thread samples/bookshop/README.md Outdated
@Schmarvinius
Schmarvinius requested a review from lisajulia July 14, 2026 12:47
…tests profile

Now that every module's pom has a cds.npm-ci execution that installs
@sap/cds-dk locally from its package.json/package-lock.json, the two
global 'npm i -g @sap/cds-dk@10.0.4' steps in the pipeline are
redundant.

Also, the -P skip-integration-tests profile in the root pom did not
actually skip anything, because Maven profiles' <modules> section is
additive to the parent's, not replacing. The tests job was building all
9 modules including integration-tests-* and coverage-report on every
Java matrix cell (~2 min wasted per cell).

Changes:
- pipeline.yml tests job:
  * Remove the 'Install @sap/cds-dk' step
  * Change 'Run Tests' to use -pl <core-modules> -am instead of the
    broken profile. Builds only the plugin + two storage targets.
- .github/actions/cf-bind/action.yml:
  * Remove the 'Install @sap/cds-dk' step
  * After 'npm ci' in integration-tests/mtx-local, push
    ./node_modules/.bin to GITHUB_PATH so subsequent cds bind calls find
    the locally-installed cds CLI.
- pom.xml:
  * Delete the dead skip-integration-tests profile.

package.json is now the single source of truth for the cds-dk version
across CI and every local build.
@Schmarvinius
Schmarvinius merged commit a35e6dd into main Jul 14, 2026
38 of 39 checks passed
@Schmarvinius
Schmarvinius deleted the chore/cds5-upgrade-and-release-prep branch July 14, 2026 13:49
@hyperspace-pr-bot hyperspace-pr-bot Bot mentioned this pull request Jul 17, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants