<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2020-2023 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.

-->
<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>eu.michael-simons.neo4j</groupId>
	<artifactId>neo4j-migrations-parent</artifactId>
	<version>2.2.2</version>
	<packaging>pom</packaging>

	<name>Neo4j Migrations</name>
	<description>Simple, Flyway DB inspired migrations for Neo4j.</description>
	<url>https://github.com/michael-simons/neo4j-migrations</url>

	<inceptionYear>2020</inceptionYear>
	<organization>
		<name>Neo4j, Neo4j Sweden AB</name>
		<url>https://neo4j.com</url>
	</organization>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>msimons</id>
			<name>Michael Simons</name>
			<email>michael.simons at neo4j.com</email>
			<organization>Neo Technology</organization>
			<organizationUrl>http://www.neotechnology.com</organizationUrl>
			<roles>
				<role>Project Lead</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>

	<modules>
		<!--
		When adding new modules, make sure that neither the explicit order here nor the order derived from module
		dependencies lead to a scenario where the last module is not deployed (this is the case for all the examples and
		the test results). If this happens, the sonar-maven-plugin.version will skip the whole staging. This is a known
		and unfixed issue.
		-->
		<module>neo4j-migrations-test-resources</module>
		<module>neo4j-migrations-core</module>
		<module>neo4j-migrations-cli</module>
		<module>neo4j-migrations-spring-boot-starter-parent</module>
		<module>neo4j-migrations-quarkus-parent</module>
		<module>extensions/neo4j-migrations-annotation-processing</module>
		<module>extensions/neo4j-migrations-formats-adoc</module>
		<module>extensions/neo4j-migrations-formats-csv</module>
		<module>extensions/neo4j-migrations-formats-markdown</module>
		<module>neo4j-migrations-examples</module>
		<module>neo4j-migrations-maven-plugin</module>
	</modules>

	<scm>
		<connection>scm:git:git@github.com:michael-simons/neo4j-migrations.git</connection>
		<developerConnection>scm:git:git@github.com:michael-simons/neo4j-migrations.git</developerConnection>
		<tag>2.2.2</tag>
		<url>https://github.com/michael-simons/neo4j-migrations</url>
	</scm>

	<distributionManagement>
		<site>
			<id>neo4j-migrations-docs</id>
			<name>Neo4j-Migrations</name>
			<url>https://michael-simons.github.io/neo4j-migrations/current/</url>
		</site>
	</distributionManagement>

	<properties>
		<aggregate.report.dir>neo4j-migrations-test-results/target/site/jacoco-aggregate/jacoco.xml</aggregate.report.dir>
		<apiguardian.version>1.1.1</apiguardian.version>
		<appassembler-maven-plugin.version>2.1.0</appassembler-maven-plugin.version>
		<archunit.version>1.0.1</archunit.version>
		<artifactsDir>neo4j-migrations-cli/target</artifactsDir>
		<asciidoctor-maven-plugin.version>2.2.2</asciidoctor-maven-plugin.version>
		<asciidoctorj-diagram.version>2.2.4</asciidoctorj-diagram.version>
		<asciidoctorj.version>2.5.7</asciidoctorj.version>
		<assertj.version>3.24.2</assertj.version>
		<build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
		<byte-buddy.version>1.14.2</byte-buddy.version>
		<checker-qual.version>3.32.0</checker-qual.version>
		<checkstyle.version>10.9.2</checkstyle.version>
		<classgraph.version>4.8.157</classgraph.version>
		<compile-testing.version>0.21.0</compile-testing.version>
		<covered-ratio-complexity>0.5</covered-ratio-complexity>
		<covered-ratio-instructions>0.5</covered-ratio-instructions>
		<cypher-dsl.version>2023.0.3</cypher-dsl.version>
		<docker-maven-plugin.version>0.42.0</docker-maven-plugin.version>
		<docsImagesDir>${basedir}/docs/modules/ROOT/images</docsImagesDir>
		<error_prone_annotations.version>2.18.0</error_prone_annotations.version>
		<exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
		<graalvm.version>22.3.1</graalvm.version>
		<guava.version>31.1-jre</guava.version>
		<jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
		<japicmp-maven-plugin.version>0.17.2</japicmp-maven-plugin.version>
		<java-module-name/>
		<java.version>17</java.version>
		<junit-jupiter-causal-cluster-testcontainer-extension.version>2022.1.3</junit-jupiter-causal-cluster-testcontainer-extension.version>
		<!-- to be overridden in sub modules -->
		<junit.jupiter.version>5.9.2</junit.jupiter.version>
		<license-maven-plugin.version>4.2.rc2</license-maven-plugin.version>
		<maven-assembly-plugin.version>3.5.0</maven-assembly-plugin.version>
		<maven-checkstyle-plugin.version>3.2.1</maven-checkstyle-plugin.version>
		<maven-clean-plugin.version>3.2.0</maven-clean-plugin.version>
		<maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
		<maven-deploy-plugin.version>3.1.0</maven-deploy-plugin.version>
		<maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
		<maven-failsafe-plugin.version>3.0.0</maven-failsafe-plugin.version>
		<maven-gpg-plugin.version>3.0.1</maven-gpg-plugin.version>
		<maven-install-plugin.version>3.1.0</maven-install-plugin.version>
		<maven-invoker-plugin.version>3.5.0</maven-invoker-plugin.version>
		<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
		<maven-javadoc-plugin.version>3.5.0</maven-javadoc-plugin.version>
		<maven-plugin-plugin.version>3.6.0</maven-plugin-plugin.version>
		<maven-project-info-reports-plugin.version>3.4.2</maven-project-info-reports-plugin.version>
		<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
		<maven-resources-plugin.version>3.3.0</maven-resources-plugin.version>
		<maven-shade-plugin.version>3.4.1</maven-shade-plugin.version>
		<maven-site-plugin.version>3.12.1</maven-site-plugin.version>
		<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
		<maven-surefire-plugin.version>3.0.0</maven-surefire-plugin.version>
		<maven.compiler.debug>true</maven.compiler.debug>
		<maven.compiler.parameters>true</maven.compiler.parameters>
		<maven.compiler.release>${java.version}</maven.compiler.release>
		<maven.version>3.9.0</maven.version>
		<mavengem-wagon.version>1.0.3</mavengem-wagon.version>
		<migrations.test-only-latest-neo4j>false</migrations.test-only-latest-neo4j>
		<mockito.version>5.2.0</mockito.version>
		<moditect-maven-plugin.version>1.0.0.RC3</moditect-maven-plugin.version>
		<native.maven.plugin.version>0.9.20</native.maven.plugin.version>
		<neo4j-java-driver.version>5.6.0</neo4j-java-driver.version>
		<neo4j-migrations.previous.version>2.2.1</neo4j-migrations.previous.version>
		<neo4j-ogm.version>4.0.4</neo4j-ogm.version>
		<neo4j.image>neo4j:4.4</neo4j.image>
		<nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
		<objenesis.version>3.3</objenesis.version>
		<os-maven-plugin.version>1.7.1</os-maven-plugin.version>
		<picocli.version>4.7.1</picocli.version>
		<powermock.version>2.0.9</powermock.version>
		<project.build.docs>${project.build.directory}/docs</project.build.docs>
		<project.build.docs.branch>main</project.build.docs.branch>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<quarkus-neo4j.version>2.2.5</quarkus-neo4j.version>
		<quarkus.version>2.16.5.Final</quarkus.version>
		<slf4j.version>1.7.36</slf4j.version>
		<!--
		 I am not in the mood for _yet_ another player in the Neo4j-Java-Driver 5.x, Spring Boot 3, Quarkus Future battle of version fu
		 and just keep the trusted 1.7.x version managed above and overwrite where necessary.
		-->
		<slf4jv2.version>2.0.4</slf4jv2.version>
		<sonar-maven-plugin.version>3.9.1.2184</sonar-maven-plugin.version>
		<sortpom-maven-plugin.version>3.2.1</sortpom-maven-plugin.version>
		<spring-boot.version>3.0.4</spring-boot.version>
		<spring-data-neo4j.version>7.0.3</spring-data-neo4j.version>
		<system-lambda.version>1.2.1</system-lambda.version>
		<testcontainers.version>1.17.6</testcontainers.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>${junit.jupiter.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.github.stefanbirkner</groupId>
				<artifactId>system-lambda</artifactId>
				<version>${system-lambda.version}</version>
			</dependency>
			<dependency>
				<groupId>com.tngtech.archunit</groupId>
				<artifactId>archunit</artifactId>
				<version>${archunit.version}</version>
			</dependency>
			<dependency>
				<groupId>eu.michael-simons.neo4j</groupId>
				<artifactId>junit-jupiter-causal-cluster-testcontainer-extension</artifactId>
				<version>${junit-jupiter-causal-cluster-testcontainer-extension.version}</version>
			</dependency>
			<dependency>
				<groupId>info.picocli</groupId>
				<artifactId>picocli</artifactId>
				<version>${picocli.version}</version>
			</dependency>
			<dependency>
				<groupId>io.github.classgraph</groupId>
				<artifactId>classgraph</artifactId>
				<version>${classgraph.version}</version>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>${byte-buddy.version}</version>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy-agent</artifactId>
				<version>${byte-buddy.version}</version>
			</dependency>
			<dependency>
				<groupId>net.java.dev.jna</groupId>
				<artifactId>jna</artifactId>
				<version>5.13.0</version>
			</dependency>
			<dependency>
				<groupId>org.apiguardian</groupId>
				<artifactId>apiguardian-api</artifactId>
				<version>${apiguardian.version}</version>
			</dependency>
			<dependency>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctorj</artifactId>
				<version>${asciidoctorj.version}</version>
				<exclusions>
					<exclusion>
						<groupId>rubygems</groupId>
						<!-- Not needed -->
						<artifactId>test-unit</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-core</artifactId>
				<version>${assertj.version}</version>
			</dependency>
			<dependency>
				<groupId>org.graalvm.sdk</groupId>
				<artifactId>graal-sdk</artifactId>
				<version>${graalvm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>${mockito.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-inline</artifactId>
				<version>${mockito.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-junit-jupiter</artifactId>
				<version>${mockito.version}</version>
			</dependency>
			<dependency>
				<groupId>org.neo4j</groupId>
				<artifactId>neo4j-cypher-dsl-schema-name-support</artifactId>
				<version>${cypher-dsl.version}</version>
			</dependency>
			<dependency>
				<groupId>org.neo4j</groupId>
				<artifactId>neo4j-ogm-bolt-driver</artifactId>
				<version>${neo4j-ogm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.neo4j</groupId>
				<artifactId>neo4j-ogm-core</artifactId>
				<version>${neo4j-ogm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.neo4j.driver</groupId>
				<artifactId>neo4j-java-driver</artifactId>
				<version>${neo4j-java-driver.version}</version>
			</dependency>
			<dependency>
				<groupId>org.objenesis</groupId>
				<artifactId>objenesis</artifactId>
				<version>${objenesis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-reflect</artifactId>
				<version>${powermock.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jul-to-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-simple</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-neo4j</artifactId>
				<version>${spring-data-neo4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>junit-jupiter</artifactId>
				<version>${testcontainers.version}</version>
			</dependency>
			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>neo4j</artifactId>
				<version>${testcontainers.version}</version>
			</dependency>
			<dependency>
				<!-- compile-testing depends on several versions of this -->
				<groupId>com.google.errorprone</groupId>
				<artifactId>error_prone_annotations</artifactId>
				<version>${error_prone_annotations.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<!-- compile-testing depends on several versions of this -->
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.google.testing.compile</groupId>
				<artifactId>compile-testing</artifactId>
				<version>${compile-testing.version}</version>
				<scope>test</scope>
				<exclusions>
					<exclusion>
						<groupId>junit</groupId>
						<artifactId>junit</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<!-- compile-testing depends on several versions of this -->
				<groupId>org.checkerframework</groupId>
				<artifactId>checker-qual</artifactId>
				<version>${checker-qual.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<pluginManagement>

			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${maven-gpg-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.sonarsource.scanner.maven</groupId>
					<artifactId>sonar-maven-plugin</artifactId>
					<version>${sonar-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven-resources-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>3.8.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${maven-clean-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-invoker-plugin</artifactId>
					<version>${maven-invoker-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
					<configuration>
						<forceJavacCompilerUse>true</forceJavacCompilerUse>
						<showWarnings>true</showWarnings>
						<compilerArgs>
							<arg>-Xlint:all,-options,-path,-processing,-classfile</arg>
							<arg>-Werror</arg>
							<arg>-parameters</arg>
						</compilerArgs>
					</configuration>
					<executions>
						<execution>
							<id>default-testCompile</id>
							<configuration>
								<forceJavacCompilerUse>true</forceJavacCompilerUse>
								<showWarnings>true</showWarnings>
								<compilerArgs>
									<arg>-Xlint:all,-options,-path,-processing,-classfile,-exports,-missing-explicit-ctor</arg>
									<arg>-Werror</arg>
									<arg>-parameters</arg>
								</compilerArgs>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${maven-assembly-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>${maven-install-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
					<configuration>
						<quiet>true</quiet>
						<detectOfflineLinks>false</detectOfflineLinks>
						<detectJavaApiLink>true</detectJavaApiLink>
						<release>${java.version}</release>
						<tags>
							<tag>
								<name>soundtrack</name>
								<placement>a</placement>
								<head>Soundtrack</head>
							</tag>
						</tags>
						<additionalOptions>
							<option>--add-modules</option>
							<option>java.compiler</option>
							<option>--add-modules</option>
							<option>java.xml</option>
						</additionalOptions>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>${maven-checkstyle-plugin.version}</version>
					<configuration>
						<configLocation>etc/checkstyle/config.xml</configLocation>
						<suppressionsLocation>etc/checkstyle/suppressions.xml</suppressionsLocation>
						<headerLocation>etc/checkstyle/java-header.txt</headerLocation>
						<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
						<consoleOutput>true</consoleOutput>
						<failsOnError>true</failsOnError>
						<includeTestSourceDirectory>true</includeTestSourceDirectory>
						<sourceDirectories>
							<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
						</sourceDirectories>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>${checkstyle.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>com.github.ekryd.sortpom</groupId>
					<artifactId>sortpom-maven-plugin</artifactId>
					<version>${sortpom-maven-plugin.version}</version>
					<configuration>
						<encoding>${project.build.sourceEncoding}</encoding>
						<keepBlankLines>true</keepBlankLines>
						<nrOfIndentSpace>-1</nrOfIndentSpace>
						<sortProperties>true</sortProperties>
						<sortDependencies>scope,groupId,artifactId</sortDependencies>
						<createBackupFile>false</createBackupFile>
						<expandEmptyElements>false</expandEmptyElements>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco-maven-plugin.version}</version>
					<configuration>
						<includes>
							<include>**/*</include>
						</includes>
					</configuration>
					<executions>
						<execution>
							<id>pre-unit-test</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
							<configuration>
								<append>true</append>
							</configuration>
						</execution>
						<execution>
							<id>pre-integration-test</id>
							<goals>
								<goal>prepare-agent-integration</goal>
							</goals>
							<configuration>
								<append>true</append>
								<destFile>${project.build.directory}/jacoco.exec</destFile>
							</configuration>
						</execution>
						<execution>
							<id>report-and-check</id>
							<goals>
								<goal>report</goal>
								<goal>check</goal>
							</goals>
							<phase>post-integration-test</phase>
							<configuration>
								<rules>
									<rule>
										<element>BUNDLE</element>
										<limits>
											<limit>
												<counter>INSTRUCTION</counter>
												<value>COVEREDRATIO</value>
												<minimum>${covered-ratio-instructions}</minimum>
											</limit>
											<limit>
												<counter>COMPLEXITY</counter>
												<value>COVEREDRATIO</value>
												<minimum>${covered-ratio-complexity}</minimum>
											</limit>
										</limits>
									</rule>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>${exec-maven-plugin.version}</version>
					<configuration>
						<skip>true</skip>
					</configuration>
					<executions>
						<execution>
							<id>prepare-release</id>
							<goals>
								<goal>exec</goal>
							</goals>
							<configuration>
								<executable>bin/prepare-release.sh</executable>
								<arguments>
									<argument>${project.version}</argument>
									<argument>${isDryRun}</argument>
								</arguments>
								<skip>true</skip>
							</configuration>
						</execution>
						<execution>
							<id>release-prepared</id>
							<goals>
								<goal>exec</goal>
							</goals>
							<configuration>
								<executable>bin/update-previous-version.sh</executable>
								<skip>true</skip>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>${maven-site-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-project-info-reports-plugin</artifactId>
					<version>${maven-project-info-reports-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>${maven-shade-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.moditect</groupId>
					<artifactId>moditect-maven-plugin</artifactId>
					<version>${moditect-maven-plugin.version}</version>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<version>${license-maven-plugin.version}</version>
				<configuration>
					<strictCheck>true</strictCheck>
					<mapping>
						<factories>SCRIPT_STYLE</factories>
					</mapping>
					<licenseSets>
						<licenseSet>
							<header>etc/license.tpl</header>
							<properties>
								<year>2023</year>
							</properties>
							<includes>
								<include>**</include>
							</includes>
							<excludes>
								<exclude>**/*.adoc</exclude>
								<exclude>**/*.csv</exclude>
								<exclude>**/*.cypher</exclude>
								<exclude>**/*.sh</exclude>
								<exclude>**/*.tpl</exclude>
								<exclude>**/*.txt</exclude>
								<exclude>**/*.webm</exclude>
								<exclude>**/*.yaml</exclude>
								<exclude>**/*.extension</exclude>
								<exclude>**/org.mockito.plugins.MockMaker</exclude>
								<exclude>bin/check_availability.java</exclude>
								<exclude>bin/start_neo4j.java</exclude>
								<exclude>bin/test_native_cli.java</exclude>
								<exclude>**/package-info.java</exclude>
								<exclude>**/assembly/README</exclude>
								<!-- XM based migrations -->
								<exclude>**/catalogbased*/**/*.xml</exclude>
								<exclude>**/V*.xml</exclude>
								<exclude>**/.all-contributorsrc</exclude>
								<exclude>**/org.springframework.boot.autoconfigure.AutoConfiguration.imports</exclude>
								<!-- Annotation processor test resources -->
								<exclude>**/src/test/resources/expected_catalog*.xml</exclude>
							</excludes>
						</licenseSet>
					</licenseSets>
					<dependencyEnforce>true</dependencyEnforce>
					<dependencyExceptionMessage>One or more dependencies are licensed under a non-approved license.</dependencyExceptionMessage>
					<dependencyPolicies>
						<dependencyPolicy>
							<type>LICENSE_URL</type>
							<rule>APPROVE</rule>
							<value>https://www.apache.org/licenses/LICENSE-2.0</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>Apache License, Version 2</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>Apache License, Version 2.0</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>The Apache Software License, Version 2.0</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>The Apache Software License, version 2.0</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>The MIT License (MIT)</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>MIT License</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>Universal Permissive License, Version 1.0</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>LICENSE_NAME</type>
							<rule>APPROVE</rule>
							<value>BSD 2-Clause License</value>
						</dependencyPolicy>
						<dependencyPolicy>
							<type>ARTIFACT_PATTERN</type>
							<rule>APPROVE</rule>
							<!-- This is under GNU, but we don't deliver any binary that depends on it. -->
							<value>org.neo4j.test:neo4j-harness*</value>
						</dependencyPolicy>
					</dependencyPolicies>
				</configuration>
				<executions>
					<execution>
						<id>validate</id>
						<goals>
							<goal>check</goal>
						</goals>
						<phase>validate</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<inherited>false</inherited>
				<executions>
					<execution>
						<id>prepare-release</id>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration combine.self="append">
							<skip>false</skip>
						</configuration>
					</execution>
					<execution>
						<id>release-prepared</id>
						<goals>
							<goal>exec</goal>
						</goals>
						<configuration combine.self="append">
							<skip>false</skip>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.ekryd.sortpom</groupId>
				<artifactId>sortpom-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>sort</goal>
						</goals>
						<phase>verify</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>${maven-enforcer-plugin.version}</version>
				<executions>
					<execution>
						<id>enforce</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<phase>validate</phase>
						<configuration>
							<rules>
								<requireJavaVersion>
									<version>${java.version}</version>
								</requireJavaVersion>
								<DependencyConvergence/>
								<requireMavenVersion>
									<version>${maven.version}</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<executions>
					<execution>
						<id>validate</id>
						<goals>
							<goal>check</goal>
						</goals>
						<phase>validate</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<argLine>@{argLine} -Xverify:all</argLine>
					<systemPropertyVariables>
						<migrations.default-neo4j-image>${neo4j.image}</migrations.default-neo4j-image>
					</systemPropertyVariables>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>${maven-failsafe-plugin.version}</version>
				<configuration>
					<argLine>@{argLine} -Xverify:all</argLine>
					<systemPropertyVariables>
						<migrations.default-neo4j-image>${neo4j.image}</migrations.default-neo4j-image>
						<migrations.test-only-latest-neo4j>${migrations.test-only-latest-neo4j}</migrations.test-only-latest-neo4j>
					</systemPropertyVariables>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${maven-jar-plugin.version}</version>
				<configuration>
					<archive>
						<manifest>
							<addDefaultEntries>true</addDefaultEntries>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addBuildEnvironmentEntries>true</addBuildEnvironmentEntries>
						</manifest>
						<manifestEntries>
							<Automatic-Module-Name>${java-module-name}</Automatic-Module-Name>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>${nexus-staging-maven-plugin.version}</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>${maven-source-plugin.version}</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>${maven-release-plugin.version}</version>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<useReleaseProfile>false</useReleaseProfile>
					<releaseProfiles>release</releaseProfiles>
					<tagNameFormat>@{project.version}</tagNameFormat>
					<goals>deploy</goals>
					<pushChanges>false</pushChanges>
					<localCheckout>true</localCheckout>
					<arguments>-Drelease -DisDryRun=${dryRun}</arguments>
					<preparationGoals>clean exec:exec@prepare-release verify</preparationGoals>
					<completionGoals>compile exec:exec@release-prepared</completionGoals>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctor-maven-plugin</artifactId>
				<version>${asciidoctor-maven-plugin.version}</version>
				<inherited>false</inherited>
				<configuration>
					<backend>html</backend>
					<doctype>book</doctype>
					<sourceDirectory>${basedir}/docs/modules/ROOT/pages</sourceDirectory>
					<sourceDocumentName>../../../index.adoc</sourceDocumentName>
					<attributes>
						<icons>font</icons>
						<toc>left</toc>
						<setanchors/>
						<idprefix/>
						<idseparator/>
						<imagesdir>${docsImagesDir}</imagesdir>
						<neo4j-java-driver-version>${neo4j-java-driver.version}</neo4j-java-driver-version>
						<neo4j-migrations.version>${project.version}</neo4j-migrations.version>
						<source-highlighter>coderay</source-highlighter>
						<branch>${project.build.docs.branch}</branch>
						<fullVersion>${project.version}</fullVersion>
						<manualIncludeDir>${project.basedir}</manualIncludeDir>
						<pagesDir>.</pagesDir>
					</attributes>
					<requires>
						<require>asciidoctor-diagram</require>
					</requires>
					<outputDirectory>${project.build.docs}</outputDirectory>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.asciidoctor</groupId>
						<artifactId>asciidoctorj-diagram</artifactId>
						<version>${asciidoctorj-diagram.version}</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>generate-docs</id>
						<goals>
							<goal>process-asciidoc</goal>
						</goals>
						<phase>prepare-package</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<extensions>
			<extension>
				<groupId>org.torquebox.mojo</groupId>
				<artifactId>mavengem-wagon</artifactId>
				<version>${mavengem-wagon.version}</version>
			</extension>
		</extensions>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
				<reportSets>
					<reportSet>
						<id>aggregate</id>
						<reports>
							<report>aggregate</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<report>checkstyle</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<profile>
			<id>no-release</id>
			<!--
			According to https://github.com/sonatype/nexus-maven-plugins/tree/master/staging/maven-plugin
			skipNexusStagingDeployMojo may not be set to true in the last reactor module. Because we don't
			want to deploy our last module, nor a dummy module, we simply omit the relevant modules when
			a deploy is in progress.
			-->
			<activation>
				<property>
					<name>!release</name>
				</property>
			</activation>
			<modules>
				<module>neo4j-migrations-test-results</module>
			</modules>
		</profile>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<goals>
									<goal>sign</goal>
								</goals>
								<phase>verify</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>sonar</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<properties>
				<!-- They are not properly instrumented during dev mode tests -->
				<sonar.coverage.exclusions>**/ac/simons/neo4j/migrations/quarkus/runtime/MigrationsDevConsole*.*</sonar.coverage.exclusions>
				<sonar.host.url>https://sonarcloud.io</sonar.host.url>
				<sonar.moduleKey>${project.groupId}:${project.artifactId}</sonar.moduleKey>
				<sonar.organization>michael-simons-github</sonar.organization>
				<sonar.projectKey>eu.michael-simons.neo4j:neo4j-migrations-parent</sonar.projectKey>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonarsource.scanner.maven</groupId>
						<artifactId>sonar-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>sonar</id>
								<goals>
									<goal>sonar</goal>
								</goals>
								<phase>verify</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>fast</id>
			<activation>
				<property>
					<name>fast</name>
				</property>
			</activation>
			<properties>
				<asciidoctor.skip>true</asciidoctor.skip>
				<checkstyle.skip>true</checkstyle.skip>
				<docker.skip>true</docker.skip>
				<invoker.skip>true</invoker.skip>
				<jacoco.skip>true</jacoco.skip>
				<japicmp.skip>true</japicmp.skip>
				<jqassistant.skip>true</jqassistant.skip>
				<license.skip>true</license.skip>
				<maven.javadoc.skip>true</maven.javadoc.skip>
				<pmd.skip>true</pmd.skip>
				<skipITs>true</skipITs>
				<skipNativeBuild>true</skipNativeBuild>
				<skipTests>true</skipTests>
			</properties>
		</profile>
		<?SORTPOM IGNORE?>
		<profile>
			<id>jreleaser</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jreleaser</groupId>
						<artifactId>jreleaser-maven-plugin</artifactId>
						<version>1.5.1</version>
						<inherited>false</inherited>
						<configuration>
							<jreleaser>
								<project>
									<name>neo4j-migrations</name>
								</project>
								<release>
									<github>
										<skipTag>true</skipTag>
										<tagName>{{projectVersion}}</tagName>
										<releaseName>{{projectVersion}}</releaseName>
										<branch>main</branch>
										<changelog>
											<formatted>ALWAYS</formatted>
											<contentTemplate>etc/jreleaser/changelog.md.tpl</contentTemplate>
											<format>- {{commitShortHash}} {{commitTitle}}</format>
											<preset>conventional-commits</preset>
											<contributors>
												<format>- {{^contributorUsername}}{{contributorName}}{{/contributorUsername}}{{#contributorUsername}}@{{contributorUsername}}{{/contributorUsername}}</format>
											</contributors>
											<labelers>
												<labeler>
													<title>Bump</title>
													<label>dependabot</label>
													<order>-1</order>
												</labeler>
												<labeler>
													<title>build(deps)</title>
													<label>dependabot</label>
													<order>-2</order>
												</labeler>
												<labeler>
													<title>Fix</title>
													<label>fix</label>
												</labeler>
												<labeler>
													<title>fix</title>
													<label>fix</label>
												</labeler>
												<labeler>
													<title>Add support</title>
													<label>feat</label>
												</labeler>
												<labeler>
													<title>Document</title>
													<label>docs</label>
												</labeler>
												<labeler>
													<title>After release cleanup.</title>
													<label>maven-release</label>
												</labeler>
												<labeler>
													<title>[maven-release-plugin]</title>
													<label>maven-release</label>
												</labeler>
												<labeler>
													<body>nocl</body>
													<label>nocl</label>
												</labeler>
											</labelers>
											<replacers>
												<replacer>
													<search>(?:build\(deps\): )(.*)</search>
													<replace>$1</replace>
												</replacer>
												<replacer>
													<search>((?:GH-)(\d+) - )(.*)</search>
													<replace>$3 (#$2)</replace>
												</replacer>
											</replacers>
											<categories>
												<category>
													<key>features</key>
													<title>🚀 Features</title>
													<labels>feat</labels>
													<order>10</order>
												</category>
												<category>
													<key>fixes</key>
													<title>🐛 Bug Fixes</title>
													<labels>fix</labels>
													<order>20</order>
												</category>
												<category>
													<key>changes</key>
													<title>🔄️ Refactorings</title>
													<labels>refactor</labels>
													<order>25</order>
												</category>
												<category>
													<key>docs</key>
													<title>📝 Documentation</title>
													<labels>docs</labels>
													<order>30</order>
												</category>
												<category>
													<key>tasks</key>
													<title>🧰 Tasks</title>
													<labels>chore</labels>
													<order>35</order>
												</category>
												<category>
													<title>🧹 Housekeeping</title>
													<labels>dependabot</labels>
													<order>70</order>
												</category>
												<category>
													<key>build</key>
													<title>🛠 Build</title>
													<order>80</order>
												</category>
												<category>
													<title>nocl</title>
													<labels>nocl,maven-release</labels>
												</category>
											</categories>
											<hide>
												<categories>dependabot,nocl</categories>
												<contributors>GitHub,dependabot,all-contributors</contributors>
											</hide>
										</changelog>
									</github>
								</release>
								<distributions>
									<neo4j-migrations>
										<type>BINARY</type>
										<artifacts>
											<artifact>
												<path>{{artifactsDir}}/{{projectName}}-{{projectVersion}}-linux-x86_64.zip</path>
												<platform>linux-x86_64</platform>
											</artifact>
											<artifact>
												<path>{{artifactsDir}}/{{projectName}}-{{projectVersion}}-windows-x86_64.zip</path>
												<platform>windows-x86_64</platform>
											</artifact>
											<artifact>
												<path>{{artifactsDir}}/{{projectName}}-{{projectVersion}}-osx-x86_64.zip</path>
												<platform>osx-x86_64</platform>
											</artifact>
											<artifact>
												<path>{{artifactsDir}}/{{projectName}}-{{projectVersion}}-linux-aarch_64.zip</path>
												<platform>linux-aarch_64</platform>
											</artifact>
										</artifacts>
										<brew>
											<active>ALWAYS</active>
											<templateDirectory>etc/jreleaser/distributions/brew</templateDirectory>
											<tap>
												<name>homebrew-neo4j-migrations</name>
												<commitMessage>Bump neo4j-migrations to {{tagName}}.</commitMessage>
											</tap>
											<formulaName>neo4j-migrations</formulaName>
										</brew>
										<sdkman>
											<active>ALWAYS</active>
											<candidate>neo4jmigrations</candidate>
										</sdkman>
									</neo4j-migrations>
									<neo4j-migrations-no-arch>
										<type>JAVA_BINARY</type>
										<artifacts>
											<artifact>
												<path>{{artifactsDir}}/{{projectName}}-{{projectVersion}}.zip</path>
											</artifact>
										</artifacts>
										<java>
											<version>${java.version}</version>
											<mainClass>ac.simons.neo4j.migrations.cli.MigrationsCli</mainClass>
										</java>
										<jbang>
											<active>ALWAYS</active>
											<extraProperties>
												<aliasName>neo4j-migrations</aliasName>
												<scriptName>neo4j_migrations</scriptName>
												<distributionGA>eu.michael-simons.neo4j:neo4j-migrations-cli</distributionGA>
											</extraProperties>
											<catalog>
												<owner>neo4j</owner>
												<commitMessage>Bump neo4j-migrations to {{tagName}}.</commitMessage>
											</catalog>
										</jbang>
									</neo4j-migrations-no-arch>
								</distributions>
							</jreleaser>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<?SORTPOM RESUME?>
	</profiles>
</project>
