<?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>

	<parent>
		<groupId>eu.michael-simons.neo4j</groupId>
		<artifactId>neo4j-migrations-parent</artifactId>
		<version>1.2.2</version>
	</parent>

	<artifactId>neo4j-migrations</artifactId>
	<name>Neo4j Migrations (Core)</name>
	<description>The Core API of Neo4j-Migrations.</description>

	<properties>
		<java-module-name>ac.simons.neo4j.migrations.core</java-module-name>
		<sonar.coverage.jacoco.xmlReportPaths>${basedir}/../${aggregate.report.dir}</sonar.coverage.jacoco.xmlReportPaths>
	</properties>

	<dependencies>

		<dependency>
			<groupId>io.github.classgraph</groupId>
			<artifactId>classgraph</artifactId>
		</dependency>

		<dependency>
			<groupId>org.neo4j.driver</groupId>
			<artifactId>neo4j-java-driver</artifactId>
		</dependency>
		<dependency>
			<groupId>eu.michael-simons.neo4j</groupId>
			<artifactId>neo4j-migrations-test-resources</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-inline</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-reflect</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jul-to-slf4j</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>neo4j</artifactId>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>com.github.siom79.japicmp</groupId>
				<artifactId>japicmp-maven-plugin</artifactId>
				<version>${japicmp-maven-plugin.version}</version>
				<configuration>
					<oldVersion>
						<dependency>
							<groupId>eu.michael-simons.neo4j</groupId>
							<artifactId>neo4j-migrations</artifactId>
							<version>${neo4j-migrations.previous.version}</version>
							<type>jar</type>
						</dependency>
					</oldVersion>
					<newVersion>
						<file>
							<path>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</path>
						</file>
					</newVersion>
					<parameter>
						<breakBuildBasedOnSemanticVersioning>true</breakBuildBasedOnSemanticVersioning>
						<excludes>
							<!--
							 | Those are public classes in a package private interface which cannot be accessed from outside my own package
							 -->
							<exclude>ac.simons.neo4j.migrations.core.Discoverer$CypherBasedMigrationDiscoverer</exclude>
							<exclude>ac.simons.neo4j.migrations.core.Discoverer$JavaBasedMigrationDiscoverer</exclude>
						</excludes>
					</parameter>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>cmp</goal>
						</goals>
						<phase>verify</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
