Coder Social home page Coder Social logo

sap / cloud-sdk Goto Github PK

View Code? Open in Web Editor NEW
44.0 8.0 40.0 484.28 MB

The SAP Cloud SDK documentation and support repository.

Home Page: https://sap.github.io/cloud-sdk/

License: Apache License 2.0

JavaScript 0.14% CSS 0.24% HTML 95.22% MDX 4.40%
sap-cloud-sdk cloud-sdk-documentation javascript typescript java continuous-delivery sap-cloud-platform sap sap-business-technology-platform sap-btp

cloud-sdk's Introduction

SAP Cloud SDK documentation and support portal

REUSE status

This repository contains:

For the Support on SAP Cloud SDK for JavaScript us this repository.

Looking for the repository of the SAP Cloud SDK for JavaScript / TypeScript?

Find it here here.

Getting Support

Contributing

Feel free to contribute to the SAP Cloud SDK documentation. Check out our contribution guide and follow our code of conduct.

License

This project is licensed under Apache 2.0 except as noted otherwise in the license file.

cloud-sdk's People

Contributors

andrastemesi-sap avatar artemkovalyov avatar bot-sdk-js avatar charlesduboissap avatar charlesduboissap-zz avatar cschubertcs avatar deekshas8 avatar dependabot[bot] avatar emdee89 avatar frankessenberger avatar fwilhe avatar jdmule avatar jjtang1985 avatar johannes-schneider avatar kavithasiva avatar kmelato avatar marikaner avatar matkuhr avatar mattkuhr avatar mr-flannery avatar newtork avatar renejeglinsky avatar rnewbigging avatar sacnl avatar shibeshduw avatar sim-lus avatar tanviig avatar tomfrenken avatar yuanzhuang107 avatar zhongpinwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloud-sdk's Issues

SAP CLOUD SDK Fail to obtain correct client secret from VCAP_SERVICES

Fail to get destination because cloud sdk fail to obtain correct client secret from VCAP_SERVICES

Important information:
Code:

DestinationOptions options =
                DestinationOptions
                        .builder()
                        .augmentBuilder(
                                ScpCfDestinationOptionsAugmenter
                                        .augmenter()
                                        .retrievalStrategy(ScpCfDestinationRetrievalStrategy.ALWAYS_PROVIDER))
                        .build();
Try<Destination> destination = DestinationAccessor.getLoader().tryGetDestination(destinationName, options);
  • Expected outcome
    get destiation from destination services.
  • Actual outcome
{"error":"unauthorized","error_description":"Bad credentials"}' qm_1        |   at com.sap.cloud.security.xsuaa.client.OAuth2ServiceException$Builder.build(OAuth2ServiceException.java:107) qm_1        |   at com.sap.cloud.security.xsuaa.client.DefaultOAuth2TokenService.executeRequest(DefaultOAuth2TokenService.java:98) qm_1        |   at com.sap.cloud.security.xsuaa.client.DefaultOAuth2TokenService.requestAccessToken(DefaultOAuth2TokenService.java:80) qm_1   
  • Potentially missing information (open questions you might have)
    My VCAP_SERVICES
{
            "xsuaa": [
                {
                    "label": "xsuaa",
                    "provider": null,
                    "plan": "broker",
                    "name": "***",
                    "tags": [
                        "xsuaa"
                    ],
                    ...
                }
            ],
            "destination": [
                {
                    "label": "destination",
                    "provider": null,
                    "plan": "lite",
                    "name": "***",
                    "tags": [
                        "destination",
                        "conn",
                        "connsvc"
                    ],
                    ...
                    },
                    "syslog_drain_url": null,
                    "volume_mounts": []
                }
            ]
        }

My cloud sdk info:

implementation("com.sap.cloud.sdk:sdk-bom:3.59.0")
implementation("com.sap.cloud.sdk.cloudplatform:scp-cf:3.59.0")
implementation("com.sap.cds:cds-integration-cloud-sdk:1.21.0")
implementation("com.sap.cloud.sdk.cloudplatform:servlet:3.59.0")

Impact / Priority

Can't get destinations

Error Message

com.sap.cloud.sdk.cloudplatform.cache.CacheRuntimeException: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination. qm_1        |   at com.sap.cloud.sdk.cloudplatform.cache.CacheUtil.lambda$wrapCallableAsFunction$0(CacheUtil.java:45) qm_1        |   at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2346) qm_1        |   at java.base/java.util.concurrent.ConcurrentHashMap.compute(Unknown Source) qm_1        |   at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2344) qm_1        |   at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2327) qm_1        |   at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108) qm_1        |   at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.lambda$tryGetDestination$2ec57ad6$1(ScpCfDestinationLoader.java:117) qm_1        |   at io.vavr.control.Try.of(Try.java:75) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.tryGetDestination(ScpCfDestinationLoader.java:116) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationLoaderChain.tryGetDestination(DestinationLoaderChain.java:84) qm_1        |   at com.sap.om.print.service.impl.NotificationServiceImpl.pushNotification(NotificationServiceImpl.java:64) qm_1        |   at com.sap.om.print.controller.QueueController.sendNotificationMessage(QueueController.java:197) qm_1        |   at com.sap.om.print.controller.QueueController$$FastClassBySpringCGLIB$$c0a3b93.invoke(<generated>) qm_1        |   at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) qm_1        |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) qm_1        |   at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) qm_1        |   at io.github.resilience4j.ratelimiter.RateLimiter.lambda$decorateCheckedSupplier$9076412b$1(RateLimiter.java:218) qm_1        |   at io.github.resilience4j.ratelimiter.RateLimiter.executeCheckedSupplier(RateLimiter.java:839) qm_1        |   at io.github.resilience4j.ratelimiter.RateLimiter.executeCheckedSupplier(RateLimiter.java:825) qm_1        |   at io.github.resilience4j.ratelimiter.configure.RateLimiterAspect.handleJoinPoint(RateLimiterAspect.java:179) qm_1        |   at io.github.resilience4j.ratelimiter.configure.RateLimiterAspect.proceed(RateLimiterAspect.java:142) qm_1        |   at io.github.resilience4j.ratelimiter.configure.RateLimiterAspect.rateLimiterAroundAdvice(RateLimiterAspect.java:119) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/java.lang.reflect.Method.invoke(Unknown Source) qm_1        |   at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) qm_1        |   at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) qm_1        |   at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) qm_1        |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) qm_1        |   at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) qm_1        |   at io.github.resilience4j.circuitbreaker.CircuitBreaker.lambda$decorateCheckedSupplier$82a9021a$1(CircuitBreaker.java:73) qm_1        |   at io.github.resilience4j.circuitbreaker.CircuitBreaker.executeCheckedSupplier(CircuitBreaker.java:834) qm_1        |   at io.github.resilience4j.circuitbreaker.configure.CircuitBreakerAspect.defaultHandling(CircuitBreakerAspect.java:188) qm_1        |   at io.github.resilience4j.circuitbreaker.configure.CircuitBreakerAspect.proceed(CircuitBreakerAspect.java:135) qm_1        |   at io.github.resilience4j.circuitbreaker.configure.CircuitBreakerAspect.circuitBreakerAroundAdvice(CircuitBreakerAspect.java:112) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/java.lang.reflect.Method.invoke(Unknown Source) qm_1        |   at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) qm_1        |   at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) qm_1        |   at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) qm_1        |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) qm_1        |   at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) qm_1        |   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) qm_1        |   at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) qm_1        |   at com.sap.om.print.controller.QueueController$$EnhancerBySpringCGLIB$$54eb5301.sendNotificationMessage(<generated>) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) qm_1        |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) qm_1        |   at java.base/java.lang.reflect.Method.invoke(Unknown Source) qm_1        |   at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) qm_1        |   at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) qm_1        |   at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) qm_1        |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) qm_1        |   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) qm_1        |   at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) qm_1        |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060) qm_1        |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962) qm_1        |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) qm_1        |   at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) qm_1        |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:497) qm_1        |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) qm_1        |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) qm_1        |   at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) qm_1        |   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) qm_1        |   at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93) qm_1        |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) qm_1        |   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) qm_1        |   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) qm_1        |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) qm_1        |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) qm_1        |   at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) qm_1        |   at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) qm_1        |   at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) qm_1        |   at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) qm_1        |   at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) qm_1        |   at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) qm_1        |   at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) qm_1        |   at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) qm_1        |   at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) qm_1        |   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) qm_1        |   at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) qm_1        |   at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) qm_1        |   at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) qm_1        |   at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) qm_1        |   at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) qm_1        |   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) qm_1        |   at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) qm_1        |   at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) qm_1        |   at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) qm_1        |   at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) qm_1        |   at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) qm_1        |   at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387) qm_1        |   at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841) qm_1        |   at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) qm_1        |   at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019) qm_1        |   at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558) qm_1        |   at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449) qm_1        |   at java.base/java.lang.Thread.run(Unknown Source) qm_1        | Caused by: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination. qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getDestinationConfigurationAsJson(ScpCfDestinationServiceAdapter.java:269) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationFromDestinationService(ScpCfDestinationLoader.java:263) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationByTenant(ScpCfDestinationLoader.java:203) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationByRetrievalStrategy(ScpCfDestinationLoader.java:160) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.loadAndParseDestination(ScpCfDestinationLoader.java:138) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.lambda$null$0(ScpCfDestinationLoader.java:119) qm_1        |   at com.sap.cloud.sdk.cloudplatform.cache.CacheUtil.lambda$wrapCallableAsFunction$0(CacheUtil.java:42) qm_1        |   ... 112 common frames omitted qm_1        | Caused by: com.sap.cloud.sdk.cloudplatform.resilience.ResilienceRuntimeException: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to resolve access token. qm_1        |   at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$null$3(Resilience4jDecorationStrategy.java:233) qm_1        |   at io.vavr.control.Try.onFailure(Try.java:659) qm_1        |   at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$decorateCallable$4(Resilience4jDecorationStrategy.java:232) qm_1        |   at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorationStrategy.executeCallable(ResilienceDecorationStrategy.java:261) qm_1        |   at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorator.executeCallable(ResilienceDecorator.java:250) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getDestinationConfigurationAsJson(ScpCfDestinationServiceAdapter.java:256) qm_1        |   ... 118 common frames omitted qm_1        | Caused by: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to resolve access token. qm_1        |   at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:299) qm_1        |   at com.sap.cloud.sdk.frameworks.resilience4j.DefaultThreadContextProvider.lambda$decorateCallable$0(DefaultThreadContextProvider.java:26) qm_1        |   at java.base/java.util.concurrent.FutureTask.run(Unknown Source) qm_1        |   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) qm_1        |   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) qm_1        |   ... 1 common frames omitted qm_1        | Caused by: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to resolve access token. qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.lambda$retrieveAccessTokenViaClientCredentialsGrant$2(XsuaaService.java:92) qm_1        |   at io.vavr.control.Try.getOrElseThrow(Try.java:748) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.retrieveAccessTokenViaClientCredentialsGrant(XsuaaService.java:91) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getAccessTokenForDestinationService(ScpCfDestinationServiceAdapter.java:288) qm_1        |   at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.lambda$getDestinationConfigurationAsJson$0(ScpCfDestinationServiceAdapter.java:258) qm_1        |   at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$decorateCallable$2(Resilience4jDecorationStrategy.java:212) qm_1        |   at com.sap.cloud.sdk.cloudplatform.security.SecurityContextThreadContextDecorator.lambda$decorateCallable$2(SecurityContextThreadContextDecorator.java:51) qm_1        |   at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextCallable.call(ThreadContextCallable.java:225) qm_1        |   at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:293) qm_1        |   ... 5 common frames omitted qm_1        | Caused by: com.sap.cloud.security.xsuaa.tokenflows.TokenFlowException: Error requesting technical user token with grant_type 'client_credentials': Error retrieving JWT token. Server URI https://***.authentication.sap.hana.ondemand.com/oauth/token. Http status code 401. Response body '{"error":"unauthorized","error_description":"Bad credentials"}' qm_1        |   at com.sap.cloud.security.xsuaa.tokenflows.ClientCredentialsTokenFlow.requestTechnicalUserToken(ClientCredentialsTokenFlow.java:188) qm_1        |   at com.sap.cloud.security.xsuaa.tokenflows.ClientCredentialsTokenFlow.execute(ClientCredentialsTokenFlow.java:141) qm_1        |   at io.vavr.control.Try.of(Try.java:75) qm_1        |   ... 12 common frames omitted qm_1        | Caused by: com.sap.cloud.security.xsuaa.client.OAuth2ServiceException: Error retrieving JWT token. Server URI https://****.authentication.sap.hana.ondemand.com/oauth/token. Http status code 401. Response body '{"error":"unauthorized","error_description":"Bad credentials"}' qm_1        |   at com.sap.cloud.security.xsuaa.client.OAuth2ServiceException$Builder.build(OAuth2ServiceException.java:107) qm_1        |   at com.sap.cloud.security.xsuaa.client.DefaultOAuth2TokenService.executeRequest(DefaultOAuth2TokenService.java:98) qm_1        |   at com.sap.cloud.security.xsuaa.client.DefaultOAuth2TokenService.requestAccessToken(DefaultOAuth2TokenService.java:80) qm_1        |   at com.sap.cloud.security.xsuaa.client.AbstractOAuth2TokenService.getAndCacheToken(AbstractOAuth2TokenService.java:305) qm_1        |   at com.sap.cloud.security.xsuaa.client.AbstractOAuth2TokenService.getOrRequestAccessToken(AbstractOAuth2TokenService.java:263) qm_1        |   at com.sap.cloud.security.xsuaa.client.AbstractOAuth2TokenService.getOAuth2TokenResponse(AbstractOAuth2TokenService.java:252) qm_1        |   at com.sap.cloud.security.xsuaa.client.AbstractOAuth2TokenService.retrieveAccessTokenViaClientCredentialsGrant(AbstractOAuth2TokenService.java:112) qm_1        |   at com.sap.cloud.security.xsuaa.tokenflows.ClientCredentialsTokenFlow.requestTechnicalUserToken(ClientCredentialsTokenFlow.java:183) qm_1        |   ... 14 common frames omitted

Project Details

Our project is using spring boot. I am now run my project in local docker. So VCAP_SERVICES is injected as env viroble in docker-compose

  • SAP Cloud SDK Version: 3.59.0
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • [ x] SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • [ x] Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • [ x] Checked out the documentation and Stack Overflow
  • [ x] Description provided with all relevant information
  • [ x] Attached debug logs
  • [ x] Attached dependency tree
  • [ x] Provided the SAP Cloud SDK version & link to relevant source code

Genarated java classes have errors

Issue Description

We tried to use "OpenAPI Generator Maven Plugin" to generate java classes from the "api.yaml".
IdDS_SCIM.txt

This file was downloaded from the SAP API hubL
https://cloudintegration.int.sap.eu2.hana.ondemand.com/api/IdDS_SCIM/overview

Three classes got errors.

Two types of the error๏ผš
1๏ผšCompilation failure
image
image

2: Source not found:
image

Based on the yaml, actually "AnyOfUserGroupSchema" is not existing in the yaml.
image

You can used the attached yaml to generate the classes from your side.

Impact / Priority

Affected development phase: Getting Started,

Impact: Blocked

Project Details

  • SAP Cloud SDK Version: 3.55.1
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • [X ] SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • [X ] Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Not able to build and deploy sample application - extorderapp on BTP Cloud Foundry

Issue Description

I'm unable to deploy sample application - cloud-s4-sample-ext-extorderapp on Business Technology Platform(Cloud Foundry) since this application is outdated as it supports SCP Neo environment.
Can you please help us in upgrading the maven dependencies and make a successful build for this sample application so that we are able to deploy it on BTP Cloud Foundry and resume with our testing.

Impact / Priority

We are stuck with testing of Side by Side Extensibility test scenario of S/4 HANA Cloud System as part of 3SL 2105 CBC.

Timeline: As soon as possible

Error Message

I tried deploying existing application build on BTP Cloud Foundry and got below errors

2021-06-01T13:10:29.399+0000 [API/1] OUT Updated app with guid 453b1462-cc30-45a0-bb42-bf944f400e8b ({"state"=>"STARTED"})
2021-06-01T13:10:29.524+0000 [CELL/0] OUT Cell 569718e1-af1c-4383-8517-49470cc1df88 creating container for instance d4bcb809-f313-4052-563a-9220
2021-06-01T13:10:31.241+0000 [CELL/0] OUT Cell 569718e1-af1c-4383-8517-49470cc1df88 successfully created container for instance d4bcb809-f313-4052-563a-9220
2021-06-01T13:10:31.454+0000 [CELL/0] OUT Downloading droplet...
2021-06-01T13:10:34.991+0000 [CELL/0] OUT Downloaded droplet (75.5M)
2021-06-01T13:10:35.758+0000 [APP/PROC/WEB/0] OUT JVM Memory Configuration: -Xmx430528K -Xss1M -XX:ReservedCodeCacheSize=240M -XX:MaxDirectMemorySize=10M -XX:MaxMetaspaceSize=106047K
2021-06-01T13:10:36.251+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.coyote.http11.Http11NioProtocol         INFO    Initializing ProtocolHandler ["http-nio-8080"]
2021-06-01T13:10:36.303+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.startup.Catalina               INFO    Server initialization in [811] milliseconds
2021-06-01T13:10:36.312+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.core.StandardService           INFO    Starting service [Catalina]
2021-06-01T13:10:36.312+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.core.StandardEngine            INFO    Starting Servlet engine: [Apache Tomcat/9.0.44]
2021-06-01T13:10:36.333+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.startup.HostConfig             INFO    Deploying web application directory [/home/vcap/app/.java-buildpack/tomcat/webapps/ROOT]
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.startup.HostConfig             SEVERE  Error deploying web application directory [/home/vcap/app/.java-buildpack/tomcat/webapps/ROOT]
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT java.lang.IllegalStateException: Error starting child
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1184)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1925)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1094)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1611)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:434)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.lang.reflect.Method.invoke(Method.java:498)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	... 37 more
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT Caused by: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.lang.Class.getDeclaredFields0(Native Method)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at java.lang.Class.getDeclaredFields(Class.java:1916)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:104)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:89)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:332)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:989)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5082)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	... 38 more
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)
2021-06-01T13:10:40.619+0000 [APP/PROC/WEB/0] OUT 	... 51 more
2021-06-01T13:10:40.620+0000 [APP/PROC/WEB/0] OUT [CONTAINER] org.apache.catalina.startup.HostConfig             INFO    Deployment of web application directory [/home/vcap/app/.java-buildpack/tomcat/webapps/ROOT] has finished in [4,286] ms
2021-06-01T13:10:40.621+0000 [APP/PROC/WEB/0] OUT [CONTAINER] pplicationStartupFailureDetectingLifecycleListener SEVERE  Error: Application '' failed (state = FAILED): see Tomcat's logs for details. Halting Tomcat.
2021-06-01T13:10:40.724+0000 [APP/PROC/WEB/0] OUT Exit status 148
2021-06-01T13:10:45.965+0000 [CELL/0] OUT Cell 569718e1-af1c-4383-8517-49470cc1df88 stopping instance d4bcb809-f313-4052-563a-9220
2021-06-01T13:10:45.965+0000 [CELL/0] OUT Cell 569718e1-af1c-4383-8517-49470cc1df88 destroying container for instance d4bcb809-f313-4052-563a-9220
2021-06-01T13:10:45.989+0000 [API/0] OUT Process has crashed with type: "web"
2021-06-01T13:10:46.045+0000 [API/0] OUT App instance exited with guid 453b1462-cc30-45a0-bb42-bf944f400e8b payload: {"instance"=>"d4bcb809-f313-4052-563a-9220", "index"=>0, "cell_id"=>"569718e1-af1c-4383-8517-49470cc1df88", "reason"=>"CRASHED", "exit_description"=>"APP/PROC/WEB: Exited with status 148", "crash_count"=>1, "crash_timestamp"=>1622553045929083820, "version"=>"07ef07bc-fc1f-4aa1-a1b8-da508ddafcbf"}
2021-06-01T13:10:46.127+0000 [CELL/0] OUT Cell 5dc4bed0-1010-41f1-8466-2fdc9428e257 creating container for instance 8e3968a8-0609-4c92-6c3f-f085
2021-06-01T13:10:47.885+0000 [CELL/0] OUT Cell 5dc4bed0-1010-41f1-8466-2fdc9428e257 successfully created container for instance 8e3968a8-0609-4c92-6c3f-f085
2021-06-01T13:10:48.291+0000 [CELL/0] OUT Downloading droplet...
2021-06-01T13:10:48.301+0000 [PROXY/0] OUT Exit status 137
2021-06-01T13:10:48.339+0000 [CELL/0] OUT Cell 569718e1-af1c-4383-8517-49470cc1df88 successfully destroyed container for instance d4bcb809-f313-4052-563a-9220
2021-06-01T13:10:51.987+0000 [CELL/0] OUT Downloaded droplet (75.5M)
2021-06-01T13:10:52.599+0000 [APP/PROC/WEB/0] OUT JVM Memory Configuration: -Xmx430528K -Xss1M -XX:ReservedCodeCacheSize=240M -XX:MaxDirectMemorySize=10M -XX:MaxMetaspaceSize=106047K

Project Details

Implementation Steps (Ordering Scenario)
https://help.sap.com/viewer/4316f97a90ff48948fb7f212ecabf964/SHIP/en-US/c39831353b1e4ae2bad2fa20ac3a152f.html

  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • [ x] Cloud Foundry
    • [ x] Neo

-pom files
pom_files.zip

Cloud SDK Possible Concurrency Issue with Json Serialization Version = 3.56.0

Issue Description

I am synchronizing prices between an external system and SAP HANA Cloud using the client.

As there is a big number of prices to be synched, these syncs are running asynchronousely in a thread pool. I found that some of the requests fail with the below exception leading to data inconsistency issues. Seems to me that there might be an issue with thread safetiness

The exceptions are shown below.

Code looks like this:

 @SneakyThrows
    @Async
    public Future<Void> saveAsync(ComparableRuleData x, TaskMonitor mon) {


        new DefaultSalesPricingConditionRecordService().createSlsPrcgConditionRecord(SlsPrcgConditionRecord.builder()
                .conditionTable("305")
                .conditionType("PPR0")
                .conditionRateValue(x.getMoney().setScale(2, RoundingMode.HALF_UP))
                .conditionRateValueUnit(x.getCurrency().name())

                .slsPrcgCndnRecdValidity(SlsPrcgCndnRecdValidity.builder()
                        .conditionValidityStartDate(x.getValidityStartLocalDt())
                        .conditionValidityEndDate(x.getValidityEndLocalDt())
                        .salesOrganization("0511")
                        .distributionChannel("10")
                        .customer(String.valueOf(x.getCustomerId()))
                        .material(String.valueOf(x.getMaterialId()))
                        .build())
                .build()).executeRequest(sapEndpoint.destination);


        mon.complete();
        return new AsyncResult<>(null);

    }

Impact / Priority

Risk of data inconsistency between prices across systems. This could cause legal liabilities or financial losses for us.

Error Message

53273 [async-pool-executor-28] ERROR c.s.c.s.s.d.o.a.ODataVdmEntityAdapter - Could not serialize property 'ConditionApplication'. Returning null instead. 
java.lang.IllegalAccessException: class com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter cannot access a member of class com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.salespricingconditionrecord.SlsPrcgCndnRecdValidity with modifiers "private"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:385)
	at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:687)
	at java.base/java.lang.reflect.Field.checkAccess(Field.java:1096)
	at java.base/java.lang.reflect.Field.get(Field.java:417)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:285)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:100)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:27)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:295)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.Gson.toJson(Gson.java:704)
	at com.google.gson.Gson.toJsonTree(Gson.java:597)
	at com.google.gson.Gson.toJsonTree(Gson.java:576)
	at com.sap.cloud.sdk.datamodel.odata.helper.ODataEntitySerializer.serializeEntityForCreate(ODataEntitySerializer.java:80)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.lambda$toRequest$a5827fe7$1(FluentHelperCreate.java:271)
	at io.vavr.control.Try.of(Try.java:75)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.toRequest(FluentHelperCreate.java:271)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.executeRequest(FluentHelperCreate.java:248)
	at de.ottobock.herakles.priceimporter2.CreationService.saveAsync(CreationService.java:54)
	at de.ottobock.herakles.priceimporter2.CreationService$$FastClassBySpringCGLIB$$4ab10106.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:831)
53273 [async-pool-executor-16] ERROR c.s.c.s.s.d.o.a.ODataVdmEntityAdapter - Could not serialize property 'BRSpcfcTaxDestinationRegion'. Returning null instead. 
java.lang.IllegalAccessException: class com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter cannot access a member of class com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.salespricingconditionrecord.SlsPrcgCndnRecdValidity with modifiers "private"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:385)
	at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:687)
	at java.base/java.lang.reflect.Field.checkAccess(Field.java:1096)
	at java.base/java.lang.reflect.Field.get(Field.java:417)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:285)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:100)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:27)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:295)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.Gson.toJson(Gson.java:704)
	at com.google.gson.Gson.toJsonTree(Gson.java:597)
	at com.google.gson.Gson.toJsonTree(Gson.java:576)
	at com.sap.cloud.sdk.datamodel.odata.helper.ODataEntitySerializer.serializeEntityForCreate(ODataEntitySerializer.java:80)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.lambda$toRequest$a5827fe7$1(FluentHelperCreate.java:271)
	at io.vavr.control.Try.of(Try.java:75)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.toRequest(FluentHelperCreate.java:271)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.executeRequest(FluentHelperCreate.java:248)
	at de.ottobock.herakles.priceimporter2.CreationService.saveAsync(CreationService.java:54)
	at de.ottobock.herakles.priceimporter2.CreationService$$FastClassBySpringCGLIB$$4ab10106.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:831)
