release-notes-75-to-89
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
6seconds 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 for6seconds. - The default timeout value can be overridden or disabled by constructing a
ScpCfDestinationLoaderwith 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.81to8.5.83 - Update okhttp (
com.squareup.okhttp3:okhttp) from4.9.3to4.10.0
- Update Tomcat JDBC (
- Minor version updates:
- Other dependency updates:
fixedIssues
- Retrieving any
OAuth2destination using theDestinationAccessorin 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.0to6.4.0 - Update Spring Security(
org.springframework.security:spring-security-bom) from5.7.3to5.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 theScpCfDestinationLoaderas well as in theScpNeoDestinationLoaderdid 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_PROVIDERstrategy - 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 theScpNeoDestinationLoaderdid 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_SUBSCRIBERstrategy - Alternative strategy keeping the same behavior:
CURRENT_TENANT - Adding a new strategy
ONLY_SUBSCRIBERwhich 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.3to2.13.4 - Update Jackson Databind (
com.fasterxml.jackson.core:jackson-databind) from2.13.3to2.13.4.2 - Update Commons Text (
org.apache.commons:commons-text) from1.9.0to1.10.0 - Update Fabric SDK Java (
org.hyperledger.fabric-sdk-java:fabric-sdk-java) from2.2.10to2.2.18 - Update Snake YAML (
org.yaml:snakeyaml) from1.31to1.33 - Update Protobuf Java (
com.google.protobuf:protobuf-java) from3.21.2to3.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:
audclaim can be an atomic string or an array of strings.
3.75.0 - September 21, 2022
Compatibility Notes
- The
RequestAccessorAPI (along all the related classes - e.g. theRequestThreadContextListenerandRequestFacade) is deprecated. For a replacement, please refer to theRequestHeaderAccessor.
New Functionality
- Add public method
getAllDestinations()toEnvVarDestinationLoaderto resolve all destinations from the configured system environment variable (default:destinations).
Improvements
- Dependency Updates:
- SAP dependency updates:
- Update XSUAA Library from
2.12.2to2.12.3
- Update XSUAA Library from
- Other dependency updates:
- Minor version updates:
- Update Spring from
5.3.21to5.3.22 - Update Spring Security from
5.7.2to5.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:
audclaim can be an atomic string or an array of strings.