<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.sap.cloud.sdk</groupId>
	<artifactId>sdk-parent</artifactId>
	<version>4.32.0</version>
	<packaging>pom</packaging>
	<name>SAP Cloud SDK - Parent POM</name>
	<description>Parent POM of the SAP Cloud SDK.</description>
	<url>https://sap.github.io/cloud-sdk/docs/java/getting-started</url>
	<organization>
		<name>SAP SE</name>
		<url>https://www.sap.com</url>
	</organization>
	<licenses>
		<license>
			<name>SAP DEVELOPER LICENSE AGREEMENT</name>
			<url>https://tools.hana.ondemand.com/developer-license-3_1.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<developers>
		<developer>
			<name>SAP</name>
			<email>cloudsdk@sap.com</email>
			<organization>SAP SE</organization>
			<organizationUrl>https://www.sap.com</organizationUrl>
		</developer>
	</developers>
	<modules>
		<module>archetypes</module>
		<module>bom</module>
		<module>cloudplatform</module>
		<module>datamodel</module>
		<module>frameworks</module>
		<module>modules-bom</module>
		<module>plugins</module>
		<module>bom-buildpack</module>
		<module>testutil</module>
	</modules>
	<scm>
		<connection />
		<url />
	</scm>
	<properties>
		<x-sap-release-audience>Public</x-sap-release-audience>
		<x-sap-release-maturity>Stable</x-sap-release-maturity>
		<!--  do not modify the following line, it is updated by the versioning script  -->
		<sdk.version>4.32.0</sdk.version>
		<maven.version>3.5</maven.version>
		<java.version>8</java.version>
		<java.failOnWarning>true</java.failOnWarning>
		<java.compilerArgument />
		<audience />
		<javadoc.opts />
		<project.rootdir>${project.basedir}</project.rootdir>
		<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<project.build.generated-sources>${project.build.directory}/generated-sources/java</project.build.generated-sources>
		<project.build.javaCodeFormatter>${project.rootdir}/codestyle/java_formatter.xml</project.build.javaCodeFormatter>
		<skipFormatting>false</skipFormatting>
		<!--  Quality assurance  -->
		<enforcer.skipBanLoggingFrameworks>false</enforcer.skipBanLoggingFrameworks>
		<enforcer.skipEnforceScopeLoggerBridges>false</enforcer.skipEnforceScopeLoggerBridges>
		<enforcer.skipEnforceScopeJavaEE>false</enforcer.skipEnforceScopeJavaEE>
		<enforcer.skipEnforceScopeLombok>false</enforcer.skipEnforceScopeLombok>
		<enforcer.skipBanHighLicenseRisk>false</enforcer.skipBanHighLicenseRisk>
		<enforcer.skipBanGeneratedModulesReference>false</enforcer.skipBanGeneratedModulesReference>
		<enforcer.skipBanWiremockCompileScope>false</enforcer.skipBanWiremockCompileScope>
		<surefire.forkCount>4</surefire.forkCount>
		<surefire.include>*</surefire.include>
		<surefire.exclude />
		<surefire.groups />
		<surefire.excludedGroups />
		<surefire.maxMemorySize>1024m</surefire.maxMemorySize>
		<surefire.logLevel>warn</surefire.logLevel>
		<!--
                Use the argLine property to define the arguments for the JVMs that are forked by the surefire plugin.
                This avoids the need to use late property evaluation for configuring the jacoco plugin.
                Relying on late evaluation of properties such as @{argLine} can result in issues with certain IDEs.

                For more details, visit:
                https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html
                 -->
		<argLine>-Xmx${surefire.maxMemorySize} -Dorg.slf4j.simpleLogger.defaultLogLevel=${surefire.logLevel}</argLine>
		<jacoco.executionDataFile>${project.build.directory}/coverage-reports/jacoco.exec</jacoco.executionDataFile>
		<jacoco.includes>*</jacoco.includes>
		<jacoco.excludes>org.apache.*</jacoco.excludes>
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.jacoco.reportPath>${jacoco.executionDataFile}</sonar.jacoco.reportPath>
		<sonar.language>java</sonar.language>
		<sonar.javascript.jslint.reportPath>${project.build.directory}/jslint.xml</sonar.javascript.jslint.reportPath>
		<codeAnalysisExclusions />
		<test.systems>${project.rootdir}/systems</test.systems>
		<test.credentials>${project.rootdir}/credentials</test.credentials>
		<japicmp.skip>false</japicmp.skip>
		<!--  Non-essential dependencies  -->
		<!-- JCo, also maintain version in module "testutil-resources" -->
		<sapjco3.version>3.1.8</sapjco3.version>
		<!-- To be removed -->
		<sap-passport-api.version>1.8.0</sap-passport-api.version>
		<scp-neo.auditlog.version>0.6.60</scp-neo.auditlog.version>
		<scp-neo-tomcat8.sdk.version>4.79.6</scp-neo-tomcat8.sdk.version>
		<scp-cf.auditlog.version>2.0.16</scp-cf.auditlog.version>
		<fabric-sdk-java.version>2.2.24</fabric-sdk-java.version>
		<fabric-gateway-java.version>2.2.9</fabric-gateway-java.version>
		<jsonschema2pojo.version>1.1.2</jsonschema2pojo.version>
		<commons-codec.version>1.17.0</commons-codec.version>
		<jackson.version>2.17.1</jackson.version>
		<!--  To be removed, Hex used in sap-passport, btp-shared-ledger-client, blockchain-client-multichain module  -->
		<commons-configuration.version>1.10</commons-configuration.version>
		<!--  WordUtils used twice in OData generator  -->
		<json.version>20240303</json.version>
		<!--  XML used once in SOAP payload deserialisation  -->
		<!--  End of non-essential dependencies  -->
		<!--  Fully internal (test) dependencies  -->
		<!-- Keep Spring version in sync with bom/pom.xml -->
		<spring.version>5.3.34</spring.version>
		<spring-security.version>5.8.11</spring-security.version>
		<spring-boot.version>2.7.18</spring-boot.version>
		<slf4j.version>1.7.36</slf4j.version>
		<junit.version>4.13.2</junit.version>
		<assertj-core.version>3.26.0</assertj-core.version>
		<assertj-vavr.version>0.4.3</assertj-vavr.version>
		<mockito.version>5.12.0</mockito.version>
		<jsonassert.version>1.5.1</jsonassert.version>
		<arquillian.version>1.5.0.Final</arquillian.version>
		<junit.jupiter.version>5.10.2</junit.jupiter.version>
		<codemodel.version>2.6</codemodel.version>
		<olingo-v4.version>4.10.0</olingo-v4.version>
		<olingo-v2.version>2.0.13</olingo-v2.version>
		<commons-cli.version>1.8.0</commons-cli.version>
		<mojo-executor.version>2.4.0</mojo-executor.version>
		<maven-plugin.version>3.8.1</maven-plugin.version>
		<maven-plugin-testing.version>3.3.0</maven-plugin-testing.version>
		<restassured.version>5.0.1</restassured.version>
		<caffeine.version>2.9.3</caffeine.version>
		<cds.services.version>1.34.8</cds.services.version>
		<cds4j-api.version>1.38.8</cds4j-api.version>
		<javax-javaee.version>8.0.1</javax-javaee.version>
		<reactor.version>3.6.6</reactor.version>
		<!-- Keep TomEE version in sync with com.sap.cloud.sjb.cf:cf-tomee7-bom -->
		<arquillian-tomee.version>7.0.7</arquillian-tomee.version>
		<com-sap-core-jpaas-security.version>1.4.97</com-sap-core-jpaas-security.version>
		<openapi-generator.version>6.1.0</openapi-generator.version>
		<io-swagger-core-v3.version>2.1.13</io-swagger-core-v3.version>
		<io-swagger-core.version>1.6.14</io-swagger-core.version>
		<scp-cf.xs-env.version>1.8.5</scp-cf.xs-env.version>
		<!--  Dependency convergence dependencies  -->
		<jetty.version>9.4.54.v20240208</jetty.version>
		<protobuf-java.version>3.25.3</protobuf-java.version>
		<!--  sync plexus version with transitive dependency coming from "org.twadata.maven:mojo-executor"  -->
		<plexus-utils.version>3.5.1</plexus-utils.version>
		<plexus-component-annotations.version>2.2.0</plexus-component-annotations.version>
		<stax2-api.version>4.2.2</stax2-api.version>
		<netty.version>4.1.110.Final</netty.version>
		<bouncycastle.version>1.78.1</bouncycastle.version>
		<jakarta-activation.version>2.1.0</jakarta-activation.version>
		<jakarta-xml-bind.version>4.0.2</jakarta-xml-bind.version>
		<qdox.version>2.1.0</qdox.version>
		<wiremock.version>2.35.2</wiremock.version>
		<checkstyle.version>8.41</checkstyle.version>
		<kotlin.version>1.9.24</kotlin.version>
		<byte-buddy.version>1.14.16</byte-buddy.version>
		<hamcrest-core.version>2.2</hamcrest-core.version>
		<snakeyaml.version>1.33</snakeyaml.version>
		<h2database.version>2.2.224</h2database.version>
		<hibernate.version>5.6.15.Final-atlassian-2</hibernate.version>
		<javax-persistence.version>2.2</javax-persistence.version>
		<jakarta-persistence.version>2.2.3</jakarta-persistence.version>
		<jsr305.optional>true</jsr305.optional>
	</properties>
	<dependencyManagement>
		<dependencies>
			<!--Dependencies with import scope-->
			<dependency>
				<groupId>com.sap.cloud.sdk</groupId>
				<artifactId>sdk-bom</artifactId>
				<version>${sdk.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- Imported to resolve dependency convergences with org.apache.tomee:arquillian-tomee-embedded -->
			<dependency>
				<groupId>org.jboss.arquillian</groupId>
				<artifactId>arquillian-bom</artifactId>
				<version>${arquillian.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- Imported for multiple spring dependencies we use in tests -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-framework-bom</artifactId>
				<version>${spring.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-bom</artifactId>
				<version>${netty.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!--Dependencies with provided scope-->
			<!-- only available in the internal SAP Artifactory -->
			<dependency>
				<groupId>com.sap.conn.jco</groupId>
				<artifactId>sapjco3</artifactId>
				<version>${sapjco3.version}</version>
				<scope>provided</scope>
			</dependency>
			<!--Dependencies with runtime scope-->
			<!-- Spring Security for Blockchain -->
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-oauth2-core</artifactId>
				<version>${spring-security.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-oauth2-client</artifactId>
				<version>${spring-security.version}</version>
			</dependency>
			<!--Used in Odata, openApi generators and in scp-neo-maven-plugin-->
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-core</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-plugin-api</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.maven.plugin-tools</groupId>
				<artifactId>maven-plugin-annotations</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>provided</scope>
			</dependency>
			<!--Only used in scp-neo-maven-plugin-->
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-model</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>provided</scope>
			</dependency>
			<!--Used only in concurrency-scp-neo with provided scope-->
			<dependency>
				<groupId>com.sap.core.jpaas.security</groupId>
				<artifactId>com.sap.core.jpaas.security.utils</artifactId>
				<version>${com-sap-core-jpaas-security.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.cloud</groupId>
				<artifactId>neo-java-web-api</artifactId>
				<version>${scp-neo-tomcat8.sdk.version}</version>
				<scope>provided</scope>
			</dependency>
			<!--Only listed in parent-->
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-artifact</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>provided</scope>
			</dependency>
			<!--Only used in auditlog-scp-neo-->
			<dependency>
				<groupId>com.sap.core.service.auditlog</groupId>
				<artifactId>com.sap.core.service.auditlog.api</artifactId>
				<version>${scp-neo.auditlog.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.core.service.auditlog</groupId>
				<artifactId>com.sap.core.service.auditlog.impl</artifactId>
				<version>${scp-neo.auditlog.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.core.service.auditlog</groupId>
				<artifactId>com.sap.core.service.auditlog.extension.api</artifactId>
				<version>${scp-neo.auditlog.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.core.service.auditlog</groupId>
				<artifactId>com.sap.core.service.auditlog.extension.impl</artifactId>
				<version>${scp-neo.auditlog.version}</version>
				<scope>provided</scope>
			</dependency>
			<!-- Only used in auditlog-scp-cf, with provided scope, both api and impl-->
			<dependency>
				<groupId>com.sap.xs.auditlog</groupId>
				<artifactId>audit-java-client-api</artifactId>
				<version>${scp-cf.auditlog.version}</version>
				<!-- USE SCOPE=compile IF COMMUNITY JAVA BUILDBACK (java-buildpack) -->
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.xs.auditlog</groupId>
				<artifactId>audit-java-client-impl</artifactId>
				<version>${scp-cf.auditlog.version}</version>
				<!-- USE SCOPE=compile IF COMMUNITY JAVA BUILDBACK (java-buildpack) -->
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.xs.java</groupId>
				<artifactId>xs-env</artifactId>
				<version>${scp-cf.xs-env.version}</version>
				<!-- USE SCOPE=compile IF COMMUNITY JAVA BUILDBACK (java-buildpack) -->
				<scope>provided</scope>
			</dependency>
			<!--Dependencies used in generators-->
			<!--Used in Odata generator and test modules-->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-simple</artifactId>
				<version>${slf4j.version}</version>
				<scope>runtime</scope>
			</dependency>
			<!--Dependencies with compile scope-->
			<dependency>
				<groupId>commons-configuration</groupId>
				<artifactId>commons-configuration</artifactId>
				<version>${commons-configuration.version}</version>
			</dependency>
			<!--Used in mdi-generator and odata-generator-->
			<dependency>
				<groupId>com.sun.codemodel</groupId>
				<artifactId>codemodel</artifactId>
				<version>${codemodel.version}</version>
			</dependency>
			<!--Used in Odata v4 generator-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-commons-core</artifactId>
				<version>${olingo-v4.version}</version>
			</dependency>
			<!--Used in Odata v4 generator and Mdo distribution client-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-commons-api</artifactId>
				<version>${olingo-v4.version}</version>
			</dependency>
			<!--Used in Odata v4 generator-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-client-core</artifactId>
				<version>${olingo-v4.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-client-api</artifactId>
				<version>${olingo-v4.version}</version>
			</dependency>
			<!--Used in odata-v4-generator and datamodel-metadata-generator-->
			<dependency>
				<groupId>com.fasterxml.jackson.dataformat</groupId>
				<artifactId>jackson-dataformat-xml</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<!-- Used in odata generator-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>olingo-odata2-api</artifactId>
				<version>${olingo-v2.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>olingo-odata2-core</artifactId>
				<version>${olingo-v2.version}</version>
			</dependency>
			<!--Used in odata generator CLI and openapi generator CLI-->
			<dependency>
				<groupId>commons-cli</groupId>
				<artifactId>commons-cli</artifactId>
				<version>${commons-cli.version}</version>
			</dependency>
			<!--Used in datamodel-metadata-generator and odata-generator-utility-->
			<dependency>
				<groupId>com.thoughtworks.qdox</groupId>
				<artifactId>qdox</artifactId>
				<version>${qdox.version}</version>
			</dependency>
			<!--Used in openApi generator-->
			<dependency>
				<groupId>org.openapitools</groupId>
				<artifactId>openapi-generator</artifactId>
				<version>${openapi-generator.version}</version>
			</dependency>
			<!-- Used in openapi-generator and test-util-->
			<dependency>
				<groupId>com.fasterxml.jackson.dataformat</groupId>
				<artifactId>jackson-dataformat-yaml</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<!--Dependencies used in services-->
			<!--  To be removed, blockchain-client-fabric  -->
			<dependency>
				<groupId>org.hyperledger.fabric-sdk-java</groupId>
				<artifactId>fabric-sdk-java</artifactId>
				<version>${fabric-sdk-java.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hyperledger.fabric</groupId>
				<artifactId>fabric-gateway-java</artifactId>
				<version>${fabric-gateway-java.version}</version>
			</dependency>
			<!-- Added to avoid vulnerability CVE-2021-21295 that comes from fabric-sdk-java  -->
			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-tcnative-boringssl-static</artifactId>
				<version>2.0.65.Final</version>
			</dependency>
			<!-- Added to avoid vulnerability CVE-2023-34062 and CVE-2023-34054 -->
			<dependency>
				<groupId>io.projectreactor.netty</groupId>
				<artifactId>reactor-netty-core</artifactId>
				<version>1.1.19</version>
				<scope>runtime</scope>
			</dependency>
			<dependency>
				<groupId>io.projectreactor.netty</groupId>
				<artifactId>reactor-netty-http</artifactId>
				<version>1.1.19</version>
				<scope>runtime</scope>
			</dependency>
			<!-- Added to avoid vulnerability CVE-2022-42889 that comes from the openapi generator  -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-text</artifactId>
				<version>1.12.0</version>
			</dependency>
			<!--Used in MDI-->
			<dependency>
				<groupId>org.jsonschema2pojo</groupId>
				<artifactId>jsonschema2pojo-core</artifactId>
				<version>${jsonschema2pojo.version}</version>
			</dependency>
			<!--Used in MDO distribution client-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-server-api</artifactId>
				<version>${olingo-v4.version}</version>
			</dependency>
			<!--To be removed, Used in blockchain-client-multichain, btp-shared-ledger-client and sap-passport-->
			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>${commons-codec.version}</version>
			</dependency>
			<!--To be removed, Used only in btp-shared-ledger-client-->
			<dependency>
				<groupId>io.projectreactor</groupId>
				<artifactId>reactor-core</artifactId>
				<version>${reactor.version}</version>
			</dependency>
			<!--Rest of SDK Dependencies-->
			<!--  SAP Passport API  -->
			<!-- To be removed -->
			<dependency>
				<groupId>com.sap.core.jdsr</groupId>
				<artifactId>com.sap.js.passport.api</artifactId>
				<version>${sap-passport-api.version}</version>
			</dependency>
			<!--Used only in RFC module as a compile dependency, everywhere else in test scope -->
			<dependency>
				<groupId>org.json</groupId>
				<artifactId>json</artifactId>
				<version>${json.version}</version>
			</dependency>
			<!--  avoid class loading issues with Spring and WireMock-->
			<dependency>
				<groupId>org.skyscreamer</groupId>
				<artifactId>jsonassert</artifactId>
				<version>${jsonassert.version}</version>
			</dependency>
			<!--Used in scp-neo-maven-plugin-->
			<dependency>
				<groupId>org.twdata.maven</groupId>
				<artifactId>mojo-executor</artifactId>
				<version>${mojo-executor.version}</version>
			</dependency>
			<!--Used in scp-neo-maven-plugin-->
			<dependency>
				<groupId>org.codehaus.plexus</groupId>
				<artifactId>plexus-utils</artifactId>
				<version>${plexus-utils.version}</version>
			</dependency>
			<!--Used in blockchain-client-fabric and cloudplatform-core-dwc-cf-->
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcpkix-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<!--Used in btp-shared-ledger-client,intregation-tests and cloudplatform-core-dwc-cf-->
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>com.google.protobuf</groupId>
				<artifactId>protobuf-java</artifactId>
				<version>${protobuf-java.version}</version>
			</dependency>
			<!--Used in end-to-end tests-->
			<!--Used in end-to-end tests, not test scope-->
			<dependency>
				<groupId>com.sap.cds</groupId>
				<artifactId>cds-services-api</artifactId>
				<version>${cds.services.version}</version>
			</dependency>
			<!--Used only in unit-tests-->
			<dependency>
				<groupId>jakarta.activation</groupId>
				<artifactId>jakarta.activation-api</artifactId>
				<version>${jakarta-activation.version}</version>
			</dependency>
			<dependency>
				<groupId>jakarta.xml.bind</groupId>
				<artifactId>jakarta.xml.bind-api</artifactId>
				<version>${jakarta-xml-bind.version}</version>
			</dependency>
			<dependency>
				<groupId>org.yaml</groupId>
				<artifactId>snakeyaml</artifactId>
				<version>${snakeyaml.version}</version>
			</dependency>
			<!--Dependencies with test scope-->
			<dependency>
				<groupId>com.sap.cloud.sdk.testutil</groupId>
				<artifactId>testutil-core</artifactId>
				<version>${sdk.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.cloud.sdk.testutil</groupId>
				<artifactId>testutil-resources</artifactId>
				<version>${sdk.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-core</artifactId>
				<version>${assertj-core.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-vavr</artifactId>
				<version>${assertj-vavr.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-junit-jupiter</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.github.tomakehurst</groupId>
				<artifactId>wiremock-jre8</artifactId>
				<version>${wiremock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-engine</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.vintage</groupId>
				<artifactId>junit-vintage-engine</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-api</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-params</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.sap.cds</groupId>
				<artifactId>cds4j-api</artifactId>
				<version>${cds4j-api.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in mdo modules but in test scope and in scp-cf-spring archetype-->
			<!-- Spring Boot for MDO tests and E2E tests -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-data-jpa</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-autoconfigure</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-test-autoconfigure</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-test</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-commons</artifactId>
				<version>${spring-boot.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-config</artifactId>
				<version>${spring-security.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-web</artifactId>
				<version>${spring-security.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-oauth2-resource-server</artifactId>
				<version>${spring-security.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-oauth2-jose</artifactId>
				<version>${spring-security.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.h2database</groupId>
				<artifactId>h2</artifactId>
				<version>${h2database.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>javax.persistence</groupId>
				<artifactId>javax.persistence-api</artifactId>
				<version>${javax-persistence.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>jakarta.persistence</groupId>
				<artifactId>jakarta.persistence-api</artifactId>
				<version>${jakarta-persistence.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Only used in odata-core-->
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
				<version>${jetty.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-http</artifactId>
				<version>${jetty.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-io</artifactId>
				<version>${jetty.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-util</artifactId>
				<version>${jetty.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in odata generator and open api generator maven plugins-->
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-compat</artifactId>
				<version>${maven-plugin.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in odata generator and open api generator maven plugins-->
			<dependency>
				<groupId>org.apache.maven.plugin-testing</groupId>
				<artifactId>maven-plugin-testing-harness</artifactId>
				<version>${maven-plugin-testing.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in resilience 4j-->
			<dependency>
				<groupId>com.github.ben-manes.caffeine</groupId>
				<artifactId>jcache</artifactId>
				<version>${caffeine.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in integration tests and archetypes-->
			<dependency>
				<groupId>io.rest-assured</groupId>
				<artifactId>rest-assured</artifactId>
				<version>${restassured.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in Integration-tests and archetype-->
			<dependency>
				<groupId>org.apache.tomee</groupId>
				<artifactId>arquillian-tomee-embedded</artifactId>
				<version>${arquillian-tomee.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Used in Integration-tests and archetype-->
			<dependency>
				<groupId>org.apache.tomee</groupId>
				<artifactId>tomee-embedded</artifactId>
				<version>${arquillian-tomee.version}</version>
				<scope>test</scope>
			</dependency>
			<!--Dependencies with runtime scope-->
			<!--To be removed, Used only in btp-shared-ledger-client as runtime dependency -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-reactor-netty</artifactId>
				<version>${spring-boot.version}</version>
				<scope>runtime</scope>
			</dependency>
			<!--Used in MDO distribution client-->
			<dependency>
				<groupId>org.apache.olingo</groupId>
				<artifactId>odata-server-core</artifactId>
				<version>${olingo-v4.version}</version>
				<scope>runtime</scope>
			</dependency>
			<!--Dependencies managed for conflict resolution-->
			<!--Used for dependency convergence in odata-generator-maven-plugin -->
			<dependency>
				<groupId>org.codehaus.plexus</groupId>
				<artifactId>plexus-component-annotations</artifactId>
				<version>${plexus-component-annotations.version}</version>
			</dependency>
			<!--Used for dependency convergence in odata-v4-generator-->
			<dependency>
				<groupId>org.codehaus.woodstox</groupId>
				<artifactId>stax2-api</artifactId>
				<version>${stax2-api.version}</version>
			</dependency>
			<!-- Dependency Convergence for OpenAPI Generator 6.0.1 -->
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-core</artifactId>
				<version>${io-swagger-core-v3.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-models</artifactId>
				<version>${io-swagger-core-v3.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger</groupId>
				<artifactId>swagger-core</artifactId>
				<version>${io-swagger-core.version}</version>
			</dependency>
			<!--Used for dependency convergence in datamodel-metadata-generator-->
			<dependency>
				<groupId>org.jetbrains.kotlin</groupId>
				<artifactId>kotlin-stdlib-jdk8</artifactId>
				<version>${kotlin.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jetbrains.kotlin</groupId>
				<artifactId>kotlin-stdlib-common</artifactId>
				<version>${kotlin.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jetbrains.kotlin</groupId>
				<artifactId>kotlin-stdlib</artifactId>
				<version>${kotlin.version}</version>
			</dependency>
			<!--For dependency convergence error between wiremock-jre8 and junit-->
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest-core</artifactId>
				<version>${hamcrest-core.version}</version>
				<scope>test</scope>
			</dependency>
			<!--For dependency convergence error between assertj-core and mockito-core-->
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>${byte-buddy.version}</version>
				<scope>test</scope>
			</dependency>
			<!-- Added to resolve dependency convergence with wiremock-jre8 -->
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-servlet</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<!-- Added to resolve dependency convergence with wiremock-jre8 -->
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-webapp</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<!-- Added to resolve dependency convergence between wiremock-jre8 and jetty -->
			<dependency>
				<groupId>org.ow2.asm</groupId>
				<artifactId>asm</artifactId>
				<version>9.7</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!--  add logger for tests  -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>${slf4j.version}</version>
			<scope>test</scope>
		</dependency>
		<!--  add engine for junit 4+5 here to ensure they are available everywhere in the project  -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.vintage</groupId>
			<artifactId>junit-vintage-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
			<optional>${jsr305.optional}</optional>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
			</resource>
			<!--  include README and LICENSE in all jar files  -->
			<resource>
				<filtering>false</filtering>
				<directory>${project.rootdir}</directory>
				<includes>
					<include>README</include>
					<include>LICENSE</include>
				</includes>
			</resource>
		</resources>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.4.1</version>
					<executions>
						<execution>
							<id>enforce-project-rules</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireMavenVersion>
										<version>${maven.version}</version>
									</requireMavenVersion>
									<requireJavaVersion>
										<version>${java.version}</version>
									</requireJavaVersion>
									<banDistributionManagement />
									<banDuplicatePomDependencyVersions />
									<dependencyConvergence />
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>ban-deprecated-dependencies</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<bannedDependencies>
										<message>Do not use deprecated dependencies.</message>
										<excludes>
											<exclude>javax.servlet:servlet-api</exclude>
											<!--  use javax.servlet:javax.servlet-api  -->
											<exclude>javax.ws.rs:jsr311-api</exclude>
											<!--  use javax.ws.rs:javax.ws.rs-api  -->
											<exclude>commons-httpclient:commons-httpclient</exclude>
										</excludes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>ban-logging-frameworks</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipBanLoggingFrameworks}</skip>
								<rules>
									<bannedDependencies>
										<message>Do not use and do exclude all transitive uses of logging frameworks.</message>
										<excludes>
											<exclude>org.slf4j:slf4j-simple</exclude>
											<exclude>commons-logging</exclude>
											<exclude>ch.qos.logback</exclude>
											<exclude>org.apache.logging.log4j</exclude>
											<exclude>org.apache.log4j</exclude>
											<exclude>log4j</exclude>
											<exclude>org.tinylog</exclude>
										</excludes>
										<includes>
											<include>org.slf4j:slf4j-simple:*:*:test</include>
										</includes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-scope-logger-bridges</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipEnforceScopeLoggerBridges}</skip>
								<rules>
									<bannedDependencies>
										<message>Logger bridges must use scope runtime or test.</message>
										<excludes>
											<exclude>org.slf4j:jul-to-slf4j</exclude>
											<exclude>org.slf4j:jcl-over-slf4j</exclude>
											<exclude>org.slf4j:log4j-over-slf4j</exclude>
										</excludes>
										<includes>
											<include>org.slf4j:jul-to-slf4j:*:*:runtime</include>
											<include>org.slf4j:jul-to-slf4j:*:*:test</include>
											<include>org.slf4j:jcl-over-slf4j:*:*:runtime</include>
											<include>org.slf4j:jcl-over-slf4j:*:*:test</include>
											<include>org.slf4j:log4j-over-slf4j:*:*:runtime</include>
											<include>org.slf4j:log4j-over-slf4j:*:*:test</include>
										</includes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-scope-javaee</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipEnforceScopeJavaEE}</skip>
								<rules>
									<bannedDependencies>
										<message>Use Java EE modules with scope provided or test.</message>
										<excludes>
											<exclude>javax:javaee-api</exclude>
											<exclude>javax.inject:javax.inject</exclude>
											<exclude>javax.servlet:javax.servlet-api</exclude>
											<exclude>javax.ws.rs:javax.ws.rs-api</exclude>
										</excludes>
										<includes>
											<include>javax:javaee-api:*:*:provided</include>
											<include>javax:javaee-api:*:*:test</include>
											<include>javax.inject:javax.inject:*:*:provided</include>
											<include>javax.inject:javax.inject:*:*:test</include>
											<include>javax.servlet:javax.servlet-api:*:*:provided</include>
											<include>javax.servlet:javax.servlet-api:*:*:test</include>
											<include>javax.ws.rs:javax.ws.rs-api:*:*:provided</include>
											<include>javax.ws.rs:javax.ws.rs-api:*:*:test</include>
										</includes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-scope-lombok</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipEnforceScopeLombok}</skip>
								<rules>
									<bannedDependencies>
										<message>Use lombok with scope provided.</message>
										<excludes>
											<exclude>org.projectlombok:lombok</exclude>
										</excludes>
										<includes>
											<include>org.projectlombok:lombok:*:*:provided</include>
										</includes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>ban-high-license-risk-dependencies</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipBanHighLicenseRisk}</skip>
								<rules>
									<bannedDependencies>
										<message>Do not include any high license risk dependencies without team
											coordination.</message>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>ban-api-dependencies</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipBanGeneratedModulesReference}</skip>
								<rules>
									<bannedDependencies>
										<message>Do not reference generated API modules (or modules transitively
											referencing generated API modules), as they might be removed by profiles.</message>
										<excludes>
											<!--
                                                                                        This list is created by adding all modules that are excluded by the sdk.code.scanning profile fixing the reported issues.
                                                                                        An issue can be fixed by either removing the dependency (preferred solution, if possible), or adding the reported module here and excluding it via the mentioned profile.
                                                                                        In general this list should be in sync with the list of modules excluded by the sdk.code.scanning profile.
                                                                                         -->
											<exclude>com.sap.cloud.sdk.s4hana:s4hana-api-odata</exclude>
											<exclude>com.sap.cloud.sdk.s4hana:s4hana-api-odata-v4</exclude>
											<exclude>com.sap.cloud.sdk.datamodel:odata-api-sample</exclude>
											<exclude>com.sap.cloud.sdk.datamodel:odata-v4-api-sample</exclude>
											<exclude>com.sap.cloud.sdk.datamodel:openapi-api-sample</exclude>
											<exclude>com.sap.cloud.sdk.s4hana:s4hana-all</exclude>
											<exclude>com.sap.cloud.sdk.tests:performance-tests</exclude>
											<exclude>com.sap.cloud.sdk.tests:end-to-end-tests</exclude>
										</excludes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-scope-wiremock</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<skip>${enforcer.skipBanWiremockCompileScope}</skip>
								<rules>
									<bannedDependencies>
										<message>Do not use Wiremock with scope compile. Use scope test instead.</message>
										<excludes>
											<exclude>com.github.tomakehurst:wiremock-jre8-standalone:*:*:compile</exclude>
											<exclude>com.github.tomakehurst:wiremock-standalone:*:*:compile</exclude>
											<exclude>com.github.tomakehurst:wiremock:*:*:compile</exclude>
											<exclude>com.github.tomakehurst:wiremock-jre8:*:*:compile</exclude>
										</excludes>
										<includes>
											<exclude>com.github.tomakehurst:wiremock-jre8-standalone:*:*:test</exclude>
											<exclude>com.github.tomakehurst:wiremock-standalone:*:*:test</exclude>
											<exclude>com.github.tomakehurst:wiremock:*:*:test</exclude>
											<exclude>com.github.tomakehurst:wiremock-jre8:*:*:test</exclude>
										</includes>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
					</executions>
					<configuration>
						<fail>true</fail>
					</configuration>
				</plugin>
				<plugin>
					<groupId>net.revelc.code.formatter</groupId>
					<artifactId>formatter-maven-plugin</artifactId>
					<version>2.23.0</version>
					<executions>
						<execution>
							<goals>
								<goal>format</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<skip>${skipFormatting}</skip>
						<configFile>${project.build.javaCodeFormatter}</configFile>
						<encoding>${project.build.sourceEncoding}</encoding>
						<directories>
							<directory>${project.basedir}/src/main/java</directory>
							<directory>${project.basedir}/src/test/java</directory>
						</directories>
					</configuration>
				</plugin>
				<plugin>
					<groupId>net.revelc.code</groupId>
					<artifactId>impsort-maven-plugin</artifactId>
					<version>1.10.0</version>
					<executions>
						<execution>
							<goals>
								<goal>sort</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<skip>${skipFormatting}</skip>
						<groups>java.,javax.,org.,com.</groups>
						<staticGroups>java,*</staticGroups>
						<staticAfter>false</staticAfter>
						<removeUnused>true</removeUnused>
						<excludes>
							<exclude>**/test/resources/**</exclude>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.github.ekryd.sortpom</groupId>
					<artifactId>sortpom-maven-plugin</artifactId>
					<version>2.15.0</version>
					<executions>
						<execution>
							<goals>
								<goal>sort</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<skip>${skipFormatting}</skip>
						<encoding>${project.build.sourceEncoding}</encoding>
						<createBackupFile>false</createBackupFile>
						<expandEmptyElements>false</expandEmptyElements>
						<!--  -1 stands for tab  -->
						<nrOfIndentSpace>-1</nrOfIndentSpace>
						<sortDependencies>none</sortDependencies>
						<sortPlugins>none</sortPlugins>
						<sortProperties>false</sortProperties>
						<sortModules>false</sortModules>
						<verifyFail>stop</verifyFail>
						<verifyFailOn>strict</verifyFailOn>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>3.5.0</version>
					<executions>
						<execution>
							<id>analyze</id>
							<phase>process-test-classes</phase>
							<goals>
								<goal>analyze-only</goal>
							</goals>
						</execution>
						<execution>
							<id>analyze-dep-mgt</id>
							<phase>process-test-classes</phase>
							<goals>
								<goal>analyze-dep-mgt</goal>
							</goals>
						</execution>
						<execution>
							<id>analyze-duplicate</id>
							<phase>process-test-classes</phase>
							<goals>
								<goal>analyze-duplicate</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<failOnWarning>true</failOnWarning>
						<failBuild>true</failBuild>
						<ignoreNonCompile>false</ignoreNonCompile>
						<ignoredUnusedDeclaredDependencies combine.children="append">
							<!--  ignore annotations that are not visible on bytecode level  -->
							<ignoredUnusedDeclaredDependency>com.google.code.findbugs:jsr305</ignoredUnusedDeclaredDependency>
							<!-- Logging API, adapters and default implementation for tests -->
							<ignoredUnusedDeclaredDependency>org.slf4j:slf4j-api</ignoredUnusedDeclaredDependency>
							<ignoredUnusedDeclaredDependency>org.slf4j:jcl-over-slf4j</ignoredUnusedDeclaredDependency>
							<ignoredUnusedDeclaredDependency>org.slf4j:slf4j-simple</ignoredUnusedDeclaredDependency>
							<!-- Lombok usage for code generation -->
							<ignoredUnusedDeclaredDependency>org.projectlombok:lombok</ignoredUnusedDeclaredDependency>
							<!-- By default JUnit5 adapters are added to every module to ensure no tests are skipped -->
							<ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-engine</ignoredUnusedDeclaredDependency>
							<ignoredUnusedDeclaredDependency>org.junit.vintage:junit-vintage-engine</ignoredUnusedDeclaredDependency>
						</ignoredUnusedDeclaredDependencies>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.3.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.13.0</version>
					<configuration>
						<release>${java.version}</release>
						<showWarnings>true</showWarnings>
						<showDeprecation>true</showDeprecation>
						<failOnWarning>${java.failOnWarning}</failOnWarning>
						<compilerArgument>${java.compilerArgument}</compilerArgument>
						<compilerArgs combine.children="append">
							<arg>-Xlint:all</arg>
							<arg>-Xlint:-processing</arg>
						</compilerArgs>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.4.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>3.1.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<retryFailedDeploymentCount>3</retryFailedDeploymentCount>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.12.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-archetype-plugin</artifactId>
					<version>3.2.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>3.13.0</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
					<version>3.6.0</version>
					<executions>
						<execution>
							<id>remove-old-artifacts</id>
							<phase>verify</phase>
							<goals>
								<goal>remove-project-artifact</goal>
							</goals>
							<configuration>
								<removeAll>false</removeAll>
								<failOnError>false</failOnError>
							</configuration>
						</execution>
						<execution>
							<id>add-source</id>
							<phase>generate-sources</phase>
							<goals>
								<goal>add-source</goal>
							</goals>
							<configuration>
								<sources>
									<source>${project.build.generated-sources}</source>
								</sources>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>0.8.12</version>
					<executions>
						<execution>
							<id>prepare-agent</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<destFile>${jacoco.executionDataFile}</destFile>
						<dataFile>${jacoco.executionDataFile}</dataFile>
						<includes>${jacoco.includes}</includes>
						<excludes>${jacoco.excludes}</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.1.0</version>
					<configuration>
						<includes>
							<include>${surefire.include}</include>
						</includes>
						<excludes>
							<exclude>${surefire.exclude}</exclude>
						</excludes>
						<forkCount>${surefire.forkCount}</forkCount>
						<reuseForks>false</reuseForks>
						<groups>${surefire.groups}</groups>
						<excludedGroups>${surefire.excludedGroups}</excludedGroups>
						<systemPropertyVariables>
							<surefire.forkDir>${project.build.directory}/surefire-fork/${surefire.forkNumber}/</surefire.forkDir>
							<test.systems>${test.systems}</test.systems>
							<test.credentials>${test.credentials}</test.credentials>
						</systemPropertyVariables>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.3.1</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>${checkstyle.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<configLocation>${project.rootdir}/codestyle/SAPDefaultProfile-1.4.6-checkstyle.xml</configLocation>
						<linkXRef>false</linkXRef>
						<includeResources>false</includeResources>
						<includeTestResources>false</includeTestResources>
						<excludes>${codeAnalysisExclusions}</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.github.spotbugs</groupId>
					<artifactId>spotbugs-maven-plugin</artifactId>
					<version>4.8.5.0</version>
					<configuration>
						<includeFilterFile>${project.rootdir}/codestyle/SAPDefaultProfile-1.4.6-findbugs.xml</includeFilterFile>
						<excludeFilterFile>${project.rootdir}/codestyle/spotbugs-exclusions.xml</excludeFilterFile>
						<effort>Max</effort>
						<threshold>Low</threshold>
						<maxHeap>2048</maxHeap>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>3.21.2</version>
					<configuration>
						<rulesets>
							<ruleset>${project.rootdir}/codestyle/SAPDefaultProfile-1.4.6-pmd.xml</ruleset>
							<ruleset>${project.rootdir}/codestyle/sdk_specific_pmd_rules.xml</ruleset>
							<!-- content of the PMD default rule set for Java can be found here:
                                                        https://gitbox.apache.org/repos/asf?p=maven-pmd-plugin.git;a=blob_plain;f=src/main/resources/rulesets/java/maven-pmd-plugin-default.xml;hb=HEAD
                                                         -->
							<ruleset>/rulesets/java/maven-pmd-plugin-default.xml</ruleset>
						</rulesets>
						<linkXRef>false</linkXRef>
						<targetJdk>${java.version}</targetJdk>
						<excludes>
							<exclude>${codeAnalysisExclusions}</exclude>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.whitesource</groupId>
					<artifactId>whitesource-maven-plugin</artifactId>
					<version>20.7.1</version>
					<configuration>
						<checkPolicies>true</checkPolicies>
						<failOnError>true</failOnError>
						<ignorePomModules>false</ignorePomModules>
						<autoDetectProxySettings>false</autoDetectProxySettings>
						<forceCheckAllDependencies>true</forceCheckAllDependencies>
						<forceUpdate>true</forceUpdate>
						<enableDebug>true</enableDebug>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.github.siom79.japicmp</groupId>
					<artifactId>japicmp-maven-plugin</artifactId>
					<version>0.21.2</version>
					<configuration>
						<skip>${japicmp.skip}</skip>
						<parameter>
							<ignoreMissingOldVersion>true</ignoreMissingOldVersion>
							<ignoreMissingClasses>true</ignoreMissingClasses>
							<skipHtmlReport>true</skipHtmlReport>
							<skipDiffReport>true</skipDiffReport>
							<skipXmlReport>true</skipXmlReport>
							<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
							<breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
						</parameter>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok-maven-plugin</artifactId>
					<version>1.18.20.0</version>
					<executions>
						<execution>
							<id>delombok</id>
							<phase>generate-sources</phase>
							<goals>
								<goal>delombok</goal>
							</goals>
							<configuration>
								<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
								<outputDirectory>${project.build.directory}/delombok</outputDirectory>
							</configuration>
						</execution>
						<execution>
							<id>test-delombok</id>
							<phase>generate-test-sources</phase>
							<goals>
								<goal>testDelombok</goal>
							</goals>
							<configuration>
								<sourceDirectory>${project.basedir}/src/test/java</sourceDirectory>
								<outputDirectory>${project.build.directory}/delombok-test</outputDirectory>
							</configuration>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
							<version>1.18.32</version>
						</dependency>
					</dependencies>
					<configuration>
						<addOutputDirectory>false</addOutputDirectory>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>properties-maven-plugin</artifactId>
					<version>1.2.1</version>
					<executions>
						<execution>
							<phase>initialize</phase>
							<goals>
								<goal>read-project-properties</goal>
							</goals>
							<configuration>
								<files>
									<file>${project.rootdir}/scripts/javadoc.${audience}.properties</file>
								</files>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.6.3</version>
					<executions>
						<execution>
							<id>javadoc-jar</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
						<execution>
							<id>javadoc-aggregate</id>
							<goals>
								<goal>aggregate</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<quiet>true</quiet>
						<additionalOptions>${javadoc.opts}</additionalOptions>
						<show>protected</show>
						<groups>
							<group>
								<title>Cloud Platform</title>
								<packages>com.sap.cloud.sdk.cloudplatform*</packages>
							</group>
							<group>
								<title>Business Logging</title>
								<packages>com.sap.cloud.sdk.services.scp.businesslogging*</packages>
							</group>
							<group>
								<title>Framework Adaptations</title>
								<packages>com.sap.cloud.sdk.frameworks*</packages>
							</group>
							<group>
								<title>Utility Packages</title>
								<packages>com.sap.cloud.sdk.datamodel* :com.sap.cloud.sdk.result*:*
									:com.sap.cloud.sdk.scp* :com.sap.cloud.sdk.testutil*
									:com.sap.cloud.sdk.typeconverter* :com.sap.marmolata* :com.sap.security*
									:org.eclipse*</packages>
							</group>
							<group>
								<title>SAP S/4HANA</title>
								<packages>com.sap.cloud.sdk.s4hana*</packages>
							</group>
						</groups>
						<sourcepath>${project.basedir}/target/delombok; ${javadoc.sourcepath}</sourcepath>
						<overview>${project.rootdir}/javadoc.everyone.overview.html</overview>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.3.1</version>
					<executions>
						<execution>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<forceCreation>true</forceCreation>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.sap.research.security.vulas</groupId>
					<artifactId>plugin-maven</artifactId>
					<version>3.1.15</version>
				</plugin>
				<plugin>
					<groupId>com.sap.cloud.sdk.datamodel</groupId>
					<artifactId>openapi-generator-maven-plugin</artifactId>
					<version>${sdk.version}</version>
					<configuration>
						<apiMaturity>beta</apiMaturity>
						<sapCopyrightHeader>true</sapCopyrightHeader>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.openapitools</groupId>
					<artifactId>openapi-generator-maven-plugin</artifactId>
					<version>${openapi-generator.version}</version>
					<configuration>
						<generatorName>java</generatorName>
						<generateApiTests>false</generateApiTests>
						<generateModelTests>false</generateModelTests>
						<generateApiDocumentation>false</generateApiDocumentation>
						<generateAliasAsModel>false</generateAliasAsModel>
						<removeOperationIdPrefix>true</removeOperationIdPrefix>
						<generateSupportingFiles>false</generateSupportingFiles>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>3.5.3</version>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>net.revelc.code</groupId>
				<artifactId>impsort-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.whitesource</groupId>
				<artifactId>whitesource-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.siom79.japicmp</groupId>
				<artifactId>japicmp-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.ekryd.sortpom</groupId>
				<artifactId>sortpom-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>disable-doclint-java8</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<properties>
				<javadoc.opts>-Xdoclint:none</javadoc.opts>
			</properties>
		</profile>
		<profile>
			<id>docs</id>
			<activation>
				<property>
					<name>docs</name>
				</property>
			</activation>
			<build>
				<resources>
					<resource>
						<targetPath>${project.build.directory}/apidocs</targetPath>
						<filtering>false</filtering>
						<directory>${project.rootdir}</directory>
						<includes>
							<include>LICENSE</include>
						</includes>
					</resource>
				</resources>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>properties-maven-plugin</artifactId>
						<inherited>false</inherited>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>build-test-modules</id>
			<activation>
				<property>
					<name>!audience</name>
				</property>
			</activation>
			<modules>
				<module>tests</module>
				<module>testutil</module>
			</modules>
		</profile>
		<profile>
			<id>build-s4hana</id>
			<activation>
				<property>
					<name>!skip.s4hana</name>
				</property>
			</activation>
			<modules>
				<module>s4hana</module>
			</modules>
		</profile>
		<profile>
			<id>build-services</id>
			<activation>
				<property>
					<name>!skip.services</name>
				</property>
			</activation>
			<modules>
				<module>services</module>
			</modules>
		</profile>
		<profile>
			<id>skip-openapi-vdm-generation</id>
			<properties>
				<openapi.generate.skip>true</openapi.generate.skip>
			</properties>
		</profile>
	</profiles>
</project>