53273 [async-pool-executor-19] ERROR c.s.c.s.s.d.o.a.ODataVdmEntityAdapter - Could not serialize property 'Equipment'. Returning null instead. 
java.lang.IllegalAccessException: class com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter cannot access a member of class com.sap.cloud.sdk.s4hana.datamodel.odata.namespaces.salespricingconditionrecord.SlsPrcgCndnRecdValidity with modifiers "private"
	at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:385)
	at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:687)
	at java.base/java.lang.reflect.Field.checkAccess(Field.java:1096)
	at java.base/java.lang.reflect.Field.get(Field.java:417)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:285)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:100)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityListAdapter.write(ODataVdmEntityListAdapter.java:27)
	at com.google.gson.TypeAdapter.toJsonTree(TypeAdapter.java:234)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.getEntityAsJsonObject(ODataVdmEntityAdapter.java:295)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:257)
	at com.sap.cloud.sdk.s4hana.datamodel.odata.adapter.ODataVdmEntityAdapter.write(ODataVdmEntityAdapter.java:47)
	at com.google.gson.TypeAdapter$1.write(TypeAdapter.java:191)
	at com.google.gson.Gson.toJson(Gson.java:704)
	at com.google.gson.Gson.toJsonTree(Gson.java:597)
	at com.google.gson.Gson.toJsonTree(Gson.java:576)
	at com.sap.cloud.sdk.datamodel.odata.helper.ODataEntitySerializer.serializeEntityForCreate(ODataEntitySerializer.java:80)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.lambda$toRequest$a5827fe7$1(FluentHelperCreate.java:271)
	at io.vavr.control.Try.of(Try.java:75)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.toRequest(FluentHelperCreate.java:271)
	at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.executeRequest(FluentHelperCreate.java:248)
	at de.ottobock.herakles.priceimporter2.CreationService.saveAsync(CreationService.java:54)
	at de.ottobock.herakles.priceimporter2.CreationService$$FastClassBySpringCGLIB$$4ab10106.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:831)```

Dependency Tree:

[INFO] org.example:price-importer:jar:1.0-SNAPSHOT
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.56.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.quality:common:jar:3.56.0:compile
[INFO] |  |  |  \- org.apache.commons:commons-csv:jar:1.9.0:compile
[INFO] |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.32:compile
[INFO] |  |  +- com.github.ben-manes.caffeine:caffeine:jar:2.9.2:compile
[INFO] |  |  +- com.mikesamuel:json-sanitizer:jar:1.2.3:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  |  \- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.56.0:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.56.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-client:jar:3.56.0:compile
[INFO] |  |  \- joda-time:joda-time:jar:2.10.12:compile
[INFO] |  +- com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.6:compile
[INFO] |  |  +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] |  |  +- org.json:json:jar:20180813:compile
[INFO] |  |  \- com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] |  |     +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] |  |     +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |  |     |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  |     \- com.sap.cds:cds4j-api:jar:1.13.1:compile
[INFO] |  +- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.8.8:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO] |  +- io.vavr:vavr:jar:0.10.4:compile
[INFO] |  |  \- io.vavr:vavr-match:jar:0.10.4:compile
[INFO] |  \- com.google.errorprone:error_prone_annotations:jar:2.9.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.5.5:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:2.5.5:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:5.3.10:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.9.7:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.5.5:compile
[INFO] |  |  +- com.zaxxer:HikariCP:jar:4.0.3:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:5.3.10:compile
[INFO] |  +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  +- jakarta.persistence:jakarta.persistence-api:jar:2.2.3:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.4.32.Final:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] |  |  +- org.javassist:javassist:jar:3.27.0-GA:compile
[INFO] |  |  +- net.bytebuddy:byte-buddy:jar:1.10.22:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  +- org.jboss:jandex:jar:2.2.3.Final:compile
[INFO] |  |  +- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] |  |  +- org.dom4j:dom4j:jar:2.1.3:compile
[INFO] |  |  +- org.hibernate.common:hibernate-commons-annotations:jar:5.1.2.Final:compile
[INFO] |  |  \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.5:compile
[INFO] |  |     +- org.glassfish.jaxb:txw2:jar:2.3.5:compile
[INFO] |  |     +- com.sun.istack:istack-commons-runtime:jar:3.0.12:compile
[INFO] |  |     \- com.sun.activation:jakarta.activation:jar:1.2.2:runtime
[INFO] |  +- org.springframework.data:spring-data-jpa:jar:2.5.5:compile
[INFO] |  |  +- org.springframework.data:spring-data-commons:jar:2.5.5:compile
[INFO] |  |  +- org.springframework:spring-orm:jar:5.3.10:compile
[INFO] |  |  +- org.springframework:spring-context:jar:5.3.10:compile
[INFO] |  |  |  \- org.springframework:spring-expression:jar:5.3.10:compile
[INFO] |  |  +- org.springframework:spring-tx:jar:5.3.10:compile
[INFO] |  |  \- org.springframework:spring-beans:jar:5.3.10:compile
[INFO] |  \- org.springframework:spring-aspects:jar:5.3.10:compile
[INFO] +- org.slf4j:slf4j-ext:jar:1.7.32:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.32:compile
[INFO] +- com.microsoft.sqlserver:mssql-jdbc:jar:9.2.1.jre8:runtime
[INFO] +- org.springframework.boot:spring-boot-configuration-processor:jar:2.5.5:compile (optional)
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.5.5:test
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.5.5:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.5.5:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.5.5:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.5.5:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.6:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.6:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.14.1:compile
[INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.14.1:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.32:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.28:compile
[INFO] |  +- org.springframework.boot:spring-boot-test:jar:2.5.5:test
[INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.5.5:test
[INFO] |  +- com.jayway.jsonpath:json-path:jar:2.5.0:test
[INFO] |  |  \- net.minidev:json-smart:jar:2.4.7:test
[INFO] |  |     \- net.minidev:accessors-smart:jar:2.4.7:test
[INFO] |  |        \- org.ow2.asm:asm:jar:9.1:test
[INFO] |  +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:compile
[INFO] |  |  \- jakarta.activation:jakarta.activation-api:jar:1.2.2:compile
[INFO] |  +- org.assertj:assertj-core:jar:3.19.0:test
[INFO] |  +- org.hamcrest:hamcrest:jar:2.2:test
[INFO] |  +- org.mockito:mockito-core:jar:3.9.0:test
[INFO] |  |  +- net.bytebuddy:byte-buddy-agent:jar:1.10.22:test
[INFO] |  |  \- org.objenesis:objenesis:jar:3.2:test
[INFO] |  +- org.mockito:mockito-junit-jupiter:jar:3.9.0:test
[INFO] |  +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] |  |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] |  +- org.springframework:spring-core:jar:5.3.10:compile
[INFO] |  |  \- org.springframework:spring-jcl:jar:5.3.10:compile
[INFO] |  +- org.springframework:spring-test:jar:5.3.10:test
[INFO] |  \- org.xmlunit:xmlunit-core:jar:2.8.2:test
[INFO] +- com.google.guava:guava:jar:30.1.1-jre:compile
[INFO] |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  +- org.checkerframework:checker-qual:jar:3.8.0:compile
[INFO] |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] +- com.neovisionaries:nv-i18n:jar:1.29:compile
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.8.0:test
[INFO] |  +- org.junit.jupiter:junit-jupiter-api:jar:5.7.2:test
[INFO] |  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  \- org.junit.platform:junit-platform-commons:jar:1.7.2:test
[INFO] |  +- org.junit.jupiter:junit-jupiter-params:jar:5.7.2:test
[INFO] |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.7.2:test
[INFO] |     \- org.junit.platform:junit-platform-engine:jar:1.7.2:test
[INFO] +- com.github.ozlerhakan:poiji:jar:3.1.1:compile
[INFO] |  \- org.apache.poi:poi-ooxml:jar:5.0.0:compile
[INFO] |     +- org.apache.poi:poi:jar:5.0.0:compile
[INFO] |     |  +- org.apache.commons:commons-collections4:jar:4.4:compile
[INFO] |     |  +- org.apache.commons:commons-math3:jar:3.6.1:compile
[INFO] |     |  \- com.zaxxer:SparseBitSet:jar:1.2:compile
[INFO] |     +- org.apache.poi:poi-ooxml-lite:jar:5.0.0:compile
[INFO] |     |  \- org.apache.xmlbeans:xmlbeans:jar:4.0.0:compile
[INFO] |     +- org.apache.commons:commons-compress:jar:1.20:compile
[INFO] |     +- com.github.virtuald:curvesapi:jar:1.06:compile
[INFO] |     +- org.bouncycastle:bcpkix-jdk15on:jar:1.68:compile
[INFO] |     +- org.bouncycastle:bcprov-jdk15on:jar:1.68:compile
[INFO] |     +- org.apache.santuario:xmlsec:jar:2.2.1:compile
[INFO] |     |  \- com.fasterxml.woodstox:woodstox-core:jar:5.2.1:runtime
[INFO] |     |     \- org.codehaus.woodstox:stax2-api:jar:4.2:runtime
[INFO] |     +- org.apache.xmlgraphics:batik-all:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-anim:jar:1.13:compile
[INFO] |     |  |  +- org.apache.xmlgraphics:batik-shared-resources:jar:1.13:compile
[INFO] |     |  |  \- xml-apis:xml-apis-ext:jar:1.3.04:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-awt-util:jar:1.13:compile
[INFO] |     |  |  \- org.apache.xmlgraphics:xmlgraphics-commons:jar:2.4:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-bridge:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-codec:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-constants:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-css:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-dom:jar:1.13:compile
[INFO] |     |  |  +- xalan:xalan:jar:2.7.2:compile
[INFO] |     |  |  |  \- xalan:serializer:jar:2.7.2:compile
[INFO] |     |  |  \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-ext:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-extension:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-gui-util:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-gvt:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-i18n:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-parser:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-rasterizer-ext:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-rasterizer:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-script:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-slideshow:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-squiggle-ext:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-squiggle:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-svg-dom:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-svgbrowser:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-svggen:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-svgpp:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-svgrasterizer:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-swing:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-transcoder:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-util:jar:1.13:compile
[INFO] |     |  +- org.apache.xmlgraphics:batik-ttf2svg:jar:1.13:compile
[INFO] |     |  \- org.apache.xmlgraphics:batik-xml:jar:1.13:compile
[INFO] |     \- de.rototor.pdfbox:graphics2d:jar:0.30:compile
[INFO] |        \- org.apache.pdfbox:pdfbox:jar:2.0.22:compile
[INFO] |           \- org.apache.pdfbox:fontbox:jar:2.0.22:compile
[INFO] +- com.squareup.okhttp3:okhttp:jar:4.9.1:compile
[INFO] |  +- com.squareup.okio:okio:jar:2.8.0:compile
[INFO] |  |  \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.5.31:compile
[INFO] |  \- org.jetbrains.kotlin:kotlin-stdlib:jar:1.5.31:compile
[INFO] |     \- org.jetbrains:annotations:jar:13.0:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.20:provided
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile
[INFO] \- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.567 s
[INFO] Finished at: 2021-10-29T13:57:02+02:00
[INFO] ------------------------------------------------------------------------

Project Details

confidential

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

BlackDuck reports critical vulnerability due to usage of json-sanitizer 1.2.0 in version 2 SDK

Issue Description

A BlackDuck scan reports a critical vulnerability in

    <dependency>
        <groupId>com.sap.cloud.s4hana.cloudplatform</groupId>
        <artifactId>scp-cf</artifactId>
        <version>2.28.0</version>
    </dependency>

due to the usage of json-sanitizer 1.2.0.

This is from the maven dependency tree:

com.sap.bdpt.xs:margin-assurance-java-findings_service:war:2.60.7
 +- com.sap.cloud.s4hana.cloudplatform:scp-cf:jar:2.28.0:compile
 |  +- com.sap.cloud.s4hana.cloudplatform:auditlog-scp-cf:jar:2.28.0:compile
 |  |  +- com.sap.cloud.s4hana.cloudplatform:core:jar:2.28.0:compile
 |  |  +- com.sap.cloud.s4hana.cloudplatform:auditlog:jar:2.28.0:compile
 |  |  \- org.slf4j:jcl-over-slf4j:jar:1.7.26:runtime
 |  +- com.sap.cloud.s4hana.cloudplatform:caching:jar:2.28.0:compile
 |  |  +- com.sap.cloud.s4hana.cloudplatform:security:jar:2.28.0:compile
 |  |  \- com.sap.cloud.s4hana.cloudplatform:tenant:jar:2.28.0:compile
 |  +- com.sap.cloud.s4hana.cloudplatform:core-scp-cf:jar:2.28.0:compile
 |  |  +- com.mikesamuel:json-sanitizer:jar:1.2.0:compile
 |  |  \- com.auth0:java-jwt:jar:3.4.0:compile

BlackDuck suggests to upgrade the json-sanitizer to 1.2.2.

Could you please provide a fixed version of the SDK?

Thanks and best regards,
Sabine

Issues Creating Client for SAP B1 EDMX

Issue Description

When using the SAP B1 EDMX file for OData V4, the generator throws a large amount of errors. This leads to a large amount of functions being unable to be used. Most importantly, anything related to inserting or reading existing documents is not possible with the code generated by the client generator without modifications.

Per the Service Layer documentation, getting an existing document (in this case an 'Order'):

image

These types of operations are not possible with the client generator.

Also, on a side note; why does the error reference OData v2 when I am using the V4 client generator?

And is it possible to change the default service path? String DEFAULT_SERVICE_PATH = "/b1s/V2/SAPB1" is created but it should be /b1s/V2/ given the command line arguments.

Impact / Priority

Blocked from using a large portion of the Service Layer, cannot continue development using service layer.

Error Message

[main] ERROR com.sap.cloud.sdk.datamodel.odatav4.generator.DataModelGeneratorCli - Function import CreditNotesService_RequestApproveCancellation has non-simple type for parameter Document, but OData V2 does not support non-simple types as function import parameters.

Project Details

A simple project to get an existing Order Document given the DocEntry number.

Using version 3.34.1 with command line arguments: java -jar odata-v4-generator-cli-3.34.1.jar -b "/b1s/V2/"

Checklist

DestinationAccessor issue with cache

Issue Description

We used the below code to get the customer attribute from the destination.
DestinationAccessor.getDestination(id).get("com.sap.grc.ias.identifier")

After tested, we found their is an issue that related to the cache.
After we change the attribute in destination, we still get the old value.
We can get the new value if we restart our application.

My question:1

  1. What's the default expiration time for this cache?
  2. Can we bypass this cache๏ผŸ

actual value:
image

Another issue, in the value that returned from the destination.. There is a word "Some" that include the actual value.
image

Impact / Priority

Affected development phase: Getting Started,

Impact: Blocked

Project Details

  • SAP Cloud SDK Version: 3.55.1
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • [X ] SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • [X ] Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Batch request error when response is processed

Batch request error when response is processed

When the response of a batch request is processed an error is raised.
The content-type response header is received in lowercase, but we have seen that in the ODataRequestResultMultipartGeneric class the header name is searched using the string "Content-Type". Then the header is not found and it causes that the response can't be processed.

Important information:
Source code:
BatchResponse resultBatch = reqBuilder.execute(odataSession.getDestination()); for (GetAllRequestBuilder<T> queryBuilder : reqBuilderArray) { List<T> result = resultBatch.getReadResult(queryBuilder); if (returnList == null) { returnList = result; } else { returnList.addAll(result); } } }

  • Expected outcome: Response of the batch request
  • Actual outcome: Error:
    2021-09-28 13:50:26.356 WARN 4112 --- [ XNIO-1 task-1] .o.c.r.ODataRequestResultMultipartParser : Illegal value in HTTP header "Content-Type" of OData batch response.
    2021-09-28 13:50:26.428 ERROR 4112 --- [ XNIO-1 task-1] .o.c.r.ODataRequestResultMultipartParser : A boundary delimiter cannot be resolved from OData batch response header.

Maven dependency:

com.sap.cloud.sdk.datamodel
odata-v4-core
3.52.0

image

DestinationAccessor does not work for OAuth2ClientCredentials in a local environment

Issue Description

Hello SAP cloud sdk experts,

I am calling a simple external service with authentication type "OAuth2ClientCredentials".
The Service returns a list of company codes and works fine once it is deployed to SAP BTP.

However testing locally, the service returns "Unauthorized".
I followed the steps indicated here: https://sap.github.io/cloud-sdk/docs/java/features/connectivity/sdk-connectivity-destination-service#configure-http-destinations-for-local-deployment
I seems to me that this works only for destinations of authentication type "BasicAuthentication".

The DestinationLoaderChain is set up like this:

		DestinationLoaderChain customLoaderChain = DestinationLoaderChain
				.builder( new EnvVarDestinationLoader( ) )
				.append( new ScpCfDestinationLoader( ) )
				.build( );

The RestController looks like this:

@RestController
@RequestMapping("/ccodes")
@Slf4j
public class ListCCodesController {

	@Autowired
	public XSuiteDestinations destinations;

	@RequestMapping(method = RequestMethod.GET)
	public ResponseEntity<String> getCCode( @RequestParam(defaultValue = "1000") final String ccode ) {
		log.info( "retrieving CCodes from Helix ...." );

//		HttpDestinationProperties destination = destinations.getHelixBackend( );
		HttpDestination destination = DestinationAccessor.getDestination( "xSuiteSphere-Helix-Backend" ).asHttp( );
		

		HttpClient client = HttpClientAccessor.getHttpClientFactory( ).createHttpClient( destination );

		HttpGet				request			= new HttpGet( "/LookupDataSources/cst_DS_CompanyCode/Values" );
		HttpResponse	response;
		String				responseStr	= "";
		try {
			response = client.execute( request );

			responseStr = response.getStatusLine( ).getReasonPhrase( );
			log.info( "Helix-Service replied with: {} ", responseStr );
			
			HttpEntity entity = response.getEntity( );
			responseStr = EntityUtils.toString( entity, "UTF-8" );

		} catch (IOException e) {
			e.printStackTrace( );
		}

		return ResponseEntity.ok( responseStr );
	}
}

The destination "xSuiteSphere-Helix-Backend" is found correctly in the environment variable,
but it seems that the credentials are not used, because the "credentials provider" is not set,
because there is expected to be a "proxy configuration" in place which is not relevant in this case.

The Destination is defined like this in the environment variable "destinations":

[
	{
		"name": "xSuiteSphere-Helix-Backend",
		"Type": "HTTP",
		"Description": "xSuite Helix Connection",
		"URL": "https://aservice.xsuite.com/api/v1",
		"ProxyType": "Internet",
		"Authentication": "OAuth2ClientCredentials",
		"credentials" : {
			"clientId": "theClientID",
			"clientSecret": "theClientSecret" 
		},
		"TokenServiceURL": "https://tokenServiceurl.xsuite.com/auth/token"
	}
]

I think, I need to create the destination differently, but I have no idea how.
Can you please give me a hint?

Impact / Priority

We hope to roll out a first prototype of our product by the end of juli 2021.

Application Log

Please see also the attached debug - log:

c.s.c.s.c.c.DestinationLoaderChain      	 Delegating destination lookup for destination xSuiteSphere-Helix-Backend to the destination loader EnvVarDestinationLoader.
c.s.c.s.c.c.EnvVarDestinationLoader     	 Trying to extract destination xSuiteSphere-Helix-Backend from the environment variables.
c.s.c.s.c.c.DefaultDestination          	 Instantiated com.sap.cloud.sdk.cloudplatform.connectivity.DefaultDestination based on the following property keys: Authentication,clientId,clientSecret,Description,name,ProxyType,TokenServiceURL,Type,URL
c.s.c.s.c.c.DestinationLoaderChain      	 Destination loader EnvVarDestinationLoader successfully loaded destination xSuiteSphere-Helix-Backend.
.s.c.c.ComplexDestinationPropertyFactory	 No proxy URI or host and port specified. Continuing without proxy configuration.
.s.c.c.ComplexDestinationPropertyFactory	 No valid JSON primitives 'User' and 'Password' defined. Continuing without basic credentials.
c.s.c.s.c.c.AbstractHttpClientFactory   	 Building a new custom HttpClient.
c.s.c.s.c.c.AbstractHttpClientFactory   	 No proxy configuration found for destination com.sap.cloud.sdk.cloudplatform.connectivity.DefaultHttpDestination@c1acdb10.
c.s.c.s.c.c.AbstractHttpClientFactory   	 No proxy configuration found for destination com.sap.cloud.sdk.cloudplatform.connectivity.DefaultHttpDestination@c1acdb10.
c.s.c.s.c.c.AbstractHttpClientFactory   	 Skip setting credentials provider.
c.s.c.s.c.c.SSLSocketFactoryUtil        	 The destination uses HTTPS for target "https://aservice.xsuite.com/api/v1".
c.s.c.s.c.c.SSLContextFactory           	 Using JDK default trust store.
c.s.c.s.c.connectivity.UriPathMerger    	 Merging request path /LookupDataSources/cst_DS_CompanyCode/Values into destination path /api/v1: /api/v1/LookupDataSources/cst_DS_CompanyCode/Values
c.s.c.s.c.connectivity.UriPathMerger    	 Including path /api/v1/LookupDataSources/cst_DS_CompanyCode/Values to https://aservice.xsuite.com/ results in https://aservice.xsuite.com/api/v1/LookupDataSources/cst_DS_CompanyCode/Values
c.s.c.s.c.connectivity.UriPathMerger    	 Merged https://aservice.xsuite.com/api/v1 and /LookupDataSources/cst_DS_CompanyCode/Values into https://aservice.xsuite.com/api/v1/LookupDataSources/cst_DS_CompanyCode/Values
c.s.c.s.c.c.DefaultHttpDestination      	 Found these 0 destination header providers for a DefaultHttpDestination: 
o.a.h.client.protocol.RequestAddCookies 	 CookieSpec selected: default
o.a.h.client.protocol.RequestAuthCache  	 Auth cache not set in the context
org.apache.http.wire                    	 http-outgoing-0 >> "GET /api/v1/LookupDataSources/cst_DS_CompanyCode/Values HTTP/1.1[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 >> "Host: xsuite.dev02.qs.xsuite.com[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.5.13 (Java/11.0.11)[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 >> "[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "HTTP/1.1 401 Unauthorized[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "Content-Length: 0[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "Date: Thu, 03 Jun 2021 10:19:50 GMT[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "Location: http://aservice.xsuite.com/Account/Login?ReturnUrl=%2Fapi%2Fv1%2FLookupDataSources%2Fcst_DS_CompanyCode%2FValues[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "Server: Kestrel[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "Strict-Transport-Security: max-age=15552000; includeSubDomains; preload[\r][\n]"
org.apache.http.wire                    	 http-outgoing-0 << "[\r][\n]"
c.x.s.h.c.ListCCodesController          	 Helix-Service replied with: Unauthorized 

Maven Dependency Tree (ROOT)

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] helix-connector - Root [pom]
[INFO] helix-connector - Application [jar]
[INFO] helix-connector - Integration Tests [jar]
[INFO]
[INFO] -----------------< com.xsuite.sphere:helix-connector >------------------
[INFO] Building helix-connector - Root 0.0.1-SNAPSHOT [1/3]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ helix-connector ---
[INFO] com.xsuite.sphere:helix-connector:pom:0.0.1-SNAPSHOT
[INFO]
[INFO] -----------< com.xsuite.sphere:helix-connector-application >------------
[INFO] Building helix-connector - Application 0.0.1-SNAPSHOT [2/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ helix-connector-application ---
[INFO] com.xsuite.sphere:helix-connector-application:jar:0.0.1-SNAPSHOT
[INFO] +- com.xsuite.sphere.backend:odata-library:jar:0.0.5:compile
[INFO] | +- com.xsuite.sphere.backend:common:jar:0.0.5:compile
[INFO] | | - commons-io:commons-io:jar:2.8.0:compile
[INFO] | +- com.xsuite.sphere.backend:destinations:jar:0.0.5:compile
[INFO] | +- org.springframework:spring-webmvc:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-context:jar:5.3.4:compile
[INFO] | | - org.springframework:spring-expression:jar:5.3.4:compile
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.3:compile
[INFO] | | - com.fasterxml.jackson.core:jackson-annotations:jar:2.12.3:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:odata-generator:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.45.0:compile
[INFO] | | | - org.jsoup:jsoup:jar:1.13.1:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:datamodel-metadata-generator:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:odata-generator-utility:jar:3.45.0:compile
[INFO] | | | - com.thoughtworks.qdox:qdox:jar:2.0.0:compile
[INFO] | | +- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] | | | - com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] | | +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] | | +- io.vavr:vavr:jar:0.10.3:compile
[INFO] | | | - io.vavr:vavr-match:jar:0.10.3:compile
[INFO] | | +- com.google.guava:guava:jar:30.1.1-jre:compile
[INFO] | | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | | - com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | | +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] | | | - commons-lang:commons-lang:jar:2.6:compile
[INFO] | | +- org.apache.commons:commons-text:jar:1.9:compile
[INFO] | | +- com.sun.codemodel:codemodel:jar:2.6:compile
[INFO] | | - com.google.errorprone:error_prone_annotations:jar:2.6.0:compile
[INFO] | - com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:odata-client:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.45.0:compile
[INFO] | - org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:security:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.45.0:compile
[INFO] | | - com.github.ben-manes.caffeine:caffeine:jar:2.9.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.45.0:compile
[INFO] | | - com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.45.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:runtime
[INFO] | | | | - io.github.resilience4j:resilience4j-core:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:runtime
[INFO] | | | | - javax.cache:cache-api:jar:1.1.1:runtime
[INFO] | | | - io.github.resilience4j:resilience4j-retry:jar:1.7.0:runtime
[INFO] | | +- com.sap.cloud.security.xsuaa:token-client:jar:2.8.8:compile
[INFO] | | +- com.jayway.jsonpath:json-path:jar:2.5.0:compile
[INFO] | | +- net.minidev:json-smart:jar:2.3:compile
[INFO] | | | - net.minidev:accessors-smart:jar:1.2:compile
[INFO] | | - com.sap.cloud.security:java-api:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.security:java-security:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.45.0:compile
[INFO] | - com.sap.cloud.sdk.cloudplatform:metering:jar:3.45.0:compile
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:soap:jar:3.45.0:compile
[INFO] | | +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] | | | - org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] | | | - org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] | | | - org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] | | +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] | | +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] | | | +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] | | | | +- jaxen:jaxen:jar:1.2.0:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | | | - org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] | | | +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] | | | +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] | | | +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] | | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] | | | +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] | | | - org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] | | - org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] | +- com.sap.cloud.sdk.s4hana:rfc:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.quality:common:jar:3.45.0:compile
[INFO] | | | - org.apache.commons:commons-csv:jar:1.8:compile
[INFO] | | - org.json:json:jar:20210307:compile
[INFO] | - com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] | +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] | +- joda-time:joda-time:jar:2.9.9:compile
[INFO] | - com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] | +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] | | - commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | - com.sap.cds:cds4j-api:jar:1.13.1:compile
[INFO] +- com.sap.cloud.sdk.datamodel:openapi-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.45.0:compile
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.3:compile
[INFO] | +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] | | - commons-codec:commons-codec:jar:1.15:compile
[INFO] | +- org.springframework:spring-core:jar:5.3.4:compile
[INFO] | | - org.springframework:spring-jcl:jar:5.3.4:compile
[INFO] | +- org.springframework:spring-web:jar:5.3.4:compile
[INFO] | - com.fasterxml.jackson.core:jackson-core:jar:2.12.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.4.0:compile
[INFO] | - com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.4.0:compile
[INFO] | - com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.12.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-servlet:jar:3.3.0:compile
[INFO] | - com.auth0:java-jwt:jar:3.15.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.3:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | - ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | - org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | | - org.yaml:snakeyaml:jar:1.27:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.4.3:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.3:compile
[INFO] | | - com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.3:compile
[INFO] | - org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.3:compile
[INFO] | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.43:compile
[INFO] | +- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] | - org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.43:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.3:compile
[INFO] | | - org.springframework.boot:spring-boot-actuator:jar:2.4.3:compile
[INFO] | - io.micrometer:micrometer-core:jar:1.6.4:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | - org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.8:compile
[INFO] | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] | | | - org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] | | - com.sap.cloud.security.xsuaa:api:jar:2.8.8:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-security:jar:2.4.3:compile
[INFO] | | +- org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] | | - org.springframework.security:spring-security-web:jar:5.4.5:compile
[INFO] | +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] | | +- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO] | | | - com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] | | +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] | | - org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] | - org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] +- javax.inject:javax.inject:jar:1:compile
[INFO] +- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] | - org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.7.1:test
[INFO] | +- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] | | - org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | +- org.junit.jupiter:junit-jupiter-params:jar:5.7.1:test
[INFO] | - org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] | - org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] - org.projectlombok:lombok:jar:1.18.20:provided
[INFO]
[INFO] --------< com.xsuite.sphere:helix-connector-integration-tests >---------
[INFO] Building helix-connector - Integration Tests 0.0.1-SNAPSHOT [3/3]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ helix-connector-integration-tests ---
[INFO] com.xsuite.sphere:helix-connector-integration-tests:jar:0.0.1-SNAPSHOT
[INFO] +- com.xsuite.sphere:helix-connector-application:jar:0.0.1-SNAPSHOT:compile
[INFO] | +- com.xsuite.sphere.backend:odata-library:jar:0.0.5:compile
[INFO] | | +- com.xsuite.sphere.backend:common:jar:0.0.5:compile
[INFO] | | | - commons-io:commons-io:jar:2.8.0:compile
[INFO] | | +- org.springframework:spring-webmvc:jar:5.3.4:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.3:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:odata-generator:jar:3.45.0:compile
[INFO] | | | +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.45.0:compile
[INFO] | | | | - org.jsoup:jsoup:jar:1.13.1:compile
[INFO] | | | +- com.sap.cloud.sdk.datamodel:datamodel-metadata-generator:jar:3.45.0:compile
[INFO] | | | +- com.sap.cloud.sdk.datamodel:odata-generator-utility:jar:3.45.0:compile
[INFO] | | | | - com.thoughtworks.qdox:qdox:jar:2.0.0:compile
[INFO] | | | +- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] | | | | - com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] | | | +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] | | | | - commons-lang:commons-lang:jar:2.6:compile
[INFO] | | | +- org.apache.commons:commons-text:jar:1.9:compile
[INFO] | | | - com.sun.codemodel:codemodel:jar:2.6:compile
[INFO] | | - com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.sdk.datamodel:odata-client:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.45.0:compile
[INFO] | | | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.45.0:compile
[INFO] | | | +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.45.0:compile
[INFO] | | | +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.45.0:runtime
[INFO] | | | | +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:runtime
[INFO] | | | | | - io.github.resilience4j:resilience4j-core:jar:1.7.0:runtime
[INFO] | | | | +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:runtime
[INFO] | | | | +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:runtime
[INFO] | | | | +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:runtime
[INFO] | | | | | - javax.cache:cache-api:jar:1.1.1:runtime
[INFO] | | | | - io.github.resilience4j:resilience4j-retry:jar:1.7.0:runtime
[INFO] | | | +- com.sap.cloud.security.xsuaa:token-client:jar:2.8.8:compile
[INFO] | | | +- net.minidev:json-smart:jar:2.3:compile
[INFO] | | | | - net.minidev:accessors-smart:jar:1.2:compile
[INFO] | | | - com.sap.cloud.security:java-api:jar:2.8.8:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.45.0:compile
[INFO] | | | - com.sap.cloud.security:java-security:jar:2.8.8:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.sdk.cloudplatform:metering:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:soap:jar:3.45.0:compile
[INFO] | | | +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] | | | | - org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] | | | | - org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] | | | | - org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] | | | +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] | | | +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] | | | | +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] | | | | | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] | | | | | +- jaxen:jaxen:jar:1.2.0:compile
[INFO] | | | | | +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | | | | - org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] | | | | +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] | | | | +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] | | | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] | | | | +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] | | | | - org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] | | | - org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] | | +- com.sap.cloud.sdk.s4hana:rfc:jar:3.45.0:compile
[INFO] | | | - org.json:json:jar:20210307:compile
[INFO] | | - com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] | | +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] | | +- joda-time:joda-time:jar:2.9.9:compile
[INFO] | | - com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] | | +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] | | +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] | | | - commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | | - com.sap.cds:cds4j-api:jar:1.13.1:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:openapi-core:jar:3.45.0:compile
[INFO] | | +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] | | | - commons-codec:commons-codec:jar:1.15:compile
[INFO] | | - com.fasterxml.jackson.core:jackson-core:jar:2.12.3:compile
[INFO] | +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.4.0:compile
[INFO] | | - com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.4.0:compile
[INFO] | | - com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.12.3:compile
[INFO] | +- com.sap.hcp.cf.logging:cf-java-logging-support-servlet:jar:3.3.0:compile
[INFO] | | - com.auth0:java-jwt:jar:3.15.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-web:jar:2.4.3:compile
[INFO] | | - org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.3:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.43:compile
[INFO] | | +- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] | | - org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.43:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.3:compile
[INFO] | | | - org.springframework.boot:spring-boot-actuator:jar:2.4.3:compile
[INFO] | | - io.micrometer:micrometer-core:jar:1.6.4:compile
[INFO] | | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | | - org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] | +- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.8:compile
[INFO] | | +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.8:compile
[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] | | | | - org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] | | | - com.sap.cloud.security.xsuaa:api:jar:2.8.8:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-security:jar:2.4.3:compile
[INFO] | | | - org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] | | +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] | | | +- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO] | | | | - com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] | | | - org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] | | - org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] | - javax.inject:javax.inject:jar:1:compile
[INFO] +- com.xsuite.sphere.backend:destinations:jar:0.0.5:compile
[INFO] | - org.springframework.boot:spring-boot-starter:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.3:compile
[INFO] | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | - ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | - org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | - org.yaml:snakeyaml:jar:1.27:compile
[INFO] +- com.sap.cloud.sdk.testutil:testutil-core:jar:3.45.0:test
[INFO] | +- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.45.0:compile
[INFO] | | - com.github.ben-manes.caffeine:caffeine:jar:2.9.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.quality:common:jar:3.45.0:compile
[INFO] | | | - org.apache.commons:commons-csv:jar:1.8:compile
[INFO] | | - org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:security:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.45.0:compile
[INFO] | | - com.google.code.gson:gson:jar:2.8.6:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.sdk.datamodel:fluent-result:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.testutil:testutil-resources:jar:3.45.0:test
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] | +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] | +- io.vavr:vavr:jar:0.10.3:compile
[INFO] | | - io.vavr:vavr-match:jar:0.10.3:compile
[INFO] | +- com.google.guava:guava:jar:30.1.1-jre:compile
[INFO] | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | - com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.3:compile
[INFO] | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.12.3:test
[INFO] | +- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] | +- com.google.errorprone:error_prone_annotations:jar:2.6.0:compile
[INFO] | +- org.mockito:mockito-core:jar:3.9.0:test
[INFO] | | +- net.bytebuddy:byte-buddy:jar:1.10.20:test
[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.10.20:test
[INFO] | | - org.objenesis:objenesis:jar:3.2:test
[INFO] | +- com.github.tomakehurst:wiremock:jar:2.27.2:test
[INFO] | | +- org.eclipse.jetty:jetty-server:jar:9.4.39.v20210325:test
[INFO] | | | +- javax.servlet:javax.servlet-api:jar:4.0.1:test
[INFO] | | | +- org.eclipse.jetty:jetty-http:jar:9.4.39.v20210325:test
[INFO] | | | - org.eclipse.jetty:jetty-io:jar:9.4.39.v20210325:test
[INFO] | | +- org.eclipse.jetty:jetty-servlet:jar:9.4.39.v20210325:test
[INFO] | | | +- org.eclipse.jetty:jetty-security:jar:9.4.39.v20210325:test
[INFO] | | | - org.eclipse.jetty:jetty-util-ajax:jar:9.4.39.v20210325:test
[INFO] | | +- org.eclipse.jetty:jetty-servlets:jar:9.4.39.v20210325:test
[INFO] | | | +- org.eclipse.jetty:jetty-continuation:jar:9.4.39.v20210325:test
[INFO] | | | - org.eclipse.jetty:jetty-util:jar:9.4.39.v20210325:test
[INFO] | | +- org.eclipse.jetty:jetty-webapp:jar:9.4.39.v20210325:test
[INFO] | | | - org.eclipse.jetty:jetty-xml:jar:9.4.39.v20210325:test
[INFO] | | +- org.eclipse.jetty:jetty-proxy:jar:9.4.39.v20210325:test
[INFO] | | | - org.eclipse.jetty:jetty-client:jar:9.4.39.v20210325:test
[INFO] | | +- org.xmlunit:xmlunit-core:jar:2.7.0:test
[INFO] | | +- org.xmlunit:xmlunit-legacy:jar:2.7.0:test
[INFO] | | +- org.xmlunit:xmlunit-placeholders:jar:2.7.0:test
[INFO] | | +- com.jayway.jsonpath:json-path:jar:2.5.0:compile
[INFO] | | +- org.ow2.asm:asm:jar:7.0:test
[INFO] | | +- net.sf.jopt-simple:jopt-simple:jar:5.0.3:test
[INFO] | | +- com.github.jknack:handlebars:jar:4.0.7:test
[INFO] | | | - org.antlr:antlr4-runtime:jar:4.7.1:test
[INFO] | | +- com.github.jknack:handlebars-helpers:jar:4.0.7:test
[INFO] | | +- com.flipkart.zjsonpatch:zjsonpatch:jar:0.4.4:test
[INFO] | | - commons-fileupload:commons-fileupload:jar:1.4:test
[INFO] | - org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] +- org.springframework:spring-test:jar:5.3.4:test
[INFO] | - org.springframework:spring-core:jar:5.3.4:compile
[INFO] | - org.springframework:spring-jcl:jar:5.3.4:compile
[INFO] +- org.springframework.boot:spring-boot-test:jar:2.4.3:test
[INFO] | - org.springframework.boot:spring-boot:jar:2.4.3:compile
[INFO] | - org.springframework:spring-context:jar:5.3.4:compile
[INFO] +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.4.3:test
[INFO] | - org.springframework.boot:spring-boot-autoconfigure:jar:2.4.3:compile
[INFO] +- org.springframework.security:spring-security-test:jar:5.4.5:test
[INFO] | +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.3.4:compile
[INFO] | | - org.springframework:spring-expression:jar:5.3.4:compile
[INFO] | - org.springframework.security:spring-security-web:jar:5.4.5:compile
[INFO] +- org.springframework.boot:spring-boot-starter-webflux:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.4.3:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.3:compile
[INFO] | | - com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-reactor-netty:jar:2.4.3:compile
[INFO] | | - io.projectreactor.netty:reactor-netty-http:jar:1.0.4:compile
[INFO] | | +- io.netty:netty-codec-http:jar:4.1.59.Final:compile
[INFO] | | | +- io.netty:netty-common:jar:4.1.59.Final:compile
[INFO] | | | +- io.netty:netty-buffer:jar:4.1.59.Final:compile
[INFO] | | | +- io.netty:netty-transport:jar:4.1.59.Final:compile
[INFO] | | | +- io.netty:netty-codec:jar:4.1.59.Final:compile
[INFO] | | | - io.netty:netty-handler:jar:4.1.59.Final:compile
[INFO] | | +- io.netty:netty-codec-http2:jar:4.1.59.Final:compile
[INFO] | | +- io.netty:netty-resolver-dns:jar:4.1.59.Final:compile
[INFO] | | | +- io.netty:netty-resolver:jar:4.1.59.Final:compile
[INFO] | | | - io.netty:netty-codec-dns:jar:4.1.59.Final:compile
[INFO] | | +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.59.Final:compile
[INFO] | | | - io.netty:netty-transport-native-unix-common:jar:4.1.59.Final:compile
[INFO] | | +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.59.Final:compile
[INFO] | | - io.projectreactor.netty:reactor-netty-core:jar:1.0.4:compile
[INFO] | | - io.netty:netty-handler-proxy:jar:4.1.59.Final:compile
[INFO] | | - io.netty:netty-codec-socks:jar:4.1.59.Final:compile
[INFO] | +- org.springframework:spring-web:jar:5.3.4:compile
[INFO] | - org.springframework:spring-webflux:jar:5.3.4:compile
[INFO] | - io.projectreactor:reactor-core:jar:3.4.3:compile
[INFO] | - org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] +- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] | - org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.7.1:test
[INFO] | +- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] | | - org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | +- org.junit.jupiter:junit-jupiter-params:jar:5.7.1:test
[INFO] | - org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] | - org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] +- org.assertj:assertj-core:jar:3.19.0:test
[INFO] +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] - org.projectlombok:lombok:jar:1.18.20:provided
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for helix-connector - Root 0.0.1-SNAPSHOT:
[INFO]
[INFO] helix-connector - Root ............................. SUCCESS [ 0.413 s]
[INFO] helix-connector - Application ...................... SUCCESS [ 0.561 s]
[INFO] helix-connector - Integration Tests ................ SUCCESS [ 0.272 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.487 s
[INFO] Finished at: 2021-06-03T13:36:26+02:00
[INFO] ------------------------------------------------------------------------

Maven Dependency Tree (Application)

[INFO] Scanning for projects...
[INFO]
[INFO] -----------< com.xsuite.sphere:helix-connector-application >------------
[INFO] Building helix-connector - Application 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ helix-connector-application ---
[INFO] com.xsuite.sphere:helix-connector-application:jar:0.0.1-SNAPSHOT
[INFO] +- com.xsuite.sphere.backend:odata-library:jar:0.0.5:compile
[INFO] | +- com.xsuite.sphere.backend:common:jar:0.0.5:compile
[INFO] | | - commons-io:commons-io:jar:2.8.0:compile
[INFO] | +- com.xsuite.sphere.backend:destinations:jar:0.0.5:compile
[INFO] | +- org.springframework:spring-webmvc:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-aop:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.3.4:compile
[INFO] | | +- org.springframework:spring-context:jar:5.3.4:compile
[INFO] | | - org.springframework:spring-expression:jar:5.3.4:compile
[INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.3:compile
[INFO] | | - com.fasterxml.jackson.core:jackson-annotations:jar:2.12.3:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:odata-generator:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.45.0:compile
[INFO] | | | - org.jsoup:jsoup:jar:1.13.1:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:datamodel-metadata-generator:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.datamodel:odata-generator-utility:jar:3.45.0:compile
[INFO] | | | - com.thoughtworks.qdox:qdox:jar:2.0.0:compile
[INFO] | | +- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] | | | - com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] | | +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] | | +- io.vavr:vavr:jar:0.10.3:compile
[INFO] | | | - io.vavr:vavr-match:jar:0.10.3:compile
[INFO] | | +- com.google.guava:guava:jar:30.1.1-jre:compile
[INFO] | | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | | - com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | | +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] | | | - commons-lang:commons-lang:jar:2.6:compile
[INFO] | | +- org.apache.commons:commons-text:jar:1.9:compile
[INFO] | | +- com.sun.codemodel:codemodel:jar:2.6:compile
[INFO] | | - com.google.errorprone:error_prone_annotations:jar:2.6.0:compile
[INFO] | - com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:odata-client:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.45.0:compile
[INFO] | - org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:security:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.45.0:compile
[INFO] | | - com.github.ben-manes.caffeine:caffeine:jar:2.9.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.45.0:compile
[INFO] | | - com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.45.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:runtime
[INFO] | | | | - io.github.resilience4j:resilience4j-core:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:runtime
[INFO] | | | +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:runtime
[INFO] | | | | - javax.cache:cache-api:jar:1.1.1:runtime
[INFO] | | | - io.github.resilience4j:resilience4j-retry:jar:1.7.0:runtime
[INFO] | | +- com.sap.cloud.security.xsuaa:token-client:jar:2.8.8:compile
[INFO] | | +- com.jayway.jsonpath:json-path:jar:2.5.0:compile
[INFO] | | +- net.minidev:json-smart:jar:2.3:compile
[INFO] | | | - net.minidev:accessors-smart:jar:1.2:compile
[INFO] | | - com.sap.cloud.security:java-api:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.45.0:compile
[INFO] | | - com.sap.cloud.security:java-security:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.45.0:compile
[INFO] | - com.sap.cloud.sdk.cloudplatform:metering:jar:3.45.0:compile
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:soap:jar:3.45.0:compile
[INFO] | | +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] | | | - org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] | | | - org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] | | | - org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] | | +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] | | +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] | | | +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] | | | | +- jaxen:jaxen:jar:1.2.0:compile
[INFO] | | | | +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | | | - org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] | | | +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] | | | +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] | | | +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] | | | +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] | | | +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] | | | - org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] | | - org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] | +- com.sap.cloud.sdk.s4hana:rfc:jar:3.45.0:compile
[INFO] | | +- com.sap.cloud.sdk.quality:common:jar:3.45.0:compile
[INFO] | | | - org.apache.commons:commons-csv:jar:1.8:compile
[INFO] | | - org.json:json:jar:20210307:compile
[INFO] | - com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] | +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] | +- joda-time:joda-time:jar:2.9.9:compile
[INFO] | - com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] | +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] | | - commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | - com.sap.cds:cds4j-api:jar:1.13.1:compile
[INFO] +- com.sap.cloud.sdk.datamodel:openapi-core:jar:3.45.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.45.0:compile
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.3:compile
[INFO] | +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] | | - commons-codec:commons-codec:jar:1.15:compile
[INFO] | +- org.springframework:spring-core:jar:5.3.4:compile
[INFO] | | - org.springframework:spring-jcl:jar:5.3.4:compile
[INFO] | +- org.springframework:spring-web:jar:5.3.4:compile
[INFO] | - com.fasterxml.jackson.core:jackson-core:jar:2.12.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.4.0:compile
[INFO] | - com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.4.0:compile
[INFO] | - com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.12.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-servlet:jar:3.3.0:compile
[INFO] | - com.auth0:java-jwt:jar:3.15.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.3:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.3:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | - ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | - org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | | - org.yaml:snakeyaml:jar:1.27:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.4.3:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.3:compile
[INFO] | | - com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.3:compile
[INFO] | - org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.3:compile
[INFO] | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.43:compile
[INFO] | +- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] | - org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.43:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.3:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.3:compile
[INFO] | | - org.springframework.boot:spring-boot-actuator:jar:2.4.3:compile
[INFO] | - io.micrometer:micrometer-core:jar:1.6.4:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | - org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.8:compile
[INFO] | +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.8:compile
[INFO] | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] | | | - org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] | | - com.sap.cloud.security.xsuaa:api:jar:2.8.8:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-security:jar:2.4.3:compile
[INFO] | | +- org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] | | - org.springframework.security:spring-security-web:jar:5.4.5:compile
[INFO] | +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] | | +- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO] | | | - com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] | | +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] | | - org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] | - org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] +- javax.inject:javax.inject:jar:1:compile
[INFO] +- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] | - org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- org.junit.jupiter:junit-jupiter:jar:5.7.1:test
[INFO] | +- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] | | - org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | +- org.junit.jupiter:junit-jupiter-params:jar:5.7.1:test
[INFO] | - org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] | - org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] - org.projectlombok:lombok:jar:1.18.20:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.167 s
[INFO] Finished at: 2021-06-03T13:36:40+02:00
[INFO] ------------------------------------------------------------------------

Project Details

  • SAP Cloud SDK Version: 3.45.0
  • Link to GitHub repository:
  • Project type, for example:
    • [X ] SAP Cloud SDK Maven Archetype
  • Platform:
    • [ X] Cloud Foundry
    • [ X] local Springboot test environment

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Add ability to customize payload of a PUT batch request

This feature request is related to this problem that I posted on StackOverflow back in March. While the workaround certainly works, it would be nice to avoid using the low-level API if possible.

The problem is that when using replacingEntity() it will deserialize ALL of the properties into the request payload, including the read-only properties. SAP doesn't like when these properties are included in a PUT request and will reject it with the following error:

Inline component is not defined or not allowed (HTTP PUT)

Here's an example of my request:

contactService
        .updateAdditionalIDs(additionalId)
        .replacingEntity()
        .withHeaders(defaultHeaders)
        .executeRequest(destination);

Part of the request output:

PUT AdditionalIDs(ContactAdditionalOrigin='EMAIL',ContactAdditionalID='<email_address>',ContactID='<contact_id>',ContactOrigin='<contact_origin>') HTTP/1.1
Sap-Cuan-SourceSystemId: my-source
Accept: application/json
Sap-Cuan-SourceSystemType: EXT
Content-Type: application/json
Sap-Cuan-RequestTimestamp: '2021-10-15T14:24:11.578'

{ContactOrigin:<contact_origin>,ContactID:<contact_id>,ContactAdditionalOrigin:EMAIL,ContactAdditionalID:<email_address>,ContactAdditionalIdUUID:null,ContactUUID:null,ContactAddlIDIsInvalid:null,MarketingAreas:[]}

According to the metadata for contacts (edmx), ContactAdditionalIdUUID, ContactUUID & ContactAddlIDIsInvalid are marked as read-only...

<EntityType Name="AdditionalID" sap:content-version="4">
  <Key>
      <PropertyRef Name="ContactOrigin"/>
      <PropertyRef Name="ContactID"/>
      <PropertyRef Name="ContactAdditionalOrigin"/>
      <PropertyRef Name="ContactAdditionalID"/>
  </Key>
  <Property Name="ContactOrigin" Type="Edm.String" Nullable="false" MaxLength="20" sap:unicode="false" sap:label="Origin of Contact"/>
  <Property Name="ContactID" Type="Edm.String" Nullable="false" MaxLength="255" sap:unicode="false" sap:label="External Contact ID"/>
  <Property Name="ContactAdditionalOrigin" Type="Edm.String" Nullable="false" MaxLength="20" sap:unicode="false" sap:label="Origin of Contact"/>
  <Property Name="ContactAdditionalID" Type="Edm.String" Nullable="false" MaxLength="255" sap:unicode="false" sap:label="External Contact ID"/>
  <Property Name="ContactAdditionalIdUUID" Type="Edm.Guid" sap:unicode="false" sap:label="Additional ID UUID" sap:creatable="false" sap:updatable="false"/>
  <Property Name="ContactUUID" Type="Edm.Guid" sap:unicode="false" sap:label="UUID" sap:creatable="false" sap:updatable="false"/>
  <Property Name="ContactAddlIDIsInvalid" Type="Edm.Boolean" sap:unicode="false" sap:label="Invalid" sap:creatable="false" sap:updatable="false"/>
  <NavigationProperty Name="MarketingAreas" Relationship="API_MKT_CONTACT_SRV.AdditionalIDMarketingArea" FromRole="FromRole_AdditionalIDMarketingArea" ToRole="ToRole_AdditionalIDMarketingArea"/>
</EntityType>

Ideally, it would be nice if read-only properties were not deserialized into a PUT payload, but maybe as an alternative would it be possible to allow the usage of includingFields() when using replacingEntity() so that more fine grained customization can be achieved at the higher API level? In fact, there are some cases (like with AdditionalIDs) where the payload needs to be empty {} on a PUT request, so passing no args to includingFields() could solve for that case as well.

Thank you for your consideration on this feature request and please let me know if you have any questions or would like additional info.

Cheers!

Error generating classes when <EntityType Name="Type">

Issue Description

I'm trying to generate a client from a specific EDMX file that I got out of SAP Commerce Cloud. The file is here. I'm using the maven plugin like this:

      <plugin>
        <groupId>com.sap.cloud.sdk.datamodel</groupId>
        <artifactId>odata-generator-maven-plugin</artifactId>
        <version>3.45.0</version>
        <executions>
          <execution>
            <id>generate-consumption</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <inputDirectory>${project.basedir}/input</inputDirectory>
              <outputDirectory>${project.build.directory}/vdm</outputDirectory>
              <deleteOutputDirectory>true</deleteOutputDirectory>
              <packageName>com.mycompany.vdm</packageName>
              <defaultBasePath>odata/v2/</defaultBasePath>
              <compileScope>COMPILE</compileScope>
              <serviceMethodsPerEntitySet>true</serviceMethodsPerEntitySet>
            </configuration>
          </execution>
        </executions>
      </plugin>

I'm getting this error:

[ERROR] Failed to execute goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate (generate-consumption) on project step-importer: Execution generate-consumption of goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate failed: JClass name empty -> [Help 1]

I have debugged through the maven plugin a bit and found out that in CodeNamingStrategy there is this method:

    private String odataNameToJavaClassName( final String odataName )
    {
        String formattedName = odataName;
        formattedName = StringUtils.removeEndIgnoreCase(formattedName, "Type");
        formattedName = StringUtils.removeEndIgnoreCase(formattedName, "_");
        return formattedName;
    }

which, for an input of "Type" gives an output of "", which then leads to the error.

Impact / Priority

Some ways to work around this that I see are a custom NamingStrategy or using the untyped client. Otherwise we are blocked by this.

Error Message

[ERROR] Failed to execute goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate (generate-consumption) on project step-importer: Execution generate-consumption of goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate failed: JClass name empty -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate (generate-consumption) on project step-importer: Execution generate-consumption of goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate failed: JClass name empty
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution generate-consumption of goal com.sap.cloud.sdk.datamodel:odata-generator-maven-plugin:3.45.0:generate failed: JClass name empty
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalArgumentException: JClass name empty
    at com.sun.codemodel.JDefinedClass.<init> (JDefinedClass.java:213)
    at com.sun.codemodel.JDefinedClass.<init> (JDefinedClass.java:173)
    at com.sun.codemodel.JPackage._class (JPackage.java:180)
    at com.sun.codemodel.JPackage._class (JPackage.java:164)
    at com.sap.cloud.sdk.datamodel.odata.generator.NamespaceClassGenerator.generateEntityClassStub (NamespaceClassGenerator.java:178)
    at com.sap.cloud.sdk.datamodel.odata.generator.NamespaceClassGenerator.generateEdmEntityClass (NamespaceClassGenerator.java:105)
    at com.sap.cloud.sdk.datamodel.odata.generator.NamespaceClassGenerator.processEntitySet (NamespaceClassGenerator.java:927)
    at com.sap.cloud.sdk.datamodel.odata.generator.EntitySetProcessor.processEntitySets (EntitySetProcessor.java:78)
    at com.sap.cloud.sdk.datamodel.odata.generator.CodeModelClassGenerator.processService (CodeModelClassGenerator.java:122)
    at com.sap.cloud.sdk.datamodel.odata.generator.ODataToVdmGenerator.createCodeModelForServices (ODataToVdmGenerator.java:236)
    at com.sap.cloud.sdk.datamodel.odata.generator.ODataToVdmGenerator.generate (ODataToVdmGenerator.java:89)
    at com.sap.cloud.sdk.datamodel.odata.generator.DataModelGenerator.execute (DataModelGenerator.java:666)
    at com.sap.cloud.sdk.datamodel.odata.generator.DataModelGeneratorMojo.execute (DataModelGeneratorMojo.java:292)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

VDM for SOAP APIs in Javascript SDK

There are still plenty of S/4 HANA APIs that uses SOAP. It's very common to use them in real projects. However I dont find on how to create a VDM for a SOAP API (S/4) on a Javascript SDK. Can you please let me know how this can be done? if this is missing then please let me know if this feature is in roadmap?

Error generating odata v4 client when using 2 edmx files with entities that are referenced

Issue Description

We have 2 edmx files, each file contains the metadata for one OData v4 service with one entity each. The entity of the first edmx file contains a navigation property that references to the entity defined in the second edmx file.
When we try to generate the OData Client using the OData Generator Maven Plugin as is described in https://sap.github.io/cloud-sdk/docs/java/features/odata/generate-typed-odata-v2-and-v4-client-for-java, we get the following error:

[WARNING] Error in file XXXX unable to generate all VDM classes.
com.sap.cloud.sdk.datamodel.odatav4.generator.ODataGeneratorReadException: org.apache.olingo.commons.api.edm.EdmException: Cannot find type with name: XXXX

It is not able to use the type defined in the other edmx file.

In the ABAP side we have created the service reference in the following way:

DATA: ls_service_key TYPE /iwbep/s_v4_med_service_key.
ls_service_key-service_id = 'SERVICE_ID'.
ls_service_key-service_version = 0001.
ls_service_key-repository_id = 'DEFAULT'.

io_model->create_service_reference(
   EXPORTING
      iv_service_ref_name = 'REF_TO_SERVICE'
      is_service_key = ls_service_key
      iv_schema_alias = 'ALIAS' ).

We have tested the OData service, and it works using the expanded entities.
We are using SAP Cloud SDK version 3.58.0.

Issues with HttpClient Cache / ThreadContext

Issue Description

While executing requests using the .tryExecute() syntax, I get warning regarding a missing thread context.

The code I am trying to execute is the following:

var addDocumentRequest = svcl.withServicePath(svclConfig.getServiceLayerPath())
		.createOrders(salesOrderDocument).withHeader("COOKIE", "B1SESSION=" + sessionID)
		.withHeader("Prefer", "return-no-content");

var serviceLayerDestination = DestinationAccessor.getDestination("service_layer").asHttp();


// Attempt to add the document
var addResponse = addDocumentRequest.tryExecute(serviceLayerDestination);

I was reading through the following documentation: here and the issue seems to be related to spawning new threads or running async operations.

Although I am not seeing documentation that seems applicable to my situation. The above should all be happening on the same thread. Only the destination accessor would've been created on another thread, is that the reason?

Error Message

Could not get HttpClient cache.
com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextAccessException: No ThreadContext available for thread id=6255.
	at com.sap.cloud.sdk.cloudplatform.thread.ThreadLocalThreadContextFacade.lambda$tryGetCurrentContext$0(ThreadLocalThreadContextFacade.java:39) ~[cloudplatform-core-3.61.0.jar:?]
	at io.vavr.Value.toTry(Value.java:1414) ~[vavr-0.10.4.jar:?]
	at com.sap.cloud.sdk.cloudplatform.thread.ThreadLocalThreadContextFacade.tryGetCurrentContext(ThreadLocalThreadContextFacade.java:37) ~[cloudplatform-core-3.61.0.jar:?]
	at io.vavr.control.Try.flatMapTry(Try.java:490) ~[vavr-0.10.4.jar:?]
	at io.vavr.control.Try.flatMap(Try.java:472) ~[vavr-0.10.4.jar:?]
	at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextAccessor.tryGetCurrentContext(ThreadContextAccessor.java:84) ~[cloudplatform-core-3.61.0.jar:?]
	at com.sap.cloud.sdk.cloudplatform.connectivity.RequestScopedHttpClientCache.getCache(RequestScopedHttpClientCache.java:28) ~[cloudplatform-connectivity-3.61.0.jar:?]
	at com.sap.cloud.sdk.cloudplatform.connectivity.AbstractHttpClientCache.tryGetOrCreateHttpClient(AbstractHttpClientCache.java:78) ~[cloudplatform-connectivity-3.61.0.jar:?]
	at com.sap.cloud.sdk.cloudplatform.connectivity.AbstractHttpClientCache.tryGetHttpClient(AbstractHttpClientCache.java:46) ~[cloudplatform-connectivity-3.61.0.jar:?]
	at com.sap.cloud.sdk.cloudplatform.connectivity.HttpClientAccessor.tryGetHttpClient(HttpClientAccessor.java:153) ~[cloudplatform-connectivity-3.61.0.jar:?]
	at com.sap.cloud.sdk.cloudplatform.connectivity.HttpClientAccessor.getHttpClient(HttpClientAccessor.java:131) ~[cloudplatform-connectivity-3.61.0.jar:?]
	at com.sap.cloud.sdk.datamodel.odatav4.core.CreateRequestBuilder.execute(CreateRequestBuilder.java:127) ~[odata-v4-core-3.61.0.jar:?]
	at com.sap.cloud.sdk.datamodel.odatav4.core.CreateRequestBuilder.execute(CreateRequestBuilder.java:35) ~[odata-v4-core-3.61.0.jar:?]
	at com.sap.cloud.sdk.datamodel.odatav4.core.RequestBuilderExecutable.lambda$tryExecute$7fa567b0$1(RequestBuilderExecutable.java:55) ~[odata-v4-core-3.61.0.jar:?]
	at io.vavr.control.Try.of(Try.java:75) [vavr-0.10.4.jar:?]
	at com.sap.cloud.sdk.datamodel.odatav4.core.RequestBuilderExecutable.tryExecute(RequestBuilderExecutable.java:55) [odata-v4-core-3.61.0.jar:?]

No ThreadContext available for thread

Issue Description

Hi Colleagues,

I am trying to pass request attributes and security context to an asynchronous thread. I call method AuthTokenAccessor.getCurrentToken(), before the async thread starts, to access the AuthToken. Here I get the exception saying no ThreadContext available (See below). It is unclear to me how to use RequestFilter to set the ThreadContext. (There are no examples in the documentation). Please help in resolving the below exception. Here is the source code that is part of my pull request: https://github.wdf.sap.corp/GRC-CH/AutomatedProcedures/pull/2910

Greetings,
Ruchi

com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextAccessException: No ThreadContext available for thread id=29.
at com.sap.cloud.sdk.cloudplatform.thread.ThreadLocalThreadContextFacade.lambda$tryGetCurrentContext$0(ThreadLocalThreadContextFacade.java:45)
at io.vavr.control.Try.flatMapTry(Try.java:490)
at io.vavr.control.Try.flatMap(Try.java:472)
at com.sap.cloud.sdk.cloudplatform.thread.ThreadLocalThreadContextFacade.tryGetCurrentContext(ThreadLocalThreadContextFacade.java:38)
at io.vavr.control.Try.flatMapTry(Try.java:490)
at io.vavr.control.Try.flatMap(Try.java:472)
at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextAccessor.tryGetCurrentContext(ThreadContextAccessor.java:84)
at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.tryGetCurrentRequest(DefaultRequestFacade.java:28)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessor.tryGetCurrentRequest(RequestAccessor.java:87)
at com.sap.cloud.sdk.cloudplatform.security.DefaultAuthTokenFacade.tryGetCurrentToken(DefaultAuthTokenFacade.java:129)
at com.sap.cloud.sdk.cloudplatform.security.AuthTokenAccessor.tryGetCurrentToken(AuthTokenAccessor.java:100)
at com.sap.cloud.sdk.cloudplatform.security.AuthTokenAccessor.getCurrentToken(AuthTokenAccessor.java:81)
at com.sap.grc.automatedprocedures.systemtestshelper.configuration.RequestContextExecutorConfiguration.testhelperRequestContextExecutor(RequestContextExecutorConfiguration.java:35)

Calling a BAPI

Issue Description

I have created a TomEE-Java project based on the description in the chapter Call a BAPI/RFC Module of the Cloud SDK for Java documentation.

  • I am calling a BAPI in a S/4HANA on-premise system
  • The project is deployed to SAP BTP Cloud Foundry Environment
  • The connection to the backend is established via cloud connector and destination service
  • Security with XSUAA is activated (uncommented the part in web.xml as generated by the archetype) in the project and the WebServlet is protected by a HttpConstraint
  • Approuter is used for accessing the service

When deployed all works as expected.

Now to my questions/problems that i have currently and that i have observed during implementation:

  1. After i activated the security with XSUAA the integration test, that is generated by the archetype and that i have adapted to my implementation, is getting an error "HTTP Status 403 โ€“ Forbidden". I had a look at the MockUtil-Class but i could not figure out how or if it is possible to mock the XSUAA. Is there a example or documentation how to achieve this? I want to run the test with "auth strategy dummy" like in CAP or something similar like that.
  2. Is it possible to mock the S/4HANA destination with test data in a unit test? Is there a example or documentation for that?
  3. What i really want, is to call a BAPI from a CAP JavaScript project directly. Will this be possible in the future?
  4. If not, i now have a plain REST service that calls the BAPI. Do you have a recommendation how i call this service from a CAP JavaScript project? As a side note, i have two subprojects in a monorepo, one is the Java service that calls the BAPI and the other one is the CAP JavaScirpt project. How do i connect the both in the best and easiest way. I will deploy them alltogether as a MTA.
  5. First i started with a SpringBoot project, also from the getting started section of the Cloud SDK docu. After deploying the project to CloudFoundry i realized that the JCo in the sap_java_buildpack is only installed when a war is deployed. As i am not so familiar with Java and the SpringBoot arcehtype is generated with JAR deployment i gave up on that. Maybe you can spent a section about that in the documentation. This would also mean that you cannot easily use BAPI calls in a CAP Java project as this is based on SpringBoot.

Impact / Priority

Affected development phase: Getting Started
Impact: Blocked
Timeline: no timeline

odata client generator does not generate complex types if not referenced by an entity

Hi,

we just moved from odata v2 to odata v4 to use actions and functions. The odata client generations runs without errors, but does not generate a specific complex client (see Issue Description).
The used edmx file is automaticly generated by the service and was not edited manually.

Issue Description

My edmx file contains a complex type which is used as a parameter in an action. The complex type is only references by this action. The generation output of the maven plugin does not generate a java class out of the complex type, also the using action is not generated.

It seems that the generator is not generating complex types if they are not references within an entity.

For odata client generation, i am using the maven plugin
<groupId>com.sap.cloud.sdk.datamodel</groupId>
<artifactId>odata-v4-generator-maven-plugin</artifactId>
<version>3.54.0</version>

A simple version of my edmx file looks like this:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<edmx:DataServices>
<Schema Namespace="name.space" Alias="SAP__self">
<EntityType Name="MaterialType">
...
</EntityType>
<EntityType Name="MatGroup3Type">
...
</EntityType>
<EntityType Name="UserIdType">
...
<EntityType Name="MatGroup4Type">
...
</EntityType>
<EntityType Name="RegprimeType">
...
</EntityType>
<ComplexType Name="O2C_AGRON_STR">
<Property Name="MATNR" Type="Edm.String" Nullable="false" MaxLength="40" />
<Property Name="MVGR3" Type="Edm.String" Nullable="false" MaxLength="3" />
<Property Name="MVGR4" Type="Edm.String" Nullable="false" MaxLength="3" />
<Property Name="MAKTX" Type="Edm.String" Nullable="false" MaxLength="40" />
<Property Name="DESC3" Type="Edm.String" Nullable="false" MaxLength="40" />
<Property Name="DESC4" Type="Edm.String" Nullable="false" MaxLength="40" />
<Property Name="ERDAT" Type="Edm.Date" Nullable="false" />
<Property Name="ERNAM" Type="Edm.String" Nullable="false" MaxLength="12" />
<Property Name="UPDAT" Type="Edm.Date" Nullable="false" />
<Property Name="UPDNAME" Type="Edm.String" Nullable="false" MaxLength="12" />
<Property Name="VALID_FROM" Type="Edm.Date" Nullable="false" />
<Property Name="VALID_TO" Type="Edm.Date" Nullable="false" />
</ComplexType>
<Action Name="delete_records" IsBound="true">
<Parameter Name="_it" Type="name.space.RegprimeType" Nullable="false" />
</Action>
<Action Name="insert_records" IsBound="true">
<Parameter Name="_it" Type="name.space.RegprimeType" Nullable="false" />
<Parameter Name="MYSTRUC" Type="Collection(name.space.O2C_AGRON_STR)" Nullable="false" />
</Action>
<EntityContainer Name="Container">
<EntitySet Name="Material" EntityType="name.psac.MaterialType" />
<EntitySet Name="MatGroup3" EntityType="name.space.MatGroup3Type" />
<EntitySet Name="MatGroup4" EntityType="name.space.MatGroup4Type" />
<EntitySet Name="Regprime" EntityType="name.space.RegprimeType" />
<EntitySet Name="UserId" EntityType="name.space.UserIdType" />
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

As a workaround, i added a dummy entity, which references the complex type and added the entity to an entityset. The generator then generates the complex type as well as the action like expected. So i am not blocked, but because the edmx file is generated automaticly i have to do this change again manually when a new version of the service is provided.

Impact / Priority

Affected development phase: end of development

Impact: e.g. Inconvenience

Timeline: e.g. QA is in 6 weeks

Error Message

The log of the generation process does not detect the complex type and creates a warning for the bound action:

[INFO] Found bound action with name: delete_records
[INFO] Found bound action with name: insert_records
[INFO] Title: o2c regprime srv v4
[INFO] Raw URL: odata/v4/com.sap.gateway.srvd.bay0.o2c_regprime_srv.v0001
[INFO] Java Package Name: s4odata
[INFO] Java Class Name: AgronomicPrescriptionS4
[INFO] Processing 1 OData service...
[INFO] Processing OData service 'o2c regprime srv v4' at odata/v4/com.sap.gateway.srvd.bay0.o2c_regprime_srv.v0001
[INFO] Found entity type MaterialType from set Material
[INFO] Found entity type MatGroup3Type from set MatGroup3
[INFO] Found entity type MatGroup4Type from set MatGroup4
[INFO] Found entity type RegprimeType from set Regprime
[INFO] Found more than one occurrence of the Java identifier description. The new identifier has been renamed to description_2
[INFO] Found complex type SAP__Message
[INFO] Found entity type UserIdType from set UserId
[WARNING] Skipping generation of unbound operation insert_records: The operation has an unresolvable parameter MYSTRUC of type COMPLEX.
[INFO] Generating Java classes to /home/user/projects/S4ext_AgronomicPrescription/application/target/vdm

Project Details

  • SAP Cloud SDK Version: 3.48.0
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Support Connectivity Service Secret on Kubernetes out-of-the-box (Java)

Issue Description

Important information:

The Cloud SDK for Java doesn't support service credentials of the SAP BTP connectivity service (connectivity plan proxy) out-of-the-box. The documentation describes required changes.

However, the documentation doesn't seem to be complete. The following 3 properties (example values) need to be added:

onpremise_proxy_host: connectivity-proxy.namespace
onpremise_proxy_http_port: '20003'
url: https://xyz.authentication.xyz.hana.ondemand.com/oauth/token

This approach doesn't scale for app development. Instead of this the Cloud SDK should recognize the different configuration structure and has a way to provide the onpremise_proxy_host and onpremise_proxy_http_port without the need to modify a generated secret. For example using environment variables or using a separate secret that can be statically setup in the application namespace without dependency to the clientid and secret that is generated by the service instance.

I reported the same issue for Cloud SDK Java: SAP/cloud-sdk-js#2024

Impact / Priority

  • Makes the setup of Kubernetes deployment complicated
  • Increased effort and support

Project Details

  • Link to GitHub repository: Private repository
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above: Kubernetes

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

ThreadContextExecutionException when trying to make a call to On-Prem s4 Destination form CAP Consumer

Issue Description

We're trying to call an S4 On Prem destination via a CAP consumer (https://pages.github.tools.sap/cap/docs/java/messaging-foundation#receiving) or even a JMS MessagingQueue Listener. Here's the error that we're facing while trying to make the S4 call from the Consumer (it works from the producer since that has the original Request and Thread context):

Important information:

Is there any other way we can retain the Thread context between Producer and Consumer?

Impact / Priority

High Priority

Affected development phase & CC Phase.

Impact: Blocked

Timeline: Immediate (Release in 4 weeks)

Error Message

com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.datamodel.odata.client.exception.ODataResponseException: The HTTP response code (503) indicates an error.

And

(There is no SAP Cloud Connector (SCC) connected to your subaccount. Requested opening of a tunnel for subaccount &quot;cca25baa-98cd-443d-990d-2302a0f0892a&quot; and SCC location ID, with default value, that is empty string or simply not configured. Check the configuration on SCC and cloud side.)

Here is the Stack Trace:

com.sap.cloud.sdk.datamodel.odata.client.request.ODataHealthyResponseValidator.requireHealthyResponse(ODataHealthyResponseValidator.java:53)

io.vavr.control.Try.andThenTry(Try.java:250)

com.sap.cloud.sdk.datamodel.odata.client.request.ODataRequestGeneric.tryExecute(ODataRequestGeneric.java:194)

com.sap.cloud.sdk.datamodel.odata.client.request.ODataRequestGeneric.tryExecuteWithCsrfToken(ODataRequestGeneric.java:225)

com.sap.cloud.sdk.datamodel.odata.client.request.ODataRequestCreate.execute(ODataRequestCreate.java:94)

com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCreate.executeRequest(FluentHelperCreate.java:246)

Maven Dependency Tree

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ commons ---
[INFO] com.sap.iam.apm.foundation:commons:jar:1.0.0-SNAPSHOT    
[INFO] +- junit:junit:jar:4.13.2:compile
[INFO] |  \- org.hamcrest:hamcrest-core:jar:2.2:compile
[INFO] |     \- org.hamcrest:hamcrest:jar:2.2:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.39.1-M3:compile      
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.39.1-M3:compile
[INFO] |  |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.11.4:compile 
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime      
[INFO] |  |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  |  +- io.vavr:vavr:jar:0.10.3:compile
[INFO] |  |  |  \- io.vavr:vavr-match:jar:0.10.3:compile
[INFO] |  |  +- com.google.guava:guava:jar:30.1-jre:compile
[INFO] |  |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  |  |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] |  |  \- com.google.errorprone:error_prone_annotations:jar:2.5.1:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.39.1-M3:compile
[INFO] |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] |  |  \- com.auth0:java-jwt:jar:3.13.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.security.xsuaa:token-client:jar:2.7.8:compile     
[INFO] |  |  |  \- com.sap.cloud.security.xsuaa:api:jar:2.7.8:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile  
[INFO] |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  +- org.apache.commons:commons-lang3:jar:3.11:compile
[INFO] |  |  +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] |  |  \- com.sap.cloud.security:java-api:jar:2.7.8:provided
[INFO] |  |     \- javax.servlet:javax.servlet-api:jar:4.0.1:provided
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.security:java-security:jar:2.7.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.39.1-M3:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.4:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.11.4:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.39.1-M3:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:metering:jar:3.39.1-M3:compile
[INFO] +- com.google.code.gson:gson:jar:2.8.9:compile
[INFO] +- net.minidev:json-smart:jar:2.4.7:compile
[INFO] |  \- net.minidev:accessors-smart:jar:2.4.7:compile
[INFO] |     \- org.ow2.asm:asm:jar:9.1:compile
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] |  |     \- com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:odata-client:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:soap:jar:3.39.1-M3:compile
[INFO] |  |  +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] |  |  |  \- org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] |  |  |     \- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] |  |  |        \- org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] |  |  +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] |  |  +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] |  |  |  |  +- jaxen:jaxen:jar:1.2.0:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] |  |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] |  |  |  +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] |  |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] |  |  |  \- org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] |  |  \- org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] |  +- com.sap.cloud.sdk.s4hana:rfc:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.quality:common:jar:3.39.1-M3:compile
[INFO] |  |  |  \- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  |  \- org.json:json:jar:20201115:compile
[INFO] |  \- com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] |     +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] |     +- joda-time:joda-time:jar:2.9.9:compile
[INFO] |     \- com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] |        +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] |        \- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |           \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] +- org.jsoup:jsoup:jar:1.14.2:compile
[INFO] +- com.sap.cds:cds-integration-cloud-sdk:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-services-api:jar:1.20.1:compile
[INFO] |  |  \- com.sap.cds:cds4j-api:jar:1.24.0:compile
[INFO] |  +- com.sap.cds:cds-services-utils:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cds:cds-adapter-api:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cds:cds4j-core:jar:1.24.0:runtime
[INFO] |  |  +- com.sap.cloud.mt:cds-mtx:jar:1.11.0:compile
[INFO] |  |  |  \- com.sap.cloud.mt:tools:jar:1.11.0:compile
[INFO] |  |  +- javax.jms:javax.jms-api:jar:2.0.1:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO] |  +- com.sap.cds:cds-services-impl:jar:1.20.1:runtime
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.39.1-M3:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:compile
[INFO] |  |  |  \- io.github.resilience4j:resilience4j-core:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:compile
[INFO] |  |  |  \- javax.cache:cache-api:jar:1.1.1:compile
[INFO] |  |  \- io.github.resilience4j:resilience4j-retry:jar:1.7.0:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.39.1-M3:compile
[INFO] \- org.projectlombok:lombok:jar:1.18.18:provided
[INFO] 
[INFO] --------------< com.sap.iam.apm.foundation:tasklist-srv >---------------
[INFO] Building APM Foundation tasklist Service 1.0.0-SNAPSHOT            [3/4]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ tasklist-srv ---
[INFO] com.sap.iam.apm.foundation:tasklist-srv:jar:1.0.0-SNAPSHOT
[INFO] +- org.springframework.security:spring-security-web:jar:5.6.0:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] |  +- org.springframework:spring-core:jar:5.3.5:compile
[INFO] |  |  \- org.springframework:spring-jcl:jar:5.3.5:compile
[INFO] |  +- org.springframework:spring-aop:jar:5.3.5:compile
[INFO] |  +- org.springframework:spring-beans:jar:5.3.5:compile
[INFO] |  +- org.springframework:spring-context:jar:5.3.5:compile
[INFO] |  \- org.springframework:spring-expression:jar:5.3.5:compile
[INFO] +- com.sap.cds:cds-starter-spring-boot-odata:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-starter-spring-boot:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cds:cds-feature-jdbc:jar:1.20.1:runtime
[INFO] |  |  |  +- com.sap.cds:cds4j-runtime:jar:1.24.0:runtime
[INFO] |  |  |  |  \- com.sap.cds:cds4j-jdbc-spi:jar:1.24.0:runtime
[INFO] |  |  |  \- com.sap.cds:cds4j-tx:jar:1.24.0:runtime
[INFO] |  |  +- com.sap.cds:cds-framework-spring-boot:jar:1.20.1:runtime
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-web:jar:2.4.4:compile
[INFO] |  |  |  +- org.springframework.boot:spring-boot-starter-json:jar:2.4.4:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.4:compile
[INFO] |  |  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.11.4:compile
[INFO] |  |  |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.4:compile
[INFO] |  |  |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.44:compile
[INFO] |  |  |  +- org.springframework:spring-web:jar:5.3.12:compile
[INFO] |  |  |  \- org.springframework:spring-webmvc:jar:5.3.5:compile
[INFO] |  |  \- org.springframework.boot:spring-boot-starter-jdbc:jar:2.4.4:compile
[INFO] |  |     \- org.springframework:spring-jdbc:jar:5.3.5:compile
[INFO] |  |        \- org.springframework:spring-tx:jar:5.3.5:compile
[INFO] |  \- com.sap.cds:cds-adapter-odata-v4:jar:1.20.1:runtime
[INFO] |     +- com.sap.cds:cds-adapter-api:jar:1.20.1:compile
[INFO] |     +- com.sap.cds:cds4j-core:jar:1.24.0:runtime
[INFO] |     +- com.sap.cloud.mt:cds-mtx:jar:1.11.0:compile
[INFO] |     |  \- com.sap.cloud.mt:tools:jar:1.11.0:compile
[INFO] |     \- com.sap.cds.repackaged:odata-v4-lib:jar:1.20.1:runtime
[INFO] |        +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.11.4:runtime
[INFO] |        |  +- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.11.4:runtime
[INFO] |        |  |  +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:runtime
[INFO] |        |  |  \- jakarta.activation:jakarta.activation-api:jar:1.2.2:runtime
[INFO] |        |  +- org.codehaus.woodstox:stax2-api:jar:4.2.1:runtime
[INFO] |        |  \- com.fasterxml.woodstox:woodstox-core:jar:6.2.3:runtime
[INFO] |        \- com.fasterxml:aalto-xml:jar:1.2.1:runtime
[INFO] +- org.glassfish:jakarta.el:jar:3.0.4:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.48:compile
[INFO] |  \- org.apache.tomcat:tomcat-annotations-api:jar:9.0.44:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.4:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.8:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.27:compile
[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-actuator:jar:2.4.4:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.11.4:compile
[INFO] |  |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.11.4:compile
[INFO] |  |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.4:compile
[INFO] |  \- io.micrometer:micrometer-core:jar:1.6.5:compile
[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.4.4:compile
[INFO] |  \- org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] +- org.xerial:sqlite-jdbc:jar:3.32.3.3:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.18:compile
[INFO] +- junit:junit:jar:4.13.2:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:2.2:test
[INFO] |     \- org.hamcrest:hamcrest:jar:2.2:test
[INFO] +- org.powermock:powermock-module-junit4:jar:2.0.9:test
[INFO] |  \- org.powermock:powermock-module-junit4-common:jar:2.0.9:test
[INFO] |     +- org.powermock:powermock-reflect:jar:2.0.9:test
[INFO] |     |  +- net.bytebuddy:byte-buddy:jar:1.10.22:test
[INFO] |     |  \- net.bytebuddy:byte-buddy-agent:jar:1.10.22:test
[INFO] |     \- org.powermock:powermock-core:jar:2.0.9:test
[INFO] |        \- org.javassist:javassist:jar:3.27.0-GA:test
[INFO] +- org.powermock:powermock-api-mockito2:jar:2.0.9:test
[INFO] |  +- org.powermock:powermock-api-support:jar:2.0.9:test
[INFO] |  \- org.mockito:mockito-core:jar:3.6.28:test
[INFO] |     \- org.objenesis:objenesis:jar:3.1:test
[INFO] +- com.sap.cds:cds-starter-cloudfoundry:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-feature-hana:jar:1.20.1:compile
[INFO] |  |  \- com.sap.cloud.db.jdbc:ngdbc:jar:2.8.14:compile
[INFO] |  +- com.sap.cds:cds-feature-mt:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cloud.mt:multi-tenant-runtime:jar:1.11.0:compile
[INFO] |  |  \- com.sap.cloud.mt:multi-tenant-subscription:jar:1.11.0:compile
[INFO] |  |     \- com.sap.cloud.instancemanager:client:jar:1.17.2:compile
[INFO] |  |        +- com.sap.cloud.instancemanager:util:jar:1.17.2:compile
[INFO] |  |        \- com.sap.cloud.instancemanager:client-api:jar:1.17.2:compile
[INFO] |  +- com.sap.cds:cds-feature-cloudfoundry:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-feature-xsuaa:jar:1.20.1:compile
[INFO] |  \- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.3:compile
[INFO] |     +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.3:compile
[INFO] |     |  \- com.sap.cloud.security.xsuaa:api:jar:2.8.3:compile
[INFO] |     +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] |     |  \- org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] |     \- org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.39.1-M3:compile
[INFO] |  |  +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] |  |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  |  +- io.vavr:vavr:jar:0.10.3:compile
[INFO] |  |  |  \- io.vavr:vavr-match:jar:0.10.3:compile
[INFO] |  |  +- com.google.guava:guava:jar:30.1-jre:compile
[INFO] |  |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  |  |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] |  |  \- com.google.errorprone:error_prone_annotations:jar:2.5.1:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.39.1-M3:compile
[INFO] |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] |  |  \- com.auth0:java-jwt:jar:3.13.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.security.xsuaa:token-client:jar:2.7.8:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  +- org.apache.commons:commons-lang3:jar:3.11:compile
[INFO] |  |  +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] |  |  \- com.sap.cloud.security:java-api:jar:2.7.8:provided
[INFO] |  |     \- javax.servlet:javax.servlet-api:jar:4.0.1:provided
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.security:java-security:jar:2.7.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.39.1-M3:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.4:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.39.1-M3:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:metering:jar:3.39.1-M3:compile
[INFO] +- net.minidev:json-smart:jar:2.4.7:compile
[INFO] |  \- net.minidev:accessors-smart:jar:2.4.7:compile
[INFO] |     \- org.ow2.asm:asm:jar:9.1:compile
[INFO] +- com.google.code.gson:gson:jar:2.8.9:compile
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] |  |     \- com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:odata-client:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:soap:jar:3.39.1-M3:compile
[INFO] |  |  +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] |  |  |  \- org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] |  |  |     \- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] |  |  +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] |  |  +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] |  |  |  |  +- jaxen:jaxen:jar:1.2.0:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] |  |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] |  |  |  +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] |  |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] |  |  |  \- org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] |  |  \- org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] |  +- com.sap.cloud.sdk.s4hana:rfc:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.quality:common:jar:3.39.1-M3:compile
[INFO] |  |  |  \- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  |  \- org.json:json:jar:20201115:compile
[INFO] |  \- com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] |     +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] |     +- joda-time:joda-time:jar:2.9.9:compile
[INFO] |     \- com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] |        +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] |        \- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |           \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] +- com.sap.cds:cds-integration-cloud-sdk:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-services-api:jar:1.20.1:compile
[INFO] |  |  \- com.sap.cds:cds4j-api:jar:1.24.0:compile
[INFO] |  +- com.sap.cds:cds-services-utils:jar:1.20.1:compile
[INFO] |  |  +- javax.jms:javax.jms-api:jar:2.0.1:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO] |  +- com.sap.cds:cds-services-impl:jar:1.20.1:runtime
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.39.1-M3:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:compile
[INFO] |  |  |  \- io.github.resilience4j:resilience4j-core:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:compile
[INFO] |  |  |  \- javax.cache:cache-api:jar:1.1.1:compile
[INFO] |  |  \- io.github.resilience4j:resilience4j-retry:jar:1.7.0:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.39.1-M3:compile
[INFO] +- com.sap.iam.apm.foundation:commons:jar:1.0.0-SNAPSHOT:compile
[INFO] |  \- org.jsoup:jsoup:jar:1.14.2:compile
[INFO] +- com.zaxxer:HikariCP:jar:3.4.5:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.3.0:compile
[INFO] |  \- com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.3.0:compile
[INFO] |     \- com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.11.4:compile
[INFO] \- com.sap.apm:apm-tracer:jar:1.0.0-20210927172104_b13d0e4124704b11315134f0f08f71720edb545c:compile
[INFO]    +- org.springframework.cloud:spring-cloud-starter-sleuth:jar:3.0.3:compile
[INFO]    |  +- org.springframework.cloud:spring-cloud-starter:jar:3.0.3:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-context:jar:3.0.3:compile
[INFO]    |  |  |  \- org.springframework.security:spring-security-crypto:jar:5.4.5:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-commons:jar:3.0.3:compile
[INFO]    |  |  \- org.springframework.security:spring-security-rsa:jar:1.0.10.RELEASE:compile
[INFO]    |  |     \- org.bouncycastle:bcpkix-jdk15on:jar:1.68:compile
[INFO]    |  |        \- org.bouncycastle:bcprov-jdk15on:jar:1.68:compile
[INFO]    |  +- org.springframework.boot:spring-boot-starter-aop:jar:2.4.4:compile
[INFO]    |  |  \- org.aspectj:aspectjweaver:jar:1.9.6:compile
[INFO]    |  +- org.springframework.cloud:spring-cloud-sleuth-autoconfigure:jar:3.0.3:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-sleuth-instrumentation:jar:3.0.3:compile
[INFO]    |  |  |  \- org.springframework.cloud:spring-cloud-sleuth-api:jar:3.0.3:compile
[INFO]    |  |  \- org.aspectj:aspectjrt:jar:1.9.6:compile
[INFO]    |  \- org.springframework.cloud:spring-cloud-sleuth-brave:jar:3.0.3:compile
[INFO]    |     +- io.zipkin.brave:brave:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-context-slf4j:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-messaging:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-rpc:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-spring-rabbit:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-kafka-clients:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-kafka-streams:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-httpclient:jar:5.13.2:compile
[INFO]    |     |  \- io.zipkin.brave:brave-instrumentation-http:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-httpasyncclient:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-jms:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-mongodb:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.aws:brave-propagation-aws:jar:0.21.3:compile
[INFO]    |     \- io.zipkin.reporter2:zipkin-reporter-metrics-micrometer:jar:2.16.1:compile
[INFO]    |        \- io.zipkin.reporter2:zipkin-reporter:jar:2.16.1:compile
[INFO]    |           \- io.zipkin.zipkin2:zipkin:jar:2.23.0:compile
[INFO]    \- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO]       \- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO]
[INFO] -------< com.sap.iam.apm.foundation:maintenancenotification-srv >-------
[INFO] Building APM Foundation - Maintenance Notification 1.0.0-SNAPSHOT  [4/4]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ maintenancenotification-srv ---
[INFO] com.sap.iam.apm.foundation:maintenancenotification-srv:jar:1.0.0-SNAPSHOT
[INFO] +- org.springframework.security:spring-security-web:jar:5.6.1:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] |  +- org.springframework:spring-aop:jar:5.3.5:compile
[INFO] |  +- org.springframework:spring-beans:jar:5.3.5:compile
[INFO] |  +- org.springframework:spring-context:jar:5.3.5:compile
[INFO] |  \- org.springframework:spring-expression:jar:5.3.5:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.8:compile
[INFO] |  +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] +- org.springframework:spring-core:jar:5.3.15:compile
[INFO] |  \- org.springframework:spring-jcl:jar:5.3.5:compile
[INFO] +- com.sap.cds:cds-starter-spring-boot-odata:jar:1.21.1:compile
[INFO] |  +- com.sap.cds:cds-starter-spring-boot:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cds:cds-feature-jdbc:jar:1.20.1:runtime
[INFO] |  |  |  +- com.sap.cds:cds4j-runtime:jar:1.24.0:runtime
[INFO] |  |  |  |  \- com.sap.cds:cds4j-jdbc-spi:jar:1.24.0:runtime
[INFO] |  |  |  \- com.sap.cds:cds4j-tx:jar:1.24.0:runtime
[INFO] |  |  +- com.sap.cds:cds-framework-spring-boot:jar:1.20.1:runtime
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-web:jar:2.4.4:compile
[INFO] |  |  |  +- org.springframework.boot:spring-boot-starter-json:jar:2.4.4:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.11.4:compile
[INFO] |  |  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.11.4:compile
[INFO] |  |  |  \- org.springframework.boot:spring-boot-starter-tomcat:jar:2.4.4:compile
[INFO] |  |  |     \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.44:compile
[INFO] |  |  \- org.springframework.boot:spring-boot-starter-jdbc:jar:2.4.4:compile
[INFO] |  |     \- org.springframework:spring-jdbc:jar:5.3.5:compile
[INFO] |  |        \- org.springframework:spring-tx:jar:5.3.5:compile
[INFO] |  \- com.sap.cds:cds-adapter-odata-v4:jar:1.20.1:runtime
[INFO] |     +- com.sap.cds:cds-adapter-api:jar:1.20.1:compile
[INFO] |     +- com.sap.cds:cds4j-core:jar:1.24.0:runtime
[INFO] |     +- com.sap.cloud.mt:cds-mtx:jar:1.11.0:compile
[INFO] |     |  \- com.sap.cloud.mt:tools:jar:1.11.0:compile
[INFO] |     \- com.sap.cds.repackaged:odata-v4-lib:jar:1.20.1:runtime
[INFO] |        +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.11.4:runtime
[INFO] |        |  +- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.11.4:runtime
[INFO] |        |  +- org.codehaus.woodstox:stax2-api:jar:4.2.1:runtime
[INFO] |        |  \- com.fasterxml.woodstox:woodstox-core:jar:6.2.3:runtime
[INFO] |        \- com.fasterxml:aalto-xml:jar:1.2.1:runtime
[INFO] +- org.springframework:spring-webmvc:jar:5.3.15:compile
[INFO] |  \- org.springframework:spring-web:jar:5.3.12:compile
[INFO] +- org.glassfish:jakarta.el:jar:3.0.4:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.48:compile
[INFO] |  \- org.apache.tomcat:tomcat-annotations-api:jar:9.0.44:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.4:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.27:compile
[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.4:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-actuator:jar:2.4.4:compile
[INFO] |  |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.11.4:compile
[INFO] |  \- io.micrometer:micrometer-core:jar:1.6.5:compile
[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.4.4:compile
[INFO] |  \- org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] +- org.xerial:sqlite-jdbc:jar:3.32.3.3:compile
[INFO] +- org.mockito:mockito-inline:jar:3.8.0:test
[INFO] |  \- org.mockito:mockito-core:jar:3.6.28:test
[INFO] |     +- net.bytebuddy:byte-buddy:jar:1.10.22:test
[INFO] |     +- net.bytebuddy:byte-buddy-agent:jar:1.10.22:test
[INFO] |     \- org.objenesis:objenesis:jar:3.1:test
[INFO] +- junit:junit:jar:4.13.2:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:2.2:test
[INFO] +- org.powermock:powermock-module-junit4:jar:2.0.9:test
[INFO] |  \- org.powermock:powermock-module-junit4-common:jar:2.0.9:test
[INFO] |     +- org.powermock:powermock-reflect:jar:2.0.9:test
[INFO] |     \- org.powermock:powermock-core:jar:2.0.9:test
[INFO] |        \- org.javassist:javassist:jar:3.27.0-GA:test
[INFO] +- org.powermock:powermock-api-mockito2:jar:2.0.9:test
[INFO] |  \- org.powermock:powermock-api-support:jar:2.0.9:test
[INFO] +- org.apache.qpid:qpid-jms-client:jar:0.59.0:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-jms_2.0_spec:jar:1.0-alpha-2:compile
[INFO] |  +- org.apache.qpid:proton-j:jar:0.33.8:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.60.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.60.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.60.Final:compile
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.60.Final:compile
[INFO] |  |  \- io.netty:netty-transport-native-unix-common:jar:4.1.60.Final:compile
[INFO] |  \- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.60.Final:compile
[INFO] +- io.netty:netty-handler:jar:4.1.73.Final:compile
[INFO] |  +- io.netty:netty-resolver:jar:4.1.60.Final:compile
[INFO] |  \- io.netty:netty-tcnative-classes:jar:2.0.46.Final:compile
[INFO] +- io.netty:netty-codec-http:jar:4.1.73.Final:compile
[INFO] +- io.netty:netty-codec:jar:4.1.73.Final:compile
[INFO] +- com.konghq:unirest-java:jar:3.13.4:compile
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO] |  +- org.apache.httpcomponents:httpmime:jar:4.5.13:compile
[INFO] |  +- org.apache.httpcomponents:httpcore-nio:jar:4.4.14:compile
[INFO] |  \- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.4.18:compile
[INFO] |  \- io.github.x-stream:mxparser:jar:1.2.2:compile
[INFO] |     \- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] +- io.pivotal.cfenv:java-cfenv-boot:jar:2.4.0:compile
[INFO] |  +- io.pivotal.cfenv:java-cfenv:jar:2.4.0:compile
[INFO] |  +- io.pivotal.cfenv:java-cfenv-jdbc:jar:2.4.0:compile
[INFO] |  \- org.springframework.boot:spring-boot:jar:2.4.4:compile
[INFO] +- com.sap.cds:cds-starter-cloudfoundry:jar:1.20.1:compile
[INFO] |  +- com.sap.cds:cds-feature-hana:jar:1.20.1:compile
[INFO] |  |  \- com.sap.cloud.db.jdbc:ngdbc:jar:2.8.14:compile
[INFO] |  +- com.sap.cds:cds-feature-mt:jar:1.20.1:compile
[INFO] |  |  +- com.sap.cloud.mt:multi-tenant-runtime:jar:1.11.0:compile
[INFO] |  |  \- com.sap.cloud.mt:multi-tenant-subscription:jar:1.11.0:compile
[INFO] |  |     \- com.sap.cloud.instancemanager:client:jar:1.17.2:compile
[INFO] |  |        +- com.sap.cloud.instancemanager:util:jar:1.17.2:compile
[INFO] |  |        \- com.sap.cloud.instancemanager:client-api:jar:1.17.2:compile
[INFO] |  +- com.sap.cds:cds-feature-xsuaa:jar:1.20.1:compile
[INFO] |  \- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.3:compile
[INFO] |     +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.3:compile
[INFO] |     |  \- com.sap.cloud.security.xsuaa:api:jar:2.8.3:compile
[INFO] |     +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] |     |  \- org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] |     \- org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] +- com.sap.cds:cds-feature-cloudfoundry:jar:1.20.1:runtime
[INFO] |  +- com.sap.cds:cds-services-api:jar:1.20.1:compile
[INFO] |  |  \- com.sap.cds:cds4j-api:jar:1.24.0:compile
[INFO] |  +- com.sap.cds:cds-services-utils:jar:1.20.1:compile
[INFO] |  |  \- javax.jms:javax.jms-api:jar:2.0.1:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.11.4:compile
[INFO] +- com.sap.cds:cds-feature-message-queuing:jar:1.20.1:runtime
[INFO] |  \- com.sap.cds:cds-services-impl:jar:1.20.1:runtime
[INFO] +- org.springframework.retry:spring-retry:jar:1.3.1:compile
[INFO] |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] +- com.sap.conn.jco-cloud:com.sap.conn.jco.cloud:jar:3.1.2.0:provided
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.39.1-M3:compile
[INFO] |  |  \- com.github.ben-manes.caffeine:caffeine:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] |  |  \- com.auth0:java-jwt:jar:3.13.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.security.xsuaa:token-client:jar:2.7.8:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  +- org.apache.commons:commons-lang3:jar:3.11:compile
[INFO] |  |  \- com.sap.cloud.security:java-api:jar:2.7.8:provided
[INFO] |  |     \- javax.servlet:javax.servlet-api:jar:4.0.1:provided
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.security:java-security:jar:2.7.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.39.1-M3:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:metering:jar:3.39.1-M3:compile
[INFO] +- org.springframework.cloud:spring-cloud-sleuth:pom:1.1.0.RELEASE:import
[INFO] +- org.springframework.cloud:spring-cloud-dependencies:pom:Brixton.SR5:import
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.39.1-M3:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] |  |     \- com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:soap:jar:3.39.1-M3:compile
[INFO] |  |  +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] |  |  |  \- org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] |  |  |     \- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] |  |  +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] |  |  +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] |  |  |  |  +- jaxen:jaxen:jar:1.2.0:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] |  |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] |  |  |  +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] |  |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] |  |  |  \- org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] |  |  \- org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] |  +- com.sap.cloud.sdk.s4hana:rfc:jar:3.39.1-M3:compile
[INFO] |  |  +- com.sap.cloud.sdk.quality:common:jar:3.39.1-M3:compile
[INFO] |  |  |  \- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  |  \- org.json:json:jar:20201115:compile
[INFO] |  \- com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] |     +- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] |     +- joda-time:joda-time:jar:2.9.9:compile
[INFO] |     \- com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] |        +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] |        \- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |           \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] +- net.minidev:json-smart:jar:2.4.7:compile
[INFO] |  \- net.minidev:accessors-smart:jar:2.4.7:compile
[INFO] |     \- org.ow2.asm:asm:jar:9.1:compile
[INFO] +- com.google.code.gson:gson:jar:2.8.9:compile
[INFO] +- com.sap.cds:cds-integration-cloud-sdk:jar:1.20.1:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.39.1-M3:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:compile
[INFO] |  |  |  \- io.github.resilience4j:resilience4j-core:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:compile
[INFO] |  |  +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:compile
[INFO] |  |  |  \- javax.cache:cache-api:jar:1.1.1:compile
[INFO] |  |  \- io.github.resilience4j:resilience4j-retry:jar:1.7.0:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.39.1-M3:compile
[INFO] +- com.sap.iam.apm.foundation:commons:jar:1.0.0-SNAPSHOT:compile
[INFO] |  \- org.jsoup:jsoup:jar:1.14.2:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.18:compile
[INFO] +- com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:odata-client:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.39.1-M3:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.39.1-M3:compile
[INFO] |  +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  +- com.google.guava:guava:jar:30.1-jre:compile
[INFO] |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.11.4:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-core:jar:2.11.4:compile
[INFO] |  +- io.vavr:vavr:jar:0.10.3:compile
[INFO] |  |  \- io.vavr:vavr-match:jar:0.10.3:compile
[INFO] |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  \- com.google.errorprone:error_prone_annotations:jar:2.5.1:compile
[INFO] +- javax.inject:javax.inject:jar:1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.4.4:test
[INFO] |  +- org.springframework.boot:spring-boot-test:jar:2.4.4:test
[INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.4.4:test
[INFO] |  +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] |  +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:runtime
[INFO] |  |  \- jakarta.activation:jakarta.activation-api:jar:1.2.2:runtime
[INFO] |  +- org.assertj:assertj-core:jar:3.18.1:test
[INFO] |  +- org.hamcrest:hamcrest:jar:2.2:test
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.7.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] |  |  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] |  |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.7.1:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] |  +- org.mockito:mockito-junit-jupiter:jar:3.6.28:test
[INFO] |  +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] |  |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] |  +- org.springframework:spring-test:jar:5.3.5:test
[INFO] |  \- org.xmlunit:xmlunit-core:jar:2.7.0:test
[INFO] +- org.springframework.security:spring-security-test:jar:5.5.1:test
[INFO] +- com.zaxxer:HikariCP:jar:3.4.5:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.3.0:compile
[INFO] |  \- com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.3.0:compile
[INFO] |     \- com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.11.4:compile
[INFO] \- com.sap.apm:apm-tracer:jar:1.0.0-20210927172104_b13d0e4124704b11315134f0f08f71720edb545c:compile
[INFO]    +- org.springframework.cloud:spring-cloud-starter-sleuth:jar:3.0.3:compile
[INFO]    |  +- org.springframework.cloud:spring-cloud-starter:jar:3.0.3:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-context:jar:3.0.3:compile
[INFO]    |  |  |  \- org.springframework.security:spring-security-crypto:jar:5.4.5:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-commons:jar:3.0.3:compile
[INFO]    |  |  \- org.springframework.security:spring-security-rsa:jar:1.0.10.RELEASE:compile
[INFO]    |  |     \- org.bouncycastle:bcpkix-jdk15on:jar:1.68:compile
[INFO]    |  |        \- org.bouncycastle:bcprov-jdk15on:jar:1.68:compile
[INFO]    |  +- org.springframework.boot:spring-boot-starter-aop:jar:2.4.4:compile
[INFO]    |  |  \- org.aspectj:aspectjweaver:jar:1.9.6:compile
[INFO]    |  +- org.springframework.cloud:spring-cloud-sleuth-autoconfigure:jar:3.0.3:compile
[INFO]    |  |  +- org.springframework.cloud:spring-cloud-sleuth-instrumentation:jar:3.0.3:compile
[INFO]    |  |  |  \- org.springframework.cloud:spring-cloud-sleuth-api:jar:3.0.3:compile
[INFO]    |  |  \- org.aspectj:aspectjrt:jar:1.9.6:compile
[INFO]    |  \- org.springframework.cloud:spring-cloud-sleuth-brave:jar:3.0.3:compile
[INFO]    |     +- io.zipkin.brave:brave:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-context-slf4j:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-messaging:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-rpc:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-spring-rabbit:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-kafka-clients:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-kafka-streams:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-httpclient:jar:5.13.2:compile
[INFO]    |     |  \- io.zipkin.brave:brave-instrumentation-http:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-httpasyncclient:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-jms:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.brave:brave-instrumentation-mongodb:jar:5.13.2:compile
[INFO]    |     +- io.zipkin.aws:brave-propagation-aws:jar:0.21.3:compile
[INFO]    |     \- io.zipkin.reporter2:zipkin-reporter-metrics-micrometer:jar:2.16.1:compile
[INFO]    |        \- io.zipkin.reporter2:zipkin-reporter:jar:2.16.1:compile
[INFO]    |           \- io.zipkin.zipkin2:zipkin:jar:2.23.0:compile
[INFO]    \- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO]       \- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile

Project Details

Repository:

https://github.tools.sap/AssetPerformanceManagement/assetbase/tree/test/cap-notif

  • SAP Cloud SDK Version:
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

How to Filter On Null

Discussed in #424

Originally posted by SpaceCondor August 17, 2021
Is it possible to filter on a value being 'null'? I am trying to filter on a particular String being null.

For example:

.filter(Order.COMMENTS.equalTo(null))

Type Erasure Causing java.lang.ClassCastException

Issue Description

After generating the client code using 3.39.0 there is an issue preventing usage of a collection of objects.

Important information:

var getOrderBuilder = serviceLayer.getOrdersByKey(165952).;

for(var orderLine : orderResponse.getDocumentLines()) {
			
	System.out.println(orderLine.getItemCode());
	
}

  • Expected outcome

    The order line Item Code is printed for each line in the order.

  • Actual outcome

Exception in thread "main" java.lang.ClassCastException: class com.google.gson.internal.LinkedTreeMap cannot be cast to class com.sap.servicelayer.namespaces.sdk.DocumentLine (com.google.gson.internal.LinkedTreeMap and com.sap.servicelayer.namespaces.sdk.DocumentLine are in unnamed module of loader 'app')
  • In case of issues with any of our VDMs:
    • What happens when a request is performed directly via an HTTP client tool such as Postman?
      • The expected JSON data is returned.

Impact / Priority

	<dependencies>
		<dependency>
			<groupId>com.sap.cloud.sdk.datamodel</groupId>
			<artifactId>odata-v4-core</artifactId>
			<version>3.39.0</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.16</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

Project Details

  • JDK 11
  • 3.39.0 version of CLI generator.

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Failed to get destination with name for OAuth2SAMLBearerAssertion

Issue Description

DefaultHttpClientFactory customFactory = new DefaultHttpClientFactory();
final HttpDestination destination = DestinationAccessor.getDestination(DESTINATION_NAME).asHttp();
logger.info("Destination for OAUTH loaded:"+destination.getAuthenticationType().toString());
HttpClient httpClient = customFactory.createHttpClient(destination);
final HttpResponse productResponse = httpClient.execute(myRequest);

The whole process including getting the destination works for destination type BasicAuth. Once switched to OAuth2SAMLBearerAssertion it fails. See lines 51 onwards here

Impact / Priority

This impacts the testing of the BTP Private Link Service (Beta)

Error Message (excerpt from CF logs on BTP)

com.sap.cloud.sdk.cloudplatform.exception.ShouldNotHappenException: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination with name.

cloud-sdk-destination-error-20210831.txt

mvn-dependancy-tree.txt

Project Details

  • SAP Cloud SDK Version: as provided by SAP Business Application Studio by default (seems like 3.47.0 currently)
  • Link to GitHub repository: https://github.com/MartinPankraz/az-private-linky
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Request to OAuth2ClientCredentials destination fails due to ScpCfDestinationLoader cache

Issue Description

There is a OAuth2ClientCredentials destination configured to make a call to the needed recourses with no additional call for an access token.

Access to the destination is retrieved in a following way:

Destination destination = DestinationAccessor.getDestination(destinationName);

The issue is the following:
Basing on the SAP documentation access token for the destination is cached on the destination level (link). But also, there is a cache in a ScpCfDestinationLoader:

    static final Cache<CacheKey, ScpCfDestination> destinationsCache =
        CacheManager.register(Caffeine.newBuilder().maximumSize(1000).expireAfterWrite(5, TimeUnit.MINUTES).build());

And the problem occurs in case there is a few users that makes this calls almost in parallel, but for the second of them the token, that is stored in a cache has already been expired. In my case the needed recourse provides a token with an exact expiration time set to 5 minutes.

Steps to reproduce the issue:

  1. USER_1 logs in to the app and receive an access token from the destination (Token saved to ScpCfDestinationLoader cache for 5 minutes)
  2. USER_2 logs in to the app in a 30 second and receive the same access token that the USER_1 got (Token saved to ScpCfDestinationLoader cache for 5 minutes)
  3. After 5 minutes, USER_1 makes a call again, and since the cache is expired for him, the destination is called for token again. The data is received correctly
  4. Even though this token has been expired already, USER_2 still will use the same value for the next 30 sec. And during this period the 401 status from the destination will be returned, because the token is invalid.

Impact / Priority

Affected development phase: Production

Impact: Inconvenience

Timeline: ASAP.

Project Details

  • SAP Cloud SDK Version:
         <dependency>
            <groupId>com.sap.cloud.sdk.cloudplatform</groupId>
            <artifactId>scp-cf</artifactId>
            <version>3.46.0</version>
        </dependency>
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above: Spring Boot Web app
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Usage of "Generic HTTP Client" for Javascript is not mentioned properly

Hello
With VDMs, it is easy to access a ODATA service. We need to use a C4C Api for which there is no such VDM.
https://api.sap.com/api/lead/overview

Also, we dont want to generate OData client as we need it for just creating lead for which we have to have entire odata client in our codebase. And keep on updating if the API is changed. Also the ownership of API belongs to C4C and we are part of different LOB.

Other option would be to use "Generic HTTP Client" which is not mentioned clearly in documentation.
https://sap.github.io/cloud-sdk/docs/js/features/connectivity/generic-http-client
Usage of ODataClient and generating one is mentioned, but we would like to go with "Generic HTTP Client" whose usage is not clear (or) please let us know anyother better option.
Kindly point out to source code where it is used and update the same in documentation also.
Thanks!!
Leela

Support for adding headers in batch mode

Issue Description

According to the Integration guide for Contacts OData the Sap-Cuan-SequenceId header is mandatory when updating a ContactOriginData record. When updating in singleton mode I am able to set this header as follows and it works without issue:

service
  .updateContactOriginData(contact)
  .withHeader("Sap-Cuan-SequenceId", "PatchUpdate")
  .executeRequest(destination);

However, there is no option to set this header when performing the same update in batch mode:

service
  .batch()
  .beginChangeSet()
  .updateContactOriginData(contact)
  .withHeader(...) // this option does not exist
  .endChangeSet()
  .executeRequest(destination);

When I run the batch request my SAP Import Monitor shows the error:

Invalid content in field Sap-Cuan-SequenceId

Perhaps I am missing something but this appears to be a shortcoming in the batch mode implementation for the OData v2 typed client to not be able to set the required header. I should note that we are connecting to a SAP S/4HANA Cloud system and so switching to use OData v4 doesn't appear to be an option for us.

Also, before posting here I did ask this same question over at StackOverflow and was encouraged to log the issue here.

Any help would be greatly appreciated!

Thanks,
Kurt

mvn_dep_tree.txt

Impact / Priority

Affected development phase: Development

Impact: Blocked

Timeline: Go-Live end of March

Project Details

  • SAP Cloud SDK Version: 3.39.0
  • OData Service Definition (EDMX) Version: v2
  • Link to GitHub repository: project is private
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs (N/A)
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Documentation for accessing batch responses appears to be outdated

Hello,
I am using the SAP Cloud SDK for Java for Batch Requests. In this case for SalesOrders. In the documentation (https://sap.github.io/cloud-sdk/docs/java/features/odata/use-typed-odata-v4-client-in-sap-cloud-sdk-for-java) I see something like this:

GetByKeyRequestBuilder<BusinessPartner> getBusinessPartnerByKey = ...
CreateRequestBuilder<BusinessPartner> createBusinessPartnerRequest1 = ...
CreateRequestBuilder<BusinessPartner> createBusinessPartnerRequest2 = ...
DeleteRequestBuilder<BusinessPartner> deleteBusinessPartnerRequest = ...

BatchResponse result =
    service
        .batch()
        .addReadOperations(getBusinessPartners, getBusinessPartnerByKey)
        .addChangeset(createBusinessPartnerRequest1, createBusinessPartnerRequest2, deleteBusinessPartnerRequest)
        .execute(destination);

Now I seem to be unable to find this request builder. I can create an instance via its constructor but it needs a different VdmEntity than the SalesOrder I am using. It needs com.sap.cloud.sdk.datamodel.odatav4.core.VdmEntity instead of com.sap.cloud.sdk.datamodel.odata.helper.VdmEntity. I was only able to do it this way:

var changeSet = salesOrderService.batch()
                .beginChangeSet()
                .updateSalesOrder(salesOrderRequest.getSalesOrder())
                .updateSalesOrderItem(salesOrderRequest.getSalesOrderItem())
                .endChangeSet()
                .executeRequest(destination)
                .get(0) // Lets pretend I checked everything, just to shorten the example
                .get();

This creates an instance of a com.sap.cloud.sdk.datamodel.odata.helper.batch.BatchResponseChangeSet. I would however want to make use of the com.sap.cloud.sdk.datamodel.odatav4.core.BatchResponse, that you mention inside the documentation.

Now for my use case I basically have to replace the entire SalesOrder. It is possible that new SalesOrderItems are added as a result, because the newer version of the SalesOrder contains more than before. Since I also have to map these SAP entities to our own master data, I would like to keep the hierarchy intact. This would be easier, if I could make use of the "com.sap.cloud.sdk.datamodel.odatav4.core.BatchResponse.getModificationResult" method inside the documentation. Then I could easily send the hierarchy of requests for a SalesOrder as one changeset and recreate the hierarchy for the responses. I would prefer to be able to just use the Update Method of SalesOrderService together with "replacingEntity" for the whole deeply nested object but sadly this doesn't work (I know that this would mean the SDK would have to create multiple requests).

Because of the differences in VdmEntity I might just be getting some imports wrong but I basically followed https://sap.github.io/cloud-sdk/docs/java/getting-started

Best Regards

Cloud SDK Info:

<dependency>
			<groupId>com.sap.cloud.sdk.s4hana</groupId>
			<artifactId>s4hana-api-odata-onpremise</artifactId>
			<version>${sap.version}</version>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.s4hana</groupId>
			<artifactId>s4hana-api-odata-v4-onpremise</artifactId>
			<version>${sap.version}</version>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.s4hana</groupId>
			<artifactId>s4hana-connectivity</artifactId>
			<version>${sap.version}</version>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.s4hana</groupId>
			<artifactId>s4hana-core</artifactId>
			<version>${sap.version}</version>
		</dependency>
<sap.version>3.59.0</sap.version>

addReadOperations

Issue Description

Important information:

  • Your code
  • Expected outcome
  • Actual outcome
  • Steps attempted to resolve the issue
  • In case of issues with any of our VDMs:
    • What happens when a request is performed directly via an HTTP client tool such as Postman?
    • In case that succeeds please provide details on the request such as URL, query parameters, header parameters, prerequisite requests (e.g. CSRF token), etc.
  • Potentially missing information (open questions you might have)

Impact / Priority

Affected development phase: e.g. Getting Started, Development, Release, Production

Impact: e.g. No Impact, Inconvenience, Impaired, Blocked

Timeline: e.g. Go-Live is in 12 weeks.

Error Message

Please paste your stack trace here within the backticks (replacing this comment)

Project Details

  • SDK Version:
  • Link to GitHub repo:
  • Project type, for example:
    • CAP Project
    • SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided Cloud SDK version & link to relevant source code

Query string error - Invalid symbol in the filter condition

Issue Description

  1. created Java classes for handling SAP Business One Service layer. EDMX file: here
  2. CreateDate is marked as Edm.DateTimeOffset, Java Type is OffsetDateTime.
  3. Trying to filter on CreateDate e.g request.filter(EmployeeInfo.CREATE_DATE.greaterThanEqual(... creates a filter string which SAP B1 rejects with the error: Query string error - Invalid symbol in the filter condition
  4. filter string looks like this ?$filter=((CreateDate%20ge%202021-11-30T14:26:17.915052%2B01:00)%20or%20(UpdateDate%20ge%202021-11-30T14:26:17.916892%2B01:00))

Important information:

  1. Code

GetAllRequestBuilder request = service.getAllEmployeesInfo(); request.filter(EmployeeInfo.CREATE_DATE.greaterThanEqual(OffsetDateTime.now()).or(EmployeeInfo.UPDATE_DATE.greaterThanEqual(OffsetDateTime.now())));
List responseEmployee = request.execute(myDestination);

  1. Expected Outcome: Get a filtered list of the Resource
  2. Actual outcome:
    { "error" : { "code" : 201, "message" : { "lang" : "en-us", "value" : "Query string error - Invalid symbol in the filter condition" } } }
  3. Steps attempted to resolve the issue:
    encapsulated the date string with '' -> working
    image
    image

Impact / Priority

All resources within SAP Business One Service Layer cant be filtered on date fields.

Affected development phase: Development

Impact: e.g. Blocked

Timeline: e.g. GoLive 01.01.2022

Error Message

{
   "error" : {
      "code" : 201,
      "message" : {
         "lang" : "en-us",
         "value" : "Query string error - Invalid symbol in the filter condition"
      }
   }
}

Application Logs
2021-11-30 14:56:27.414 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.AbstractHttpClientFactory : Building a new custom HttpClient.
2021-11-30 14:56:27.414 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.AbstractHttpClientFactory : Skip setting credentials provider.
2021-11-30 14:56:27.415 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.SSLSocketFactoryUtil : The destination uses HTTPS for target "https://url.to.my.b1.servicelayer:50000".
2021-11-30 14:56:27.415 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.SSLContextFactory : Trusting all certificates.
2021-11-30 14:56:27.428 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.connectivity.UriPathMerger : Merging request path /b1s/v2/EmployeesInfo into destination path : /b1s/v2/EmployeesInfo
2021-11-30 14:56:27.429 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.connectivity.UriPathMerger : Merged https://theurl.to.my.servicelayer:50000 and /b1s/v2/EmployeesInfo?$filter=((CreateDate%20ge%202021-11-30T14:56:27.407764%2B01:00)%20or%20(UpdateDate%20ge%202021-11-30T14:56:27.412481%2B01:00)) into https://my.service.layer:50000/b1s/v2/EmployeesInfo?$filter=((CreateDate%20ge%202021-11-30T14:56:27.407764%2B01:00)%20or%20(UpdateDate%20ge%202021-11-30T14:56:27.412481%2B01:00))
2021-11-30 14:56:27.429 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.DefaultHttpDestination : Found these 0 destination header providers for a DefaultHttpDestination:
2021-11-30 14:56:27.429 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.util.FacadeLocator : Located the following extensions of interface com.sap.cloud.sdk.cloudplatform.connectivity.DestinationHeaderProvider: []
2021-11-30 14:56:27.430 DEBUG 74048 --- [ XNIO-1 task-1] c.s.c.s.c.c.DefaultHttpDestination : No valid JSON primitive 'com.sap.cloud.sdk.cloudplatform.connectivity.DestinationPropertyKey@30ebc58e' or 'com.sap.cloud.sdk.cloudplatform.connectivity.DestinationPropertyKey@54aedad3' defined. Falling back to NoAuthentication.
2021-11-30 14:56:29.722 DEBUG 74048 --- [ XNIO-1 task-1] c.b.cloud.aop.logging.LoggingAspect : Exit: com.be1eye.cloud.web.rest.TestResource.validateLicense() with result = <500,The HTTP response code (400) indicates an error. The OData service responded with an error message.,[]>

Maven Dependency Tree
[INFO] com.be1eye.cloud:licenseservice:jar:1.0.0
[INFO] +- io.github.jhipster:jhipster-framework:jar:3.4.0:compile
[INFO] | +- org.springframework:spring-context-support:jar:5.2.3.RELEASE:compile
[INFO] | | +- org.springframework:spring-beans:jar:5.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-context:jar:5.2.3.RELEASE:compile
[INFO] | - org.springframework.boot:spring-boot-autoconfigure:jar:2.2.4.RELEASE:compile
[INFO] +- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.10.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile
[INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
[INFO] | - jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-cache:jar:2.2.4.RELEASE:compile
[INFO] | - org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE:compile
[INFO] | +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] | - org.yaml:snakeyaml:jar:1.25:runtime
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-hibernate5:jar:2.10.2:compile
[INFO] | - javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-hppc:jar:2.10.2:compile
[INFO] | - com.carrotsearch:hppc:jar:0.8.1:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.2:compile
[INFO] +- com.fasterxml.jackson.module:jackson-module-afterburner:jar:2.10.2:compile
[INFO] +- com.h2database:h2:jar:1.4.200:test
[INFO] +- com.hazelcast:hazelcast:jar:3.12.5:compile
[INFO] +- com.hazelcast:hazelcast-hibernate53:jar:1.3.2:compile
[INFO] +- com.hazelcast:hazelcast-spring:jar:3.12.5:compile
[INFO] +- com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.57.0:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:odata-client:jar:3.57.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.57.0:compile
[INFO] | +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.57.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.57.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:security:jar:3.57.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.57.0:compile
[INFO] | | +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.57.0:compile
[INFO] | | +- com.sap.cloud.sdk.quality:common:jar:3.57.0:compile
[INFO] | | | - org.apache.commons:commons-csv:jar:1.9.0:compile
[INFO] | | +- com.github.ben-manes.caffeine:caffeine:jar:2.8.0:compile
[INFO] | | - com.mikesamuel:json-sanitizer:jar:1.2.3:compile
[INFO] | +- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.57.0:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] | +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] | +- com.google.guava:guava:jar:28.2-jre:compile
[INFO] | | +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] | | +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] | | - com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] | +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] | +- org.apache.httpcomponents:httpclient:jar:4.5.10:compile
[INFO] | | - commons-codec:commons-codec:jar:1.13:compile
[INFO] | +- io.vavr:vavr:jar:0.10.4:compile
[INFO] | | - io.vavr:vavr-match:jar:0.10.4:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
[INFO] | - com.google.errorprone:error_prone_annotations:jar:2.9.0:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.22:provided
[INFO] +- javax.inject:javax.inject:jar:1:provided
[INFO] +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] | - net.minidev:json-smart:jar:2.3:compile
[INFO] | - net.minidev:accessors-smart:jar:1.2:compile
[INFO] +- io.springfox:springfox-swagger2:jar:2.9.2:compile
[INFO] | +- io.swagger:swagger-annotations:jar:1.5.20:compile
[INFO] | +- io.swagger:swagger-models:jar:1.5.20:compile
[INFO] | +- io.springfox:springfox-spi:jar:2.9.2:compile
[INFO] | | - io.springfox:springfox-core:jar:2.9.2:compile
[INFO] | +- io.springfox:springfox-schema:jar:2.9.2:compile
[INFO] | +- io.springfox:springfox-swagger-common:jar:2.9.2:compile
[INFO] | +- io.springfox:springfox-spring-web:jar:2.9.2:compile
[INFO] | +- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile
[INFO] | - org.springframework.plugin:spring-plugin-metadata:jar:1.2.0.RELEASE:compile
[INFO] +- io.springfox:springfox-bean-validators:jar:2.9.2:compile
[INFO] +- com.zaxxer:HikariCP:jar:3.4.2:compile
[INFO] +- commons-io:commons-io:jar:2.6:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.9:compile
[INFO] +- javax.cache:cache-api:jar:1.1.1:compile
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.5.2:test
[INFO] | +- org.apiguardian:apiguardian-api:jar:1.1.0:compile
[INFO] | +- org.junit.platform:junit-platform-engine:jar:1.5.2:test
[INFO] | | +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | | - org.junit.platform:junit-platform-commons:jar:1.5.2:test
[INFO] | - org.junit.jupiter:junit-jupiter-api:jar:5.5.2:test
[INFO] +- org.assertj:assertj-core:jar:3.13.2:test
[INFO] +- org.hibernate:hibernate-jpamodelgen:jar:5.4.10.Final:provided
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] | +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] | - org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:compile
[INFO] | +- org.glassfish.jaxb:txw2:jar:2.3.2:compile
[INFO] | +- com.sun.istack:istack-commons-runtime:jar:3.0.8:compile
[INFO] | +- org.jvnet.staxex:stax-ex:jar:1.8.1:compile
[INFO] | - com.sun.xml.fastinfoset:FastInfoset:jar:1.2.16:compile
[INFO] +- org.hibernate:hibernate-core:jar:5.4.10.Final:compile
[INFO] | +- javax.persistence:javax.persistence-api:jar:2.2:compile
[INFO] | +- org.javassist:javassist:jar:3.24.0-GA:compile
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.10.6:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.1.1.Final:compile
[INFO] | +- org.jboss:jandex:jar:2.1.1.Final:compile
[INFO] | +- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] | +- org.dom4j:dom4j:jar:2.1.1:compile
[INFO] | - org.hibernate.common:hibernate-commons-annotations:jar:5.1.0.Final:compile
[INFO] +- org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
[INFO] | - javax.validation:validation-api:jar:2.0.1.Final:compile
[INFO] +- org.liquibase:liquibase-core:jar:3.8.5:compile
[INFO] +- net.logstash.logback:logstash-logback-encoder:jar:6.3:compile
[INFO] +- org.postgresql:postgresql:jar:42.2.9:compile
[INFO] +- org.mapstruct:mapstruct:jar:1.3.1.Final:compile
[INFO] +- org.mapstruct:mapstruct-processor:jar:1.3.1.Final:provided
[INFO] +- org.springframework.boot:spring-boot-configuration-processor:jar:2.2.4.RELEASE:provided
[INFO] +- org.springframework.boot:spring-boot-loader-tools:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:5.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-jcl:jar:5.2.3.RELEASE:compile
[INFO] | - org.apache.commons:commons-compress:jar:1.19:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.2.4.RELEASE:compile
[INFO] | | - org.springframework.boot:spring-boot-actuator:jar:2.2.4.RELEASE:compile
[INFO] | - io.micrometer:micrometer-core:jar:1.3.3:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.11:compile
[INFO] | - org.latencyutils:LatencyUtils:jar:2.0.3:compile
[INFO] +- org.springframework.boot:spring-boot-starter-aop:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:5.2.3.RELEASE:compile
[INFO] | - org.aspectj:aspectjweaver:jar:1.9.5:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.2.4.RELEASE:compile
[INFO] | | - org.springframework:spring-jdbc:jar:5.2.3.RELEASE:compile
[INFO] | +- jakarta.persistence:jakarta.persistence-api:jar:2.2.3:compile
[INFO] | +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] | +- org.springframework.data:spring-data-jpa:jar:2.2.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-orm:jar:5.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-tx:jar:5.2.3.RELEASE:compile
[INFO] | - org.springframework:spring-aspects:jar:5.2.3.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-logging:jar:2.2.4.RELEASE:compile
[INFO] | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | - ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.12.1:compile
[INFO] | | - org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
[INFO] | - org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] +- org.springframework.boot:spring-boot-starter-mail:jar:2.2.4.RELEASE:compile
[INFO] | - com.sun.mail:jakarta.mail:jar:1.6.4:compile
[INFO] | - com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.2.4.RELEASE:compile
[INFO] | +- org.thymeleaf:thymeleaf-spring5:jar:3.0.11.RELEASE:compile
[INFO] | | - org.thymeleaf:thymeleaf:jar:3.0.11.RELEASE:compile
[INFO] | | +- org.attoparser:attoparser:jar:2.0.5.RELEASE:compile
[INFO] | | - org.unbescape:unbescape:jar:1.1.6.RELEASE:compile
[INFO] | - org.thymeleaf.extras:thymeleaf-extras-java8time:jar:3.0.4.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.2.4.RELEASE:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.10.2:compile
[INFO] | | - com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.10.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-validation:jar:2.2.4.RELEASE:compile
[INFO] | | - jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] | +- org.springframework:spring-web:jar:5.2.3.RELEASE:compile
[INFO] | - org.springframework:spring-webmvc:jar:5.2.3.RELEASE:compile
[INFO] | - org.springframework:spring-expression:jar:5.2.3.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.2.4.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.2.4.RELEASE:test
[INFO] | +- org.junit.jupiter:junit-jupiter:jar:5.5.2:test
[INFO] | | - org.junit.jupiter:junit-jupiter-params:jar:5.5.2:test
[INFO] | +- org.junit.vintage:junit-vintage-engine:jar:5.5.2:test
[INFO] | +- org.mockito:mockito-junit-jupiter:jar:3.1.0:test
[INFO] | +- org.hamcrest:hamcrest:jar:2.1:test
[INFO] | +- org.mockito:mockito-core:jar:3.1.0:test
[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.10.6:test
[INFO] | | - org.objenesis:objenesis:jar:2.6:test
[INFO] | +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] | +- org.springframework:spring-test:jar:5.2.3.RELEASE:test
[INFO] | - org.xmlunit:xmlunit-core:jar:2.6.3:test
[INFO] +- org.springframework.boot:spring-boot-test:jar:2.2.4.RELEASE:test
[INFO] | - org.springframework.boot:spring-boot:jar:2.2.4.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-test:jar:5.2.1.RELEASE:test
[INFO] | +- org.springframework.security:spring-security-core:jar:5.2.1.RELEASE:compile
[INFO] | - org.springframework.security:spring-security-web:jar:5.2.1.RELEASE:compile
[INFO] +- com.tngtech.archunit:archunit-junit5-api:jar:0.12.0:test
[INFO] | - com.tngtech.archunit:archunit:jar:0.12.0:test
[INFO] +- com.tngtech.archunit:archunit-junit5-engine:jar:0.12.0:test
[INFO] | - com.tngtech.archunit:archunit-junit5-engine-api:jar:0.12.0:test
[INFO] +- org.zalando:problem-spring-web:jar:0.25.2:compile
[INFO] | +- org.zalando:problem-violations:jar:0.25.2:compile
[INFO] | +- org.zalando:problem-spring-common:jar:0.25.2:compile
[INFO] | +- org.zalando:problem:jar:0.23.0:compile
[INFO] | +- org.zalando:jackson-datatype-problem:jar:0.23.0:compile
[INFO] | - org.zalando:faux-pas:jar:0.8.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-oauth2-client:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-config:jar:5.2.1.RELEASE:compile
[INFO] | +- org.springframework.security:spring-security-oauth2-client:jar:5.2.1.RELEASE:compile
[INFO] | | +- com.nimbusds:oauth2-oidc-sdk:jar:6.14:compile
[INFO] | | | +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] | | | - com.nimbusds:lang-tag:jar:1.5:compile (version selected from constraint [1.4.3,))
[INFO] | | - org.springframework.security:spring-security-oauth2-core:jar:5.2.1.RELEASE:compile
[INFO] | - org.springframework.security:spring-security-oauth2-jose:jar:5.2.1.RELEASE:compile
[INFO] | - com.nimbusds:nimbus-jose-jwt:jar:7.8:compile
[INFO] +- org.springframework.boot:spring-boot-starter-oauth2-resource-server:jar:2.2.4.RELEASE:compile
[INFO] | - org.springframework.security:spring-security-oauth2-resource-server:jar:5.2.1.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-context:jar:2.2.1.RELEASE:compile
[INFO] | | - org.springframework.security:spring-security-crypto:jar:5.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-commons:jar:2.2.1.RELEASE:compile
[INFO] | - org.springframework.security:spring-security-rsa:jar:1.0.9.RELEASE:compile
[INFO] | - org.bouncycastle:bcpkix-jdk15on:jar:1.64:compile
[INFO] | - org.bouncycastle:bcprov-jdk15on:jar:1.64:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-ribbon:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-ribbon:jar:2.2.1.RELEASE:compile
[INFO] | | - org.springframework.cloud:spring-cloud-netflix-archaius:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter-netflix-archaius:jar:2.2.1.RELEASE:compile
[INFO] | | +- com.netflix.archaius:archaius-core:jar:0.7.6:compile
[INFO] | | - commons-configuration:commons-configuration:jar:1.8:compile
[INFO] | +- com.netflix.ribbon:ribbon:jar:2.3.0:compile
[INFO] | | +- com.netflix.ribbon:ribbon-transport:jar:2.3.0:runtime
[INFO] | | | +- io.reactivex:rxnetty-contexts:jar:0.4.9:runtime
[INFO] | | | - io.reactivex:rxnetty-servo:jar:0.4.9:runtime
[INFO] | | - io.reactivex:rxnetty:jar:0.4.9:runtime
[INFO] | +- com.netflix.ribbon:ribbon-core:jar:2.3.0:compile
[INFO] | | - commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- com.netflix.ribbon:ribbon-httpclient:jar:2.3.0:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.2:runtime
[INFO] | | +- com.sun.jersey:jersey-client:jar:1.19.1:runtime
[INFO] | | +- com.sun.jersey.contribs:jersey-apache-client4:jar:1.19.1:runtime
[INFO] | | +- com.netflix.servo:servo-core:jar:0.12.21:runtime
[INFO] | | - com.netflix.netflix-commons:netflix-commons-util:jar:0.3.0:runtime
[INFO] | +- com.netflix.ribbon:ribbon-loadbalancer:jar:2.3.0:compile
[INFO] | | - com.netflix.netflix-commons:netflix-statistics:jar:0.1.1:runtime
[INFO] | - io.reactivex:rxjava:jar:1.3.8:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-hystrix:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-hystrix:jar:2.2.1.RELEASE:compile
[INFO] | +- com.netflix.hystrix:hystrix-core:jar:1.5.18:compile
[INFO] | +- com.netflix.hystrix:hystrix-serialization:jar:1.5.18:compile
[INFO] | +- com.netflix.hystrix:hystrix-metrics-event-stream:jar:1.5.18:compile
[INFO] | +- com.netflix.hystrix:hystrix-javanica:jar:1.5.18:compile
[INFO] | | - org.ow2.asm:asm:jar:5.0.4:compile
[INFO] | - io.reactivex:rxjava-reactive-streams:jar:1.2.1:compile
[INFO] | - org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] +- org.springframework.retry:spring-retry:jar:1.2.5.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-eureka-client:jar:2.2.1.RELEASE:compile
[INFO] | +- com.netflix.eureka:eureka-client:jar:1.9.13:compile
[INFO] | | +- org.codehaus.jettison:jettison:jar:1.3.7:runtime
[INFO] | | | - stax:stax-api:jar:1.0.1:runtime
[INFO] | | +- com.netflix.netflix-commons:netflix-eventbus:jar:0.3.0:runtime
[INFO] | | | +- com.netflix.netflix-commons:netflix-infix:jar:0.3.0:runtime
[INFO] | | | | +- commons-jxpath:commons-jxpath:jar:1.3:runtime
[INFO] | | | | +- joda-time:joda-time:jar:2.10.5:runtime
[INFO] | | | | - org.antlr:antlr-runtime:jar:3.4:runtime
[INFO] | | | | - org.antlr:stringtemplate:jar:3.2.1:runtime
[INFO] | | | - org.apache.commons:commons-math:jar:2.2:runtime
[INFO] | | +- javax.ws.rs:jsr311-api:jar:1.1.1:runtime
[INFO] | | +- com.sun.jersey:jersey-core:jar:1.19.1:runtime
[INFO] | | - com.google.inject:guice:jar:4.1.0:runtime
[INFO] | | - aopalliance:aopalliance:jar:1.0:runtime
[INFO] | +- com.netflix.eureka:eureka-core:jar:1.9.13:compile
[INFO] | | - com.fasterxml.woodstox:woodstox-core:jar:5.2.1:runtime
[INFO] | | - org.codehaus.woodstox:stax2-api:jar:4.2:runtime
[INFO] | +- org.springframework.cloud:spring-cloud-starter-loadbalancer:jar:2.2.1.RELEASE:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-loadbalancer:jar:2.2.1.RELEASE:compile
[INFO] | | | +- io.projectreactor:reactor-core:jar:3.3.2.RELEASE:compile
[INFO] | | | - io.projectreactor.addons:reactor-extra:jar:3.3.2.RELEASE:compile
[INFO] | | - com.stoyanr:evictor:jar:1.0.0:compile
[INFO] | +- com.netflix.ribbon:ribbon-eureka:jar:2.3.0:compile
[INFO] | - com.thoughtworks.xstream:xstream:jar:1.4.11.1:compile
[INFO] | +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | - xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-config:jar:2.2.1.RELEASE:compile
[INFO] | - org.springframework.cloud:spring-cloud-config-client:jar:2.2.1.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-openfeign:jar:2.2.1.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-openfeign-core:jar:2.2.1.RELEASE:compile
[INFO] | | - io.github.openfeign.form:feign-form-spring:jar:3.8.0:compile
[INFO] | | +- io.github.openfeign.form:feign-form:jar:3.8.0:compile
[INFO] | | - commons-fileupload:commons-fileupload:jar:1.4:compile
[INFO] | +- io.github.openfeign:feign-core:jar:10.4.0:compile
[INFO] | +- io.github.openfeign:feign-slf4j:jar:10.4.0:compile
[INFO] | - io.github.openfeign:feign-hystrix:jar:10.4.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-cloud-connectors:jar:2.2.4.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-spring-service-connector:jar:2.0.7.RELEASE:compile
[INFO] | | - org.springframework.cloud:spring-cloud-connectors-core:jar:2.0.7.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-cloudfoundry-connector:jar:2.0.7.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-heroku-connector:jar:2.0.7.RELEASE:compile
[INFO] | - org.springframework.cloud:spring-cloud-localconfig-connector:jar:2.0.7.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-data:jar:5.2.1.RELEASE:compile
[INFO] | - org.springframework.data:spring-data-commons:jar:2.2.4.RELEASE:compile
[INFO] +- io.micrometer:micrometer-registry-prometheus:jar:1.3.3:runtime
[INFO] | - io.prometheus:simpleclient_common:jar:0.7.0:runtime
[INFO] | - io.prometheus:simpleclient:jar:0.8.1:runtime
[INFO] +- io.dropwizard.metrics:metrics-core:jar:4.1.2:compile
[INFO] +- org.springframework.boot:spring-boot-starter-undertow:jar:2.2.4.RELEASE:compile
[INFO] | +- io.undertow:undertow-core:jar:2.0.29.Final:compile
[INFO] | | +- org.jboss.xnio:xnio-api:jar:3.3.8.Final:compile
[INFO] | | - org.jboss.xnio:xnio-nio:jar:3.3.8.Final:runtime
[INFO] | +- io.undertow:undertow-servlet:jar:2.0.29.Final:compile
[INFO] | | - org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.2.Final:compile
[INFO] | +- io.undertow:undertow-websockets-jsr:jar:2.0.29.Final:compile
[INFO] | | - org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec:jar:1.1.4.Final:compile
[INFO] | +- jakarta.servlet:jakarta.servlet-api:jar:4.0.3:compile
[INFO] | - org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] - org.springframework.boot:spring-boot-devtools:jar:2.2.4.RELEASE:compile

Project Details

  • SAP Cloud SDK Version: 3.57.0
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination with name

Issue Description

I'm trying to fetch a destination by name DestinationAccessor.getDestination(name); but get an exception. The destination exists and and a destination service is bound in cloud foundry. It seems that the authentication information cannot be read from the request. Could this be an issue with webflux?

Impact / Priority

Affected development phase: Development,
Impact: Blocked

Error Message

com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination with name 'my_destination_name'.
	at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.lambda$getDestination$1(DestinationAccessor.java:121) ~[cloudplatform-connectivity-3.45.0.jar:na]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint โ‡ข org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.config.web.server.ServerHttpSecurity$OAuth2ResourceServerSpec$BearerTokenAuthenticationWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
	|_ checkpoint โ‡ข org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
	|_ checkpoint โ‡ข HTTP GET "/data-resolver/api/v1/debug/destination/my_destination_name" [ExceptionHandlingWebHandler]
Stack trace:
		at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.lambda$getDestination$1(DestinationAccessor.java:121) ~[cloudplatform-connectivity-3.45.0.jar:na]
		at io.vavr.control.Try.getOrElseThrow(Try.java:748) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.getDestination(DestinationAccessor.java:117) ~[cloudplatform-connectivity-3.45.0.jar:na]
		at com.sap.sva.mxp.cms.dataresolver.api.DebugController.fetchDestination(DebugController.java:46) ~[classes/:na]
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
		at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]
		at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$invoke$0(InvocableHandlerMethod.java:146) ~[spring-webflux-5.3.3.jar:5.3.3]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.2.jar:3.4.2]
        [...]
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
		at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na]
Caused by: com.sap.cloud.sdk.cloudplatform.cache.CacheRuntimeException: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination.
	at com.sap.cloud.sdk.cloudplatform.cache.CacheUtil.lambda$wrapCallableAsFunction$0(CacheUtil.java:45) ~[caching-3.45.0.jar:na]
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2346) ~[caffeine-2.8.8.jar:na]
	at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916) ~[na:na]
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2344) ~[caffeine-2.8.8.jar:na]
	at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2327) ~[caffeine-2.8.8.jar:na]
	at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108) ~[caffeine-2.8.8.jar:na]
	at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:62) ~[caffeine-2.8.8.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.lambda$tryGetDestination$2ec57ad6$1(ScpCfDestinationLoader.java:111) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at io.vavr.control.Try.of(Try.java:75) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.tryGetDestination(ScpCfDestinationLoader.java:110) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationLoaderChain.tryGetDestination(DestinationLoaderChain.java:84) ~[cloudplatform-connectivity-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationLoader.tryGetDestination(DestinationLoader.java:36) ~[cloudplatform-connectivity-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.tryGetDestination(DestinationAccessor.java:139) ~[cloudplatform-connectivity-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.getDestination(DestinationAccessor.java:117) ~[cloudplatform-connectivity-3.45.0.jar:na]
	at com.sap.sva.mxp.cms.dataresolver.api.DebugController.fetchDestination(DebugController.java:46) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]
	at org.springframework.web.reactive.result.method.InvocableHandlerMethod.lambda$invoke$0(InvocableHandlerMethod.java:146) ~[spring-webflux-5.3.3.jar:5.3.3]
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.2.jar:3.4.2]
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1789) ~[reactor-core-3.4.2.jar:3.4.2]
	[...]
	at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na]
Caused by: com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get destination.
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getDestinationConfigurationAsJson(ScpCfDestinationServiceAdapter.java:252) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationFromDestinationService(ScpCfDestinationLoader.java:218) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationByTenant(ScpCfDestinationLoader.java:172) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.getDestinationConfigurationByRetrievalStrategy(ScpCfDestinationLoader.java:149) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.loadAndParseDestination(ScpCfDestinationLoader.java:126) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationLoader.lambda$null$0(ScpCfDestinationLoader.java:113) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.cache.CacheUtil.lambda$wrapCallableAsFunction$0(CacheUtil.java:42) ~[caching-3.45.0.jar:na]
	... 165 common frames omitted
Caused by: com.sap.cloud.sdk.cloudplatform.resilience.ResilienceRuntimeException: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to determine cache key.
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$null$4(Resilience4jDecorationStrategy.java:243) ~[resilience4j-3.45.0.jar:na]
	at io.vavr.control.Try.onFailure(Try.java:659) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$decorateCallable$5(Resilience4jDecorationStrategy.java:242) ~[resilience4j-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorationStrategy.executeCallable(ResilienceDecorationStrategy.java:243) ~[resilience-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorator.executeCallable(ResilienceDecorator.java:232) ~[resilience-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getDestinationConfigurationAsJson(ScpCfDestinationServiceAdapter.java:239) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	... 171 common frames omitted
Caused by: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to determine cache key.
	at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:299) ~[cloudplatform-core-3.45.0.jar:na]
	at com.sap.cloud.sdk.frameworks.resilience4j.DefaultThreadContextProvider.lambda$decorateCallable$0(DefaultThreadContextProvider.java:26) ~[resilience4j-3.45.0.jar:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	... 3 common frames omitted
Caused by: com.sap.cloud.sdk.cloudplatform.security.exception.TokenRequestFailedException: Failed to determine cache key.
	at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.lambda$getUserTokenCacheKey$1(XsuaaService.java:107) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at io.vavr.control.Try.getOrElseThrow(Try.java:748) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.getUserTokenCacheKey(XsuaaService.java:107) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.retrieveAccessTokenViaUserTokenGrant(XsuaaService.java:329) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.getAccessTokenForDestinationService(ScpCfDestinationServiceAdapter.java:266) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestinationServiceAdapter.lambda$getDestinationConfigurationAsJson$0(ScpCfDestinationServiceAdapter.java:241) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.lambda$decorateCallable$3(Resilience4jDecorationStrategy.java:222) ~[resilience4j-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.security.SecurityContextThreadContextDecorator.lambda$decorateCallable$2(SecurityContextThreadContextDecorator.java:51) ~[security-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextCallable.call(ThreadContextCallable.java:225) ~[cloudplatform-core-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:293) ~[cloudplatform-core-3.45.0.jar:na]
	... 5 common frames omitted
Caused by: com.sap.cloud.sdk.cloudplatform.security.principal.exception.PrincipalAccessException: Could not read a principal from neither a given JWT nor a given Basic Authentication header.
	at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.createFallbackException(ScpCfPrincipalFacade.java:92) ~[security-scp-cf-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.lambda$tryGetCurrentPrincipal$0(ScpCfPrincipalFacade.java:87) ~[security-scp-cf-3.45.0.jar:na]
	at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:87) ~[security-scp-cf-3.45.0.jar:na]
	at io.vavr.control.Try.flatMapTry(Try.java:490) ~[vavr-0.10.3.jar:na]
	at io.vavr.control.Try.flatMap(Try.java:472) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.cloudplatform.security.principal.PrincipalAccessor.tryGetCurrentPrincipal(PrincipalAccessor.java:112) ~[security-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.security.principal.PrincipalAccessor.getCurrentPrincipal(PrincipalAccessor.java:95) ~[security-3.45.0.jar:na]
	at com.sap.cloud.sdk.cloudplatform.cache.CacheKey.ofTenantAndPrincipalIsolation(CacheKey.java:184) ~[caching-3.45.0.jar:na]
	at io.vavr.control.Try.of(Try.java:75) ~[vavr-0.10.3.jar:na]
	at com.sap.cloud.sdk.cloudplatform.connectivity.XsuaaService.getUserTokenCacheKey(XsuaaService.java:106) ~[cloudplatform-connectivity-scp-cf-3.45.0.jar:na]
	... 12 common frames omitted
	Suppressed: com.sap.cloud.sdk.cloudplatform.security.principal.exception.PrincipalAccessException: Could not read a principal from neither a given JWT nor a given Basic Authentication header.
		at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.createFallbackException(ScpCfPrincipalFacade.java:92) ~[security-scp-cf-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.lambda$tryGetCurrentPrincipal$0(ScpCfPrincipalFacade.java:87) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:87) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.flatMapTry(Try.java:490) ~[vavr-0.10.3.jar:na]
		at io.vavr.control.Try.flatMap(Try.java:472) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.PrincipalAccessor.tryGetCurrentPrincipal(PrincipalAccessor.java:112) ~[security-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.PrincipalThreadContextListener.afterInitialize(PrincipalThreadContextListener.java:79) ~[security-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextCallable.notifyAfterInitialize(ThreadContextCallable.java:133) ~[cloudplatform-core-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextCallable.call(ThreadContextCallable.java:219) ~[cloudplatform-core-3.45.0.jar:na]
		... 6 common frames omitted
		Suppressed: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextPropertyException: Property 'com.sap.cloud.sdk.cloudplatform.security.principal.PrincipalThreadContextListener:principal' does not exist.
			at com.sap.cloud.sdk.cloudplatform.thread.DefaultThreadContext.getProperty(DefaultThreadContext.java:45)
			at com.sap.cloud.sdk.cloudplatform.security.principal.DefaultPrincipalFacade.lambda$tryGetCurrentPrincipal$0(DefaultPrincipalFacade.java:28)
			at io.vavr.control.Try.flatMapTry(Try.java:490)
			at io.vavr.control.Try.flatMap(Try.java:472)
			at com.sap.cloud.sdk.cloudplatform.security.principal.DefaultPrincipalFacade.tryGetCurrentPrincipal(DefaultPrincipalFacade.java:28)
			at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:81)
			... 12 common frames omitted
		Suppressed: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextPropertyException: Property 'com.sap.cloud.sdk.cloudplatform.servlet.RequestThreadContextListener:request' does not exist.
			at com.sap.cloud.sdk.cloudplatform.thread.DefaultThreadContext.getProperty(DefaultThreadContext.java:45)
			at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.lambda$tryGetCurrentRequest$0(DefaultRequestFacade.java:29)
			at io.vavr.control.Try.flatMapTry(Try.java:490)
			at io.vavr.control.Try.flatMap(Try.java:472)
			at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.tryGetCurrentRequest(DefaultRequestFacade.java:29)
			at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessor.tryGetCurrentRequest(RequestAccessor.java:96)
			at com.sap.cloud.sdk.cloudplatform.security.DefaultAuthTokenFacade.lambda$tryGetCurrentToken$2(DefaultAuthTokenFacade.java:136)
			at io.vavr.control.Try.orElse(Try.java:726)
			at com.sap.cloud.sdk.cloudplatform.security.DefaultAuthTokenFacade.tryGetCurrentToken(DefaultAuthTokenFacade.java:136)
			at com.sap.cloud.sdk.cloudplatform.security.AuthTokenAccessor.tryGetCurrentToken(AuthTokenAccessor.java:100)
			at com.sap.cloud.sdk.cloudplatform.security.principal.AuthTokenPrincipalExtractor.tryGetCurrentPrincipal(AuthTokenPrincipalExtractor.java:192)
			at io.vavr.control.Try.orElse(Try.java:726)
			at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:83)
			... 12 common frames omitted
		Suppressed: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextPropertyException: Property 'com.sap.cloud.sdk.cloudplatform.servlet.RequestThreadContextListener:request' does not exist.
			at com.sap.cloud.sdk.cloudplatform.thread.DefaultThreadContext.getProperty(DefaultThreadContext.java:45)
			at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.lambda$tryGetCurrentRequest$0(DefaultRequestFacade.java:29)
			at io.vavr.control.Try.flatMapTry(Try.java:490)
			at io.vavr.control.Try.flatMap(Try.java:472)
			at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.tryGetCurrentRequest(DefaultRequestFacade.java:29)
			at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessor.tryGetCurrentRequest(RequestAccessor.java:96)
			at com.sap.cloud.sdk.cloudplatform.security.DefaultBasicAuthenticationFacade.extractBasicCredentialsFromRequest(DefaultBasicAuthenticationFacade.java:72)
			at io.vavr.control.Try.orElse(Try.java:726)
			at com.sap.cloud.sdk.cloudplatform.security.DefaultBasicAuthenticationFacade.tryGetBasicCredentials(DefaultBasicAuthenticationFacade.java:55)
			at com.sap.cloud.sdk.cloudplatform.security.BasicAuthenticationAccessor.tryGetCurrentBasicCredentials(BasicAuthenticationAccessor.java:57)
			at com.sap.cloud.sdk.cloudplatform.security.principal.BasicCredentialsPrincipalExtractor.tryGetCurrentPrincipal(BasicCredentialsPrincipalExtractor.java:20)
			at io.vavr.control.Try.orElse(Try.java:726)
			at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:85)
			... 12 common frames omitted
	Suppressed: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextPropertyException: Property 'com.sap.cloud.sdk.cloudplatform.servlet.RequestThreadContextListener:request' does not exist.
		at com.sap.cloud.sdk.cloudplatform.thread.DefaultThreadContext.getProperty(DefaultThreadContext.java:45) ~[cloudplatform-core-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.lambda$tryGetCurrentRequest$0(DefaultRequestFacade.java:29) ~[servlet-3.45.0.jar:na]
		at io.vavr.control.Try.flatMapTry(Try.java:490) ~[vavr-0.10.3.jar:na]
		at io.vavr.control.Try.flatMap(Try.java:472) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.tryGetCurrentRequest(DefaultRequestFacade.java:29) ~[servlet-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessor.tryGetCurrentRequest(RequestAccessor.java:96) ~[servlet-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.DefaultAuthTokenFacade.lambda$tryGetCurrentToken$2(DefaultAuthTokenFacade.java:136) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.DefaultAuthTokenFacade.tryGetCurrentToken(DefaultAuthTokenFacade.java:136) ~[security-scp-cf-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.AuthTokenAccessor.tryGetCurrentToken(AuthTokenAccessor.java:100) ~[security-scp-cf-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.AuthTokenPrincipalExtractor.tryGetCurrentPrincipal(AuthTokenPrincipalExtractor.java:192) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:83) ~[security-scp-cf-3.45.0.jar:na]
		... 19 common frames omitted
	Suppressed: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextPropertyException: Property 'com.sap.cloud.sdk.cloudplatform.servlet.RequestThreadContextListener:request' does not exist.
		at com.sap.cloud.sdk.cloudplatform.thread.DefaultThreadContext.getProperty(DefaultThreadContext.java:45) ~[cloudplatform-core-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.lambda$tryGetCurrentRequest$0(DefaultRequestFacade.java:29) ~[servlet-3.45.0.jar:na]
		at io.vavr.control.Try.flatMapTry(Try.java:490) ~[vavr-0.10.3.jar:na]
		at io.vavr.control.Try.flatMap(Try.java:472) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.DefaultRequestFacade.tryGetCurrentRequest(DefaultRequestFacade.java:29) ~[servlet-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessor.tryGetCurrentRequest(RequestAccessor.java:96) ~[servlet-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.DefaultBasicAuthenticationFacade.extractBasicCredentialsFromRequest(DefaultBasicAuthenticationFacade.java:72) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.DefaultBasicAuthenticationFacade.tryGetBasicCredentials(DefaultBasicAuthenticationFacade.java:55) ~[security-scp-cf-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.BasicAuthenticationAccessor.tryGetCurrentBasicCredentials(BasicAuthenticationAccessor.java:57) ~[security-scp-cf-3.45.0.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.BasicCredentialsPrincipalExtractor.tryGetCurrentPrincipal(BasicCredentialsPrincipalExtractor.java:20) ~[security-scp-cf-3.45.0.jar:na]
		at io.vavr.control.Try.orElse(Try.java:726) ~[vavr-0.10.3.jar:na]
		at com.sap.cloud.sdk.cloudplatform.security.principal.ScpCfPrincipalFacade.tryGetCurrentPrincipal(ScpCfPrincipalFacade.java:85) ~[security-scp-cf-3.45.0.jar:na]
		... 19 common frames omitted

Dependency Tree

[INFO] com.sap.sva.mxp.cms.notifications:mxp-hcms-data-resolver:jar:0.0.1
[INFO] +- org.springframework.boot:spring-boot-starter-webflux:jar:2.4.2:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.4.2:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:2.4.2:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.4.2:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.4.2:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  \- org.yaml:snakeyaml:jar:1.27:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:2.4.2:compile
[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.1:compile
[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.1:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.1:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-reactor-netty:jar:2.4.2:compile
[INFO] |  |  \- io.projectreactor.netty:reactor-netty-http:jar:1.0.3:compile
[INFO] |  |     +- io.netty:netty-codec-http:jar:4.1.59.Final:compile
[INFO] |  |     |  +- io.netty:netty-common:jar:4.1.59.Final:compile
[INFO] |  |     |  +- io.netty:netty-buffer:jar:4.1.59.Final:compile
[INFO] |  |     |  +- io.netty:netty-transport:jar:4.1.59.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec:jar:4.1.59.Final:compile
[INFO] |  |     |  \- io.netty:netty-handler:jar:4.1.59.Final:compile
[INFO] |  |     +- io.netty:netty-codec-http2:jar:4.1.59.Final:compile
[INFO] |  |     +- io.netty:netty-resolver-dns:jar:4.1.59.Final:compile
[INFO] |  |     |  +- io.netty:netty-resolver:jar:4.1.59.Final:compile
[INFO] |  |     |  \- io.netty:netty-codec-dns:jar:4.1.59.Final:compile
[INFO] |  |     +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.59.Final:compile
[INFO] |  |     |  \- io.netty:netty-transport-native-unix-common:jar:4.1.59.Final:compile
[INFO] |  |     +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.59.Final:compile
[INFO] |  |     \- io.projectreactor.netty:reactor-netty-core:jar:1.0.3:compile
[INFO] |  |        \- io.netty:netty-handler-proxy:jar:4.1.59.Final:compile
[INFO] |  |           \- io.netty:netty-codec-socks:jar:4.1.59.Final:compile
[INFO] |  +- org.springframework:spring-web:jar:5.3.3:compile
[INFO] |  |  \- org.springframework:spring-beans:jar:5.3.3:compile
[INFO] |  \- org.springframework:spring-webflux:jar:5.3.3:compile
[INFO] |     \- io.projectreactor:reactor-core:jar:3.4.2:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:3.0.1:compile
[INFO] |  +- org.springframework.cloud:spring-cloud-netflix-eureka-client:jar:3.0.1:compile
[INFO] |  +- com.netflix.eureka:eureka-client:jar:1.10.11:compile
[INFO] |  |  +- com.netflix.netflix-commons:netflix-eventbus:jar:0.3.0:compile
[INFO] |  |  |  +- com.netflix.netflix-commons:netflix-infix:jar:0.3.0:runtime
[INFO] |  |  |  |  +- commons-jxpath:commons-jxpath:jar:1.3:runtime
[INFO] |  |  |  |  +- joda-time:joda-time:jar:2.3:runtime
[INFO] |  |  |  |  \- org.antlr:antlr-runtime:jar:3.4:runtime
[INFO] |  |  |  |     +- org.antlr:stringtemplate:jar:3.2.1:runtime
[INFO] |  |  |  |     \- antlr:antlr:jar:2.7.7:runtime
[INFO] |  |  |  \- org.apache.commons:commons-math:jar:2.2:runtime
[INFO] |  |  +- com.thoughtworks.xstream:xstream:jar:1.4.15:compile
[INFO] |  |  |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] |  |  +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] |  |  +- com.netflix.servo:servo-core:jar:0.12.21:compile
[INFO] |  |  +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] |  |  |  \- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  |  +- com.google.inject:guice:jar:4.1.0:compile
[INFO] |  |  |  +- javax.inject:javax.inject:jar:1:compile
[INFO] |  |  |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.1:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.12.1:compile
[INFO] |  |  \- org.codehaus.jettison:jettison:jar:1.4.0:runtime
[INFO] |  +- com.netflix.eureka:eureka-core:jar:1.10.11:compile
[INFO] |  |  \- com.fasterxml.woodstox:woodstox-core:jar:5.3.0:compile
[INFO] |  |     \- org.codehaus.woodstox:stax2-api:jar:4.2:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-starter-loadbalancer:jar:3.0.1:compile
[INFO] |     +- org.springframework.cloud:spring-cloud-loadbalancer:jar:3.0.1:compile
[INFO] |     |  \- io.projectreactor.addons:reactor-extra:jar:3.4.2:compile
[INFO] |     +- org.springframework.boot:spring-boot-starter-cache:jar:2.4.2:compile
[INFO] |     |  \- org.springframework:spring-context-support:jar:5.3.3:compile
[INFO] |     \- com.stoyanr:evictor:jar:1.0.0:compile
[INFO] +- com.sap.sva.mxp:mxp-messages-dtos:jar:0.1.35:compile
[INFO] +- org.springframework.cloud:spring-cloud-stream-binder-rabbit:jar:3.1.1:compile
[INFO] |  +- org.springframework.cloud:spring-cloud-stream-binder-rabbit-core:jar:3.1.1:compile
[INFO] |  |  +- org.springframework.integration:spring-integration-amqp:jar:5.4.3:compile
[INFO] |  |  \- com.rabbitmq:http-client:jar:2.1.0.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-amqp:jar:2.4.2:compile
[INFO] |  |  \- org.springframework.amqp:spring-rabbit:jar:2.3.4:compile
[INFO] |  |     +- org.springframework.amqp:spring-amqp:jar:2.3.4:compile
[INFO] |  |     \- com.rabbitmq:amqp-client:jar:5.10.0:compile
[INFO] |  +- org.springframework.integration:spring-integration-jmx:jar:5.4.3:compile
[INFO] |  \- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |     \- commons-codec:commons-codec:jar:1.15:compile
[INFO] +- org.springframework.cloud:spring-cloud-stream:jar:3.1.1:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-validation:jar:2.4.2:compile
[INFO] |  |  +- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] |  |  \- org.hibernate.validator:hibernate-validator:jar:6.1.7.Final:compile
[INFO] |  |     +- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] |  |     +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] |  |     \- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] |  +- org.springframework:spring-messaging:jar:5.3.3:compile
[INFO] |  +- org.springframework.integration:spring-integration-core:jar:5.4.3:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:5.3.3:compile
[INFO] |  |  +- org.springframework:spring-context:jar:5.3.3:compile
[INFO] |  |  |  \- org.springframework:spring-expression:jar:5.3.3:compile
[INFO] |  |  \- org.springframework:spring-tx:jar:5.3.3:compile
[INFO] |  +- org.springframework.retry:spring-retry:jar:1.3.1:compile
[INFO] |  |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-function-context:jar:3.1.1:compile
[INFO] |     +- net.jodah:typetools:jar:0.6.2:compile
[INFO] |     \- org.springframework.cloud:spring-cloud-function-core:jar:3.1.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.4.2:compile
[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.4.2:compile
[INFO] |  |  \- org.springframework.boot:spring-boot-actuator:jar:2.4.2:compile
[INFO] |  \- io.micrometer:micrometer-core:jar:1.6.3:compile
[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] +- de.codecentric:spring-boot-admin-starter-client:jar:2.4.0:compile
[INFO] |  \- de.codecentric:spring-boot-admin-client:jar:2.4.0:compile
[INFO] +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.43:compile
[INFO] |  \- org.apache.tomcat:tomcat-annotations-api:jar:9.0.41:compile
[INFO] +- org.jooq:jooq:jar:3.14.9:compile
[INFO] |  +- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |  \- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] |     \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] +- org.jooq:jooq-meta:jar:3.14.9:compile
[INFO] +- org.jooq:jooq-codegen:jar:3.14.9:compile
[INFO] +- org.springdoc:springdoc-openapi-webflux-core:jar:1.5.3:compile
[INFO] |  \- org.springdoc:springdoc-openapi-common:jar:1.5.3:compile
[INFO] |     +- io.swagger.core.v3:swagger-models:jar:2.1.6:compile
[INFO] |     +- io.swagger.core.v3:swagger-annotations:jar:2.1.6:compile
[INFO] |     +- io.swagger.core.v3:swagger-integration:jar:2.1.6:compile
[INFO] |     |  \- io.swagger.core.v3:swagger-core:jar:2.1.6:compile
[INFO] |     |     \- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.12.1:compile
[INFO] |     \- io.github.classgraph:classgraph:jar:4.8.69:compile
[INFO] +- org.springdoc:springdoc-openapi-webflux-ui:jar:1.5.3:compile
[INFO] |  +- org.webjars:swagger-ui:jar:3.40.0:compile
[INFO] |  \- org.webjars:webjars-locator-core:jar:0.46:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.45.0:compile
[INFO] |  |  +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] |  |  \- com.auth0:java-jwt:jar:3.15.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.45.0:runtime
[INFO] |  |  |  +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.6.1:compile
[INFO] |  |  |  |  \- io.github.resilience4j:resilience4j-core:jar:1.6.1:compile
[INFO] |  |  |  +- io.github.resilience4j:resilience4j-bulkhead:jar:1.6.1:compile
[INFO] |  |  |  +- io.github.resilience4j:resilience4j-timelimiter:jar:1.6.1:compile
[INFO] |  |  |  +- io.github.resilience4j:resilience4j-cache:jar:1.6.1:compile
[INFO] |  |  |  |  \- javax.cache:cache-api:jar:1.1.1:compile
[INFO] |  |  |  \- io.github.resilience4j:resilience4j-retry:jar:1.6.1:compile
[INFO] |  |  +- com.sap.cloud.security.xsuaa:token-client:jar:2.8.8:compile
[INFO] |  |  |  \- org.json:json:jar:20201115:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  +- net.minidev:json-smart:jar:2.3:compile
[INFO] |  |  |  \- net.minidev:accessors-smart:jar:1.2:compile
[INFO] |  |  \- com.sap.cloud.security:java-api:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.security:java-security:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.45.0:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:metering:jar:3.45.0:compile
[INFO] +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.quality:common:jar:3.45.0:compile
[INFO] |  |  \- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  +- io.vavr:vavr:jar:0.10.3:compile
[INFO] |  |  \- io.vavr:vavr-match:jar:0.10.3:compile
[INFO] |  +- com.google.guava:guava:jar:30.0-jre:compile
[INFO] |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] |  +- com.github.ben-manes.caffeine:caffeine:jar:2.8.8:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.1:compile
[INFO] |  +- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  +- com.google.errorprone:error_prone_annotations:jar:2.6.0:compile
[INFO] |  \- org.apache.commons:commons-lang3:jar:3.11:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter:jar:3.0.1:compile
[INFO] |  +- org.springframework.cloud:spring-cloud-context:jar:3.0.1:compile
[INFO] |  |  \- org.springframework.security:spring-security-crypto:jar:5.4.2:compile
[INFO] |  +- org.springframework.cloud:spring-cloud-commons:jar:3.0.1:compile
[INFO] |  \- org.springframework.security:spring-security-rsa:jar:1.0.9.RELEASE:compile
[INFO] |     \- org.bouncycastle:bcpkix-jdk15on:jar:1.64:compile
[INFO] |        \- org.bouncycastle:bcprov-jdk15on:jar:1.64:compile
[INFO] +- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.8.4:compile
[INFO] |  +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.8.4:compile
[INFO] |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.3:compile
[INFO] |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.3:compile
[INFO] |  |  \- com.sap.cloud.security.xsuaa:api:jar:2.8.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-security:jar:2.4.2:compile
[INFO] |  |  +- org.springframework.security:spring-security-config:jar:5.4.2:compile
[INFO] |  |  \- org.springframework.security:spring-security-web:jar:5.4.2:compile
[INFO] |  +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.2:compile
[INFO] |  |  +- com.nimbusds:nimbus-jose-jwt:jar:9.1.3:compile
[INFO] |  |  |  \- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] |  |  +- org.springframework.security:spring-security-core:jar:5.4.2:compile
[INFO] |  |  \- org.springframework.security:spring-security-oauth2-core:jar:5.4.2:compile
[INFO] |  \- org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.2:compile
[INFO] +- org.springframework.boot:spring-boot-configuration-processor:jar:2.4.2:compile (optional)
[INFO] +- org.projectlombok:lombok:jar:1.18.20:compile (optional)
[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:2.4.2:test
[INFO]    +- org.springframework.boot:spring-boot-test:jar:2.4.2:test
[INFO]    +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.4.2:test
[INFO]    +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO]    +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:compile
[INFO]    |  \- jakarta.activation:jakarta.activation-api:jar:1.2.2:compile
[INFO]    +- org.assertj:assertj-core:jar:3.18.1:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.2:test
[INFO]    +- org.junit.jupiter:junit-jupiter:jar:5.7.0:test
[INFO]    |  +- org.junit.jupiter:junit-jupiter-api:jar:5.7.0:test
[INFO]    |  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO]    |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO]    |  |  \- org.junit.platform:junit-platform-commons:jar:1.7.0:test
[INFO]    |  +- org.junit.jupiter:junit-jupiter-params:jar:5.7.0:test
[INFO]    |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.7.0:test
[INFO]    |     \- org.junit.platform:junit-platform-engine:jar:1.7.0:test
[INFO]    +- org.mockito:mockito-core:jar:3.6.28:test
[INFO]    |  +- net.bytebuddy:byte-buddy:jar:1.10.19:test
[INFO]    |  +- net.bytebuddy:byte-buddy-agent:jar:1.10.19:test
[INFO]    |  \- org.objenesis:objenesis:jar:3.1:test
[INFO]    +- org.mockito:mockito-junit-jupiter:jar:3.6.28:test
[INFO]    +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO]    |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO]    +- org.springframework:spring-core:jar:5.3.3:compile
[INFO]    |  \- org.springframework:spring-jcl:jar:5.3.3:compile
[INFO]    +- org.springframework:spring-test:jar:5.3.3:test
[INFO]    \- org.xmlunit:xmlunit-core:jar:2.7.0:test

Project Details

  • SAP Cloud SDK Version: 3.45.0
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • [ x] Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Direct call of stream (/$value) is not supported in generated v2 client and response header missing

Issue Description

When I generate v2 clients out of the EDMX file, I have no chance to request the binary data stream without requesting the entity first.

Important information:
for example to receive a files content with a "file-service", I have to call this:

File file= fileService.withServicePath("FILE_SRV").getFileByKey("abc").executeRequest(sapHttpDestination);
InputStream i = file.fetchAsStream();

This are two HTTP requests, one to get the file, and one to get the /$value.

In my case, the getFileByKey() (FILESET_GET_ENTITY) is not implemented and I have to use this workaround to receive the files content:

    final var file = new File("abc");
    file.attachToService("FILE_SRV", sapHttpDestination);
    InputStream i = file.fetchAsStream();

This is not very convenient and I would prefer to receive the fileService via injection and receive the stream like this:

InputStream i = fileService.withServicePath("FILE_SRV").getFileByKey("abc").executeRequestForStream(sapHttpDestination);

Further, I have no chance to receive the HTTP response headers from the file /$value request. I miss something like

file.getReponseHeaders()

Impact / Priority

My solution will be to not use the generated client but to code the HTTP request on my own. :-(
(Only for this request.)

Error Message

(see above, something like Method FILESET_GET_ENTITY not implemented. if I call executeRequest(...))

Project Details

Dependencies and configuration

        <dependency>
            <groupId>com.sap.cloud.sdk.datamodel</groupId>
            <artifactId>odata-core</artifactId>
            <version>3.52.0</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <scope>provided</scope>
        </dependency>


            <plugin>
                <groupId>com.sap.cloud.sdk.datamodel</groupId>
                <artifactId>odata-generator-maven-plugin</artifactId>
                <version>3.52.0</version>
                <executions>
                    <execution>
                        <id>generate-consumption</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputDirectory>${project.basedir}/sap/</inputDirectory>
                            <outputDirectory>${project.build.directory}/generated-sources/sap/</outputDirectory>
                            <deleteOutputDirectory>true</deleteOutputDirectory>
                            <packageName>com.abc.sap</packageName>
                            <defaultBasePath>sap/opu/odata/SAP/</defaultBasePath>
                            <compileScope>COMPILE</compileScope>
                            <serviceMethodsPerEntitySet>false</serviceMethodsPerEntitySet>
                            <nameSource>NAME</nameSource>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Change or remove cache time for DestinationAccessor.getDestination()

Hello collogues,

Is it possible to change or remove cache time for DestinationAccessor.getDestination(specificDestinationName) for specific Destination?

Destination type is: OAuth2ClientCredentials (Proxy Type: Internet)

The problem is an access token for a system which I connect is always expired due to token expiration time is 5 minutes. And need to remove cache time for destination access or change it.

Thank you.

Best wishes,
Kiryl

SAP SDK java web application connect with hana cloud DB using hdi container.

We do have a web Application that's running on Neo as tomEE runtime. We need to migration this project into cf. I found a link (https://sap.github.io/cloud-sdk/docs/java/getting-started)how can we add cf nature to existing project, So i created on poc project and tried to connect hana db, but i am getting data source as Null always . Not sure i what i am doing wrong.

my poc source code is under main branch of https://github.com/kainattu/sap-sdk-cloud-db.git
Expected out is : just i need to connect with hana db and query a table. that's it.

its high priority since Neo env is going to end their life time soon !!. .

Not able to connect to Trail S4HANA instance from SAP BTP

Not able to connect to S4HANA Trail version from SAP BTP.

I have configured destination instance in SAP BTP and provided my S4HANA instance IP with basic authentication in Dashboard of Destination Instance.

Impact / Priority

Could not run my extension application with trial s4hana instance. In local I am able to connect after giving entry in /etc/host file and exporting the certificate to JDK.

Error Message

Failure reason: "An error of type SSLHandshake occurred during check connection!"

Project Details

  • SAP Cloud SDK Version: 2.1.2
  • Project type,
    • Spring Boot application with SAP cloud sdk libraries
  • Platform:
    • Cloud Foundry

Invalid document data upload using AttachmentContent

Issue Description

Hi colleagues,

Our team is working with the attachments APIs (especifically, the DefaultAPICVATTACHMENTSRVService service) and we found an error with the files that were uploaded using the SDK. The operation runs fine and the document is uploaded to S/4 with the correct linked object key/type and metadata (file name, mime type); however, the actual data for the document is not valid.

Through a binary comparison between the original file and the one retrieved from S/4, I've noticed that data for the uploaded file is actually readable in a text editor and it contains a JSON representation of the actual file. E.g.:

{
  "LinkedSAPObjectKey":"123456789",
  "FileSize":"39618",
  "FileName":"testfile.jpg",
  "MimeType":"image/jpeg",
  "Content":"base64encodeddatahere",
  "BusinessObjectType":"EXAMPLE"
}

Here is how our code looks like when creating the command (using the generated builders, we also tried to use the setter methods but we got the same result):

byte[] attachmentData = document.getDataInBytes();
AttachmentContent attachmentContent = AttachmentContent.builder()
  .attachmentContent(attachmentData)
  .fileSize(String.valueOf(attachmentData.length))
  .fileName(document.getName())
  .mimeType(document.getMimeType())
  .linkedSAPObjectKey(document.getKey())
  .businessObjectType("EXAMPLE")
  .build();

This attachmentContent variable is then provided when we call the createAttachmentContent() method on DefaultAPICVATTACHMENTSRVService, but somewhere along the way it seems like the content is being replaced with the JSON containing both the data and the metadata.

The command's run() method looks like this:

private Map<String, String> getUploadHeaders() {
    Map<String, String> headers = new HashMap<>();
    headers.put("Slug", attachmentContent.getFileName());
    headers.put("Content-Type", attachmentContent.getMimeType());
    headers.put("BusinessObjectTypeName", "EXAMPLE");
    headers.put("LinkedSAPObjectKey", attachmentContent.getLinkedSAPObjectKey());
    return headers;
}
...
defaultAttachmentsService
  .createAttachmentContent(attachmentContent)
  .withCustomHttpHeaders(getUploadHeaders()).onRequestAndImplicitRequests()
  .execute(getConfigContext());

We are currently unable to perform this operation via API (e.g. Postman) but we're working on that. Currently we don't have a working example of how the body and headers should look like in the API request, so if you could share some example request with us we'd appreciate it.

Right now we are unsure if this is caused by something we are missing from our code or if there is a bug in this service somewhere. Could you please assist us with this issue?

Impact / Priority

Affected development phase: Development

Impact: Blocked

Timeline: Go-Live is in 6 weeks.

Error Message

  • No exceptions or errors are triggered

Maven Dependency Tree

--- maven-dependency-plugin:3.1.2:tree (default-cli) @ backend ---
com.sap.cloudscame:backend:war:3.1.0
+- com.sap.cloud:neo-java-web-sdk:zip:3.81.16:provided
+- com.fasterxml.jackson.core:jackson-core:jar:2.12.1:compile
+- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.1:compile
+- com.sap.cloud.s4hana.cloudplatform:scp-neo:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:auditlog-scp-neo:jar:2.28.0:compile
|  |  +- com.sap.cloud.s4hana.cloudplatform:core:jar:2.28.0:compile
|  |  \- com.sap.cloud.s4hana.cloudplatform:auditlog:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:caching:jar:2.28.0:compile
|  |  +- com.sap.cloud.s4hana.cloudplatform:security:jar:2.28.0:compile
|  |  \- com.sap.cloud.s4hana.cloudplatform:tenant:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:core-scp-neo:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:connectivity-scp-neo:jar:2.28.0:compile
|  |  +- com.sap.cloud.s4hana.cloudplatform:connectivity:jar:2.28.0:compile
|  |  |  \- com.sap.cloud.s4hana.quality:common:jar:2.28.0:compile
|  |  +- com.sap.cloud.s4hana.frameworks:hystrix:jar:2.28.0:compile
|  |  |  \- com.netflix.archaius:archaius-core:jar:0.7.6:compile
|  |  \- com.netflix.hystrix:hystrix-core:jar:1.5.18:compile
|  |     +- io.reactivex:rxjava:jar:1.3.8:compile
|  |     \- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile
|  +- com.sap.cloud.s4hana.cloudplatform:security-scp-neo:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:servlet:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:tenant-scp-neo:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.cloudplatform:metering-scp-neo:jar:2.28.0:compile
|  \- com.sap.cloud.s4hana.frameworks:hystrix-scp-neo:jar:2.28.0:compile
|     \- com.sap.cloud.s4hana.cloudplatform:concurrency-scp-neo:jar:2.28.0:compile
+- com.sap.cloud.s4hana.datamodel:odata-generator:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana.datamodel:odata-core:jar:2.28.0:compile
|  |  +- com.sap.cloud.s4hana:core:jar:2.28.0:compile
|  |  +- org.jsoup:jsoup:jar:1.11.3:compile
|  |  +- joda-time:joda-time:jar:2.10.8:compile
|  |  \- io.vavr:vavr:jar:0.9.2:compile
|  |     \- io.vavr:vavr-match:jar:0.9.2:compile
|  +- com.sap.cloud.s4hana:fluent-result:jar:2.28.0:compile
|  +- com.sap.cloud.s4hana:connectivity:jar:2.28.0:compile
|  +- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.35.2:compile
|  |  \- com.sap.cloud.servicesdk:developer_license:jar:1.35.2:compile
|  +- com.sap.cloud.servicesdk:odatav2-connectivity:jar:1.35.2:compile
|  |  +- com.sap.cloud.servicesdk:jacksonutil:jar:1.35.2:compile
|  |  +- org.json:json:jar:20090211:compile
|  |  \- com.sap.cloud.servicesdk.prov:api:jar:1.35.2:compile
|  |     \- com.sap.cds:cds4j-api:jar:1.3.0:compile
|  +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
|  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
|  +- com.google.guava:guava:jar:27.0.1-jre:compile
|  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
|  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
|  |  +- org.checkerframework:checker-qual:jar:2.5.2:compile
|  |  +- com.google.errorprone:error_prone_annotations:jar:2.2.0:compile
|  |  +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
|  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.17:compile
|  +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.1:compile
|  +- org.apache.commons:commons-lang3:jar:3.8.1:compile
|  +- commons-configuration:commons-configuration:jar:1.7:compile
|  |  +- commons-lang:commons-lang:jar:2.6:compile
|  |  \- commons-digester:commons-digester:jar:1.8.1:compile
|  +- commons-io:commons-io:jar:2.6:compile
|  +- org.apache.commons:commons-text:jar:1.4:compile
|  \- com.sun.codemodel:codemodel:jar:2.6:compile
+- commons-beanutils:commons-beanutils:jar:1.9.4:compile
|  +- commons-logging:commons-logging:jar:1.2:compile
|  \- commons-collections:commons-collections:jar:3.2.2:compile
+- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
+- com.querydsl:querydsl-apt:jar:4.2.2:provided
|  \- com.querydsl:querydsl-codegen:jar:4.2.2:provided
|     +- com.mysema.codegen:codegen:jar:0.6.8:provided
|     |  \- org.eclipse.jdt.core.compiler:ecj:jar:4.3.1:provided
|     \- org.reflections:reflections:jar:0.9.9:provided
|        +- org.javassist:javassist:jar:3.18.2-GA:provided
|        \- com.google.code.findbugs:annotations:jar:2.0.1:provided
+- com.querydsl:querydsl-jpa:jar:4.2.2:compile
|  \- com.querydsl:querydsl-core:jar:4.2.2:compile
|     +- com.mysema.commons:mysema-commons-lang:jar:0.2.4:compile
|     \- com.infradna.tool:bridge-method-annotation:jar:1.13:compile
+- com.sap.cloud:neo-java-web-api:jar:3.81.16:provided
|  +- javax.servlet.jsp:javax.servlet.jsp-api:jar:2.3.1:provided
|  +- javax.mail:javax.mail-api:jar:1.6.2:provided
|  +- org.apache.chemistry.opencmis:chemistry-opencmis-client-api:jar:1.0.0:provided
|  +- javax.websocket:javax.websocket-api:jar:1.1:provided
|  +- javax.el:javax.el-api:jar:3.0.0:provided
|  +- org.apache.chemistry.opencmis:chemistry-opencmis-commons-api:jar:1.0.0:provided
|  +- org.glassfish:javax.annotation:jar:3.1-b41:provided
|  \- javax.servlet:javax.servlet-api:jar:4.0.1:provided
+- org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.2:compile
|  +- org.eclipse.persistence:javax.persistence:jar:2.2.0:compile
|  +- org.eclipse.persistence:org.eclipse.persistence.asm:jar:2.7.2:compile
|  +- org.eclipse.persistence:org.eclipse.persistence.antlr:jar:2.7.2:compile
|  +- org.glassfish:javax.json:jar:1.0.4:compile
|  +- org.eclipse.persistence:org.eclipse.persistence.jpa.jpql:jar:2.7.2:compile
|  \- org.eclipse.persistence:org.eclipse.persistence.core:jar:2.7.2:compile
+- com.google.code.gson:gson:jar:2.8.6:compile
+- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.1.18.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter-aop:jar:2.1.18.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.1.18.RELEASE:compile
|  |  \- com.zaxxer:HikariCP:jar:3.2.0:compile
|  +- javax.transaction:javax.transaction-api:jar:1.3:compile
|  +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
|  |  \- javax.activation:javax.activation-api:jar:1.2.0:compile
|  \- org.springframework.data:spring-data-jpa:jar:2.1.21.RELEASE:compile
|     \- org.springframework.data:spring-data-commons:jar:2.1.21.RELEASE:compile
+- org.springframework.boot:spring-boot-starter-security:jar:2.1.18.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter:jar:2.1.18.RELEASE:compile
|  |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile
|  +- org.springframework.security:spring-security-config:jar:5.1.13.RELEASE:compile
|  \- org.springframework.security:spring-security-web:jar:5.1.13.RELEASE:compile
+- org.yaml:snakeyaml:jar:1.26:compile
+- org.springframework:spring-web:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-core:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-jdbc:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-orm:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-tx:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-aspects:jar:5.1.19.RELEASE:compile
|  \- org.aspectj:aspectjweaver:jar:1.9.6:compile
+- org.springframework:spring-aop:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-expression:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-beans:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-jcl:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-webmvc:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-test:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-context:jar:5.1.19.RELEASE:compile
+- org.springframework:spring-context-support:jar:5.1.19.RELEASE:compile
+- org.springframework.boot:spring-boot-starter-web:jar:2.1.18.RELEASE:compile
|  +- org.springframework.boot:spring-boot-starter-json:jar:2.1.18.RELEASE:compile
|  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.10:compile
|  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.10:compile
|  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.9.10:compile
|  \- org.hibernate.validator:hibernate-validator:jar:6.1.5.Final:compile
|     +- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
|     +- org.jboss.logging:jboss-logging:jar:3.3.3.Final:compile
|     \- com.fasterxml:classmate:jar:1.4.0:compile
+- org.springframework.boot:spring-boot-starter-logging:jar:2.1.18.RELEASE:compile
|  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.13.2:compile
|  |  \- org.apache.logging.log4j:log4j-api:jar:2.13.2:compile
|  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
+- org.springframework.boot:spring-boot-starter-test:jar:2.1.18.RELEASE:test
|  +- org.springframework.boot:spring-boot-test:jar:2.1.18.RELEASE:test
|  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.18.RELEASE:test
|  +- com.jayway.jsonpath:json-path:jar:2.4.0:test
|  |  \- net.minidev:json-smart:jar:2.3:test
|  |     \- net.minidev:accessors-smart:jar:1.2:test
|  |        \- org.ow2.asm:asm:jar:5.0.4:test
|  +- junit:junit:jar:4.13.1:test
|  +- org.assertj:assertj-core:jar:3.11.1:test
|  +- org.mockito:mockito-core:jar:2.23.4:test
|  |  +- net.bytebuddy:byte-buddy:jar:1.9.16:test
|  |  +- net.bytebuddy:byte-buddy-agent:jar:1.9.16:test
|  |  \- org.objenesis:objenesis:jar:2.6:test
|  +- org.hamcrest:hamcrest-core:jar:1.3:test
|  +- org.hamcrest:hamcrest-library:jar:1.3:test
|  +- org.skyscreamer:jsonassert:jar:1.5.0:test
|  |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
|  \- org.xmlunit:xmlunit-core:jar:2.6.4:test
+- org.springframework.security:spring-security-test:jar:5.1.13.RELEASE:test
|  \- org.springframework.security:spring-security-core:jar:5.1.13.RELEASE:compile
+- org.liquibase:liquibase-core:jar:3.6.3:compile
+- org.apache.poi:poi:jar:4.1.1:compile
|  +- commons-codec:commons-codec:jar:1.14:compile
|  +- org.apache.commons:commons-collections4:jar:4.4:compile
|  \- org.apache.commons:commons-math3:jar:3.6.1:compile
+- org.apache.poi:poi-ooxml:jar:4.1.1:compile
|  +- org.apache.poi:poi-ooxml-schemas:jar:4.1.1:compile
|  |  \- org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile
|  +- org.apache.commons:commons-compress:jar:1.19:compile
|  \- com.github.virtuald:curvesapi:jar:1.06:compile
+- com.sun.mail:javax.mail:jar:1.6.1:compile
|  \- javax.activation:activation:jar:1.1:compile
+- org.subethamail:subethasmtp:jar:3.1.7:test
|  \- javax.mail:mail:jar:1.4.4:test
+- org.springframework.boot:spring-boot-starter-thymeleaf:jar:2.1.18.RELEASE:compile
|  +- org.thymeleaf:thymeleaf-spring5:jar:3.0.11.RELEASE:compile
|  |  \- org.thymeleaf:thymeleaf:jar:3.0.11.RELEASE:compile
|  |     +- org.attoparser:attoparser:jar:2.0.5.RELEASE:compile
|  |     \- org.unbescape:unbescape:jar:1.1.6.RELEASE:compile
|  \- org.thymeleaf.extras:thymeleaf-extras-java8time:jar:3.0.4.RELEASE:compile
+- org.projectlombok:lombok:jar:1.18.16:provided
+- javax.inject:javax.inject:jar:1:provided
+- com.sap.ibsosle:dppservice:jar:1.0.2:compile
+- com.sap.core.service.auditlog:com.sap.core.service.auditlog.api:jar:0.6.48:provided
+- com.sap.core.service.auditlog:com.sap.core.service.auditlog.impl:jar:0.6.48:provided
+- org.slf4j:slf4j-api:jar:1.7.30:provided
+- ch.qos.logback:logback-classic:jar:1.2.3:provided
|  \- ch.qos.logback:logback-core:jar:1.2.3:provided
+- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
|  \- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
+- com.h2database:h2:jar:1.4.200:compile
\- org.springframework.boot:spring-boot-devtools:jar:2.1.18.RELEASE:runtime
   +- org.springframework.boot:spring-boot:jar:2.1.18.RELEASE:compile
   \- org.springframework.boot:spring-boot-autoconfigure:jar:2.1.18.RELEASE:compile

Project Details

  • SAP Cloud SDK Version: 2.28.0
  • Link to GitHub repository: Internal SAP Repository
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above: Spring Boot Project
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Explain how to use the SDK function mockDestinationsEnv()

The SDK provides a mockDestinationsEnv(...destinations) method which takes a list of destination objects, transforms it to a JSON array and assigns it to the process.env.destinations.

https://sap.github.io/cloud-s4-sdk-book/pages/mock-odata.html

Adding a code sample would be helpful. If the function is meant to be called out of node.js or TypeScript modules, adding the corresponding import statement would help understand where this function is located.

The current wording of the documentation leads me to try to run the following command on the command line:

$ sap-cloud-sdk mockDestinationsEnv

... which returns this error message:

โ€บ   Warning: mockDestinationsEnv is not a sap-cloud-sdk command.
Did you mean version? [y/n]: 

Race Condition in DefaultCachingDecorator

Issue Description

If you configure caching for a call to the com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorator the underlying com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy will initialize the caches lazily in com.sap.cloud.sdk.frameworks.resilience4j.DefaultCachingDecorator.decorateCallable(Callable, ResilienceConfiguration). The decorator checks first if there is any cache present for the given name and will create one when the cache manager returns null. If you have two threads concurrently calling the ResilienceDecorator for the same service class then it can happen that both threads retrieve null from the cache manager and both threads try to create the cache. JCache will then synchronize the cache creation and throws an exception when there is already a cache for the given name. The result is that one thread creates the caches successfully and the other gets an exception.
The reason is the race condition in DefaultCachingDecorator#decorateCallable where the lookup and cache creation are not synchronized. This problem occurs only on the first call and only if there is more than one thread involved.

The call to the resilience execution looks more or less as follows:

ResilienceConfiguration cfg = ResilienceConfiguration.of(SearchCommand.class);
CacheConfigurationBuilder cacheBuilder = CacheConfiguration.of(Duration.ofDays(1));
cfg.cacheConfiguration(cacheBuilder.withParameters("123"));
        
return ResilienceDecorator.executeSupplier(
                () -> searchCommand.search("123"),
                cfg);

Impact / Priority

Impact: Inconvenience. Users might see an error in the application have to redo their task (mostly searching for something).

Error Message

 javax.cache.CacheException: Cache com.sample.SearchCommand already exists
	at com.github.benmanes.caffeine.jcache.CacheManagerImpl.lambda$createCache$0(CacheManagerImpl.java:98)
	at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1877)
	at com.github.benmanes.caffeine.jcache.CacheManagerImpl.createCache(CacheManagerImpl.java:96)
	at com.sap.cloud.sdk.frameworks.resilience4j.DefaultCachingDecorator.decorateCallable(DefaultCachingDecorator.java:88)
	at com.sap.cloud.sdk.frameworks.resilience4j.DefaultCachingDecorator.decorateCallable(DefaultCachingDecorator.java:24)
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.decorateCallable(Resilience4jDecorationStrategy.java:231)
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.decorateSupplier(Resilience4jDecorationStrategy.java:202)
	at com.sap.cloud.sdk.frameworks.resilience4j.Resilience4jDecorationStrategy.decorateSupplier(Resilience4jDecorationStrategy.java:181)
	at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorationStrategy.decorateSupplier(ResilienceDecorationStrategy.java:108)
	at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorationStrategy.executeSupplier(ResilienceDecorationStrategy.java:128)
	at com.sap.cloud.sdk.cloudplatform.resilience.ResilienceDecorator.executeSupplier(ResilienceDecorator.java:141)
	at ...

Dependencies

[INFO] +- javax.servlet:javax.servlet-api:jar:4.0.1:compile
[INFO] +- com.sap.cloud.servicesdk.prov:odata2.web:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.servicesdk.prov:odata2.cds:jar:1.40.11:compile
[INFO] |  |  +- com.sap.cloud.servicesdk:hana.connectivity.cds-core:jar:1.40.11:compile
[INFO] |  |  |  \- com.sap.cds:cds4j-runtime:jar:1.13.1:compile
[INFO] |  |  |     \- com.sap.cds:cds4j-core:jar:1.13.1:compile
[INFO] |  |  +- com.sap.cloud.servicesdk.prov:odata2.cdx:jar:1.40.11:compile
[INFO] |  |  +- com.sap.cloud.servicesdk.prov:api:jar:1.40.11:compile
[INFO] |  |  |  +- javax.transaction:javax.transaction-api:jar:1.3:compile
[INFO] |  |  |  +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |  |  |  |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  |  |  \- com.sap.cds:cds4j-api:jar:1.13.1:compile
[INFO] |  |  +- com.healthmarketscience.sqlbuilder:sqlbuilder:jar:2.1.7:compile
[INFO] |  |  |  \- com.healthmarketscience.common:common-util:jar:1.1.1:compile
[INFO] |  |  |     \- commons-lang:commons-lang:jar:2.6:compile
[INFO] |  |  \- joda-time:joda-time:jar:2.10.5:compile
[INFO] |  +- com.sap.cloud.servicesdk.prov:odata2.api:jar:1.40.11:compile
[INFO] |  |  \- com.sap.cloud.servicesdk.prov:odatav2-lib:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.servicesdk.prov:odata2.core:jar:1.40.11:compile
[INFO] |  |  +- com.sap.cloud.servicesdk.prov:multitenant-core:jar:1.40.11:compile
[INFO] |  |  |  +- com.sap.cloud.instancemanager:client:jar:1.14.0:compile
[INFO] |  |  |  |  +- com.sap.cloud.instancemanager:util:jar:1.14.0:compile
[INFO] |  |  |  |  \- com.sap.cloud.instancemanager:client-api:jar:1.14.0:compile
[INFO] |  |  |  \- cglib:cglib:jar:2.2.2:compile
[INFO] |  |  |     \- asm:asm:jar:3.3.1:compile
[INFO] |  |  +- org.apache.poi:poi:jar:4.1.1:compile
[INFO] |  |  |  +- org.apache.commons:commons-collections4:jar:4.4:compile
[INFO] |  |  |  \- org.apache.commons:commons-math3:jar:3.6.1:compile
[INFO] |  |  +- org.apache.poi:poi-ooxml:jar:4.1.1:compile
[INFO] |  |  |  +- org.apache.commons:commons-compress:jar:1.19:compile
[INFO] |  |  |  \- com.github.virtuald:curvesapi:jar:1.06:compile
[INFO] |  |  \- org.apache.poi:poi-ooxml-schemas:jar:4.1.1:compile
[INFO] |  |     \- org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile
[INFO] |  +- com.sap.cloud.servicesdk.prov:edmxparser:jar:1.40.11:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:developer_license:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.servicesdk.prov:odata-core:jar:1.40.11:compile
[INFO] |  |  \- javax.ws.rs:javax.ws.rs-api:jar:2.1.1:compile
[INFO] |  \- com.sap.cloud.servicesdk.prov:odatav2-prov:jar:1.40.11:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.20:provided
[INFO] +- com.sap.cloud.sdk.cloudplatform:scp-cf:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:auditlog-scp-cf:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.sdk.cloudplatform:auditlog:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:caching:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core-scp-cf:jar:3.45.0:compile
[INFO] |  |  \- com.mikesamuel:json-sanitizer:jar:1.2.2:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp-cf:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity-scp:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.security.xsuaa:token-client:jar:2.8.8:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] |  |  +- com.jayway.jsonpath:json-path:jar:2.5.0:compile
[INFO] |  |  \- com.sap.cloud.security:java-api:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security-scp-cf:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.security:java-security:jar:2.8.8:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:servlet:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant-scp-cf:jar:3.45.0:compile
[INFO] |  \- com.sap.cloud.sdk.cloudplatform:metering:jar:3.45.0:compile
[INFO] +- com.sap.cloud.sdk.s4hana:s4hana-all:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-core:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:fluent-result:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-connectivity:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-core:jar:3.45.0:compile
[INFO] |  |  |  \- org.jsoup:jsoup:jar:1.13.1:compile
[INFO] |  |  \- com.sap.cloud.servicesdk:odata-v2-lib:jar:1.40.11:compile
[INFO] |  +- com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.datamodel:odata-v4-core:jar:3.45.0:compile
[INFO] |  |  \- com.sap.cloud.sdk.datamodel:odata-client:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:soap:jar:3.45.0:compile
[INFO] |  |  +- org.apache.axis2:axis2-adb:jar:1.7.9:compile
[INFO] |  |  |  \- org.apache.ws.commons.axiom:axiom-dom:jar:1.2.21:runtime
[INFO] |  |  |     \- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:runtime
[INFO] |  |  |        \- org.codehaus.woodstox:stax2-api:jar:3.1.1:runtime
[INFO] |  |  +- org.apache.axis2:axis2-transport-http:jar:1.7.9:compile
[INFO] |  |  +- org.apache.axis2:axis2-kernel:jar:1.7.9:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.21:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO] |  |  |  |  +- jaxen:jaxen:jar:1.2.0:compile
[INFO] |  |  |  |  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] |  |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.7.2:compile
[INFO] |  |  |  +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.21:runtime
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
[INFO] |  |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO] |  |  |  +- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] |  |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] |  |  |  \- org.apache.woden:woden-core:jar:1.0M10:compile
[INFO] |  |  \- org.apache.axis2:axis2-transport-local:jar:1.7.9:runtime
[INFO] |  +- com.sap.cloud.sdk.s4hana:rfc:jar:3.45.0:compile
[INFO] |  |  +- com.sap.cloud.sdk.quality:common:jar:3.45.0:compile
[INFO] |  |  |  \- org.apache.commons:commons-csv:jar:1.8:compile
[INFO] |  |  \- org.json:json:jar:20210307:compile
[INFO] |  \- com.sap.cloud.servicesdk:odatav2-connectivity-sdk3:jar:1.40.11:compile
[INFO] |     \- com.sap.cloud.servicesdk:jacksonutil-sdk3:jar:1.40.11:compile
[INFO] +- com.sap.cloud.sdk.services:scp-workflow-cf:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.datamodel:openapi-core:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-connectivity:jar:3.45.0:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
[INFO] |  +- com.google.code.gson:gson:jar:2.8.6:compile
[INFO] |  +- com.google.guava:guava:jar:30.1.1-jre:compile
[INFO] |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
[INFO] |  |  \- com.google.j2objc:j2objc-annotations:jar:1.3:compile
[INFO] |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.3:compile
[INFO] |  +- org.springframework:spring-core:jar:5.3.4:compile
[INFO] |  |  \- org.springframework:spring-jcl:jar:5.3.4:compile
[INFO] |  \- org.springframework:spring-web:jar:5.3.4:compile
[INFO] +- com.sap.cloud.sdk.frameworks:resilience4j:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:cloudplatform-core:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:resilience:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:tenant:jar:3.45.0:compile
[INFO] |  +- com.sap.cloud.sdk.cloudplatform:security:jar:3.45.0:compile
[INFO] |  +- io.vavr:vavr:jar:0.10.3:compile
[INFO] |  |  \- io.vavr:vavr-match:jar:0.10.3:compile
[INFO] |  +- io.github.resilience4j:resilience4j-circuitbreaker:jar:1.7.0:compile
[INFO] |  |  \- io.github.resilience4j:resilience4j-core:jar:1.7.0:compile
[INFO] |  +- io.github.resilience4j:resilience4j-bulkhead:jar:1.7.0:compile
[INFO] |  +- io.github.resilience4j:resilience4j-timelimiter:jar:1.7.0:compile
[INFO] |  +- io.github.resilience4j:resilience4j-cache:jar:1.7.0:compile
[INFO] |  +- io.github.resilience4j:resilience4j-retry:jar:1.7.0:compile
[INFO] |  \- com.google.errorprone:error_prone_annotations:jar:2.6.0:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.7.30:runtime
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-logback:jar:3.4.0:compile
[INFO] |  \- com.sap.hcp.cf.logging:cf-java-logging-support-core:jar:3.4.0:compile
[INFO] |     \- com.fasterxml.jackson.jr:jackson-jr-objects:jar:2.12.3:compile
[INFO] +- com.sap.hcp.cf.logging:cf-java-logging-support-servlet:jar:3.0.1:compile
[INFO] |  \- com.auth0:java-jwt:jar:3.15.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.2.1.RELEASE:compile
[INFO] |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.12.1:compile
[INFO] |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
[INFO] |  |  \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile
[INFO] |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  \- org.yaml:snakeyaml:jar:1.25:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.27:compile
[INFO] |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.27:compile
[INFO] |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27:compile
[INFO] +- org.springframework.boot:spring-boot-actuator:jar:2.2.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:5.3.4:compile
[INFO] |  +- org.springframework:spring-aop:jar:5.3.4:compile
[INFO] |  +- org.springframework:spring-beans:jar:5.3.4:compile
[INFO] |  +- org.springframework:spring-context:jar:5.3.4:compile
[INFO] |  \- org.springframework:spring-expression:jar:5.3.4:compile
[INFO] +- org.springframework.cloud:spring-cloud-spring-service-connector:jar:2.0.6.RELEASE:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-connectors-core:jar:2.0.6.RELEASE:compile
[INFO] +- org.springframework.cloud:spring-cloud-cloudfoundry-connector:jar:2.0.6.RELEASE:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.12.3:compile
[INFO] +- com.sap.cloud.security.xsuaa:xsuaa-spring-boot-starter:jar:2.6.0:compile
[INFO] |  +- com.sap.cloud.security.xsuaa:spring-xsuaa:jar:2.6.0:compile
[INFO] |  |  \- com.sap.cloud.security.xsuaa:api:jar:2.6.0:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-security:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.5:compile
[INFO] |  |  +- com.nimbusds:nimbus-jose-jwt:jar:8.20.2:compile
[INFO] |  |  |  +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] |  |  |  \- net.minidev:json-smart:jar:2.3:compile (version selected from constraint [1.3.1,2.3])
[INFO] |  |  |     \- net.minidev:accessors-smart:jar:1.2:compile
[INFO] |  |  |        \- org.ow2.asm:asm:jar:5.0.4:compile
[INFO] |  |  \- org.springframework.security:spring-security-oauth2-core:jar:5.4.5:compile
[INFO] |  \- org.springframework.security:spring-security-oauth2-resource-server:jar:5.4.5:compile
[INFO] +- org.springframework.security:spring-security-jwt:jar:1.1.0.RELEASE:compile
[INFO] |  \- org.bouncycastle:bcpkix-jdk15on:jar:1.64:compile
[INFO] |     \- org.bouncycastle:bcprov-jdk15on:jar:1.64:compile
[INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.3.3.RELEASE:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:5.4.5:compile
[INFO] |  +- org.springframework.security:spring-security-config:jar:5.4.5:compile
[INFO] |  +- org.springframework.security:spring-security-web:jar:5.4.5:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.15:compile
[INFO] |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |     \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.2.1.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:2.2.1.RELEASE:compile
[INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.9.4:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:2.2.1.RELEASE:compile
[INFO] |  |  +- com.zaxxer:HikariCP:jar:3.4.1:compile
[INFO] |  |  \- org.springframework:spring-jdbc:jar:5.3.4:compile
[INFO] |  +- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
[INFO] |  +- jakarta.persistence:jakarta.persistence-api:jar:2.2.3:compile
[INFO] |  +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.4.8.Final:compile
[INFO] |  |  +- org.javassist:javassist:jar:3.24.0-GA:compile
[INFO] |  |  +- net.bytebuddy:byte-buddy:jar:1.10.2:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  +- org.jboss:jandex:jar:2.0.5.Final:compile
[INFO] |  |  +- org.dom4j:dom4j:jar:2.1.1:compile
[INFO] |  |  +- org.hibernate.common:hibernate-commons-annotations:jar:5.1.0.Final:compile
[INFO] |  |  \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:compile
[INFO] |  |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.2:compile
[INFO] |  |     +- org.glassfish.jaxb:txw2:jar:2.3.2:compile
[INFO] |  |     +- com.sun.istack:istack-commons-runtime:jar:3.0.8:compile
[INFO] |  |     +- org.jvnet.staxex:stax-ex:jar:1.8.1:compile
[INFO] |  |     \- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.16:compile
[INFO] |  +- org.springframework.data:spring-data-jpa:jar:2.2.1.RELEASE:compile
[INFO] |  |  +- org.springframework.data:spring-data-commons:jar:2.2.1.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-orm:jar:5.3.4:compile
[INFO] |  |  \- org.springframework:spring-tx:jar:5.3.4:compile
[INFO] |  \- org.springframework:spring-aspects:jar:5.3.4:compile
[INFO] +- com.querydsl:querydsl-jpa:jar:4.2.1:compile
[INFO] |  +- com.querydsl:querydsl-core:jar:4.2.1:compile
[INFO] |  |  +- com.mysema.commons:mysema-commons-lang:jar:0.2.4:compile
[INFO] |  |  \- com.infradna.tool:bridge-method-annotation:jar:1.13:compile
[INFO] |  \- javax.inject:javax.inject:jar:1:compile
[INFO] +- com.h2database:h2:jar:1.4.196:runtime
[INFO] +- org.hibernate.validator:hibernate-validator:jar:6.0.18.Final:compile
[INFO] |  +- javax.validation:validation-api:jar:2.0.1.Final:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] |  \- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] +- com.sap.cloud.sdk.frameworks:liquibase:jar:3.45.0:compile
[INFO] |  \- org.liquibase:liquibase-core:jar:3.10.3:compile
[INFO] |     \- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] |        \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] +- com.sap.foss.hana:liquibase-hana:jar:1.0.0:compile
[INFO] +- com.sap.hana.cloud:spring-cloud-cloudfoundry-hana-service-connector:jar:1.0.4.RELEASE:compile
[INFO] |  +- com.sap.hana.cloud:spring-cloud-sap-core:jar:1.0.4.RELEASE:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-core:jar:1.2.0.RELEASE:compile
[INFO] +- org.mapstruct:mapstruct:jar:1.3.1.Final:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.5:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.3:compile
[INFO] +- com.github.ben-manes.caffeine:jcache:jar:2.8.0:compile
[INFO] |  +- com.github.ben-manes.caffeine:caffeine:jar:2.9.0:compile
[INFO] |  |  \- org.checkerframework:checker-qual:jar:3.10.0:compile
[INFO] |  +- javax.cache:cache-api:jar:1.1.1:compile
[INFO] |  \- com.typesafe:config:jar:1.3.4:compile
[INFO] \- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO]    \- commons-logging:commons-logging:jar:1.0.4:compile

Project Details

  • SAP Cloud SDK Version: 3.45.0
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry and locally
    • Neo

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Batch Response Headers

We are working with the SAP Business One Service Layer. One of the options to improve performance when adding documents is to add a Preference header requesting to return-no-content This overrides the basic behavior of returning the added document and instead returns a response with a header pointing to the location of the new document.

Example Request:

[Wed Sep 29 16:23:06 2021] [172.16.1.10] [pid=3684] [Request] "POST /b1s/v2/Orders HTTP/1.1"
Prefer:return-no-content
Accept:application/json
COOKIE:**************************************************************
Content-Type:application/json
Content-Length:695
Host:****************************
Connection:Keep-Alive
User-Agent:Apache-HttpClient/4.5.13 (Java/16.0.1)
Accept-Encoding:gzip,deflate
X-Forwarded-Proto:https

Response:

[Wed Sep 29 16:23:06 2021] [172.16.1.10] [pid=3684] [Response] "POST /b1s/v2/Orders HTTP/1.1" Status Code:[204 No Content] Date:Wed, 29 Sep 2021 16:23:06 GMT Server:Apache OData-Version:4.0 Location:https://example.com:50000/b1s/v2/Orders(369453) Preference-Applied:return-no-content

When doing this in single operation mode it works fine, I can simply get the response header like so:

// build OData Request
var addDocumentRequest = svcl.withServicePath(....)
		.createOrders(orderDocument)
		.withHeader("Prefer", "return-no-content");

// Order insertion request

var locationString = addResponse.get().getResponseHeaders().get("Location").iterator().next();

But when doing it with a batch, it seems like the response header isn't parsing correctly.

Example response:

[Wed Sep 29 16:23:07 2021] [172.16.1.10] [pid=3684] [Response] "POST /b1s/v2/$batch HTTP/1.1"
Status Code:[200 OK]
Date:Wed, 29 Sep 2021 16:23:07 GMT
Server:Apache
OData-Version:4.0
Content-Length:583
Content-Type:multipart/mixed;boundary=batchresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX

--batchresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX
Content-Type: multipart/mixed; boundary=changesetresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX

--changesetresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1

HTTP/1.1 204 No Content
Location: https://example.com:50000/b1s/v2/DeliveryNotes(366573)
OData-Version: 4.0
Preference-Applied: return-no-content

--changesetresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX--
--batchresponse_vgVD6N0o-oqPH-UJWJ-n1cg-84GYKJ63DMrX--

But accessing it seems to not work correctly:

var addResponse = batchResponses.get().getModificationResult(addRequest);
			
System.out.println(addResponse.getResponseHeaders());

Prints the following:

{Content-ID=[1], Content-Transfer-Encoding=[binary], Content-Type=[application/http]}

If this isn't an issue with the SDK and is, in fact, an issue with the SAP Service Layer response format, is there an easy way to extract the location response?

empty ticket

Issue Description

Important information:

  • Your code
  • Expected outcome
  • Actual outcome
  • Steps attempted to resolve the issue
  • In case of issues with any of our VDMs:
    • What happens when a request is performed directly via an HTTP client tool such as Postman?
    • In case that succeeds please provide details on the request such as URL, query parameters, header parameters, prerequisite requests (e.g. CSRF token), etc.
  • Potentially missing information (open questions you might have)

Impact / Priority

Affected development phase: e.g. Getting Started, Development, Release, Production

Impact: e.g. No Impact, Inconvenience, Impaired, Blocked

Timeline: e.g. Go-Live is in 12 weeks.

Error Message

Please paste your stack trace here within the backticks (replacing this comment)

Project Details

  • SAP Cloud SDK Version:
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • SAP Cloud SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • Checked out the documentation and Stack Overflow
  • Description provided with all relevant information
  • Attached debug logs
  • Attached dependency tree
  • Provided the SAP Cloud SDK version & link to relevant source code

Get "DestinationAccessException" when I try to access http destination with token exchange option

Issue Description

I try to access a http destination which is created with token exchange option. I got an error message "com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to read authentication token. The destination service responded with an error: Bad credentials"

I have tried other http destinations with basic authentication or not authentication and they worked fine.

Important information:

  • Your code
    ------------My codes ----------------------
    @PreAuthorize("permitAll()")
    @GetMapping("/getWorkflowDefinitions")
    @responsebody
    public List getWorkflowDefinitions(@AuthenticationPrincipal Token token) {
    HttpDestination httpDestination_workflow = DestinationAccessor.getDestination("dest_workflow_runtime2").asHttp();
    List rtn = new ArrayList();
    try {
    List workflowDefinitions = new WorkflowDefinitionsApi(httpDestination_workflow).queryDefinitions();
    return workflowDefinitions;
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return rtn;

    }

    You can see whole project with below link.
    https://github.com/zxcvboy/testb
    PS: I added some dependencies to solve conflict issues between SAP Cloud SDK, XSUSS, and CAP.


  • Expected outcome

  • Actual outcome

  • Steps attempted to resolve the issue

  • In case of issues with any of our VDMs:

    • What happens when a request is performed directly via an HTTP client tool such as Postman?
    • In case that succeeds please provide details on the request such as URL, query parameters, header parameters, prerequisite requests (e.g. CSRF token), etc.
  • Potentially missing information (open questions you might have)

Impact / Priority

Affected development phase: e.g. Getting Started, Development, Release, Production

Impact: e.g. No Impact, Inconvenience, Impaired, Blocked

Timeline: e.g. Go-Live is in 12 weeks.

Error Message

2020-12-22T02:39:09.082+0000 [APP/PROC/WEB/0] OUT 2020-12-22 02:39:09.081  INFO 6 --- [nio-8080-exec-9] c.s.c.s.t.v.v.JwtAudienceValidator       : The audiences that are derived from the token: [sb-testb!t172, uaa, openid].
2020-12-22T02:39:09.900+0000 [RTR/3] OUT saptwjpazure-ndev-testb-srv.cfapps.jp20.hana.ondemand.com - [2020-12-22T02:39:09.077462576Z] "GET /rest/getBP HTTP/1.1" 200 0 23301 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0" "-" "10.2.9.23:61015" x_forwarded_for:"-" x_forwarded_proto:"https" vcap_request_id:"e9e91af4-5313-4c47-6531-4fcc8df0e598" response_time:0.822522 gorouter_time:0.000243 app_id:"66fcaacd-fd41-4949-aa23-3c89f8f679d1" app_index:"0" x_cf_routererror:"-" x_correlationid:"8bb93ec2-e074-4f2d-6f62-50587e640b50" tenantid:"-" sap_passport:"-" x_scp_request_id:"e788be07-c405-4e7b-ae90-8133adaa8680-5FE15C45-720FA1" x_cf_app_instance:"-" x_b3_traceid:"cab0914dc5cfc103" x_b3_spanid:"cab0914dc5cfc103" x_b3_parentspanid:"-" b3:"cab0914dc5cfc103-cab0914dc5cfc103"

2020-12-22T02:39:24.812+0000 [APP/PROC/WEB/0] OUT 2020-12-22 02:39:24.811  INFO 6 --- [io-8080-exec-10] c.s.c.s.t.v.v.JwtAudienceValidator       : The audiences that are derived from the token: [sb-testb!t172, uaa, openid].
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 2020-12-22 02:39:26.196 ERROR 6 --- [io-8080-exec-10] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT com.sap.cloud.sdk.cloudplatform.exception.ShouldNotHappenException: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to read authentication token. The destination service responded with an error: Bad credentials.
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessorFilter.doFilter(RequestAccessorFilter.java:78) ~[servlet-3.33.0.jar:na]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:130) ~[spring-security-oauth2-resource-server-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) ~[spring-security-web-5.3.4.RELEASE.jar:5.3.4.RELEASE]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.1.jar:5.3.1]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_271]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_271]
2020-12-22T02:39:26.197+0000 [APP/PROC/WEB/0] OUT 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.38.jar:9.0.38]
2020-12-2

Project Details

  • SDK Version:
  • Link to GitHub repository:
  • Project type, for example:
    • CAP Project
    • SDK Maven Archetype
    • None of the above:
  • Platform:
    • Cloud Foundry
    • Neo
    • None of the above:

Checklist

  • [V] Checked out the documentation and Stack Overflow
  • [V] Description provided with all relevant information
  • [V] Attached debug logs
  • [V] Attached dependency tree
  • [V] Provided Cloud SDK version & link to relevant source code

Basic Authentication against S/4Hana not successful because of an additional x509 client certificate in request

Hi,

we are using the cloudsdk java in version 3.53 and try to call via the cloud connector our s/4hana on-premise
system.
We created a destination service and a connectivity service and have two exposed system connections from
the cloud connector. DESTINATION_A is setup using principal propagation, DESTINATION_B is setup using
basic authentication. In DESTINATION_B we have provided a technical user and password of S/4HANA and
also maintained the sap-client parameter.

As we have to be able to use both scenarios (technical user + principal propagation) we had set our profile
parameter in the s4hana 2020 fsps01 system to: icm/HTTPS/verify_client = 1

These destination_A and DESTINATION_B route are able to successfully authenticate from a second custom
service which is an unmanaged approuter (build via the MTA template in BAS). We are able to fetch data
from the S/4HANA system.
We need to achieve the same from a java app that is build using the cloudsdk 3.53.

We enabled the SEC_TRACE_ANALYZER trace with level 3 and saw that in case of DESTINATION_B being used from within cloudsdk's app, it is getting an 401 error unauthorized trying to authenticate the user.
In the trace we see that the request is both including in the basic header authentication as well as it does contain a client x.509 certificate.

Also as the approuter route using exactly the same destination DESTINATION_B and connectivity service does work with basic.
Thus our assumption is that the issue is with the implementation of the standard cloudsdk java framework. As
the same route is able to get through and authenticated via the approuter

Please look into why the cloudsdk is injecting a x.509 certifcate though the destination is set to basic.

Best regards

Matthias

xs-app.json of app router is:

{
"authenticationMethod": "route",
"routes": [
{
"source": "/destnopp/(.*)$",
"destination": "CS_ERP_S1X_NOPP",
"authenticationType": "none",
"target": "/$1",
"csrfProtection": false
}]
}

DESTINATION_B is defined as:

{
"Name": "CS_ERP_S1X_NOPP",
"Type": "HTTP",
"URL": "XXXXXXXX",
"Authentication": "BasicAuthentication",
"ProxyType": "OnPremise",
"Description": "Destination for Technical User",
"User": "XXXXXXXX",
"CloudConnectorLocationId": "XXX",
"sap-client": "XXX"
}

Java code to obtain destination:

public HttpDestination getS4DestinationNoPP() {
        return DestinationAccessor.getDestination(nameOfDestinationS4NoPP).asHttp().decorate(DefaultErpHttpDestination::new);
    }

Java code to execute request:

List<ProjectionRootForDefensiveDec> defensiveDecList = s4ServiceForDefensiveControl.getAllXBAY0xPV_DEFENSIVE()
                .filter(ProjectionRootForDefensiveDec.DOCUMENT_NUMBER.eq(notaFiscalId))
                .executeRequest(destinations.getS4DestinationNoPP());

Error Log indicates 401:
... "logger":"com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessorFilter","thread":"http-nio-8080-exec-3","level":"WARN","categories":[],"msg":"Unexpected servlet filter exception: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.sap.cloud.sdk.datamodel.odata.client.exception.ODataResponseException: The HTTP response code (401) indicates an error.","stacktrace":["com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: org.springframework.web.util.NestedServletException: Request processing failed; nested ....

Trailing slashes

The version of the library is

<dependency>
    <groupId>com.sap.cloud.sdk.datamodel</groupId>
    <artifactId>odata-core</artifactId>
    <version>3.39.0</version>
</dependency>

Issue Description

  1. I use generated strongly typed Java client against an OData V2 SAP service.

  2. The service is build upon some SAP CDS view and it requires the url segment to ends with the trailing slash
    e.g. from the Postman
    https://host/servise-path/resource-path/?$filter... - is working
    https://host/servise-path/resource-path?$filter.. - is not

  3. It is not option for me to change the service behavior

  4. The class from SDK
    com.sap.cloud.sdk.datamodel.odata.client.request.ODataUriFactory
    always provide an URL without trailing slash and it seems there are no possibilities to change this with any overrides or factory static parameters.

  5. If I add trailing slash to the end of entity collection name in the generated default service, it will be url-encoded in method
    ODataResourcePath.toEncodedPathString
    to "%2F"
    and the service will reject it too.
    https://host/servise-path/resource-path%2F?$filter.. - not working

So, the question is:
Is there a way to force SDK to generate URLs with trailing slashes?
like this
https://host/servise-path/resource-path/?$filter...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.