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 for Java is Deprecated
Version 3.x of the SAP Cloud SDK for Java has reached its end of life. As a consequence, there won't be any updates to the SAP Cloud SDK version 3 - not even security fixes. To continue using the latest features outlined in the release notes below, please update to the SAP Cloud SDK v4.
3.78.0 - December 15, 2022
newFunctionality
-
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.
-
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:
- Other dependency updates:
- Minor version updates:
- Update Tomcat JDBC (
org.apache.tomcat:tomcat-jdbc
) and Tomcat Annotations API (org.apache.tomcat:tomcat-annotations-api
) from8.5.81
to8.5.83
- Update okhttp (
com.squareup.okhttp3:okhttp
) from4.9.3
to4.10.0
- Update Tomcat JDBC (
- Minor version updates:
- Other dependency updates:
fixedIssues
- Retrieving any
OAuth2
destination using theDestinationAccessor
in DwC has been improved to always return a destination with a valid, non-expired Auth token.
3.77.0 - November 17, 2022
Improvements
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update Woodstox Core(
com.fasterxml.woodstox:woodstox-core
) from6.3.0
to6.4.0
- Update Spring Security(
org.springframework.security:spring-security-bom
) from5.7.3
to5.7.5
- Update Woodstox Core(
- Minor version updates:
- Other dependency updates:
3.76.0 - October 31, 2022
Improvements
- The naming of the destination retrieval strategy (
SUBSCRIBER_THEN_PROVIDER
) both in theScpCfDestinationLoader
as well as in theScpNeoDestinationLoader
did not behave as the name implied, as it was taking the current tenant, which might, due to misconfiguration, also be the Provider Tenant for the first destination retrieval attempt. This is now fixed by the following steps:- Deprecation of the unclear
SUBSCRIBER_THEN_PROVIDER
strategy - Adding a new strategy
CURRENT_TENANT_THEN_PROVIDER
, which will not perform a second retrieval attempt in case the current tenant is already the provider
- Deprecation of the unclear
- The naming of the
ScpNeoDestinationRetrievalStrategy
(ALWAYS_SUBSCRIBER
) in theScpNeoDestinationLoader
did not behave as the name implied, as it was taking the current tenant, which might, due to misconfiguration, also be the Provider Tenant. This is now fixed by the following steps:- Deprecation of the unclear
ALWAYS_SUBSCRIBER
strategy - Alternative strategy keeping the same behavior:
CURRENT_TENANT
- Adding a new strategy
ONLY_SUBSCRIBER
which actively enforces that the current tenant is not the provider tenant
- Deprecation of the unclear
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update Jackson BOM (
com.fasterxml.jackson:jackson-bom
) from2.13.3
to2.13.4
- Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind
) from2.13.3
to2.13.4.2
- Update Commons Text (
org.apache.commons:commons-text
) from1.9.0
to1.10.0
- Update Fabric SDK Java (
org.hyperledger.fabric-sdk-java:fabric-sdk-java
) from2.2.10
to2.2.18
- Update Snake YAML (
org.yaml:snakeyaml
) from1.31
to1.33
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.21.2
to3.21.7
- Update Jackson BOM (
- Minor version updates:
- Other dependency updates:
Fixed Issues
- Fix an issue with OData request payloads containing incomplete entity type indicators.
- Fix an issue with JWT payload parsing from incoming requests:
aud
claim can be an atomic string or an array of strings.
3.75.0 - September 21, 2022
Compatibility Notes
- The
RequestAccessor
API (along all the related classes - e.g. theRequestThreadContextListener
andRequestFacade
) is deprecated. For a replacement, please refer to theRequestHeaderAccessor
.
New Functionality
- Add public method
getAllDestinations()
toEnvVarDestinationLoader
to resolve all destinations from the configured system environment variable (default:destinations
).
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Library from
2.12.2
to2.12.3
- Update XSUAA Library from
- Other dependency updates:
- Minor version updates:
- Update Spring from
5.3.21
to5.3.22
- Update Spring Security from
5.7.2
to5.7.3
- Update Spring from
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with OData request payloads containing incomplete entity type indicators.
- Fix an issue with JWT payload parsing from incoming requests:
aud
claim can be an atomic string or an array of strings.
3.74.0 - August 11, 2022
Compatibility Notes
- Following modules have been marked as deprecated and will be removed with the upcoming release of SAP Cloud SDK 4.0:
OData Query Listener
and related classes in other modulesRemote Function Query Listener
and related classes in other modulesHTTP Client Listener
and related classes in other modules- The remaining
Quality - Parent POM
and submodules
New Functionality
- Update the OData VDM to the newest release 2208 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.
3.73.0 - July 28, 2022
Compatibility Notes
- Following modules have been deprecated and will be removed with the upcoming release of the SAP Cloud SDK version 4:
- API Metering (
com.sap.cloud.sdk.cloudplatform:metering
) - API Metering SAP CP Neo (
com.sap.cloud.sdk.cloudplatform:metering-scp-neo
)
- API Metering (
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Library from
2.12.2
to2.12.3
- Update SAP AuditLog from
2.0.16
to2.0.17
- Update SAP Passport from
1.5.0
to1.6.0
- Update NEO SDK from
1.127.12
to1.128.10
- Update NEO Web API from
4.29.8
to4.32.0
- Update XSUAA Library from
- Other dependency updates:
- Minor version updates:
- Update Spring from
5.3.20
to5.3.21
- Update Spring Security from
5.7.1
to5.7.2
- Update
org.scyscreamer:jsonassert
from1.5.0
to1.5.1
- Update
org.liquibase:liquibase-core
from4.12.0
to4.13.0
- Update Spring from
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue where the Rate Limiter pattern wasn't correctly applied when using one of the
ResilienceDecorator.execute...
methods
3.72.0 - July 14, 2022
Improvements
- Dependency Updates:
- SAP Dependency Updates:
- Minor Dependency Updates:
- Update XSUAA Client Library from
2.12.1
to2.12.2
- Update Neo Javaee7 Wp (
com.sap.cloud:neo-javaee7-wp-sdk
) from1.123.12
to1.127.12
- Update Neo Java Web Api (
com.sap.cloud:neo-java-web-api
) from4.27.5
to4.29.8
- Update XSUAA Client Library from
- Minor Dependency Updates:
- Other Dependency Updates:
- Minor Dependency Updates:
- Update Spring Boot (
org.springframework.boot:spring-boot
) from2.6.7
to2.7.0
- Update Spring Security (
org.springframework.security:spring-security-bom
) from5.6.4
to5.7.1
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.21.1
to3.21.2
- Update Spotbugs Annotations (
com.github.spotbugs:spotbugs-annotations
) from4.7.0
to4.7.1
- Update Woodstox Core (
com.fasterxml.woodstox:woodstox-core
) from6.2.8
to6.3.0
- Update Spring Boot (
- Minor Dependency Updates:
- SAP Dependency Updates:
Fixed Issues
- Fix an issue where generation of OData v4 client failed with a
NullPointerException
whenActions
andFunctions
listEntites
that are not associated with anEntitySet
as parameters. The generator skips generating these actions and functions now.
3.71.0 - June 30, 2022
Improvements
- Dependency Updates:
- Other dependency updates:
- Minor version updates:
- Update AssertJ Guava (
org.assertj:assertj-guava
) from3.4.0
to3.5.0
- Update Liquibase Core (
org.liquibase:liquibase-core
) from4.11.0
to4.12.0
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.18
to3.4.19
- Update Tomcat JDBC (
org.apache.tomcat:tomcat-jdbc
) and Tomcat Annotations API (org.apache.tomcat:tomcat-annotations-api
) from8.5.77
to8.5.81
- Update AMQP Client (
com.rabbitmq:amqp-client
) from5.14.2
to5.15.0
- Update Error Prone Annotations (
com.google.errorprone:error_prone_annotations
) from2.13.1
to2.14.0
- Update Netty Bom (
io.netty:netty-bom
) from4.1.77
to4.1.78.Final
- Update AssertJ Guava (
- Minor version updates:
- Other dependency updates:
3.70.0 - June 16, 2022
New Functionality
-
Update of the OData VDM to the newest release 2021 FPS2 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
The following services are added:
- BudgetPeriodService
- BudgetPeriodHierarchyService
- IncotermsService
- FundsManagementFunctionalAreaService
- FundsCenterService
- GrantService
- FundsManagementCommitmentAndActualItemService
- FundedProgramService
- FundHierarchyService
- FundsManagementBudgetDocumentItemService
- FundsCenterHierarchyService
- FundedProgramHierarchyService
- FundService
- GrantHierarchyService
- CommitmentItemHierarchyService
- CommitmentItemService
- ProjectClaimService
- StatutoryReportingCategoryDefinitionService
- StatutoryReportingReportDefinitionService
The following services are updated:
- CashSecurityDepositService
- CentralRequestForQuotationService
- CentralSupplierQuotationService
- ConditionContractService
- FlexibleConstraintService
- InHouseRepairService
- PlannedOrderService
- ProjectDefinitionService
- QualityTaskService
- ReturnsInspectionService
- SettlementDocumentService
- StatutoryReportingTaskService
- StorePickupOrderService
- VariantTableContentService
- WarehouseDefectService
- ServiceConfirmationService
- ServiceOrderService
- ServiceOrderTemplateService
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo Java Web API from
4.26.4
to4.27.5
- Update Neo JavaEE7 WP API from
1.122.6
to1.123.12
- Update JPaaS Security Utils from
1.4.92
to1.4.93
- Update Neo Java Web API from
- Other dependency updates:
- Minor version updates:
- Update Liquibase Core (
org.liquibase:liquibase-core
) from4.10.0
to4.11.0
- Update Togglz Core (
org.togglz:togglz-core
) from3.1.2
to3.2.1
- Update Plexus Utils (
org.codehaus.plexus:plexus-utils
) from3.4.1
to3.4.2
- Update Protobuf (
com.google.protobuf:protobuf-java
) from3.20.1
to3.21.1
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.17
to3.4.18
- Update Rest Assured (
io.rest-assured:rest-assured
) from5.0.1
to5.1.0
- Update Liquibase Core (
- Minor version updates:
- SAP dependency updates:
3.69.0 - June 03, 2022
Compatibility Notes
-
Deprecate the
testutil-*
(com.sap.cloud.sdk.testutil:testutil-parent
,com.sap.cloud.sdk.testutil:testutil-core
, andcom.sap.cloud.sdk.testutil:testutil-resources
) modules. These will be removed from our public deliveries with the next upcoming major release of the SAP Cloud SDK.If you are relying on (one of) these modules for your testing scenarios, please let us know by reacting on this GitHub issue.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo Java Web API from
4.25.6
to4.26.1
- Update Neo JavaEE7 WP API from
1.121.5
to1.122.6
- Update Neo Java Web API from
- Other dependency updates:
- Minor version updates:
- Update Spring BOM (
org.springframework:spring-framework-bom
) from5.3.19
to5.3.20
- Update Spring Security (
org.springframework:spring-security-bom
) from5.6.3
to5.6.4
- Update Jackson Bom (
com.fasterxml.jackson:jackson-bom
) from2.13.2
to2.13.3
- Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind
) from2.13.2.2
to2.13.2.3
- Update Spring BOM (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with OData Batch request construction when the service path contains special characters.
3.68.0 - May 19, 2022
Compatibility Notes
- To fix the high vulnerability CVE-2022-22968 in Spring, we had to update Spring BOM to
5.3.19
and to maintain compatibility had to also update XSUAA Client Library to2.11.16
. Please note that if you are using SAP JAVA buildpack for your deployments use a static buildpack versionsap_java_buildpack_1_52
to avoid dependency conflicts and class loading issues. - SAP Business Rules OpenAPI client library received breaking change to the field
List<TextPredefinedResults> predefinedResults
which is renamed toList<TextPredefined> predefined
after updating to the latest version of the SAP Business Rules service - Deprecate non-productive
com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataCalendarAdapter
and child classesODataDateTimeAdapter
,ODataDateTimeOffsetAdapter
, andODataTimeAdapter
. It is planned to remove those classes with SAP Cloud SDK v4. - Switch from using
com.google.code.findbugs:annotations
tocom.github.spotbugs:spotbugs-annotations
in modulescloudplatform-core-dwc-cf
andrecast-ai
. No code changes are required if you are consuming these modules. However, if you are planning on consuming these dependencies, remember to declare them directly in your POM as these are declared as optional dependencies. - The
DefaultLocaleFacade
does no longer consider theServletRequest
(accessed via theRequestAccessor
) to determine the desiredLocale
. Instead, the facade uses theRequestHeaderAccessor
to derive theLocale
based on theAccept-Language
header - this change was already introduced in version3.61.0
. As a fallback, in case the header cannot be found, the defaultLocale
for the server will be returned as before. This change does not affect any productive scenarios. However, there might be changes in tests, where theRequestServlet#getLocales()
is mocked to return an arbitrary value that is neither part of theAccept-Language
header nor the default systemLocale
. - Deprecate modules:
Recast AI
Graph
Services - SAP BTP Machine Learning
Improvements
-
The SAP Business Rules OpenAPI client library was updated to the latest version of the Business Rules service. See also the related compatibility note.
-
Dependency Updates:
- SAP dependency updates:
- Update XSUAA Client Library from
2.11.15
to2.11.16
- Update CF Logging Support (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.6.0
to3.6.2
- Update Neo JavaEE7 WP API from
1.117.2
to1.121.5
- Update Neo Java Web API from
4.21.1
to4.25.6
- Update XSUAA Client Library from
- Other dependency updates:
- Major version updates:
- Add Spotbugs annotations (
com.github.spotbugs:spotbugs-annotations
) version4.7.0
- Add JCIP annotations (
net.jcip:jcip-annotations
) version1.0
- Remove Findbugs annotations (
com.google.code.findbugs:annotations
) - Update Woodstox Core (
com.fasterxml.woodstox:woodstox-core
) from5.3.0
to6.2.8
- Add Spotbugs annotations (
- Minor version updates:
- Update ASM (
org.ow2.asm:asm
) from9.2
to9.3
- Update Java JWT (
com.auth0:java-jwt
) from3.19.0
to3.19.2
- Update Liquibase Core (
org.liquibase:liquibase-core
) from4.9.0
to4.10.0
- Update Lombok (
org.projectlombok:lombok
) from1.18.22
to1.18.24
- Update Swagger Annotations (
io.swagger:swagger-annotations
) from1.6.5
to1.6.6
- Update Error Prone Annotations (
com.google.errorprone:error_prone_annotations
) from2.11.0
to2.13.1
- Update Json Unit AssertJ (
net.javacrumbs.json-unit:json-unit-assertj
) from2.32.0
to2.35.0
- Update Netty Bom (
io.netty:netty-bom
) from4.1.75
to4.1.77
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.19.4
to3.20.1
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.16
to3.4.17
- Update Rest Assured (
io.rest-assured:rest-assured
) from5.0.0
to5.0.1
- Update Wiremock (
com.github.tomakehurst:wiremock-jre8-standalone
) from2.32.0
to2.33.2
- Update Spring BOM (
org.springframework:spring-framework-bom
) from5.3.18
to5.3.19
- Update Spring Security (
org.springframework:spring-security-bom
) from5.6.2
to5.6.3
- Update Jsonschema2Pojo Core (
org.jsonschema2pojo:jsonschema2pojo-core
) from1.1.1
to1.1.2
- Update Togglz Core (
org.togglz:togglz-core
) from3.1.1
to3.1.2
- Update ASM (
- Major version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with the OpenAPI client not being able to instantiate the class
ApiClient
when Jackson formats other than JSON are possible at runtime. - Fix an issue with some OData services unable to parse the syntax of batch request segments, that have special characters in entity key values.
3.67.0 - April 14, 2022
Compatibility Notes
- To fix the critical CVE-2022-22965 vulnerability in Spring, we had to update Spring BOM to
5.3.18
and to maintain compatibility had to also update XSUAA Client Library to2.11.15
. Please note that if you are using SAP JAVA buildpack for your deployments use a static buildpack versionsap_java_buildpack_1_49
to avoid dependency conflicts and class loading issues. - The module
auditlog-scp-cf
is considered deprecated. The audit logging API used to implement the integration is outdated and no longer adheres to product guidelines. In the future, the SAP Cloud SDK may provide an update leveraging the recommended API. Until then the users have an option to continue using the deprecated logic at their own risk, or directly consume the recommended audit logging API - without the SAP Cloud SDK convenience layer. Please, create an issue if you are interested in the consumption ofauditlog-scp-cf
via the SAP Cloud SDK. This deprecated module will be kept in the upcoming SAP Cloud SDK v4. The module targeting Neo in not deprecated and integration can be consumed as before. - The following modules have been marked as
deprecated
and will be removed with the next major release version (v4):com.sap.cloud.sdk.services.currencyconversion.core
com.sap.cloud.sdk.services.currencyconversion.adapter.integrationobjects
com.sap.cloud.sdk.services.currencyconversion.datamodel.model
com.sap.cloud.sdk.services.currencyconversion.datamodel.adapter
com.sap.cloud.sdk.plugins:usage-analytics
com.sap.cloud.sdk.plugins:usage-analytics-maven-plugin
New Functionality
- Add Rate Limiter to Resilience Capabilities
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Client Library from
2.11.12
to2.11.15
- Update CF Logging Support (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.5.7
to3.6.0
- Update CDS4J Maven Plugin (
com.sap.cds:cds4j-maven-plugin
) from1.26.2
to1.27.0
- Update XSUAA Client Library from
- Other dependency updates:
- Major version updates:
- Update Rest Assured (
io.rest-assured:rest-assured
) from4.5.1
to5.0.0
- Update Rest Assured (
- Minor version updates:
- Update Json (
org.json:json
) from20211205
to20220320
- Update Java JWT (
com.auth0:java-jwt
) from3.18.3
to3.19.0
- Update liquibase-core (
org.liquiebase:liquibase-core
) from4.8.0
to4.9.0
- Update Fabric Gateway Java (
org.hyperledger.fabric:fabric-gateway-java
) from2.2.3
to2.2.4
- Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind
) from2.13.2
to2.13.2.2
- Update Joda Time (
joda-time:joda-time
) from2.10.13
to2.10.14
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.15
to3.4.16
- Update Tomcat JDBC (
org.apache.tomcat:tomcat-jdbc
) and Tomcat Annotations API (org.apache.tomcat:tomcat-annotations-api
) from8.5.75
to8.5.77
- Update Swagger Core V3 (
io.swagger.core.v3:swagger-core
) and Swagger Core V3 models (io.swagger.core.v3:swagger-models
)from2.1.7
to2.1.13
- Update Swagger Core (
io.swagger:swagger-core
) from1.6.2
to1.6.5
- Update Spring BOM (
org.springframework:spring-framework-bom
) from5.3.15
to5.3.18
- Update Spring Boot (
org.springframework.boot:spring-boot-starter-reactor-netty
) from2.6.3
to2.6.6
- Update Spring Security (
org.springframework:spring-security-bom
) from5.6.1
to5.6.2
- Update Json (
- Major version updates:
- SAP dependency updates:
Fixed Issues
-
Getters and Setters of OpenApi POJOs are no longer considered when using the
ApiClient
(without passing aRestTemplate
) to serialize/deserialize data -
Fixed an issue which caused incorrect encoding of Pipes (
|
) in OData queries -
Fixed an issue where compilation errors occurred on
@Nullable
properties when using the OpenAPI generator
3.66.0 - March 24, 2022
Compatibility Notes
- We upgraded the major version of the
org.liquibase:liquibase-core
dependency to fix the known vulnerability CVE-2022-0839. Please be aware that this change might impact the compatibility of the deprecatedcom.sap.cloud.sdk.frameworks:liquibase
module.
Improvements
-
Improved the
exculdingFields
andincludingFields
options for OData V2 update requests. It now also allows for excluding complex and navigation properties. -
Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API from
1.116.10
to1.117.2
- Update Neo Java Web API from
4.20.7
to4.21.1
- Update Neo JavaEE7 WP API from
- Other dependency updates:
- Major version updates:
- Update liquibase-core (
org.liquiebase:liquibase-core
) from3.10.3
to4.8.0
- Update liquibase-core (
- Minor version updates:
- Update Guava (
com.google.guava:guava
) from31.0.1
to31.1.0
- Update Jackson Bom (
com.fasterxml.jackson:jackson-bom
) from2.13.1
to2.13.2
- Update Logback Classic (
ch.qos.logback:logback-classic
) from1.2.10
to1.2.11
- Update Mockito Core (
org.mockito:mockito-core
) from4.3.1
to4.4.0
- Update Mojo Executor (
org.twdata.maven:mojo-executor
) from2.3.3
to2.4.0
- Update Netty Bom (
io.netty:netty-bom
) from4.1.74
to4.1.75
- Update OpenAPI Generator (org.openapitools:openapi-generator) from
5.0.0-beta3
to5.4.0
- Update Guava (
- Major version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with destinations that have key-stores referencing more than one alias.
- Fix an issue with certificate-based authentication for SAP BTP services, e.g. Destination Service.
3.65.0 - March 10, 2022
Compatibility Notes
-
The following modules have been marked as
deprecated
and will be removed with the next major release:com.sap.cloud.sdk.frameworks.cxf
com.sap.cloud.sdk.frameworks.eclipselink
com.sap.cloud.sdk.frameworks.eclipselink-javaee
com.sap.cloud.sdk.frameworks.javaee
com.sap.cloud.sdk.frameworks.jaxrs
com.sap.cloud.sdk.frameworks.jaxrs-gson
com.sap.cloud.sdk.frameworks.liquibase
com.sap.cloud.sdk.frameworks.liquibase-javaee
com.sap.cloud.sdk.frameworks.spring-boot-multitenancy-scp-cf
com.sap.cloud.sdk.frameworks.spring-web
com.sap.cloud.sdk.frameworks.togglz
-
For Media Entities in the OData V2 VDM the method
fetchAsStream()
is deprecated in favour offetchMediaStream()
.
New Functionality
- Update of the OData VDM to the newest release 2021 FPS1 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 Neo JavaEE7 WP API from
1.115.17
to1.116.10
- Update Neo Java Web API from
4.19.13
to4.20.7
- Update Neo JavaEE7 WP API from
- Other dependency updates:
- Minor version updates:
- Update Json Unit AssertJ (
net.javacrumbs.json-unit:json-unit-assertj
) from2.31.0
to2.32.0
- Update Caffeine JCache (
com.github.ben-manes.caffeine:jcache
) from2.9.2
to2.9.3
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.14
to3.4.15
- Update Tomcat JDBC (
org.apache.tomcat:tomcat-jdbc
) and Tomcat Annotations API (org.apache.tomcat:tomcat-annotations-api
) from8.5.72
to8.5.75
- Update Json Smart (
net.minidev:json-smart
) from2.4.7
to2.4.8
- Update Json Unit AssertJ (
- Minor version updates:
- SAP dependency updates:
3.64.0 - February 24, 2022
New Functionality
- Extend the implementation for using the SAP BTP Destination & Connectivity services to now also support the
x509
authentication type.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Client Library from
2.11.10
to2.11.12
- Update Neo JavaEE7 WP API from
1.113.10.2
to1.115.17
- Update Neo Java Web API from
4.17.4.1
to4.19.13
- Update JPaaS Security Utils from
1.4.91
to1.4.92
- Update XSUAA Client Library from
- Other dependency updates:
- Minor version updates:
- Update Gson (
com.google.code.gson:gson
) from2.8.9
to2.9.0
- Update Json Path (
com.jayway.jsonpath:json-path
) from2.6.0
to2.7.0
- Update Slf4j (
org.slf4j:slf4j-api
) from1.7.35
to1.7.36
- Update Spring BOM (
org.springframework:spring-framework-bom
) from5.3.14
to5.3.15
- Update Swagger Annotations (
io.swagger:swagger-annotations
) from1.6.4
to1.6.5
- Update Togglz (
org.togglz:togglz-testing
) from3.1.0
to3.1.1
- Update AMQP Client (
com.rabbitmq:amqp-client
) from5.14.1
to5.14.2
- Update Jakarta Activation API (
jakarta.activation:jakarta.activation
) from2.0.1
to2.1.0
- Update Json Unit AssertJ (
net.javacrumbs.json-unit:json-unit-assertj
) from2.28.0
to2.31.0
- Update Mojo Executor (
org.twdata.maven:mojo-executor
) from2.3.2
to2.3.3
- Update Netty BOM (
io.netty:netty-bom
) from4.1.73
to4.1.74
- Update PMD Core (
net.sourceforge.pmd:pmd-core
) from6.41.0
to6.42.0
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.19.3
to3.19.4
- Update Rest Assured (
io.rest-assured:rest-assured
) from4.5.0
to4.5.1
- Update Spring Boot (
org.springframework.boot:spring-boot-starter-reactor-netty
) from2.6.2
to2.6.3
- Update Gson (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue that caused
PrincipalAccessor#getCurrentPrincipal()
to throw aPrincipalAccessException
in K8s based environments
3.63.0 - February 10, 2022
New Functionality
- Update the OData VDM to the newest release 2202 of SAP S/4HANA Cloud. This includes completely new services available as usual in packages:
com.sap.cloud.sdk.s4hana.datamodel.odata.services
com.sap.cloud.sdk.s4hana.datamodel.odatav4.services
You will also find 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.- Add a new method (
excludingFields(...)
) to exclude specific fields from OData V2 and V4PUT
requests (i.e.replacingEntity()
). This method can be used to exclude read-only fields, as well as dependent properties that are not tied to key properties from yourPUT
request payload.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update CF Logging Support (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.5.6
to3.5.7
- Update CF Logging Support (
- Other dependency updates:
- Minor version updates:
- Update Caffeine (
com.github.ben-manes.caffeine:caffeine
) from2.9.2
to2.9.3
- Update Eclipse Link (
org.eclipse.persistence:eclipselink
) from2.7.9
to2.7.10
- Update Slf4j (
org.slf4j:slf4j-api
) from1.7.33
to1.7.35
- Update Slf4j (
org.togglz:togglz-core
) from3.0.0
to3.1.0
- Update Mockito (
org.mockito:mockito-core
) from4.2.0
to4.3.1
- Update Caffeine (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue with Destination initialization, where the
"Authorization"
header value is constructed with improper scheme capitalization. Instead of"bearer [...]"
it will now correctly use"Bearer [...]"
as a header value for outgoing HTTP requests.
3.62.0 - January 28, 2022
New Functionality
-
The experimental Generic OData Client allows for customization of the number deserialization strategy from JSON to Java:
ODataRequestResultGeneric result;
// Default: Number to Double
result.withNumberDeserializationStrategy(NumberDeserializationStrategy.DOUBLE)
// Custom: Number to BigDecimal
result.withNumberDeserializationStrategy(NumberDeserializationStrategy.BIG_DECIMAL)This feature requires
Gson
dependency version2.8.9
or higher.
Improvements
-
The OData generators no longer throw an exception and log an error in case the provided EDMX file does not match the respective OData version schema. Instead, the file(s) that do not qualify for Java code generation will be skipped and debug messages are logged.
-
Dependency Updates:
- SAP dependency updates:
- Update XSUAA Token Client and Token Flow API from
2.11.5
to2.11.10
- Update CF Logging Support (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.5.5
to3.5.6
- Update Neo JavaEE7 WP API (
com.sap.cloud:neo-javaee7-wp-api
) from1.111.8
to1.113.10.2
- Update Neo Java Web API (
com.sap.cloud:neo-java-web-api
) from4.15.7
to4.17.4.1
- Update XSUAA Token Client and Token Flow API from
- Other dependency updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.13
to5.3.14
- Update Spring Security (
org.springframework:spring-security-bom
) from5.6.0
to5.6.1
- Update Fabric Gateway Java (
org.hyperledger.fabric:fabric-gateway-java
) from2.2.2
to2.2.3
- Update Java JWT (
com.auth0:java-jwt
) from3.18.2
to3.18.3
- Update Slf4j (
org.slf4j:slf4j-api
) from1.7.32
to1.7.33
- Update AMQP Client (
com.rabbitmq:amqp-client
) from5.14.0
to5.14.1
- Update Netty BOM (
io-netty:netty-bom
) from4.1.72
to4.1.73
- Update Protobuf Java (
com.google.protobuf:protobuf-java
) from3.19.1
to3.19.3
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.13
to3.4.14
- Update Spring Framework (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Fix an issue where service bindings would not be loaded in some Kubernetes environments.
- Fix an issue where log message with
WARN
level would be written regularly with every incoming request.
3.61.0 - January 13, 2022
New Functionality
- The SAP Cloud SDK now supports a new
ProxyType
namedPrivateLink
. This proxy type is used when your destination represents a tunnel created via Private Link Service. - The SAP Cloud SDK now provides a new accessor for HTTP headers of the incoming request.
The new
RequestHeaderAccessor
located in thecloudplatform-core
module can be used to conveniently access HTTP headers of the currently processed incoming request. Furthermore, it can be used to also propagate specific headers to nestedThreadContext
s, much like the other accessors of the SAP Cloud SDK. By default, all present headers are automatically "inherited" when creating a newThreadContext
so that even asynchronous operations are able to access the initial headers.
Fixed Issues
- Fix a regression in version
3.51.0
that caused SOAP transaction commits to not be applied to the same session as the requests being committed. - Fix an issue that could sometimes lead to a
ConcurrentModificationException
when using the Destination or Connectivity service functionality. - Fix an issue that could sometimes lead to
CacheException Cache already exists
when using the Destination / Connectivity service or resilience functionality. - Fix an issue where service bindings were not loaded from the file system in case the working directory of the Java process was not the root directory.
- Fix an issue where custom service-path information is not propagated from OData V2 service classes to batch classes.
Previously this led to a runtime exception:
ODataRequestException: Batch request contains requests to different service paths [...]
. To enable the fix, please use the latest OData V2 VDM and/or re-generate your own OData V2 classes. - Fix CVE-2021-33813 by upgrading
jdom2
to version2.0.6.1
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Token Client and Token Flow API from
2.11.0
to2.11.5
- Update CF Logging Support (
com.sap.hcp.cf.logging:cf-java-logging-support-logback
) from3.5.2
to3.5.5
- Update XSUAA Token Client and Token Flow API from
- Other dependency updates:
- Minor version updates:
- Update Spring Framework (
org.springframework:spring-framework-bom
) from5.3.10
to5.3.13
- Update Spring Security (
org.springframework:spring-security-bom
) from5.5.2
to5.6.0
- Update JDom2 (
org.jdom:jdom2
) from2.0.6
to2.0.6.1
- Update Fabric SDK Java (
org.hyperledger.fabric-sdk-java:fabric-sdk-java
) from2.2.8
to2.2.10
- Update HttpCore (
org.apache.httpcomponents:httpcore
) from4.4.14
to4.4.15
- Update Json (
org.json:json
) from20210307
to20211205
- Update Logback Classic (
ch.qos.logback:logback-classic
) from1.2.7
to1.2.10
- Update Mockito (
org.mockito:mockito-core
) from4.1.0
to4.2.0
- Update Swagger Annotations (
io.swagger:swagger-annotations
) from1.6.3
to1.6.4
- Update Hibernate Core (
org.hibernate:hibernate-core
) from5.6.1.Final
to5.6.3.Final
- Update Json (
org.json:json
) from20210307
to20211205
- Update Netty (
io.netty:netty-bom
) from4.1.70.Final
to4.1.72.Final
- Update Plexus Component Annotations (
org.codehaus.plexus:plexus-component-annotations
) from2.1.0
to2.1.1
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.12
to3.4.13
- Update System Lambda (
com.github.stefanbirkner:system-lambda
) from1.2.0
to1.2.1
- Update Wiremock (
com.github.tomakehurst:wiremock-jre8-standalone
) from2.31.0
to2.32.0
- Update Spring Framework (
- Minor version updates:
- SAP dependency updates:
3.60.0 - December 16, 2021
Compatibility Notes
- Add deprecation notice to public methods of service classes in
s4hana-api-odata-onpremise-2020
ands4hana-api-odata-v4-onpremise-2020
. The deprecated API remains functional. We recommend using the latest OData API of your SAP S/4HANA On-Premise release, which can be used with the new dependenciess4hana-api-odata-onpremise
ands4hana-api-odata-v4-onpremise
respectively.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API (
com.sap.cloud:neo-javaee7-wp-api
) from1.110.3
to1.111.8
- Update Neo Java Web API (
com.sap.cloud:neo-java-web-api
) from4.14.6
to4.15.7
- Update Neo JavaEE7 WP API (
- Other dependency updates:
- Minor version updates:
- Update JUnit Jupiter (
org.junit.jupiter:junit-jupiter-engine
) and JUnit Vintage (org.junit.vintage:junit-vintage-engine
) from5.8.1
to5.8.2
- Update Bouncycastle (
org.bouncycastle:bcpkix-jdk15on, bcprov-jdk15on
) from1.69
to1.70
- Update JUnit Jupiter (
- Minor version updates:
- SAP dependency updates:
Fixed Issues
- Remove the superfluous WARN log message that appeared whenever a new mTLS HTTP client was built.
3.59.0 - December 02, 2021
Compatibility Notes
- Removed unnecessary dependency
netty-bom
from the Bill of Material (BOM). - Replaced the experimental API
HttpSecuritySettings getHttpSecuritySettings()
withSSLContext getSslContext()
onCloudPlatform
. Removed the experimental interfaceHttpSecuritySettings
New Functionality
-
Add the remaining changes since
3.58.0
to our update of the OData typed client (VDM) with the newest release 2111 of SAP S/4HANA Cloud. Now the SAP Cloud SDK supports all OData services listed in the SAP Business Accelerator Hub for SAP S/4HANA Cloud. -
Update of the OData VDM to the newest release 2021 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 following new 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
The existing modules
s4hana-api-odata-onpremise-2020
ands4hana-api-odata-v4-onpremise-2020
remain unchanged to reflect the respective (outdated) On-Premise release version. Additional modules with2021
name equivalent are not planned.
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API (
com.sap.cloud:neo-javaee7-wp-api
) from1.109.7
to1.110.3
- Update Neo Java Web API (
com.sap.cloud:neo-java-web-api
) from4.13.8
to4.14.6
- Update Neo JavaEE7 WP API (
- Other dependency updates:
- Minor version updates:
- Update Logback Classic (
ch.qos.logback:logback-classic
) from1.2.6
to1.2.7
. - Update Mockito (
org.mockito:mockito-core
) from4.0.0
to4.1.0
- Update Logback Classic (
- Minor version updates:
- SAP dependency updates:
Fixed issues
- We fixed a race-condition issue when serializing OData V2 VDM entity objects concurrently in multiple threads. This addresses errors reported as "Could not serialize property 'FooBar'. Returning null instead."
3.58.0 - November 18, 2021
Compatibility Notes
- The OpenAPI generator now fails with a helpful message during generation if the input specification contains any of these keywords
oneOf
oranyOf
in either:- The
paths
part of the specification - As an additional property or nested inside a property under a
Schema
listed in the specification.
- The
Please, remove these properties from your specification and generation will succeed.
It will allow you to use the remaining endpoints via the type-safe client by the SAP Cloud SDK.
Support for oneOf
, anyOf
might be added in the future but the timeline for that is unknown.
New Functionality
- Update the OData VDM to the newest release 2111 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 with the exception of the following services:- (OData V2) Maintenance Item -
API_MAINTENANCEITEM
- (OData V2) Enterprise Project V2 -
API_ENTERPRISE_PROJECT_SRV_0002
- (OData V2) Service Order Template -
OP_API_SERVICE_ORDER_TEMPLATE_SRV_0001
- (OData V4) Contract Accounting Business Transaction -
CABUSINESSPARTNER_0001
- (OData V4) Handling Unit -
HANDLINGUNIT_0001
- (OData V4) Maintenance Task List -
MAINTENANCETASKLIST_0001
- (OData V4) Measuring Point -
MEASURINGPOINT_0001
- (OData V4) Planned Order -
PLANNEDORDER_0001
- (OData V4) Process Warehouse Task -
WAREHOUSEORDER_0001
- (OData V4) Product Exclusion -
PRODUCTEXCLUSION_0001
- (OData V4) Product Substitution -
PRODUCTSUBSTITUTION_0001
- (OData V4) Supplier Item -
SUPPLIERITEM_0001
- (OData V4) Warehouse Resource -
WAREHOUSERESOURCE_0001
- (OData V2) Maintenance Item -
Improvements
-
Limit beans scanning to service classes only in dependencies
s4hana-api-odata
,s4hana-api-odata-onpremise-2020
ands4hana-api-odata-v4-onpremise-2020
. This significantly reduces startup times and memory consumption for TomEE applications that are missing their ownbeans.xml
configuration. For consistency the beans scanning ofs4hana-api-odata-v4
is enabled now but also limited to service classes. -
The
ALWAYS_SUBSCRIBER
strategy of the defaultScpCfDestinationRetrievalStrategy
in theScpCfDestinationLoader
did not behave as its name implied. It was taking the current tenant, which might also be a Provider Tenant due to misconfiguration. We fixed it by:- Renaming
ALWAYS_SUBSCRIBER
toCURRENT_TENANT
and making it a new default strategy. - Deprecation the confusingly named
ALWAYS_SUBSCRIBER
strategy - Adding a new
ONLY_SUBSCRIBER
strategy that actively enforces that a current tenant is not a provider tenant
- Renaming
-
Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API (
com.sap.cloud:neo-javaee7-wp-api
) from1.108.5
to1.109.7
- Update Neo Java Web API (
com.sap.cloud:neo-java-web-api
) from4.12.2
to4.13.8
- Update Neo JavaEE7 WP API (
- Other dependency updates:
- Minor version updates:
- Update Gson (
com.google.code.gson:gson
) from2.8.8
to2.8.9
- Update Gson (
- Minor version updates:
- SAP dependency updates:
3.57.0 - November 4, 2021
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update Neo JavaEE7 WP API (
com.sap.cloud:neo-javaee7-wp-api
) from1.107.5
to1.108.5
- Update Neo Java Web API (
com.sap.cloud:neo-java-web-api
) from4.11.4
to4.12.2
- Update CDS4J Maven Plugin (
com.sap.cds:cds4j-maven-plugin
) from1.16.0
to1.23.0
- Update JPaaS Security Utils (
com.sap.core.jpaas.security:com.sap.core.jpaas.security.utils
) from1.4.90
to1.4.91
- Update Neo JavaEE7 WP API (
- Other dependency updates:
- Major version updates:
- Update Guava (
com.google.guava:guava, guava-testlib
) from30.1.1-jre
to31.0.1-jre
- Update Guava (
- Minor version updates:
- Update Hibernate Core (
org.hibernate:hibernate-core
) from5.5.7.Final
to5.6.0.Final
- Update JUnit Jupiter (
org.junit.jupiter:junit-jupiter-engine
) and JUnit Vintage (org.junit.vintage:junit-vintage-engine
) from5.7.2
to5.8.1
- Update Netty (
io.netty:netty-bom
) from4.1.67.Final
to4.1.69.Final
- Update Protobuf (
com.google.protobuf:protobuf-java
) from3.18.1
to3.19.0
- Update Reactor Core (
io.projectreactor:reactor-core
) from3.4.10
to3.4.11
- Update Hibernate Core (
- Major version updates:
- SAP dependency updates: