<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xmlns="http://maven.apache.org/POM/4.0.0"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-gateway</artifactId>
	<version>4.0.10-SNAPSHOT</version>
	<packaging>pom</packaging>

	<name>Spring Cloud Gateway</name>
	<description>Spring Cloud Gateway</description>

	<parent>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-build</artifactId>
		<version>4.0.7-SNAPSHOT</version>
		<relativePath/>
	</parent>
	<scm>
		<url>https://github.com/spring-cloud/spring-cloud-gateway</url>
		<connection>
			scm:git:git://github.com/spring-cloud/spring-cloud-gateway.git
		</connection>
		<developerConnection>
			scm:git:ssh://git@github.com/spring-cloud/spring-cloud-gateway.git
		</developerConnection>
		<tag>HEAD</tag>
	</scm>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>
	<developers>
		<developer>
			<id>sgibb</id>
			<name>Spencer Gibb</name>
			<email>sgibb at pivotal.io</email>
			<organization>Pivotal Software, Inc.</organization>
			<organizationUrl>https://www.spring.io</organizationUrl>
			<roles>
				<role>Project lead</role>
			</roles>
		</developer>
	</developers>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<blockhound.version>1.0.6.RELEASE</blockhound.version>
		<java.version>17</java.version>
		<junit-pioneer.version>1.6.2</junit-pioneer.version>
		<spring-cloud-circuitbreaker.version>3.0.5-SNAPSHOT</spring-cloud-circuitbreaker.version>
		<spring-cloud-commons.version>4.0.6-SNAPSHOT</spring-cloud-commons.version>
		<testcontainers.version>1.17.6</testcontainers.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-gateway-dependencies</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-commons-dependencies</artifactId>
				<version>${spring-cloud-commons.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-test-support</artifactId>
				<version>${spring-cloud-commons.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-circuitbreaker-dependencies</artifactId>
				<version>${spring-cloud-circuitbreaker.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
				<version>${spring-cloud-circuitbreaker.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-devtools</artifactId>
				<version>${spring-boot.version}</version>
			</dependency>
			<dependency>
				<groupId>io.projectreactor.tools</groupId>
				<artifactId>blockhound</artifactId>
				<version>${blockhound.version}</version>
			</dependency>
			<dependency>
				<groupId>io.projectreactor.tools</groupId>
				<artifactId>blockhound-junit-platform</artifactId>
				<version>${blockhound.version}</version>
			</dependency>
			<dependency>
				<groupId>org.junit-pioneer</groupId>
				<artifactId>junit-pioneer</artifactId>
				<version>${junit-pioneer.version}</version>
			</dependency>
			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>testcontainers-bom</artifactId>
				<version>${testcontainers.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>spring-cloud-gateway-dependencies</module>
		<module>spring-cloud-gateway-mvc</module>
		<module>spring-cloud-gateway-webflux</module>
		<module>spring-cloud-gateway-server</module>
		<module>spring-cloud-starter-gateway</module>
		<module>spring-cloud-gateway-sample</module>
		<module>spring-cloud-gateway-integration-tests</module>
		<module>docs</module>
	</modules>

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>io.spring.javaformat</groupId>
				<artifactId>spring-javaformat-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>spring</id>
			<repositories>
				<repository>
					<id>spring-snapshots</id>
					<name>Spring Snapshots</name>
					<url>https://repo.spring.io/snapshot</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>false</enabled>
					</releases>
				</repository>
				<repository>
					<id>spring-milestones</id>
					<name>Spring Milestones</name>
					<url>https://repo.spring.io/milestone</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
				<repository>
					<id>spring-releases</id>
					<name>Spring Releases</name>
					<url>https://repo.spring.io/release</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>spring-snapshots</id>
					<name>Spring Snapshots</name>
					<url>https://repo.spring.io/snapshot</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>false</enabled>
					</releases>
				</pluginRepository>
				<pluginRepository>
					<id>spring-milestones</id>
					<name>Spring Milestones</name>
					<url>https://repo.spring.io/milestone</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</pluginRepository>
				<pluginRepository>
					<id>spring-releases</id>
					<name>Spring Releases</name>
					<url>https://repo.spring.io/release</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
		<profile>
			<id>sonar</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>pre-unit-test</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
								<configuration>
									<propertyName>surefireArgLine</propertyName>
									<destFile>${project.build.directory}/jacoco.exec
									</destFile>
								</configuration>
							</execution>
							<execution>
								<id>post-unit-test</id>
								<phase>test</phase>
								<goals>
									<goal>report</goal>
								</goals>
								<configuration>
									<!-- Sets the path to the file which contains the execution data. -->
									<dataFile>${project.build.directory}/jacoco.exec
									</dataFile>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<!-- Sets the VM argument line used when unit tests are run. -->
							<argLine>${surefireArgLine}</argLine>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>withoutDockerTests</id>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<excludedGroups>DockerRequired</excludedGroups>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
