<?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>
	<parent>
		<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
		<artifactId>cloudplatform-parent</artifactId>
		<version>3.49.0</version>
	</parent>
	<artifactId>cloudplatform-connectivity-scp-cf</artifactId>
	<name>Cloud Platform - Connectivity SAP BTP Cloud Foundry</name>
	<description>Implementation of the Cloud platform abstraction for general-purpose connectivity on the SAP Business Technology Platform (Cloud Foundry).</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>
	<scm>
		<connection />
		<url />
	</scm>
	<properties>
		<x-sap-release-audience>Public</x-sap-release-audience>
		<x-sap-release-maturity>Stable</x-sap-release-maturity>
	</properties>
	<dependencies>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>cloudplatform-core</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>caching</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>cloudplatform-connectivity</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>cloudplatform-connectivity-scp</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>resilience</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.frameworks</groupId>
			<artifactId>resilience4j</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>security</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>cloudplatform-core-scp-cf</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>security-scp-cf</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>servlet</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>tenant</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.security.xsuaa</groupId>
			<artifactId>token-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>checker-qual</artifactId>
					<groupId>org.checkerframework</groupId>
				</exclusion>
				<exclusion>
					<artifactId>error_prone_annotations</artifactId>
					<groupId>com.google.errorprone</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.ben-manes.caffeine</groupId>
			<artifactId>caffeine</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>checker-qual</artifactId>
					<groupId>org.checkerframework</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.auth0</groupId>
			<artifactId>java-jwt</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.vavr</groupId>
			<artifactId>vavr</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		<!-- Referenced for dependency convergence between guava and caffeine. We fixed the version used by caffeine
             and reference it ourselves here. Once caffeine is updated and uses a newer version this will result in
             failing builds, due to our enforcer plugin. Updates in guava, however, will not be caught with this
             approach. -->
		<dependency>
			<groupId>com.google.errorprone</groupId>
			<artifactId>error_prone_annotations</artifactId>
		</dependency>
		<dependency>
			<groupId>com.jayway.jsonpath</groupId>
			<artifactId>json-path</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>json-smart</artifactId>
					<groupId>net.minidev</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>net.minidev</groupId>
			<artifactId>json-smart</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>asm</artifactId>
					<groupId>org.ow2.asm</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- scope "provided" -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- scope "test" -->
		<dependency>
			<groupId>com.sap.cloud.sdk.testutil</groupId>
			<artifactId>testutil-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.sdk.cloudplatform</groupId>
			<artifactId>tenant-scp-cf</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.security</groupId>
			<artifactId>java-api</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sap.cloud.security</groupId>
			<artifactId>java-security-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<artifactId>wiremock-jre8-standalone</artifactId>
					<groupId>com.github.tomakehurst</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.github.resilience4j</groupId>
			<artifactId>resilience4j-circuitbreaker</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.github.tomakehurst</groupId>
			<artifactId>wiremock-jre8-standalone</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.github.tomakehurst</groupId>
			<artifactId>wiremock</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<!-- excluded for dependency-convergence between wiremock and java-security-test -->
					<artifactId>asm</artifactId>
					<groupId>org.ow2.asm</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- included again in supported version for dependency-convergence between wiremock and java-security-test -->
			<groupId>org.ow2.asm</groupId>
			<artifactId>asm</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-vavr</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!--
            ScpCfDestinationFacade uses DestinationAccessException which implements WithErrorResponse from the servlet module.
            However, since we never explicitly use the interface somewhere, the dependency plugin reports an error,
            so we need to explicitly mark it as used here.
            -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<configuration>
					<ignoredUnusedDeclaredDependencies>
						<ignoredUnusedDeclaredDependency>com.sap.cloud.sdk.cloudplatform:servlet</ignoredUnusedDeclaredDependency>
						<!-- explicit dependency convergence between guava and caffeine -->
						<ignoredUnusedDeclaredDependency>com.google.errorprone:error_prone_annotations</ignoredUnusedDeclaredDependency>
						<!-- explicit dependency convergence between wiremock and java-security-test -->
						<ignoredUnusedDeclaredDependency>com.github.tomakehurst:wiremock-jre8-standalone</ignoredUnusedDeclaredDependency>
						<!-- we need java-api in tests but we need the compile scope.
						 If we don't have this the java compiler cannot compile our code which invokes:
						  public UserTokenFlow token(String encodedToken)
						  public UserTokenFlow token(Token encodedToken)

						  We are using the first one in XsuaaService.java and Token is a class from java-api.
						  -->
						<ignoredUnusedDeclaredDependency>com.sap.cloud.security:java-api</ignoredUnusedDeclaredDependency>
						<ignoredUnusedDeclaredDependency>net.minidev:json-smart</ignoredUnusedDeclaredDependency>
					</ignoredUnusedDeclaredDependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
