Since its first release of version
1.0 in 2017 the
SAP Cloud SDK for Java enables application developers to swiftly develop cloud native applications on the SAP Business Technology Platform. Versions
2.0 and
3.0 of the SDK soon followed in 2018 and 2019 with version 3 receiving many
feature additions in well over 60 minor versions and counting.
With it now coming close to 3 years since the last major version release the time has come to prepare the next big step for the SAP Cloud SDK for Java.
Preparing Version 4.0 of the SAP Cloud SDK for Java
The process of
building the next major version for the SAP Cloud SDK for Java is well underway. We are looking to include the most important features while making the update from 3.X to 4.X as
easy and effortless as possible. You can learn more about the releasing strategy
here.
Although we are not quite ready to announce a beta version just yet, we already want to share a sneak
preview of potential improvements we are looking to make. Please note that this is just a preview and
not a definitive list.
Preview: Key Areas of Improvement
With the next major version we aim to improve the SAP Cloud SDK for Java in four key areas:
1. Easier Dependency Management
The SDK currently brings in a substantial amount of transitive dependencies and has a rather
large BOM. This increases the risk of dependency conflicts, in particular when also using other frameworks and tools like the SAP Cloud Application Programming Model and the SAP Java Buildpack.
By reducing the dependency footprint of the SDK it gets more light-weight, making it easier to manage dependencies in your project.
2. More OData V2 Features
The OData V2 APIs are currently lacking some features.
For example Full Access to All Results of a Batch Request and Performing Operations Directly on Nested Entities (Navigation Properties). Currently achieving these tasks requires using the
unstable, low-level APIs of the SDK.
Adding these features on the OData V2 APIs would give you more convenience when using OData V2 services.
3. Simpler Destination API
The Destination API currently lacks some clarity and convenience.
For example connecting to an SAP S/4HANA system oftentimes requires explicitly decorating a Destination with:
destination.asHttp().decorate(DefaultErpHttpDestination::new)
This step is easily missed. Also,
Destinations can be built directly in the Java code using any authentication type via their builder. But almost all authentication types are not supported for this usage.
Bringing more clarity and simplicity to this API could avoid frequent problems.
4. Improved ThreadContext and Thread Handling
The SDK uses a context object called ThreadContext to store the current tenant, user and other related information. Oftentimes this context object is missing, for example because the necessary annotations were not added to a project, or a new Thread is created by the application. In consequence the multi-tenant features of the SDK don't work.
An improved approach could bring more clarity and better out-of-the-box support for some use cases.
Summary
With the next major version we aim to bring even more features, better integration and easier usage to the SAP Cloud SDK. And these are only some of the potential improvements we have in mind. Follow
sap-cloud-sdk to stay tuned for further news and updates for the SAP Cloud SDK.
Share Your Feedback
To build the best version 4.0 possible we need your feedback. Which improvements are you looking for most in the next Cloud SDK version? Don't hesitate to share your feedback in the comments below, ask a question in the
Q&A or to create a dedicated feature request on our
GitHub.