release-notes-15-to-29
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:servletfrom thecom.sap.cloud.sdk.cloudplatform:security-scp-neomodule. Please check whether you are adding theservletdependency 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.1to0.10.5
- Update Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Jackson (
com.fasterxml.jackson.core:jackson-databind) from2.16.0to2.17.0 - Update Apache HttpClient v5 (
org.apache.httpcomponents.client5:httpclient5) from5.2.2to5.3.1 - Update Apache HttpCore v5 (
org.apache.httpcomponents.core5:httpcore5) from5.2.3to5.2.4 - Update Commons IO (
commons-io:commons-io) from2.15.0to2.15.1 - Update Guava (
com.google.guava:guava) from32.1.3-jreto33.2.0-jre - Update Spring Framework (
org.springframework:spring-framework-bom) from5.3.32to5.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.3to2.17.5
- Update XSUAA Security Client from
- Other dependency updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom) from5.3.32to5.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.31to5.3.32 - Update org.apache.commons:commons-compress from
1.24.0to1.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.0to1.85.0 - Update XSUAA Security Client from
2.17.1to2.17.2
- Update SAP Java Buildpack from
- SAP dependency updates:
4.28.0 - December 5th, 2023
Compatibility Notes
AuditLogFacadeimplementationScpCfAuditLogFacadewill no longer throw an exception of legacy typeDependencyNotFoundExceptionbut 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.
AccessRequestercan 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.2to2.17.0
- Update the SAP Security Library from
- Other dependency updates:
- Minor version updates:
- Update Jackson (
com.fasterxml.jackson.core:jackson-databind) from2.15.3to2.16.0 - Update
org.apache.httpcomponents.client5from5.2.1to5.2.2 - Update
org.apache.httpcomponents.core5from5.2.1to5.2.2 - Update
org.apache.commons:commons-lang3from3.13.0to3.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.CloudPlatformcom.sap.cloud.sdk.cloudplatform.CloudPlatformFacadecom.sap.cloud.sdk.cloudplatform.CloudPlatformAccessorcom.sap.cloud.sdk.cloudplatform.ScpCfCloudPlatformcom.sap.cloud.sdk.cloudplatform.ScpCfCloudPlatformFacadecom.sap.cloud.sdk.cloudplatform.connectivity.AccessTokencom.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceResponseProvidercom.sap.cloud.sdk.cloudplatform.WithRuntimeDependenciescom.sap.cloud.sdk.cloudplatform.exception.ConstraintViolationExceptioncom.sap.cloud.sdk.cloudplatform.exception.DependencyNotFoundExceptioncom.sap.cloud.sdk.cloudplatform.exception.EntityAlreadyExistsExceptioncom.sap.cloud.sdk.cloudplatform.exception.EntityNotFoundExceptioncom.sap.cloud.sdk.cloudplatform.exception.StringParsingExceptioncom.sap.cloud.sdk.cloudplatform.exception.UnsupportedCloudFeatureExceptioncom.sap.cloud.sdk.cloudplatform.security.principal.exception.PrincipalAttributeExceptioncom.sap.cloud.sdk.cloudplatform.security.secret.SecretStorecom.sap.cloud.sdk.cloudplatform.security.secret.ScpCfSecretStorecom.sap.cloud.sdk.cloudplatform.security.secret.SecretStoreFacadecom.sap.cloud.sdk.cloudplatform.security.secret.ScpCfSecretStoreFacadecom.sap.cloud.sdk.cloudplatform.security.secret.SecretStoreAccessorcom.sap.cloud.sdk.cloudplatform.security.secret.exception.KeyStoreAccessExceptioncom.sap.cloud.sdk.cloudplatform.security.secret.exception.SecretStoreAccessExceptioncom.sap.cloud.sdk.testutil.ThreadContextInvocationInterceptorcom.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-iofrom2.14.0to2.15.0 - Update
org.checkerframework:checker-qualdeclared for dependency convergence from3.39.0to3.40.0 - Update Protobuf Java from
3.24.4to3.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
ResiliencecDecorationStrategyimplementation is on the classpath. Such a scenario will now produce a log message onWARNlevel. In addition to the log message, using any resilience pattern will lead to anResilienceRuntimeExceptionbeing thrown. The exception can be avoided by explicitly setting the correctResilienceDecorationStrategyvia 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
Acceptheaders for every paginated request. ODataRequestResultMultipartGeneric.getResult()now throwsODataResponseExceptioninstead ofIndexOutOfBoundsExceptionwhen 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.0to1.78.0 - Update Java Bom (
com.sap.cloud.security:java-bom) from2.13.9to2.14.2 - Update Neo Java Web API from
4.62.3to4.62.8 - Update
com.sap.cds:cds-services-apifrom1.34.6to1.34.7 - Update
com.sap.cloud.sjb.cf:cf-tomee7-bomfrom1.78.0to1.79.0
- Update Cf Tomee7 Bom (
- Other dependency updates:
- Minor version updates:
- Update JSON
20230618to20231013 - Update
com.google.errorprone:error_prone_annotationsfrom2.22.0to2.23.0. - Update
org.apache.olingo:odata-server-corefrom4.9.0to4.10.0 - Update
org.apache.olingo:odata-server-apifrom4.9.0to4.10.0 - Update
org.apache.olingo:odata-client-apifrom4.9.0to4.10.0 - Update
org.apache.olingo:odata-client-corefrom4.9.0to4.10.0 - Update
org.apache.olingo:odata-commons-apifrom4.9.0to4.10.0 - Update
org.apache.olingo:odata-commons-corefrom4.9.0to4.10.0
- Update JSON
- Patch version updates:
- Update
com.fasterxml.jackson.datatype:jackson-datatype-jsr310from2.15.2to2.15.3 - Update
com.fasterxml.jackson.core:jackson-annotationsfrom2.15.2to2.15.3 - Update
com.fasterxml.jackson.core:jackson-databindfrom2.15.2to2.15.3 - Update
com.fasterxml.jackson.core:jackson-corefrom2.15.2to2.15.3 - Update
com.fasterxml.jackson.dataformat:jackson-dataformat-yamlfrom2.15.2to2.15.3 - Update
com.fasterxml.jackson.dataformat:jackson-dataformat-xmlfrom2.15.2to2.15.3 - Update
com.google.guava:guavafrom32.1.2-jreto32.1.3-jre - Update
io.projectreactor.netty:reactor-netty-httpfrom1.1.11to1.1.12 - Update
io.projectreactor.netty:reactor-netty-corefrom1.1.11to1.1.12 - Update
org.codehaus.woodstox:stax2-apifrom4.2.1to4.2.2 - Update
org.eclipse.jetty:jetty-webappfrom9.4.52.v20230823to9.4.53.v20231009 - Update
org.eclipse.jetty:jetty-servletfrom9.4.52.v20230823to9.4.53.v20231009 - Update
io.swagger:swagger-corefrom1.6.11to1.6.12 - Update
io.projectreactor:reactor-corefrom3.5.10to3.5.11 - Update
org.apache.olingo:olingo-odata2-corefrom2.0.12to2.0.13 - Update
org.apache.olingo:olingo-odata2-apifrom2.0.12to2.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-libused in themaster-data-integrationmodules from2.2.0to2.3.0
- Update
- Other dependency updates:
- Minor version updates:
- Update
com.google.api:api-commonused in theblockchain-client-fabricmodule from2.17.0to2.18.0 - Update
org.checkerframework:checker-qualdeclared for dependency convergence from3.38.0to3.39.0 - Update
commons-io:commons-iofrom2.13.0to2.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:
AudienceAuthorizationRoleRolesAllowedScopeTenantSpecificAuthorizationUserSpecificAuthorization
- 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:
PrincipalAttributeCollectionPrincipalAttributeSimplePrincipalAttributeStringCollectionPrincipalAttributeStringPrincipalAttribute
- 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:
LocalScopePrefixProviderDefaultLocalScopePrefixProviderLocalScopePrefixExtractor
- Please use related Default classes:
DefaultPrincipalDefaultPrincipalFacade
- Will be removed without replacement:
- In module security (package
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update SAP Service Binding Library from
0.9.0to0.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.1to2.22.0 - Update Lombok (
org.projectlombok:lombok) from1.18.28to1.18.30 - Update httpcore5 (
org.apache.httpcomponents.core5:httpcore5) from5.2.2to5.2.3 - Update API Common (
com.google.api:api-common) used in theblockchain-client-fabricmodule from2.16.0to2.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_SERVICESenvironment variable:- In module cloudplatform-connectivity-scp-cf (package
com.sap.cloud.sdk.cloudplatform.connectivity)ScpCfServiceScpCfServiceAuthorizationFailedExceptionScpCfServiceCreationFailedExceptionScpCfServiceDestinationLoaderScpVcapDestinationLoaderScpVcapDestinationOptionAugmenterScpVcapLoaderUtilsScpXfDestinationDataScpXfDestinationLoader
- In module cloudplatform-core-scp-cf (package
com.sap.cloud.sdk.cloudplatform)ScpCfServiceDesignatorScpCfServiceInfoServiceBindingDataException
As a replacement, please refer to the experimental
ServiceBindingDestinationLoaderAPI (module cloudplatform-connectivity, packagecom.sap.cloud.sdk.cloudplatform.connectivity) and theServiceBindingAPI. - 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.0to3.7.1 - Update Neo JavaEE7 WP API from
1.156.8to1.157.7 - Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom) from1.76.0to1.77.0
- Update cf-java-logging-support-logback (
- Other dependency updates:
- Minor version updates:
- Update
org.checkerframework:checker-qualdeclared for dependency convergence from3.37.0to3.38.0 - Update
com.google.api:api-commonused in theblockchain-client-fabricmodule from2.15.0to2.16.0 - Update
org.apache.commons:commons-compressused in theblockchain-client-fabricmodule from1.23.0to1.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
OAuth2ServiceProviderconvenience 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-servletand 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:
JndiLookupAccessorJndiLookupFacadeDefaultJndiLookupFacade
StringConverterandStringValidatorhave been deprecated without replacement. Java Standard Library can be used as a replacemet forStringConverterand Apache Commons Codec can be used as a replacement forStringValidator. Refer here for more details.
New Functionality
- While using destinations of authentication type
SAMLAssertionto execute requests, thex-sap-security-sessionheader 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.Binaryentity field is represented with anull-valuebyte[]array.
4.20.0 - August 7, 2023
Compatibility Notes
-
The
BindableServiceabstraction 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.0we introduced default retrieval strategyScpCfDestinationTokenExchangeStrategy.FORWARD_USER_TOKENwhich 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 primitiveintinstead.com.sap.cloud.sdk.services.openapi.core.OpenApiResponse#getStatusCode(): No longer returns an instance ofHttpStatus, but a primitiveintinstead.
-
com.sap.cloud.sdk.datamodel.openapi.generator.model.LogLevelenum has been removed in relation to theOpenAPI OData GeneratorlogLevelproperty change.
New Functionality
-
Add a new module (
com.sap.cloud.sdk.frameworks:apache-httpclient5) with APIs for retrieving an Apache version 5HttpClientbased on a given destination. These APIs consist of the following classes:ApacheHttpClient5Factory- A factory interface for creatingHttpClientinstances fromHttpDestinationProperties.ApacheHttpClient5FactoryBuilder- A builder class for instantiating a default implementation of theApacheHttpClient5Factoryinterface that allows for some customization.ApacheHttpClient5Cache- A cache interface for cachingHttpClientinstances.ApacheHttpClient5CacheBuilder- A builder class for instantiating a default implementation of theApacheHttpClient5Cacheinterface that allows for some customization.ApacheHttpClient5Accessor- A class with static methods for retrieving anHttpClientbased 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.0to0.9.0
- Update SAP Service Binding Library from
- Other dependency updates:
- Minor version updates:
- Update Guava from
32.1.1-jreto32.1.2-jre - Update
org.apache.commons:commons-lang3from3.12to3.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
-Dparameter 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 thanDEBUGwould 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.0to0.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.1to1.74.0 - Update Spring Framework (
org.springframework:spring-framework-bom) from5.3.28to5.3.29 - Update Spring Boot (
org.springframework.boot:spring-boot-dependenciesandorg.springframework.boot:spring-boot-maven-plugin) from2.7.13to2.7.14 - Update Protobuf Java (
com.google.protobuf:protobuf-java) from3.23.3to3.23.4 - Update Kotlin Stdlib (
org.jetbrains.kotlin:kotlin-stdlib) from1.8.22to1.9.0 - Update Kotlin Stdlib Common (
org.jetbrains.kotlin:kotlin-stdlib-common) from1.8.22to1.9.0 - Update Kotlin Stdlib Jdk8 (
org.jetbrains.kotlin:kotlin-stdlib-jdk8) from1.8.22to1.9.0 - Update Checker Qual (
org.checkerframework:checker-qual) from3.35.0to3.36.0 - Update JSON from
20230227to20230618
- 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:jsr305tooptional. 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.xmlfile accordingly by adding the dependency as explicit direct dependency. - Deprecate
blockchain-client-multichain,blockchain-client-fabric,blockchain-business-services-visibilityandbtp-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-jreto32.1.1-jre - Update Cf Tomee7 Bom (
com.sap.cloud.sjb.cf:cf-tomee7-bom) from1.72.0to1.73.1 - Update SAP Service Binding Library from
0.6.0to0.7.0
- Update Guava from
- Minor version updates:
- Other dependency updates:
Fixed Issues
- For HTTP destinations with the authentication type
SAMLAssertionthe 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-bomPlease use thecf-tomee7-bomfollowed 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-neoauditlog-scp-neocloudplatform-connectivity-scp-neocloudplatform-core-scp-neoconcurrency-scp-neosecurity-scp-neotenant-scp-neo
plugins-parentscp-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-connectivityands4hana-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.trustStoreandjavax.net.ssl.trustStorePasswordare 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.0to2.13.0 - Update Error Prone declared for dependency convergence from
2.19.1to2.20.0 - Update Guava from
31.1-jreto32.0.1-jre
- Update Commons IO from
4.16.0 - June 14, 2023
Compatibility Notes
- Deprecate
ErpHttpDestinationand all related classes. The functionality is now integrated and handled automatically byHttpDestinations. For most projects this means simply removing any occurrence ofdecorate(DefaultErpHttpDestination::new). In case you are usingErpHttpDestinationto automatically add thesap-languagebased on the current system locale, please configure a propertycloudsdk.dynamicSapLanguagewith valuetrueon the destination.
Improvements
- Improved the handling of
sap-clientandsap-languageto 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.0to1.71.0 - Update Neo Java Web Api (
com.sap.cloud:neo-java-web-api) from4.53.3to4.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.1to2.15.2 - Update Jackson Core (
com.fasterxml.jackson.core:jackson-core) from2.15.1to2.15.2 - Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind) from2.15.1to2.15.2 - Update Jackson Datatype Jsr310 (
com.fasterxml.jackson.datatype:jackson-datatype-jsr310) from2.15.1to2.15.2 - Update Jackson Dataformat Xml (
com.fasterxml.jackson.dataformat:jackson-dataformat-xml) from2.15.1to2.15.2 - Update Jackson Dataformat Yaml (
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml) from2.15.1to2.15.2 - Update Netty Codec Http (
io.netty:netty-codec-http) from4.1.92.Finalto4.1.93.Final - Update Protobuf Java (
com.google.protobuf:protobuf-java) from3.23.1to3.23.2 - Update Checker Qual (
org.checkerframework:checker-qual) from3.34.0to3.35.0 - Update Lombok (
org.projectlombok:lombok) from1.18.26to1.18.28 - Update Kotlin Stdlib (
org.jetbrains.kotlin:kotlin-stdlib) from1.8.21to1.8.22 - Update Kotlin Stdlib Common (
org.jetbrains.kotlin:kotlin-stdlib-common) from1.8.21to1.8.22 - Update Kotlin Stdlib Jdk8 (
org.jetbrains.kotlin:kotlin-stdlib-jdk8) from1.8.21to1.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:DestinationNotFoundExceptioninstead ofDestinationAccessExceptionwith causeDestinationNotFoundExceptionwhen a destination is not foundDestinationAccessExceptioninstead ofDestinationNotFoundExceptionwhen 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
OpenAPIgenerated 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
securityConfigurationStrategyset toFROM_PLATFORM.
Improvements
- Dependency Updates:
- Minor version updates:
- Update
commons-io:commons-iofrom2.11.0to2.12.0 - Update Jackson related dependencies from
2.15.0to2.15.1 - Update
org.checkerframework:checker-qualdeclared for dependency convergence from3.33.0to3.34.0 - Update
com.google.errorprone:error_prone_annotationsdeclared for dependency convergence from2.18.0to2.19.1 - Update
com.google.api:api-commonused in theblockchain-client-fabricmodule from2.9.0to2.10.0
- Update
- Minor version updates:
- To avoid running into connection leaks while re-using the same
HttpClientto execute multiple OData batch requests, running batch requests withtry-with-resourcesconstruct 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
BatchResponsewas fully consumed.