<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.springframework.hateoas</groupId>
	<artifactId>spring-hateoas</artifactId>
	<version>1.5.1</version>

	<name>Spring HATEOAS</name>
	<url>https://github.com/spring-projects/spring-hateoas</url>
	<description>
		Library to support implementing representations for
		hyper-text driven REST web services.
	</description>

	<inceptionYear>2011</inceptionYear>

	<organization>
		<name>Pivotal, Inc.</name>
		<url>https://www.spring.io</url>
	</organization>

	<developers>
		<developer>
			<id>odrotbohm</id>
			<name>Oliver Drotbohm</name>
			<email>odrotbohm(at)vmware.com</email>
			<organization>VMware, Inc.</organization>
			<roles>
				<role>Project lead</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
		<developer>
			<id>gturnquist</id>
			<name>Greg Turnquist</name>
			<email>gturnquist(at)vmware.com</email>
			<organization>VMware, Inc.</organization>
			<roles>
				<role>Contributor</role>
			</roles>
			<timezone>-6</timezone>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
			<comments>
				Copyright 2011-2022 the original author or authors.

				Licensed under the Apache License, Version 2.0 (the "License");
				you may not use this file except in compliance with the License.
				You may obtain a copy of the License at

				https://www.apache.org/licenses/LICENSE-2.0

				Unless required by applicable law or agreed to in writing, software
				distributed under the License is distributed on an "AS IS" BASIS,
				WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
				implied.
				See the License for the specific language governing permissions and
				limitations under the License.
			</comments>
		</license>
	</licenses>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<source.level>1.8</source.level>
		<assertj.version>3.21.0</assertj.version>
		<docs.resources.version>0.2.5</docs.resources.version>
		<evo.version>1.3</evo.version>
		<logback.version>1.2.6</logback.version>
		<jacoco>0.8.7</jacoco>
		<jacoco.destfile>${project.build.directory}/jacoco.exec</jacoco.destfile>
		<jackson-bom.version>2.13.2.1</jackson-bom.version>
		<java-module-name>spring.hateoas</java-module-name>
		<jsonpath.version>2.6.0</jsonpath.version>
		<junit.version>5.8.1</junit.version>
		<lombok.version>1.18.22</lombok.version>
		<reactor-bom.version>2020.0.19</reactor-bom.version>
		<slf4j.version>1.7.32</slf4j.version>
		<spring.version>5.3.20</spring.version>
		<spring-plugin.version>2.0.0.RELEASE</spring-plugin.version>
		<kotlin.version>1.6.10</kotlin.version>
		<kotlinx-coroutines.version>1.6.0</kotlinx-coroutines.version>
		<mockk.version>1.12.0</mockk.version>
	</properties>

	<profiles>

		<profile>
			<id>spring-next</id>
			<properties>
				<reactor-bom.version>2020.0.20-SNAPSHOT</reactor-bom.version>
				<spring.version>5.3.21-SNAPSHOT</spring.version>
			</properties>
			<repositories>
				<repository>
					<id>spring-snapshot</id>
					<url>https://repo.spring.io/snapshot</url>
				</repository>
			</repositories>
		</profile>

		<profile>
			<id>kotlin-next</id>
			<properties>
				<kotlin.version>1.6.10</kotlin.version>
				<kotlinx-coroutines.version>1.6.0</kotlinx-coroutines.version>
			</properties>
		</profile>

		<profile>

			<!-- Profile to be run on the CI server, JARs JavaDocs -->

			<id>ci</id>

			<build>
				<plugins>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>create-javadoc-jar</id>
								<goals>
									<goal>jar</goal>
								</goals>
								<phase>package</phase>
							</execution>
						</executions>
					</plugin>

				</plugins>
			</build>

		</profile>

		<profile>

			<!-- Profile for SonarQube -->

			<id>sonarqube</id>

			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<version>${jacoco}</version>
						<configuration>
							<destFile>${jacoco.destfile}</destFile>
						</configuration>
						<executions>
							<execution>
								<id>jacoco-initialize</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>

			<!--
				Profile to be activated when building the docs artifacts.
			-->

			<id>distribute</id>

			<properties>
				<shared.resources>${project.build.directory}/shared-resources</shared.resources>
				<generated-asciidoc-sources.directory>${project.build.directory}/generated-asciidoc-sources/source/
				</generated-asciidoc-sources.directory>
				<generated-docs.directory>${project.build.directory}/generated-docs</generated-docs.directory>
				<maven.main.skip>true</maven.main.skip>
				<maven.test.skip>true</maven.test.skip>
				<maven.kotlin.skip>true</maven.kotlin.skip>
				<maven.install.skip>true</maven.install.skip>
				<maven.deploy.skip>true</maven.deploy.skip>
				<skipTests>true</skipTests>
			</properties>

			<dependencies>
				<dependency>
					<groupId>io.spring.docresources</groupId>
					<artifactId>spring-doc-resources</artifactId>
					<version>${docs.resources.version}</version>
					<type>zip</type>
					<optional>true</optional>
				</dependency>
				<dependency>
					<groupId>org.springframework.data.build</groupId>
					<artifactId>spring-data-build-resources</artifactId>
					<version>2.4.5</version>
					<type>zip</type>
					<optional>true</optional>
				</dependency>
			</dependencies>

			<build>

				<plugins>

					<!--
						Unpacks the content of spring-data-build-resources into the shared resources folder.
					-->

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-dependency-plugin</artifactId>
						<executions>
							<execution>
								<id>unpack-doc-resources</id>
								<goals>
									<goal>unpack-dependencies</goal>
								</goals>
								<phase>generate-resources</phase>
								<configuration>
									<includeGroupIds>io.spring.docresources</includeGroupIds>
									<includeArtifactIds>spring-doc-resources</includeArtifactIds>
									<includeTypes>zip</includeTypes>
									<excludeTransitive>true</excludeTransitive>
									<outputDirectory>${generated-asciidoc-sources.directory}</outputDirectory>
								</configuration>
							</execution>
							<execution>
								<id>unpack-shared-resources</id>
								<goals>
									<goal>unpack-dependencies</goal>
								</goals>
								<phase>generate-resources</phase>
								<configuration>
									<includeGroupIds>${project.groupId}</includeGroupIds>
									<includeArtifactIds>spring-data-build-resources</includeArtifactIds>
									<includeTypes>zip</includeTypes>
									<excludeTransitive>true</excludeTransitive>
									<outputDirectory>${shared.resources}</outputDirectory>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<!--
						Configures JavaDoc generation.
					-->

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>aggregate-javadoc</id>
								<goals>
									<goal>aggregate</goal>
								</goals>
								<phase>package</phase>
								<configuration>
									<outputDirectory>${project.root}/target/site/apidocs</outputDirectory>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.8</version>
						<executions>

							<execution>
								<id>copy-documentation-resources</id>
								<phase>generate-resources</phase>
								<configuration>
									<target>
										<copy todir="target/site/reference/html/images">
											<fileset dir="${basedir}/src/main/asciidoc" erroronmissingdir="false">
												<include name="**/*.png"/>
												<include name="**/*.gif"/>
												<include name="**/*.jpg"/>
											</fileset>
											<flattenmapper/>
										</copy>
									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>

							<execution>
								<id>create-generated-docs-resources</id>
								<phase>process-resources</phase>
								<configuration>
									<target>
										<copy failonerror="false" todir="${generated-asciidoc-sources.directory}/">
											<fileset dir="src/main/asciidoc" includes="**/*.adoc"/>
										</copy>
										<copy failonerror="false"
										      todir="${generated-asciidoc-sources.directory}/images/">
											<fileset dir="src/main/asciidoc/images"/>
										</copy>

										<copy todir="${generated-docs.directory}">
											<fileset dir="${generated-asciidoc-sources.directory}">
												<include name="css/**"/>
												<include name="js/**"/>
											</fileset>
										</copy>
									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>

							<execution>
								<id>rename-reference-docs</id>
								<phase>prepare-package</phase>
								<configuration>
									<target>

										<!-- Copy files for the single-file HTML version -->
										<copy failonerror="false"
										      todir="target/site/reference/html/images">
											<fileset dir="${generated-docs.directory}/images"/>
										</copy>

										<!-- Copy shared resources. Spring Data ones first to override the ones shared -->
										<copy failonerror="false" todir="target/site/reference/html/">
											<fileset dir="${shared.resources}">
												<include name="css/**"/>
												<include name="js/**"/>
											</fileset>
										</copy>

										<copy failonerror="false" todir="target/site/reference/html/">
											<fileset dir="${generated-asciidoc-sources.directory}">
												<include name="css/**"/>
												<include name="js/**"/>
											</fileset>
										</copy>

										<copy failonerror="false" todir="target/site/reference/html/">
											<fileset dir="${generated-docs.directory}" includes="*.html"/>
										</copy>

										<!-- Copy and rename the Epub file -->
										<copy failonerror="false" file="${generated-docs.directory}/index.pdf"
										      tofile="target/site/reference/pdf/spring-hateoas-reference.pdf"/>

										<!-- Copy and rename the PDF file -->
										<copy failonerror="false" file="${generated-docs.directory}/index.epub"
										      tofile="target/site/reference/epub/spring-hateoas-reference.epub"/>

									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>

						</executions>

					</plugin>

					<!--
						Asciidoctor
					-->

					<plugin>
						<groupId>org.asciidoctor</groupId>
						<artifactId>asciidoctor-maven-plugin</artifactId>
						<version>2.0.0-RC.1</version>
						<dependencies>
							<dependency>
								<groupId>org.jruby</groupId>
								<artifactId>jruby</artifactId>
								<version>9.2.6.0</version>
							</dependency>
							<dependency>
								<groupId>org.asciidoctor</groupId>
								<artifactId>asciidoctorj</artifactId>
								<version>2.0.0-RC.1</version>
							</dependency>
							<dependency>
								<groupId>org.asciidoctor</groupId>
								<artifactId>asciidoctorj-pdf</artifactId>
								<version>1.5.0-alpha.16</version>
							</dependency>
							<dependency>
								<groupId>org.asciidoctor</groupId>
								<artifactId>asciidoctorj-epub3</artifactId>
								<version>1.5.0-alpha.8.1</version>
							</dependency>
						</dependencies>
						<executions>

							<execution>
								<id>html</id>
								<phase>compile</phase>
								<goals>
									<goal>process-asciidoc</goal>
								</goals>
								<configuration>
									<sourceDirectory>${generated-asciidoc-sources.directory}</sourceDirectory>
									<sourceDocumentName>index.adoc</sourceDocumentName>
									<backend>html5</backend>
									<outputDirectory>${generated-docs.directory}</outputDirectory>
									<sourceHighlighter>highlight.js</sourceHighlighter>
									<attributes>
										<highlightjsdir>js/highlight</highlightjsdir>
										<highlightjs-theme>github</highlightjs-theme>
										<linkcss>true</linkcss>
										<sectanchors>true</sectanchors>
										<stylesdir>./css</stylesdir>
										<stylesheet>spring.css</stylesheet>
										<toc>left</toc>
									</attributes>
								</configuration>
							</execution>

							<!-- Requires a fix to Javadoc generation first otherwise build duration explodes
							<execution>
								<id>epub</id>
								<phase>compile</phase>
								<goals>
									<goal>process-asciidoc</goal>
								</goals>
								<configuration>
									<sourceDirectory>${generated-asciidoc-sources.directory}</sourceDirectory>
									<sourceDocumentName>index.adoc</sourceDocumentName>
									<backend>epub3</backend>
									<outputDirectory>${generated-docs.directory}</outputDirectory>
									<sourceHighlighter>coderay</sourceHighlighter>
								</configuration>
							</execution>

							<execution>
								<id>pdf</id>
								<phase>compile</phase>
								<goals>
									<goal>process-asciidoc</goal>
								</goals>
								<configuration>
									<sourceDirectory>${generated-asciidoc-sources.directory}</sourceDirectory>
									<sourceDocumentName>index.adoc</sourceDocumentName>
									<backend>pdf</backend>
									<outputDirectory>${generated-docs.directory}</outputDirectory>
									<sourceHighlighter>coderay</sourceHighlighter>
								</configuration>
							</execution>

							 -->

						</executions>

						<configuration>
							<doctype>book</doctype>
							<attributes>
								<doctype>book</doctype>
								<docinfo>shared</docinfo>
								<icons>font</icons>
								<sectids>false</sectids>
								<imagesdir>images</imagesdir>
								<version>${project.version}</version>
								<projectName>${project.name}</projectName>
								<projectVersion>${project.version}</projectVersion>
								<springVersion>${spring.version}</springVersion>
								<allow-uri-read>true</allow-uri-read>
								<toclevels>4</toclevels>
								<numbered>true</numbered>
							</attributes>
						</configuration>

					</plugin>

					<!--
						Creates two zip files for download as well as API and reference documentation distribution.
					-->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-assembly-plugin</artifactId>
						<executions>
							<execution>
								<id>docs</id>
								<goals>
									<goal>single</goal>
								</goals>
								<phase>package</phase>
								<configuration>
									<descriptors>
										<descriptor>src/docs/resources/assemblies/docs.xml</descriptor>
									</descriptors>
									<finalName>spring-hateoas-${project.version}</finalName>
									<appendAssemblyId>true</appendAssemblyId>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<!-- Deploy to Artifactory -->

					<plugin>
						<groupId>org.jfrog.buildinfo</groupId>
						<artifactId>artifactory-maven-plugin</artifactId>
						<version>3.3.0</version>
						<executions>
							<execution>
								<id>deploy-docs</id>
								<goals>
									<goal>publish</goal>
								</goals>
								<phase>deploy</phase>
								<configuration>
									<artifactory>
										<includeEnvVars>false</includeEnvVars>
									</artifactory>
									<deployProperties>
										<zip.name>spring-hateoas-docs</zip.name>
										<zip.displayname>spring-hateoas-docs</zip.displayname>
										<zip.deployed>false</zip.deployed>
										<zip.type>docs</zip.type>
									</deployProperties>
									<buildInfo>
										<!-- Retain only a single build -->
										<buildName>Spring Data Docs spring-hateoas ${project.version}</buildName>
										<buildRetentionCount>1</buildRetentionCount>
									</buildInfo>
									<publisher>
										<contextUrl>{{artifactory.server}}</contextUrl>
										<username>{{artifactory.username}}</username>
										<password>{{artifactory.password}}</password>
										<repoKey>{{artifactory.distribution-repository}}</repoKey>
										<snapshotRepoKey>{{artifactory.distribution-repository}}</snapshotRepoKey>
										<includePatterns>*-docs.zip</includePatterns>
									</publisher>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>snapshot</id>

			<build>
				<plugins>
					<plugin>
						<groupId>org.jfrog.buildinfo</groupId>
						<artifactId>artifactory-maven-plugin</artifactId>
						<version>3.3.0</version>
						<inherited>false</inherited>
						<executions>
							<execution>
								<id>build-info</id>
								<goals>
									<goal>publish</goal>
								</goals>
								<configuration>
									<buildInfo>
										<buildUrl>{{BUILD_URL}}</buildUrl>
									</buildInfo>
									<deployProperties>
										<zip.name>spring-hateoas</zip.name>
										<zip.displayname>spring-hateoas</zip.displayname>
										<zip.deployed>false</zip.deployed>
										<archives>*:*:*:*@zip</archives>
									</deployProperties>
									<publisher>
										<contextUrl>https://repo.spring.io</contextUrl>
										<username>{{ARTIFACTORY_USR}}</username>
										<password>{{ARTIFACTORY_PSW}}</password>
										<repoKey>libs-snapshot-local</repoKey>
										<snapshotRepoKey>libs-snapshot-local</snapshotRepoKey>
									</publisher>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>milestone</id>

			<build>
				<plugins>
					<plugin>
						<groupId>org.jfrog.buildinfo</groupId>
						<artifactId>artifactory-maven-plugin</artifactId>
						<version>2.6.1</version>
						<inherited>false</inherited>
						<executions>
							<execution>
								<id>build-info</id>
								<goals>
									<goal>publish</goal>
								</goals>
								<configuration>
									<buildInfo>
										<buildUrl>{{BUILD_URL}}</buildUrl>
									</buildInfo>
									<deployProperties>
										<zip.name>spring-hateoas</zip.name>
										<zip.displayname>spring-hateoas</zip.displayname>
										<zip.deployed>false</zip.deployed>
										<archives>*:*:*:*@zip</archives>
									</deployProperties>
									<publisher>
										<contextUrl>https://repo.spring.io</contextUrl>
										<username>{{ARTIFACTORY_USR}}</username>
										<password>{{ARTIFACTORY_PSW}}</password>
										<repoKey>libs-milestone-local</repoKey>
										<snapshotRepoKey>libs-milestone-local</snapshotRepoKey>
									</publisher>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>release</id>

			<build>
				<plugins>
					<plugin>
						<groupId>org.jfrog.buildinfo</groupId>
						<artifactId>artifactory-maven-plugin</artifactId>
						<version>2.6.1</version>
						<inherited>false</inherited>
						<executions>
							<execution>
								<id>build-info</id>
								<goals>
									<goal>publish</goal>
								</goals>
								<configuration>
									<buildInfo>
										<buildUrl>{{BUILD_URL}}</buildUrl>
									</buildInfo>
									<deployProperties>
										<zip.name>spring-hateoas</zip.name>
										<zip.displayname>spring-hateoas</zip.displayname>
										<zip.deployed>false</zip.deployed>
										<archives>*:*:*:*@zip</archives>
									</deployProperties>
									<publisher>
										<contextUrl>https://repo.spring.io</contextUrl>
										<username>{{ARTIFACTORY_USR}}</username>
										<password>{{ARTIFACTORY_PSW}}</password>
										<repoKey>libs-release-local</repoKey>
										<snapshotRepoKey>libs-release-local</snapshotRepoKey>
									</publisher>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>central</id>
			<build>
				<pluginManagement>
					<plugins>

						<!-- Sign JARs -->

						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-gpg-plugin</artifactId>
							<version>1.6</version>
							<executions>
								<execution>
									<id>sign-artifacts</id>
									<phase>verify</phase>
									<goals>
										<goal>sign</goal>
									</goals>
									<configuration>
										<gpgArguments>
											<arg>--pinentry-mode</arg>
											<arg>loopback</arg>
										</gpgArguments>
									</configuration>
								</execution>
							</executions>
						</plugin>

						<!-- Deploy to Sonatype OSS Nexus -->

						<plugin>
							<groupId>org.sonatype.plugins</groupId>
							<artifactId>nexus-staging-maven-plugin</artifactId>
							<version>1.6.8</version>
							<extensions>true</extensions>
							<configuration>
								<serverId>sonatype</serverId>
								<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
								<autoReleaseAfterClose>false</autoReleaseAfterClose>
								<keepStagingRepositoryOnFailure>true</keepStagingRepositoryOnFailure>
								<skipStagingRepositoryClose>true</skipStagingRepositoryClose>
							</configuration>
						</plugin>
					</plugins>

				</pluginManagement>

				<plugins>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
					</plugin>

					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
					</plugin>

				</plugins>

			</build>

			<distributionManagement>
				<repository>
					<id>sonatype</id>
					<url>https://s01.oss.sonatype.org//service/local/staging/deploy/maven2/</url>
				</repository>
			</distributionManagement>

		</profile>


	</profiles>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>io.projectreactor</groupId>
				<artifactId>reactor-bom</artifactId>
				<version>${reactor-bom.version}</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>${junit.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${jackson-bom.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.jetbrains.kotlin</groupId>
				<artifactId>kotlin-bom</artifactId>
				<version>${kotlin.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.jetbrains.kotlinx</groupId>
				<artifactId>kotlinx-coroutines-bom</artifactId>
				<version>${kotlinx-coroutines.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>

		<!-- Kotlin extension -->
		<dependency>
			<groupId>org.jetbrains.kotlin</groupId>
			<artifactId>kotlin-stdlib</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.jetbrains.kotlin</groupId>
			<artifactId>kotlin-reflect</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.jetbrains.kotlinx</groupId>
			<artifactId>kotlinx-coroutines-reactor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.jetbrains.kotlin</groupId>
			<artifactId>kotlin-test</artifactId>
			<version>${kotlin.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.mockk</groupId>
			<artifactId>mockk</artifactId>
			<version>${mockk.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webflux</artifactId>
			<version>${spring.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.plugin</groupId>
			<artifactId>spring-plugin-core</artifactId>
			<version>${spring-plugin.version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>com.jayway.jsonpath</groupId>
			<artifactId>json-path</artifactId>
			<version>${jsonpath.version}</version>
		</dependency>

		<dependency>
			<groupId>org.atteo</groupId>
			<artifactId>evo-inflector</artifactId>
			<version>${evo.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Validation API -->

		<dependency>
			<groupId>jakarta.validation</groupId>
			<artifactId>jakarta.validation-api</artifactId>
			<version>2.0.2</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.hibernate.validator</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>6.2.0.Final</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>${lombok.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${slf4j.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-junit-jupiter</artifactId>
			<version>2.23.4</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>2.10.10</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>net.jadler</groupId>
			<artifactId>jadler-all</artifactId>
			<version>1.3.0</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>junit</groupId>
					<artifactId>junit</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>io.projectreactor.netty</groupId>
			<artifactId>reactor-netty</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.projectreactor.addons</groupId>
			<artifactId>reactor-extra</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.tngtech.archunit</groupId>
			<artifactId>archunit</artifactId>
			<version>0.16.0</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>

		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>3.0.0</version>
			</extension>
		</extensions>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.3.1</version>
					<configuration>
						<breakiterator>true</breakiterator>
						<header>${project.name}</header>
						<source>${source.level}</source>
						<quiet>true</quiet>
						<doclint>none</doclint>
						<links>
							<link>https://docs.spring.io/spring/docs/${spring.version}/javadoc-api/</link>
							<link>https://docs.oracle.com/javase/8/docs/api/</link>
						</links>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>3.2.0</version>
				<executions>
					<execution>
						<id>add-docs-source</id>
						<phase>generate-test-sources</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/docs/java</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-docs-resources</id>
						<phase>generate-test-resources</phase>
						<goals>
							<goal>add-test-resource</goal>
						</goals>
						<configuration>
							<resources>
								<resource>
									<directory>src/docs/resources</directory>
								</resource>
							</resources>
						</configuration>
					</execution>
					<execution>
						<id>add-kotlin-sources</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>${project.basedir}/src/main/kotlin</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<source>${source.level}</source>
					<target>${source.level}</target>
					<parameters>true</parameters>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.0.2</version>
				<configuration>
					<archive>
						<manifestEntries>
							<Implementation-Title>${project.name}</Implementation-Title>
							<Implementation-Version>${project.version}</Implementation-Version>
							<Automatic-Module-Name>${java-module-name}</Automatic-Module-Name>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.0.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.0.0-M3</version>
				<configuration>
					<useSystemClassLoader>false</useSystemClassLoader>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jetbrains.kotlin</groupId>
				<artifactId>kotlin-maven-plugin</artifactId>
				<version>${kotlin.version}</version>
				<configuration>
					<jvmTarget>${source.level}</jvmTarget>
				</configuration>
				<executions>
					<execution>
						<id>compile</id>
						<goals>
							<goal>compile</goal>
						</goals>
						<configuration>
							<sourceDirs>
								<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
								<sourceDir>${project.basedir}/src/main/java</sourceDir>
							</sourceDirs>
						</configuration>
					</execution>
					<execution>
						<id>test-compile</id>
						<goals>
							<goal>test-compile</goal>
						</goals>
						<configuration>
							<sourceDirs>
								<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
								<sourceDir>${project.basedir}/src/test/java</sourceDir>
							</sourceDirs>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8.2</version>
			</plugin>

		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-release</id>
			<url>https://repo.spring.io/release</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>bintray-plugins</id>
			<name>bintray-plugins</name>
			<url>https://jcenter.bintray.com</url>
		</pluginRepository>
	</pluginRepositories>

	<scm>
		<url>https://github.com/spring-projects/spring-hateoas</url>
		<connection>scm:git:git://github.com/spring-projects/spring-hateoas.git</connection>
		<developerConnection>scm:git:ssh://git@github.com:spring-projects/spring-hateoas.git</developerConnection>
	</scm>

</project>
