Release Notes
Should I update?
We highly recommend regularly updating to the latest SAP Cloud SDK version. It will help you:
- Ensure access to the latest SAP Cloud SDK features
- Keep up with the latest changes in SAP Cloud Platform
- Update client libraries giving access to latest SAP services on SAP Cloud Platform and SAP S/4HANA
- Protect yourself from bugs and breaking changes in the future
The SAP Cloud SDK v3 and v4 for Java are Deprecated
Version 3.x and 4.x of the SAP Cloud SDK for Java have reached their end of life. As a consequence, there won't be any updates to the SAP Cloud SDK version 3 or 4 - not even security fixes. To continue using the latest features outlined in the release notes below, please update to the SAP Cloud SDK v4 then to the SAP Cloud SDK v5.
4.32.0 - June 10, 2024
Compatibility Notes
- This is the last planned minor version release of SAP Cloud SDK v4.
Please update to v5 immediately, we will no longer provide support.
Not even security updates.
You can follow this guide.
- Add warning message to the logs. It will be shown initially during application startup.
- We removed the direct dependency to
com.sap.cloud.sdk.cloudplatform:servlet
from thecom.sap.cloud.sdk.cloudplatform:security-scp-neo
module. Please check whether you are adding theservlet
dependency explicitly in your project and, if not, add it to your dependencies.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Service Binding Library from
0.10.1
to0.10.5
- Update Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Jackson (
com.fasterxml.jackson.core:jackson-databind
) from2.16.0
to2.17.0
- Update Apache HttpClient v5 (
org.apache.httpcomponents.client5:httpclient5
) from5.2.2
to5.3.1
- Update Apache HttpCore v5 (
org.apache.httpcomponents.core5:httpcore5
) from5.2.3
to5.2.4
- Update Commons IO (
commons-io:commons-io
) from2.15.0
to2.15.1
- Update Guava (
com.google.guava:guava
) from32.1.3-jre
to33.2.0-jre
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.32
to5.3.34
- Update Jackson (
- Minor version updates:
- SAP dependency updates:
Fixes issues
- Fix an issue where the current principal wasn't correctly derived from the incoming request in SAP BTP Neo applications.
4.31.0 - April 23, 2024
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Security Client from
2.17.3
to2.17.5
- Update XSUAA Security Client from
- Other dependency updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.32
to5.3.34
- Update Spring Framework (
- Minor version updates:
- SAP dependency updates:
4.30.0 - February 29, 2024
Improvements
- Dependency Updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.31
to5.3.32
- Update org.apache.commons:commons-compress from
1.24.0
to1.26.0
- Update Spring Framework (
- Minor version updates:
4.29.0 - January 22nd, 2024
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.82.0
to1.85.0
- Update XSUAA Security Client from
2.17.1
to2.17.2
- Update SAP Java Buildpack from
- SAP dependency updates:
4.28.0 - December 5th, 2023
Compatibility Notes
AuditLogFacade
implementationScpCfAuditLogFacade
will no longer throw an exception of legacy typeDependencyNotFoundException
but of typeIllegalStateException
, in case classes are missing at runtime. The exception message details remain untouched.
New Functionality
-
The Auditlog convenience API is now compatible for both JavaEE and JakartaEE.
AccessRequester
can now be used like the following:
// for jakarta (new API)
AccessRequester.ofJakarta(...);
// for javax (existing API)
AccessRequester.of(...);
// for both (existing API)
AccessRequester.ofCurrentRequest();Note: The SAP Java Buildpack may not provide a JakartaEE compatible implementation yet.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update the SAP Security Library from
2.14.2
to2.17.0
- Update the SAP Security Library from
- Other dependency updates:
- Minor version updates:
- Update Jackson (
com.fasterxml.jackson.core:jackson-databind
) from2.15.3
to2.16.0
- Update
org.apache.httpcomponents.client5
from5.2.1
to5.2.2
- Update
org.apache.httpcomponents.core5
from5.2.1
to5.2.2
- Update
org.apache.commons:commons-lang3
from3.13.0
to3.14.0
- Update Jackson (
- Minor version updates:
- SAP dependency updates:
4.27.0 - November 13, 2023
Compatibility Notes
-
Following classes have been deprecated and will be removed from the next major version (V5) of the SAP Cloud SDK:
com.sap.cloud.sdk.cloudplatform.CloudPlatform
com.sap.cloud.sdk.cloudplatform.CloudPlatformFacade
com.sap.cloud.sdk.cloudplatform.CloudPlatformAccessor
com.sap.cloud.sdk.cloudplatform.ScpCfCloudPlatform
com.sap.cloud.sdk.cloudplatform.ScpCfCloudPlatformFacade
com.sap.cloud.sdk.cloudplatform.connectivity.AccessToken
com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceResponseProvider
com.sap.cloud.sdk.cloudplatform.WithRuntimeDependencies
com.sap.cloud.sdk.cloudplatform.exception.ConstraintViolationException
com.sap.cloud.sdk.cloudplatform.exception.DependencyNotFoundException
com.sap.cloud.sdk.cloudplatform.exception.EntityAlreadyExistsException
com.sap.cloud.sdk.cloudplatform.exception.EntityNotFoundException
com.sap.cloud.sdk.cloudplatform.exception.StringParsingException
com.sap.cloud.sdk.cloudplatform.exception.UnsupportedCloudFeatureException
com.sap.cloud.sdk.cloudplatform.security.principal.exception.PrincipalAttributeException
com.sap.cloud.sdk.cloudplatform.security.secret.SecretStore
com.sap.cloud.sdk.cloudplatform.security.secret.ScpCfSecretStore
com.sap.cloud.sdk.cloudplatform.security.secret.SecretStoreFacade
com.sap.cloud.sdk.cloudplatform.security.secret.ScpCfSecretStoreFacade
com.sap.cloud.sdk.cloudplatform.security.secret.SecretStoreAccessor
com.sap.cloud.sdk.cloudplatform.security.secret.exception.KeyStoreAccessException
com.sap.cloud.sdk.cloudplatform.security.secret.exception.SecretStoreAccessException
com.sap.cloud.sdk.testutil.ThreadContextInvocationInterceptor
com.sap.cloud.sdk.testutil.ThrowableAssertionUtil
Most of the contained functionality has already been migrated to other places. Accessing service bindings, for example, can now be done in a uniform and standardized way using the Service Binding Library.
Improvements
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update
commons-io:commons-io
from2.14.0
to2.15.0
- Update
org.checkerframework:checker-qual
declared for dependency convergence from3.39.0
to3.40.0
- Update Protobuf Java from
3.24.4
to3.25.0
- Update
- Minor version updates:
- Other dependency updates:
Fixed Issues
- Fix an issue where silently no resilience would be applied if more than one
ResiliencecDecorationStrategy
implementation is on the classpath. Such a scenario will now produce a log message onWARN
level. In addition to the log message, using any resilience pattern will lead to anResilienceRuntimeException
being thrown. The exception can be avoided by explicitly setting the correctResilienceDecorationStrategy
via theResilienceDecorator.setDecorationStrategy(ResilienceDecorationStrategy)
method (for example, at application start up). - Fix an issue with OData clients (Generic OData Client, OData v2 FluentHelpers, OData v4 RequestBuilders) repeatedly attaching duplicate
Accept
headers for every paginated request. ODataRequestResultMultipartGeneric.getResult()
now throwsODataResponseException
instead ofIndexOutOfBoundsException
when a different number of batch request items are returned by the OData server than what was executed. This may occur, depending on OData server configurations, when a read operation fails and subsequent request items are no longer executed as a result.
4.26.0 - October 27, 2023
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom
) from1.76.0
to1.78.0
- Update Java Bom (
com.sap.cloud.security:java-bom
) from2.13.9
to2.14.2
- Update Neo Java Web API from
4.62.3
to4.62.8
- Update
com.sap.cds:cds-services-api
from1.34.6
to1.34.7
- Update
com.sap.cloud.sjb.cf:cf-tomee7-bom
from1.78.0
to1.79.0
- Update Cf Tomee7 Bom (
- Other dependency updates:
- Minor version updates:
- Update JSON
20230618
to20231013
- Update
com.google.errorprone:error_prone_annotations
from2.22.0
to2.23.0
. - Update
org.apache.olingo:odata-server-core
from4.9.0
to4.10.0
- Update
org.apache.olingo:odata-server-api
from4.9.0
to4.10.0
- Update
org.apache.olingo:odata-client-api
from4.9.0
to4.10.0
- Update
org.apache.olingo:odata-client-core
from4.9.0
to4.10.0
- Update
org.apache.olingo:odata-commons-api
from4.9.0
to4.10.0
- Update
org.apache.olingo:odata-commons-core
from4.9.0
to4.10.0
- Update JSON
- Patch version updates:
- Update
com.fasterxml.jackson.datatype:jackson-datatype-jsr310
from2.15.2
to2.15.3
- Update
com.fasterxml.jackson.core:jackson-annotations
from2.15.2
to2.15.3
- Update
com.fasterxml.jackson.core:jackson-databind
from2.15.2
to2.15.3
- Update
com.fasterxml.jackson.core:jackson-core
from2.15.2
to2.15.3
- Update
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
from2.15.2
to2.15.3
- Update
com.fasterxml.jackson.dataformat:jackson-dataformat-xml
from2.15.2
to2.15.3
- Update
com.google.guava:guava
from32.1.2-jre
to32.1.3-jre
- Update
io.projectreactor.netty:reactor-netty-http
from1.1.11
to1.1.12
- Update
io.projectreactor.netty:reactor-netty-core
from1.1.11
to1.1.12
- Update
org.codehaus.woodstox:stax2-api
from4.2.1
to4.2.2
- Update
org.eclipse.jetty:jetty-webapp
from9.4.52.v20230823
to9.4.53.v20231009
- Update
org.eclipse.jetty:jetty-servlet
from9.4.52.v20230823
to9.4.53.v20231009
- Update
io.swagger:swagger-core
from1.6.11
to1.6.12
- Update
io.projectreactor:reactor-core
from3.5.10
to3.5.11
- Update
org.apache.olingo:olingo-odata2-core
from2.0.12
to2.0.13
- Update
org.apache.olingo:olingo-odata2-api
from2.0.12
to2.0.13
- Update
- Minor version updates:
- SAP dependency updates:
4.25.0 - October 13, 2023
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update
com.sap.cds.repackaged:odata-v4-lib
used in themaster-data-integration
modules from2.2.0
to2.3.0
- Update
- Other dependency updates:
- Minor version updates:
- Update
com.google.api:api-common
used in theblockchain-client-fabric
module from2.17.0
to2.18.0
- Update
org.checkerframework:checker-qual
declared for dependency convergence from3.38.0
to3.39.0
- Update
commons-io:commons-io
from2.13.0
to2.14.0
- Update
- Minor version updates:
- SAP dependency updates:
4.24.0 - September 28, 2023
Compatibility Notes
- The following classes have been deprecated:
- In module security (package
com.sap.cloud.sdk.cloudplatform.security
)- No plans for removal due to compatibility reasons. It is, however, still recommended to move away from their use:
Audience
Authorization
Role
RolesAllowed
Scope
TenantSpecificAuthorization
UserSpecificAuthorization
- No plans for removal due to compatibility reasons. It is, however, still recommended to move away from their use:
- In module security (package
com.sap.cloud.sdk.cloudplatform.security.principal
)- No plans for removal due to compatibility reasons. It is, however, still recommended to move away from their use:
PrincipalAttribute
CollectionPrincipalAttribute
SimplePrincipalAttribute
StringCollectionPrincipalAttribute
StringPrincipalAttribute
- Will be removed without replacement
AudienceAuthorizationUtil
- No plans for removal due to compatibility reasons. It is, however, still recommended to move away from their use:
- In module security-scp-cf (package
com.sap.cloud.sdk.cloudplatform.security.principal
)- Will be removed without replacement:
LocalScopePrefixProvider
DefaultLocalScopePrefixProvider
LocalScopePrefixExtractor
- Please use related Default classes:
DefaultPrincipal
DefaultPrincipalFacade
- Will be removed without replacement:
- In module security (package
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Service Binding Library from
0.9.0
to0.10.0
- Update SAP Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Annotations for Error Prone (com.google.errorprone:error_prone_annotations) from
2.21.1
to2.22.0
- Update Lombok (
org.projectlombok:lombok
) from1.18.28
to1.18.30
- Update httpcore5 (
org.apache.httpcomponents.core5:httpcore5
) from5.2.2
to5.2.3
- Update API Common (
com.google.api:api-common
) used in theblockchain-client-fabric
module from2.16.0
to2.17.0
- Update Annotations for Error Prone (com.google.errorprone:error_prone_annotations) from
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with nested any/all query filter expressions in the Generic OData client.
For the OData v4 client the issue is already resolved since
4.22.0
.
4.23.0 - September 15, 2023
Compatibility
-
Deprecate following legacy classes that are related to parsing the
VCAP_SERVICES
environment variable:- In module cloudplatform-connectivity-scp-cf (package
com.sap.cloud.sdk.cloudplatform.connectivity
)ScpCfService
ScpCfServiceAuthorizationFailedException
ScpCfServiceCreationFailedException
ScpCfServiceDestinationLoader
ScpVcapDestinationLoader
ScpVcapDestinationOptionAugmenter
ScpVcapLoaderUtils
ScpXfDestinationData
ScpXfDestinationLoader
- In module cloudplatform-core-scp-cf (package
com.sap.cloud.sdk.cloudplatform
)ScpCfServiceDesignator
ScpCfServiceInfo
ServiceBindingDataException
As a replacement, please refer to the experimental
ServiceBindingDestinationLoader
API (module cloudplatform-connectivity, packagecom.sap.cloud.sdk.cloudplatform.connectivity
) and theServiceBinding
API. - In module cloudplatform-connectivity-scp-cf (package
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update cf-java-logging-support-logback (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.7.0
to3.7.1
- Update Neo JavaEE7 WP API from
1.156.8
to1.157.7
- Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom
) from1.76.0
to1.77.0
- Update cf-java-logging-support-logback (
- Other dependency updates:
- Minor version updates:
- Update
org.checkerframework:checker-qual
declared for dependency convergence from3.37.0
to3.38.0
- Update
com.google.api:api-common
used in theblockchain-client-fabric
module from2.15.0
to2.16.0
- Update
org.apache.commons:commons-compress
used in theblockchain-client-fabric
module from1.23.0
to1.24.0
- Update
- Minor version updates:
- SAP dependency updates:
4.22.0 - September 1, 2022
Compatibility Notes
- Internally deprecate automatic validation during AuthToken decoding. For proper user token validation, please use the SAP XSUAA Security Library instead.
- Deprecate
OAuth2ServiceProvider
convenience API. Please directly use the Token Client library instead.
Fixed Issues
- Fix an issue where nested any/all filter expressions in OData queries would have the same prefix.
4.21.0 - August 18, 2023
Compatibility Notes
- The module
security-servlet
and all contained servlet filters have been deprecated without replacement. This should not impact most applications, as they were rather specific and can be replaced with standard security tooling such as the SAP BTP Security Libraries. Still, in case you are using any of the filters you will see a warning message during application startup containing further details. - Support for JNDI will be discontinued with SAP Cloud SDK v5 by the end of the year.
Please migrate to the Cloud Foundry environment. It is better suited for apps and SAP S/4HANA extension development.
The methods from the following classes are deprecated while still being fully functional and considered supported in
SAP Cloud SDK v4:
JndiLookupAccessor
JndiLookupFacade
DefaultJndiLookupFacade
StringConverter
andStringValidator
have been deprecated without replacement. Java Standard Library can be used as a replacemet forStringConverter
and Apache Commons Codec can be used as a replacement forStringValidator
. Refer here for more details.
New Functionality
- While using destinations of authentication type
SAMLAssertion
to execute requests, thex-sap-security-session
header is now always sent with every request to the destination.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo Java Web Api (com.sap.cloud:neo-java-web-api) from 4.58.1 to 4.59.2
- Other dependency updates:
- Minor version updates:
- Update Protobuf Java from 3.23.4 to 3.24.0
- Update Fabric SDK Java (org.hyperledger.fabric-sdk-java:fabric-sdk-java) from 2.2.22 to 2.2.23
- Update Checker Qual (org.checkerframework:checker-qual) from 3.36.0 to 3.37.0
- Update Annotations for Error Prone (com.google.errorprone:error_prone_annotations) from 2.20.0 to 2.21.1
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue in OData v2 serialization, where an
Edm.Binary
entity field is represented with anull
-valuebyte[]
array.
4.20.0 - August 7, 2023
Compatibility Notes
-
The
BindableService
abstraction has been removed from the SAP Cloud SDK. As a replacement, theServiceIdentifier
(originating from the Service Binding Library) class is now used. -
The builder method
ServiceBindingDestinationOptions.Builder#using(ServiceBinding)
has been removed. UseServiceBindingDestinationOptions#forService(ServiceBinding)
instead. -
Re-establish default behavior for destination retrieval from BTP Destination Service with destinations requiring a principal context - but without one attached.
With
4.13.0
we introduced default retrieval strategyScpCfDestinationTokenExchangeStrategy.FORWARD_USER_TOKEN
which would no longer throw an exception for missing (but required) principal context, i.e. when a user token could not be resolved from current thread context. With this release, we are reverting this behavior back to the original setting.If you want to retrieve a destination without any principal context, please use destination retrieval options explicitly with
ScpCfDestinationTokenExchangeStrategy.LOOKUP_ONLY
. -
We are planning to discontinue support of pregenerated OpenAPI clients with SAP Cloud SDK v5 by end of the year.
Therefore we're announcing module deprecation in advance. The following modules and namespaces are deprecated while still being fully functional and considered supported in SAP Cloud SDK v4:
- Services - BTP Cloud Foundry Workflow API:
com.sap.cloud.sdk.services.scp.workflow.cf.*
- Services - SAP Business Rules (Beta):
com.sap.cloud.sdk.services.btp.businessrules.cf.ruleauthoring.*
The code can now be generated instead by using the OpenAPI generator with the YAML specification of the service.
- Services - BTP Cloud Foundry Workflow API:
-
Following APIs have been changed in a breaking manner to enable support for Spring 6 in the OpenApi related features of the Cloud SDK:
com.sap.cloud.sdk.services.openapi.apiclient.ApiClient#getStatusCode()
: No longer returns an instance ofHttpStatus
, but a primitiveint
instead.com.sap.cloud.sdk.services.openapi.core.OpenApiResponse#getStatusCode()
: No longer returns an instance ofHttpStatus
, but a primitiveint
instead.
-
com.sap.cloud.sdk.datamodel.openapi.generator.model.LogLevel
enum has been removed in relation to theOpenAPI OData Generator
logLevel
property change.
New Functionality
-
Add a new module (
com.sap.cloud.sdk.frameworks:apache-httpclient5
) with APIs for retrieving an Apache version 5HttpClient
based on a given destination. These APIs consist of the following classes:ApacheHttpClient5Factory
- A factory interface for creatingHttpClient
instances fromHttpDestinationProperties
.ApacheHttpClient5FactoryBuilder
- A builder class for instantiating a default implementation of theApacheHttpClient5Factory
interface that allows for some customization.ApacheHttpClient5Cache
- A cache interface for cachingHttpClient
instances.ApacheHttpClient5CacheBuilder
- A builder class for instantiating a default implementation of theApacheHttpClient5Cache
interface that allows for some customization.ApacheHttpClient5Accessor
- A class with static methods for retrieving anHttpClient
based on a given destination, which uses the aforementioned factory and cache interfaces.
HttpDestination destination = DestinationAccessor.getDestination("my-destination").asHttp();
HttpClient client = ApacheHttpClient5Accessor.getHttpClient(destination); -
Add support for Spring 6 projects within the OpenApi related functionality of the Cloud SDK. This is working right out-of-the-box, without the need to re-generate any existing OpenApi clients.
This feature required a breaking API change, which shouldn't affect most users. Please refer to the Compatibility Notes (above) for more details.
Improvements
-
Dependency Updates:
- SAP dependency updates:
- Update SAP Service Binding Library from
0.8.0
to0.9.0
- Update SAP Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Guava from
32.1.1-jre
to32.1.2-jre
- Update
org.apache.commons:commons-lang3
from3.12
to3.13.0
- Update Guava from
- Minor version updates:
- SAP dependency updates:
-
Property tags have been added to the OData (v2, v4) and and OpenApi generator Maven plugins. They can now be run project-less from the command line, using
-D
parameter flags, e.g.:mvn com.sap.cloud.sdk.datamodel:openapi-generator-maven-plugin:4.XX.X:generate -Dopenapi.generate.inputSpec=/foo/bar
Fixed Issues
- The OpenAPI Generator property
logLevel
(default value:INFO
) has been corrected to boolean flagverbose
(default value:false
). Any previous value other thanDEBUG
would correspond toverbose=false
(default) now (for both the Maven plugin and CLI generators).
4.19.0 - July 28, 2023
Improvements
- Dependency Updates:
- SAP Dependency Updates:
- Minor version updates:
- Update SAP Service Binding Library from
0.7.0
to0.8.0
- Update SAP Service Binding Library from
- Minor version updates:
- Other dependency updates:
- Minor version updates:
- Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom
) from1.73.1
to1.74.0
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.28
to5.3.29
- Update Spring Boot (
org.springframework.boot:spring-boot-dependencies
andorg.springframework.boot:spring-boot-maven-plugin
) from2.7.13
to2.7.14
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.23.3
to3.23.4
- Update Kotlin Stdlib (
org.jetbrains.kotlin:kotlin-stdlib
) from1.8.22
to1.9.0
- Update Kotlin Stdlib Common (
org.jetbrains.kotlin:kotlin-stdlib-common
) from1.8.22
to1.9.0
- Update Kotlin Stdlib Jdk8 (
org.jetbrains.kotlin:kotlin-stdlib-jdk8
) from1.8.22
to1.9.0
- Update Checker Qual (
org.checkerframework:checker-qual
) from3.35.0
to3.36.0
- Update JSON from
20230227
to20230618
- Update Cf Tomee7 Bom (
- Minor version updates:
- SAP Dependency Updates:
Fixed Issues
- Fix an issue where, while using the default token exchange strategy
FORWARD_USER_TOKEN
, the destination caching did not isolate the entries based on available user details.
4.18.0 - July 11, 2023
Compatibility Notes
- Change internal dependency declaration of
com.google.code.findbugs:jsr305
tooptional
. It should no longer come up as (unnecessary) transitive dependency for users of SAP Cloud SDK. If you are using code generators from SAP Cloud SDK, this dependency may still be necessary at compile time as explicit dependency. In that case please follow Maven best practices and update yourpom.xml
file accordingly by adding the dependency as explicit direct dependency. - Deprecate
blockchain-client-multichain
,blockchain-client-fabric
,blockchain-business-services-visibility
andbtp-shared-ledger-client
- Services - Blockchain Business Services Visibility:
com.sap.cloud.sdk.services.blockchainbusinessservices.blockchainvisibility.*
- Services - SAP Blockchain - Fabric:
com.sap.cloud.sdk.services.blockchain.fabric.*
- Services - SAP Blockchain - Multichain:
com.sap.cloud.sdk.services.blockchain.multichain.*
- Services - Shared Ledger Client:
com.sap.cloud.sdk.services.sharedledger.client.*
- Services - Blockchain Business Services Visibility:
Improvements
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update Guava from
32.0.1-jre
to32.1.1-jre
- Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom
) from1.72.0
to1.73.1
- Update SAP Service Binding Library from
0.6.0
to0.7.0
- Update Guava from
- Minor version updates:
- Other dependency updates:
Fixed Issues
- For HTTP destinations with the authentication type
SAMLAssertion
the destination key store is no longer used for the TLS handshake.
4.17.0 - June 30, 2023
Compatibility Notes
-
Deprecate the pregenerated classes for SAP S/4HANA On-Premise and Cloud Edition OData services. With the next major release we will discontinue the following Maven modules:
While these dependencies may still receive updates, it's no longer recommended to use them. Instead, we suggest to generate your own OData classes using our OData generator. This approach saves many megabytes of unused dependencies in your application, while offering a useful set of customization options.
-
Deprecate the
sdk-sjb-bom
Please use thecf-tomee7-bom
followed by thesdk-bom
-
We are planning to discontinue support of NEO with SAP Cloud SDK v5 by end of the year. Therefore, we're announcing module deprecation in advance. Please migrate to the Cloud Foundry environment. It is better suited for apps and SAP S/4HANA extension development. The following modules are deprecated while still being fully functional and considered supported in SAP Cloud SDK v4:
scp-neo
auditlog-scp-neo
cloudplatform-connectivity-scp-neo
cloudplatform-core-scp-neo
concurrency-scp-neo
security-scp-neo
tenant-scp-neo
plugins-parent
scp-neo-maven-plugin
scp-neo-javaee7
-
The "change detection" caching strategy for destinations is now more resilient. Previously, a misconfigured destination could lead to degraded application performance.
-
Deprecate
s4hana-connectivity
ands4hana-core
- SAP S/4HANA - Connectivity:
com.sap.cloud.sdk.s4hana.connectivity.*
- SAP S/4HANA - Core:
com.sap.cloud.sdk.s4hana.serialization.*
andcom.sap.cloud.sdk.s4hana.types.*
- SAP S/4HANA - Connectivity:
Improvements
- Update of the OData VDM to the newest updates of SAP S/4HANA On-Premise and SAP S/4HANA Cloud Edition. This includes completely new services, new operations in previously existing services, and new entity types in the existing Maven artifacts:
- The official system properties
javax.net.ssl.trustStore
andjavax.net.ssl.trustStorePassword
are now recognised when creating an SslContext. - Improve OData V4 Generator capability to extract label and description data from EDMX specification files.
- Minor version updates:
- Update Commons IO from
2.12.0
to2.13.0
- Update Error Prone declared for dependency convergence from
2.19.1
to2.20.0
- Update Guava from
31.1-jre
to32.0.1-jre
- Update Commons IO from
4.16.0 - June 14, 2023
Compatibility Notes
- Deprecate
ErpHttpDestination
and all related classes. The functionality is now integrated and handled automatically byHttpDestination
s. For most projects this means simply removing any occurrence ofdecorate(DefaultErpHttpDestination::new)
. In case you are usingErpHttpDestination
to automatically add thesap-language
based on the current system locale, please configure a propertycloudsdk.dynamicSapLanguage
with valuetrue
on the destination.
Improvements
- Improved the handling of
sap-client
andsap-language
to be fully automated. Projects can safely remove any invocations ofdecorate(DefaultErpHttpDestination::new)
. Please also see the related compatibility note above. - Dependency Updates:
- SAP Dependency Updates:
- Minor Dependency Updates:
- Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom
) from1.70.0
to1.71.0
- Update Neo Java Web Api (
com.sap.cloud:neo-java-web-api
) from4.53.3
to4.54.3
- Update Cf Tomee7 Bom (
- Minor Dependency Updates:
- Other Dependency Updates:
- Minor Dependency Updates:
- Update Jackson Annotations (
com.fasterxml.jackson.core:jackson-annotations
) from2.15.1
to2.15.2
- Update Jackson Core (
com.fasterxml.jackson.core:jackson-core
) from2.15.1
to2.15.2
- Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind
) from2.15.1
to2.15.2
- Update Jackson Datatype Jsr310 (
com.fasterxml.jackson.datatype:jackson-datatype-jsr310
) from2.15.1
to2.15.2
- Update Jackson Dataformat Xml (
com.fasterxml.jackson.dataformat:jackson-dataformat-xml
) from2.15.1
to2.15.2
- Update Jackson Dataformat Yaml (
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
) from2.15.1
to2.15.2
- Update Netty Codec Http (
io.netty:netty-codec-http
) from4.1.92.Final
to4.1.93.Final
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.23.1
to3.23.2
- Update Checker Qual (
org.checkerframework:checker-qual
) from3.34.0
to3.35.0
- Update Lombok (
org.projectlombok:lombok
) from1.18.26
to1.18.28
- Update Kotlin Stdlib (
org.jetbrains.kotlin:kotlin-stdlib
) from1.8.21
to1.8.22
- Update Kotlin Stdlib Common (
org.jetbrains.kotlin:kotlin-stdlib-common
) from1.8.21
to1.8.22
- Update Kotlin Stdlib Jdk8 (
org.jetbrains.kotlin:kotlin-stdlib-jdk8
) from1.8.21
to1.8.22
- Update Jackson Annotations (
- Minor Dependency Updates:
- SAP Dependency Updates:
4.15.0 - May 26, 2023
Compatibility Notes
- The behaviour of
DestinationAccessor.getDestination(...)
has been changed to throw:DestinationNotFoundException
instead ofDestinationAccessException
with causeDestinationNotFoundException
when a destination is not foundDestinationAccessException
instead ofDestinationNotFoundException
when no adapters are declared
- We are planning to discontinue support of Business Logging APIs with SAP Cloud SDK v5 by end of the year.
Therefore, we're announcing module deprecation in advance.
The following modules and namespaces are deprecated while still being fully functional and considered supported in SAP
Cloud SDK v4:
- BTP Business Logging Core:
com.sap.cloud.sdk.services.scp.businesslogging.core.*
tryGetDestination("destinationName", CLIENT_CREDENTIALS)
is replaced byScpCfServiceDestinationLoader.getDestinationForService(BUSINESS_LOGGING, "destinationName")
tryGetDestination("destinationName", USER_TOKEN)
is replaced byScpCfServiceDestinationLoader.getDestinationForService(BUSINESS_LOGGING, "destinationName", OnBehalfOf.NAMED_USER_CURRENT_TENANT)
- BTP Business Logging Core:
- Rename references from SAP API Business Hub to SAP Business Accelerator Hub in JavaDoc.
New Functionality
OpenAPI
generated objects can now read custom fields which are not part of the object's schema:getCustomFieldNames()
getCustomField("nameOfField")
- The BTP CloudFoundry specific platform modules now support mTLS for communication with destinations having their
securityConfigurationStrategy
set toFROM_PLATFORM
.
Improvements
- Dependency Updates:
- Minor version updates:
- Update
commons-io:commons-io
from2.11.0
to2.12.0
- Update Jackson related dependencies from
2.15.0
to2.15.1
- Update
org.checkerframework:checker-qual
declared for dependency convergence from3.33.0
to3.34.0
- Update
com.google.errorprone:error_prone_annotations
declared for dependency convergence from2.18.0
to2.19.1
- Update
com.google.api:api-common
used in theblockchain-client-fabric
module from2.9.0
to2.10.0
- Update
- Minor version updates:
- To avoid running into connection leaks while re-using the same
HttpClient
to execute multiple OData batch requests, running batch requests withtry-with-resources
construct is now possible for both OData v2 and v4 clients.
//Suggestive example for OData v2
try(
BatchResponse result = service.batch().addReadOperations(readOperation).executeRequest(dest)
) {
return result.get(0);
}
Fixed Issues
- Fix an issue where batch requests would leave open connections even after a
BatchResponse
was fully consumed.
4.14.0 - May 12, 2023
Compatibility Notes
-
Compatibility with the SAP Security Library
- The SAP Cloud SDK can now be used with the new major version
3.0.0
of the security library . - The minimum required version for the SAP Cloud SDK is now
2.13.9
. - For WAR deployments using the SAP Java Buildpack, the minimum required buildpack version is now
1.69.0
. - The related class
CertificateBasedHttpClientFactory
is no longer registered as an implementation ofcom.sap.cloud.security.client.HttpClientFactory
. - Deprecate functionality related to validation of JWT tokens from incoming requests:
AuthTokenBuilder
ScpCfAuthTokenFacade(OAuth2TokenService, OAuth2ServiceConfiguration)
ScpCfAuthTokenFacade#tryGetXsuaaServiceToken
ScpCfAuthTokenFacade#getRefreshToken
ScpCfTenantFacade#tryGetXsuaaServiceTenant
CertificateBasedHttpClientFactory
- The SAP Cloud SDK can now be used with the new major version
-
We are planning to discontinue support of Business Logging APIs with SAP Cloud SDK v5 by end of the year. Therefore, we're announcing module deprecation in advance. The following modules and namespaces are deprecated while still being fully functional and considered supported in SAP Cloud SDK v4:
- BTP Business Logging - All
- BTP Business Logging OData:
com.sap.cloud.sdk.services.scp.businesslogging.odata.*
- BTP Business Logging REST:
com.sap.cloud.sdk.services.scp.businesslogging.rest.*
The code can now be generated instead by using the OData and OpenAPI generators with the
EDMX
andJSON
specifications of the service.
New Functionality
OpenAPI
generated objects can now read custom fields which are not part of the object's schema:getCustomFieldNames()
getCustomField("nameOfField")
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update the SAP Security Library from
2.13.5
to2.13.9
- Update the SAP Java Buildpack BOM from
1.68.1
to1.69.0
- Update SAP Service Binding Library from
0.5.2
to0.6.0
- Update the SAP Security Library from
- SAP dependency updates:
Fixed Issues
- Fix an issue in OData V4 where custom fields in complex properties were not serialised when updating with
PATCH
.
4.13.0 - April 28, 2023
Compatibility Notes
- We are planning to discontinue support of RFC- and SOAP queries with SAP Cloud SDK v5 by end of the year.
Therefore we're announcing module deprecation in advance.
The following modules and namespaces are deprecated while still being fully functional and considered supported in SAP Cloud SDK v4:
- RFC Queries:
com.sap.cloud.sdk.s4hana.rfc.*
- SOAP queries:
com.sap.cloud.sdk.datamodel.soap.*
- RFC Queries:
- Deprecate the destination retrieval strategy
CURRENT_TENANT_THEN_PROVIDER
.- Please query subscriber and provider tenants individually instead using
ONLY_SUBSCRIBER
andALWAYS_PROVIDER
. This reduces hidden complexity and makes potential troubleshooting easier.
- Please query subscriber and provider tenants individually instead using
New Functionality
- Improved lookups of destinations from the BTP Destination Service:
- A new
ScpCfDestinationTokenExchangeStrategy.FORWARD_USER_TOKEN
has been introduced and made the default strategy. - It is functionally equivalent to the previous default
ScpCfDestinationTokenExchangeStrategy.LOOKUP_THEN_EXCHANGE
, but performs significantly better for destinations that require a user token. - Note: The new strategy is only enabled by default, if a user token exists in the current context and it's originating from the XSUAA identity service.
- Additional warnings and exceptions now better prevent incorrect usages of the different strategies. See also the related compatibility notes.
- A new
Improvements
- Added readable error messages in OpenAPI generator for files not found.
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.68.0
to1.68.1
- Update SAP Java Buildpack from
- Other dependency updates:
- Minor version updates:
- Update JSON from
20220924
to20230227
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.26
to5.3.27
- Update Spring Security (
org.springframework.security:spring-security-bom
) from5.8.2
to5.8.3
- Update Jackson (
com.fasterxml.jackson.core:jackson-annotations
,com.fasterxml.jackson.core:jackson-databind
andcom.fasterxml.jackson.core:jackson-core
) from2.14.2
to2.15.0
- Update JSON from
- Minor version updates:
- SAP dependency updates:
4.12.0 - April 13, 2023
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.67.0
to1.68.0
- Update SAP Java Buildpack from
- Other dependency updates:
- Minor version updates:
- Update checker-qual from
3.32.0
to3.33.0
- Update java-jwt from
4.3.0
to4.4.0
- Update checker-qual from
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue where SAML based destinations would not work properly when change detection is enabled.
4.11.0 - March 31, 2023
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.66.0
to1.67.0
- Update SAP Java Buildpack from
- Other dependency updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.25
to5.3.26
- Update Spring Boot (
org.springframework.boot:spring-boot
) from2.7.8
to2.7.10
- Update Spring Security (
org.springframework.security:spring-security-bom
) from5.8.1
to5.8.2
- Update Spring Boot (
- Update Spring Framework (
- Minor version updates:
- SAP dependency updates:
4.10.0 - March 21, 2023
New Functionality
- Add support for the new destination authentication type: "OAuth Technical User Propagation Authentication"
Improvements
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update Checker Framework from
3.30.0
to3.32.0
- Update Checker Framework from
- Minor version updates:
- Other dependency updates:
4.9.0 - March 14, 2023
New Functionality
- Update of the OData VDM to the newest release 2022 FPS1 of SAP S/4HANA On-Premise.
The SDK supports all OData services listed in the SAP Business Accelerator Hub for SAP S/4HANA On-Premise.
This includes completely new services, new operations in previously existing services, and new entity types in the existing Maven artifacts:
s4hana-api-odata-v4-onpremise
manages classes in packagecom.sap.cloud.sdk.s4hana.onpremise.datamodel.odatav4.services
- Many new services
- Removed services
FinanceCtrComplementaryTableDataMaintenanceService
RealEstateContractService
- Renamed service
PreferredSupplierListService
toPreferredSupplierListV2Service
s4hana-api-odata-onpremise
manages classes in packagecom.sap.cloud.sdk.s4hana.onpremise.datamodel.odata.services
- New service
ManageExcessRequirementService
- New service
- SAP Cloud SDK can be used with JakartaEE (e.g. via Spring Boot 3). The necessary instructions can be found here.
- New module
servlet-jakarta
is released for experimental usage.
- New module
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.65.0
to1.66.0
- Update XSUAA Security Client from
2.13.4
to2.13.5
- Update SAP Java Buildpack from
- SAP dependency updates:
4.8.0 - February 23, 2023
New Functionality
FilterableBoolean
has been extended to allow custom filter expressions. This is useful when filter fields need to be passed dynamically. Refer to the documentation for more information.
Improvements
- Dependency Updates:
- Other dependency updates:
- Major version updates:
- Set Jakarta Servlet API (
jakarta.servlet:jakarta.servlet-api
) to6.0.0
- Set Jakarta Servlet API (
- Minor version updates:
- Major version updates:
- Other dependency updates:
4.7.0 - February 08, 2023
Known Issues
- Arquillian based unit tests that use TomEE (embedded) as container may not work anymore with the latest SJB update.
If the runtime encounters missing method or class exceptions, then we recommend setting the following system property in the local
arquillian.xml
test resource file:<property name="properties">openejb.cxf.jmx=false</property>
Compatibility Notes
- Changing the configuration of
ScpCfDestinationLoader.Cache
after disabling it viadisable()
will now throw an exception.
New Functionality
- The destination cache now offers a change detection mode.
When accessing multiple destinations per tenant this mode can yield a significant performance increase.
It is disabled by default but can be enabled via the new
ScpCfDestinationLoader.Cache.enableChangeDetection()
. Further configuration is possible via the available setters onScpCfDestinationLoader.Cache
. Refer to the dedicated documentation for more information. - The destination cache now also applies to
ScpCfDestinationLoader.tryGetAllDestinations()
. The same cache duration and expiration settings set onScpCfDestinationLoader.Cache
apply. However, the cache size is not limited. - Extended the
ScpCfServiceDestinationLoader
to now also allow forAuthenticationType.OAUTH2_USER_TOKEN_EXCHANGE
. This enables accessing the service on behalf of a business user via user token exchange.
Improvements
- Update the OData VDM to the newest release 2302 of SAP S/4HANA Cloud.
This includes completely new services (available as usual in packages
com.sap.cloud.sdk.s4hana.datamodel.odata.services
andcom.sap.cloud.sdk.s4hana.datamodel.odatav4.services
), new operations in previously existing services, and new entity types. The SAP Cloud SDK supports all OData services listed in the SAP Business Accelerator Hub for SAP S/4HANA Cloud. - Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.64.1
to1.65.0
- Update Neo JavaEE7 WP API from
1.140.5
to1.141.12
- Update SAP Java Buildpack from
- Other dependency updates:
- Minor version updates:
- Update API Common (
com.google.api:api-common
) from2.4.0
to2.5.0
- Update Spring Boot (
org.springframework.boot:spring-boot
) from2.7.7
to2.7.8
- Update Jackson Date/Time (
com.fasterxml.jackson.datatype:jackson-datatype-jsr310
) from2.14.1
to2.14.2
- Update Jackson Core (
com.fasterxml.jackson.core:jackson-annotations
,com.fasterxml.jackson.core:jackson-databind
andcom.fasterxml.jackson.core:jackson-core
) from2.14.1
to2.14.2
- Update API Common (
- Minor version updates:
- SAP dependency updates:
4.6.0 - January 26, 2023
Improvements
-
Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API from
1.139.9
to1.140.5
- Update Neo JavaEE7 WP API from
- Other dependency updates:
- Minor version updates:
- Update Spring Boot (
org.springframework.boot:spring-boot
) from2.7.6
to2.7.7
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.24
to5.3.25
- Update Checker Equal (
org.checkerframework:checker-equal
) from3.28.0
to3.29.0
- Update Annotations for Error Prone (
com.google.errorprone:error_prone_annotations
) from2.16
to2.18.0
- Update Gson (
com.google.code.gson:gson
) from2.10
to2.10.1
- Update Auth0 JWT (
com.auth0:java-jwt
) from4.2.1
to4.2.2
- Update Spring Boot (
- Minor version updates:
- SAP dependency updates:
-
Improved destination caching in BTP CF by storing destinations for the entire tenant (i.e. all principals) just once if no user propagation is required. This affects following authentication types:
NoAuthentication
BasicAuthentication
ClientCertificateAuthentication
OAuth2ClientCredentials
OAuth2Password
Applications that use such authentication types for their destinations primarily may greatly benefit from this change as destinations are far more likely to be served from the cache instead of being retrieved from the BTP Destination service.
For improved performance, while using destinations that require user propagation, users may provide the
EXCHANGE_ONLY
token exchange option via theDestinationOptions
parameter while retrieving the destination in BTP CF.DestinationOptions options =
DestinationOptions
.builder()
.augmentBuilder(
ScpCfDestinationOptionsAugmenter
.augmenter()
.tokenExchangeStrategy(ScpCfDestinationTokenExchangeStrategy.EXCHANGE_ONLY))
.build();
Try<Destination> destination = DestinationAccessor.getLoader().tryGetDestination("MyDestination", options);
Fixed Issues
- Fix an issue when serializing
EDM.DateTime
objects in OData V2, which caused the resulting literal to contain 9 digits for the nanoseconds instead of 7.
4.5.0 - December 29, 2022
New Functionality
- Update the OData VDM to the newest release 2208.3 of SAP S/4HANA Cloud.
This includes completely new services (available as usual in packages
com.sap.cloud.sdk.s4hana.datamodel.odata.services
andcom.sap.cloud.sdk.s4hana.datamodel.odatav4.services
), new operations in previously existing services, and new entity types. The SAP Cloud SDK supports all OData services listed in the SAP Business Accelerator Hub for SAP S/4HANA Cloud.- Breaking changes in OData V4 are:
SAP__Messages
removed from:CADOCUMENTMANAGE_0001
API_JNTOPGAGRMT_0001
API_JOINTVENTURE_0001
Payment Data
removed fromCADOCUMENTMANAGE_0001
SupplierCostBreakdownIsEnabled
andSuplrCostBreakdownIsRelevant
fromCE_SOURCINGPROJECT_0001
- Breaking changes in OData V4 are:
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Java Buildpack from
1.64.0
to1.64.1
- Update SAP Service Binding Library from
0.5.1
to0.5.2
- Update SAP Java Buildpack from
- Other dependency updates:
- Update Spring Security (
org.springframework.security:spring-security-bom
) from5.8.0
to5.8.1
- Update Spring Security (
- SAP dependency updates:
4.4.0 - December 15, 2022
New Functionality
- The destination loaders now allow for customizing the timeout that is applied to destination retrievals.
- By default, a 6-second timeout is applied when retrieving a destination.
- The timeout can be overridden by using the builder:
final Try<Destination> loadedDestination = ScpCfDestinationLoader.builder()
.withTimeLimiterConfiguration(ResilienceConfiguration.TimeLimiterConfiguration.of(Duration.ofSeconds(10)))
.build()
.tryGetDestination(destinationName, destinationOptions); - Alternatively, the timeout behaviour can be disabled via:
final Try<Destination> loadedDestination = ScpCfDestinationLoader.builder()
.withTimeLimiterConfiguration(ResilienceConfiguration.TimeLimiterConfiguration.disabled())
.build()
.tryGetDestination(destinationName, destinationOptions);
Improvements
- Improvements to accessing destinations in a resilient manner:
- The default timeout of
6
seconds for fetching one or all destinations usingtryGetDestination(destinationName, options)
ortryGetAllDestinations(options)
ortryGetAllDestinations()
is now applied individually for token retrieval and destination service calls. - The experimental method
ScpCfDestinationLoader#tryGetDestination(String,String,String,ScpCfDestinationServiceResponseProvider)
now also performs requests in a resilient manner with automatic timeout configured for6
seconds. - The default timeout value can be overridden or disabled by constructing a
ScpCfDestinationLoader
with a custom time-limiter configuration. See the note on new functionality above.
- The default timeout of
- Dependency Updates:
- SAP dependency updates:
- Update Neo Java Web API from
4.41.1
to4.42.3
- Update Neo JavaEE7 WP API from
1.137.8
to1.138.5
- Update Neo Java Web API from
- Other dependency updates:
- Update HttpCore (
org.apache.httpcomponents:httpcore
) from4.4.15
to4.4.16
- Update HttpClient (
org.apache.httpcomponents:httpclient
) from4.5.13
to4.5.14
- Update Jackson (
com.fasterxml.jackson.core:jackson-databind
) from2.14.0
to2.14.1
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.21.9
to3.21.10
- Update Fabric SDK Java (
org.hyperledger.fabric-sdk-java:fabric-sdk-java
) from2.2.18
to2.2.19
- Update Fabric Gateway Java (
org.hyperledger.fabric:fabric-gateway-java
) from2.2.6
to2.2.7
- Update Spring Security (
org.springframework.security:spring-security-bom
) from5.7.5
to5.8.0
- Update HttpCore (
- SAP dependency updates:
Fixed Issues
- Fix an issue where properties of service bindings were lost while converting them into the
Map<String, JsonArray>
representation.
4.3.0 - December 1, 2022
New Functionality
-
Introduce new APIs to configure the destination cache in the
ScpCfDestinationLoader
.We strongly recommend using the following APIs before loading any destination, for example, during application startup only:
ScpCfDestinationLoader.Cache.setSizeLimit
: Set the number of cache entries that will be cached.ScpCfDestinationLoader.Cache.disableSizeLimit
: Disable the cache size limit. The cache will store an infinite amount of entries - use with caution.ScpCfDestinationLoader.Cache.setExpiration
: Set the expiration duration and strategy for cache entries.ScpCfDestinationLoader.Cache.disableExpiration
: Disable the cache entry expiration. The cache will store entries until it is full, which will lead to the deletion of old entries. This might cause destinations to be cached forever - use with caution.ScpCfDestinationLoader.Cache.disable
: Disable the entire cache. All destination will always be retrieved from the Destination Service. This will result in performance degradations - use with caution.
-
Add a list of default destination property keys (in the
DestinationProperty
class), which allow convenient and type-safe access to specific values ofDestinationProperties
.Example:
Destination destination = DestinationAccessor.getDestination("my-destination");
AuthenticationType authType = destination.get(DestinationProperty.AUTH_TYPE)
.orElse(() -> destination.get(DestinationProperty.AUTH_TYPE_FALLBACK))
.getOrNull();
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Cloud Security Library from
2.13.2
to2.13.4
- Update SAP Java Buildpack from
1.60.0
to1.63.0
- Update SAP Cloud Security Library from
- Other dependency updates:
- Update Spring Core and Web from
5.3.23
to5.3.24
- Update Spring Core and Web from
- SAP dependency updates:
Fixed Issues
- Fix GSON deserialization issue during destination lookup for JRE16 and later.
- Fix an issue in our
resilience4j
cache implementation, where a race condition might lead to multiple executions of the wrappedCallable
.
4.2.0 - November 17, 2022
Improvements
- The circuit breaker now always applies the failure rate threshold when the closed / half-open buffer is filled.
- Previously, if a buffer size > 100 was configured, the circuit breaker would already apply the failure rate after 100 attempts.
- Now, the circuit breaker will always apply the threshold after
<buffer size>
amount of attempts (default 10 in closed and 5 in half-open state)
- Dependency Updates:
- Minor version updates:
- Update Gson (
com.google.code.gson:gson
) from2.9.0
to2.10.0
- Update
com.fasterxml.jackson
from2.13.4
to2.14.0
- Update
com.auth0:java-jwt
from4.0.0
to4.2.1
- Update Spring (
org.springframework:spring-framework-bom
) from5.3.22
to5.3.23
- Update Spring Boot (
org.springframework.boot:spring-boot-starter-reactor-netty
) from2.7.3
to2.7.5
- Update Gson (
- Minor version updates:
Known Issues
- When using JRE 16 or later, then GSON deserialization fails during destination lookup.
4.1.0 - November 03, 2022
New Functionality
- Update of the OData VDM to the newest release 2022 FPS0 of SAP S/4HANA On-Premise.
The SAP Cloud SDK supports all OData services listed in the SAP Business Accelerator Hub for SAP S/4HANA On-Premise.
This includes completely new services, new operations in previously existing services, and new entity types in the existing Maven artifacts:
s4hana-api-odata-v4-onpremise
manages classes in packagecom.sap.cloud.sdk.s4hana.onpremise.datamodel.odatav4.services
s4hana-api-odata-onpremise
manages classes in packagecom.sap.cloud.sdk.s4hana.onpremise.datamodel.odata.services
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Service Binding Library from
0.5.0
to0.5.1
- Update SAP Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Checker Equal (
org.checkerframework:checker-equal
) from3.25.0
to3.26.0
- Update Checker Equal (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue when using the latest version of the SAP BTP Service Operator with default parameters in Kubernetes environments.
4.0.0 - October 12, 2022
Improvements
This is the first release of the SAP Cloud SDK version 4. As this is a new major version, this release contains a lot of (under the hood) improvements, refactoring, and other changes. Please refer to the Upgrade Guide for details instructions on how to upgrade your SAP Cloud SDK dependencies to our new major version and for a detailed list of changes.
Compatibility Notes
-
We are aware of the vulnerability CVE-2022-42003, which affects a version of
jackson-databind
that is shipped as part of thesdk-bom
. After careful investigation we found that the described exploit does not affect the SAP Cloud SDK. Nevertheless, customers should be aware of this vulnerability and check their code.We will update the affected dependency as soon as a production ready fix is available.
Known Issues
-
We are aware of a version conflict of the
com.sap.cloud.environment.servicebinding:*
dependencies when the SAP Cloud SDK is used in combination with CAP (cds-integration-cloud-sdk
). This conflict can be resolved by including following dependency in the<dependencyManagement>
section of your project:<!-- Service Binding Library -->
<dependency>
<groupId>com.sap.cloud.environment.servicebinding</groupId>
<artifactId>java-modules-bom</artifactId>
<version>0.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Resulting pom.xml
pom.xml
<dependencyManagement>
<dependencies>
<!-- CDS SERVICES -->
<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-services-bom</artifactId>
<version>${cds.services.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Cloud SDK -->
<dependency>
<groupId>com.sap.cloud.sdk</groupId>
<artifactId>sdk-modules-bom</artifactId>
<version>4.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Service Binding Library -->
<dependency>
<groupId>com.sap.cloud.environment.servicebinding</groupId>
<artifactId>java-modules-bom</artifactId>
<version>0.5.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>