Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 
0 Kudos
The new version of the SAP S/4HANA Cloud SDK Java libraries is available since today. You can update your dependencies to version 2.9.1 and consume the new version from Maven Central. We have also released version v15 of our out-of-the-box continuous delivery offering consisting of a ready-made Jenkins server and a complete delivery toolkit.
In this blog post, we will walk you through the highlights of these releases. For a complete overview, visit our release notes for the Java libraries and for the continuous delivery toolkit. The release notes also include the change log of all our releases so far.
At the end of the article, you will find a set of instructions on how to update to the new versions.

Java Libraries: Release Highlights

Version 2.9.1 is mostly a maintenance release with the improvements and fixes listed in the full release notes.

There is one new feature in the Java virtual data model generator: you can now selectively generate Java virtual data model classes for specific entity sets and/or function imports. The generated VDM will then only include Java representations such as operations, fluent helpers and entities for the filtered entity sets or function imports. This reduces the footprint by focusing on the classes needed for your use case.

If you use the command line interface, use the new options of the VDM generator command line interface --include-entity-sets and --include-function-imports which take a comma-separated list of entity set or function import names. If you use the Maven plugin, use the new plugin list parameters includeEntitySets and includeFunctionImports which take a set of <param> tags, each containing the name of an entity set or function import, respectively.

When no filter on entity sets is provided, all entity sets are processed as before. When no filter on function imports is provided, all function imports are processed as before. When filtering entity sets, please note that entities referenced by navigation properties are not automatically included transitively. Their entity sets must be added manually to the parameter, otherwise the generator will skip the corresponding navigation properties. When filtering function imports and if a desired function import has an entity as the return type, then its entity set must be added to the entity set parameter (or all entity sets generated).

A second noteworthy improvement makes the SDK's abstractions for SAP Leonardo machine learning services more flexible and thus applicable to more scenarios. The invoke method will now combine the default service URI with the original request path, query, and fragment of the URI provided as part of the request parameter. This gives callers more flexibility on what URL will be called.

Continuous Delivery Toolkit: Release Highlights

Support for HTTPS

You can now protect the Jenkins server that is part of the continuous delivery toolkit with HTTPS. You need to configure this in server.cfg before starting the cx-server and provide your certificate and key. Please consult the operations guide for details on the setup of a secured instance.

Integration of npm audit

We have replaced the outdated vulnerability check tool "Node Security Platform" (nsp) with an implementation based on the alternative "npm audit" with additional features. The pipeline will now fail if you are using vulnerable npm dependencies. It will point you to the corresponding advisory, so that you can audit and fix the findings. You can use the auditedAdvisories property in the pipeline_config.yml to declare false positive findings. For detailed information, please have a look into the pipeline configuration reference.

Further improvements

The new version will still execute all end-to-end tests after production deployment, even if some deployments fail. The corresponding results are visible in the log and help to establish transparency on the healthiness of running app instances.

The SAP S/4HANA Cloud SDK quality check stage ensures that you do not by accident rely on non-public API to connect to SAP S/4HANA systems. We now give you the option to list custom OData services in the configuration that shall be exempted from the check for use of non-public API. The pipeline will not fail when one of those services is accessed. This allows to deliberately declare OData services outside of the public API of SAP S/4HANA Cloud used by the project and at the same time make the decision to use this non-public API transparent. See the corresponding section in the configuration guide. Please be aware that this will limit the applicability of your application for customers that do not have this API.

The pipeline now checks ahead of every pipeline run whether enough disk space is available for a build based. If it estimates that not enough space is available, the pipeline aborts the build and provides a corresponding error message with suggestions to reclaim space.

The cx-server script now offers a status command to check the state of Cx-Server related Docker containers. Try it out by running ./cx-server status.

The need for redundantly defining proxy settings in different formats for Jenkins server and download cache has been eliminated. Now, all tool-specific proxy settings are derived from the configuration attributes http_proxy and https_proxy. For details, please consult the operations guide.

You can find further fixes and improvements in the complete release notes.

How to Update

Java libraries

To update the version of the SAP S/4HANA Cloud SDK Java libraries used in an existing project, proceed as follows:

  • Open the pom.xml file in the root folder of your project.

  • Locate the dependency management section and therein the sdk-bom dependency.

  • Update the version of that dependency to 2.9.1.

With this, you are already done thanks to the "bill of material" (BOM) approach. Your dependency should look like this:
<!-- possibly further managed dependencies ... -->

You can now recompile your project (be aware of the compatibility notes, though) and leverage the new features of the SAP S/4HANA Cloud SDK in version 2.9.1.

Of course, you can also generate a new project that uses version 2.9.1 from the start by running the Maven archetypes for Neo or Cloud Foundry with -DarchetypeVersion=2.9.1 (or RELEASE).

Continuous Delivery Toolkit

If you are using the pipeline with a fixed version (as recommended since v7), update the continuous delivery toolkit with the following command, that you run on the server hosting the cx-server:
./cx-server update image