Skip to main content

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 6 seconds for fetching one or all destinations using tryGetDestination( destinationName,options ) or tryGetAllDestinations(options ) or tryGetAllDestinations( ) 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 for 6 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.
  • 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) from 8.5.81 to 8.5.83
        • Update okhttp (com.squareup.okhttp3:okhttp) from 4.9.3 to 4.10.0

fixedIssues

  • Retrieving any OAuth2 destination using the DestinationAccessor in DwC has been improved to always return a destination with a valid, non-expired Auth token.

3.77.0 - November 17, 2022

Maven Central | Javadoc

Improvements

  • Dependency Updates:
    • Other dependency updates:
      • Minor version updates:
        • Update Woodstox Core(com.fasterxml.woodstox:woodstox-core) from 6.3.0 to 6.4.0
        • Update Spring Security(org.springframework.security:spring-security-bom) from 5.7.3 to 5.7.5

3.76.0 - October 31, 2022

Maven Central | Javadoc

Improvements

  • The naming of the destination retrieval strategy (SUBSCRIBER_THEN_PROVIDER) both in the ScpCfDestinationLoader as well as in the ScpNeoDestinationLoader 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
  • The naming of the ScpNeoDestinationRetrievalStrategy (ALWAYS_SUBSCRIBER) in the ScpNeoDestinationLoader 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
  • Dependency Updates:
    • Other dependency updates:
      • Minor version updates:
        • Update Jackson BOM (com.fasterxml.jackson:jackson-bom) from 2.13.3 to 2.13.4
        • Update Jackson Databind (com.fasterxml.jackson.core:jackson-databind) from 2.13.3 to 2.13.4.2
        • Update Commons Text (org.apache.commons:commons-text) from 1.9.0 to 1.10.0
        • Update Fabric SDK Java (org.hyperledger.fabric-sdk-java:fabric-sdk-java) from 2.2.10 to 2.2.18
        • Update Snake YAML (org.yaml:snakeyaml) from 1.31 to 1.33
        • Update Protobuf Java (com.google.protobuf:protobuf-java) from 3.21.2 to 3.21.7

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

Maven Central | Javadoc

Compatibility Notes

  • The RequestAccessor API (along all the related classes - e.g. the RequestThreadContextListener and RequestFacade) is deprecated. For a replacement, please refer to the RequestHeaderAccessor.

New Functionality

  • Add public method getAllDestinations() to EnvVarDestinationLoader 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 to 2.12.3
    • Other dependency updates:
      • Minor version updates:
        • Update Spring from 5.3.21 to 5.3.22
        • Update Spring Security from 5.7.2 to 5.7.3

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.