From c5ec650e3145f23693f1de3d215d6dcf4f760f0d Mon Sep 17 00:00:00 2001 From: Robin de Silva Jayasinghe Date: Mon, 22 Jun 2026 12:55:04 +0200 Subject: [PATCH 1/2] Add CAP Java 5.0 OpenRewrite recipes to migration table Extend the 'Currently Released CAP Java Migrations' table with the recipes added for the CAP Java 5.0 release (Cap_5.0_Properties, Cap_5.0_OutboxOrdered) and also list the previously missing Cap_4.9_Properties recipe. Add a second table listing the umbrella recipes (Cap_4.8, Cap_4.9, Cap_5.0) and what each one bundles. --- java/migration.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/java/migration.md b/java/migration.md index 0af8605a0..7d639fb44 100644 --- a/java/migration.md +++ b/java/migration.md @@ -52,6 +52,17 @@ The following table lists the individual recipes provided by CAP for APIs that h |[com.sap.cds.services.migrations.ServiceExceptionUtils](#removed-java-apis-4-to-5)|Replaces deprecated methods in `ServiceExceptionUtils`.|4.9.0| |[com.sap.cds.services.migrations.MigrateSaasRegistryDependency](#removed-java-apis-4-to-5)|Replaces deprecated `SaasRegistryDependency` methods `setAppId`/`setAppName`/`getAppId`/`getAppName` with their `xsappname`-based replacements.|4.9.0| |[com.sap.cds.services.migrations.UclMigration](#removed-java-apis-4-to-5)|Migrates deprecated UCL result getter and setter methods to the new API.|4.9.0| +|com.sap.cds.services.migrations.Cap_4.9_Properties|Replaces deprecated application properties with their CAP Java 4.9 equivalents (for example `cds.mcp.autoConfig.*` → `cds.mcp.autoWired.*`, `cds.taskScheduler.enabled` → `cds.outbox.persistent.scheduler.enabled`).|4.9.0| +|[com.sap.cds.services.migrations.Cap_5.0_Properties](#removed-properties-4-to-5)|Removes application properties that are no longer supported in CAP Java 5.0 and have no replacement (for example `cds.errors.combined`, `cds.sql.collate`, `cds.sql.hana.optimizationMode`, `cds.odataV4.searchMode`, `cds.odataV2.searchMode`, and the removed `cds.multiTenancy.serviceManager.*` flags).|5.0.0| +|[com.sap.cds.services.migrations.Cap_5.0_OutboxOrdered](#adjusted-defaults-4-to-5)|Adds `ordered: true` to every custom entry under `cds.outbox.services` (except the built-in `DefaultOutboxOrdered`/`DefaultOutboxUnordered`) to preserve the previous behavior, as the default of `cds.outbox.services..ordered` changes from `true` to `false` in CAP Java 5.0.|5.0.0| + +In addition, the following umbrella recipes are provided per release. Each one includes all individual recipes for APIs deprecated in this AND previous releases, plus Maven dependency upgrades for all CAP Java modules to the matching version. Run the latest umbrella recipe matching the version of the CAP Java SDK you are upgrading to. + +|Name |Description|Available since| +|--------|-----------|---------------| +|com.sap.cds.services.migrations.Cap_4.8|Migrates an application to CAP Java SDK 4.8. Includes `MigrateStatements` and upgrades all CAP Java Maven dependencies to `4.8.x`.|4.8.0| +|com.sap.cds.services.migrations.Cap_4.9|Migrates an application to CAP Java SDK 4.9. Includes `Cap_4.8`, `UclMigration`, `MigrateSaasRegistryDependency`, `ServiceExceptionUtils`, `Cap_4.9_Properties`, and upgrades all CAP Java Maven dependencies to `4.9.x`.|4.9.0| +|com.sap.cds.services.migrations.Cap_5.0|Migrates an application to CAP Java SDK 5.0. Includes `Cap_4.9`, `Cap_5.0_Properties`, `Cap_5.0_OutboxOrdered`, and upgrades all CAP Java Maven dependencies to `5.0.x`.|5.0.0| ## CAP Java 4.9 to CAP Java 5.0 (TBA) { #four-to-five } From 1d8552de559f5abacfa4c335f16b477b71b2a5d3 Mon Sep 17 00:00:00 2001 From: Robin de Silva Jayasinghe Date: Mon, 22 Jun 2026 16:21:23 +0200 Subject: [PATCH 2/2] review comments --- java/migration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/migration.md b/java/migration.md index 7d639fb44..6f2949aa0 100644 --- a/java/migration.md +++ b/java/migration.md @@ -37,10 +37,10 @@ As migration is a one-time operation, run the OpenRewrite `recipes` as a command ```bash-vue mvn org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=com.sap.cds:cds-services-recipes:{{ versions.java_services }} \ - -Drewrite.activeRecipes=com.sap.cds.services.migrations.Cap_4.9 + -Drewrite.activeRecipes=com.sap.cds.services.migrations.Cap_5.0 ``` -Here, the *recipe* `com.sap.cds.services.migrations.Cap_4.9` from CAP Java's OpenRewrite Maven artifact `com.sap.cds:cds-services-recipes` is called in the given project context. The *recipe* is a container for one or more recipes. A recipe is a rule that tells OpenRewrite how to transform code. +Here, the *recipe* `com.sap.cds.services.migrations.Cap_5.0` from CAP Java's OpenRewrite Maven artifact `com.sap.cds:cds-services-recipes` is called in the given project context. The *recipe* is a container for one or more recipes. A recipe is a rule that tells OpenRewrite how to transform code. ### Currently Released CAP Java Migrations