<?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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.neo4j</groupId>
		<artifactId>neo4j-cypher-dsl-parent</artifactId>
		<version>2024.5.1</version>
	</parent>
	<artifactId>neo4j-cypher-dsl-parser</artifactId>
	<version>2024.5.1</version>
	<name>Neo4j Cypher DSL (Parser)</name>
	<description>Building on top of the Neo4j 4.4 JavaCC parsers it provides a way from Cypher to Cypher-DSL Ast.</description>
	<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>
	<properties>
		<covered-ratio-complexity>0.68</covered-ratio-complexity>
		<sonar.coverage.jacoco.xmlReportPaths>${basedir}/../${aggregate.report.dir}</sonar.coverage.jacoco.xmlReportPaths>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.neo4j</groupId>
				<artifactId>neo4j-cypher-dsl-bom</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.neo4j</groupId>
			<artifactId>neo4j-cypher-dsl</artifactId>
			<version>2024.5.1</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-core</artifactId>
			<version>3.7.3</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.jetbrains</groupId>
			<artifactId>annotations</artifactId>
			<version>26.0.2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.neo4j.driver</groupId>
			<artifactId>neo4j-java-driver</artifactId>
			<version>5.28.4</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.opencsv</groupId>
			<artifactId>opencsv</artifactId>
			<version>5.10</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-beanutils</groupId>
					<artifactId>commons-beanutils</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.commons</groupId>
					<artifactId>commons-collections4</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.commons</groupId>
					<artifactId>commons-text</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.asciidoctor</groupId>
			<artifactId>asciidoctorj</artifactId>
			<version>3.0.0</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.asciidoctor</groupId>
					<artifactId>asciidoctorj-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jruby</groupId>
					<artifactId>jruby</artifactId>
				</exclusion>
				<exclusion>
					<groupId>rubygems</groupId>
					<artifactId>test-unit</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.27.3</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>net.bytebuddy</groupId>
					<artifactId>byte-buddy</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<version>5.12.0</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.jupiter</groupId>
					<artifactId>junit-jupiter-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.junit.jupiter</groupId>
					<artifactId>junit-jupiter-engine</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.junit.jupiter</groupId>
					<artifactId>junit-jupiter-params</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.neo4j.test</groupId>
			<artifactId>neo4j-harness</artifactId>
			<version>5.26.3</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-codec</groupId>
					<artifactId>commons-codec</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.neo4j</groupId>
					<artifactId>io-test-utils</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.neo4j</groupId>
					<artifactId>neo4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.neo4j</groupId>
					<artifactId>neo4j-kernel</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.neo4j</groupId>
					<artifactId>test-utils</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.neo4j.app</groupId>
					<artifactId>neo4j-server-test-utils</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>1.7.36</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<useModulePath>false</useModulePath>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-failsafe-plugin</artifactId>
				<configuration>
					<classesDirectory>${project.build.outputDirectory}</classesDirectory>
					<classpathDependencyExcludes>
						<classpathDependencyExclude>org.neo4j:neo4j-cypher-dsl-parser</classpathDependencyExclude>
					</classpathDependencyExcludes>
					<useModulePath>false</useModulePath>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>shade</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<artifactSet>
								<includes>
									<include>org.neo4j:cypher-ast-factory</include>
									<include>org.neo4j:neo4j-cypher-javacc-parser</include>
									<include>org.neo4j:cypher-parser-common</include>
								</includes>
							</artifactSet>
							<relocations>
								<relocation>
									<pattern>org.neo4j.cypher.internal</pattern>
									<shadedPattern>org.neo4j.cypherdsl.parser.internal</shadedPattern>
								</relocation>
							</relocations>
							<createSourcesJar>true</createSourcesJar>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>module-info.class</exclude>
										<exclude>library.properties</exclude>
										<exclude>LICENSE.txt</exclude>
										<exclude>rootdoc.txt</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.neo4j:cypher-ast-factory</artifact>
									<excludes>
										<exclude>META-INF/**/*</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.neo4j:neo4j-cypher-javacc-parser</artifact>
									<excludes>
										<exclude>META-INF/**/*</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.neo4j:cypher-parser-common</artifact>
									<excludes>
										<exclude>META-INF/**/*</exclude>
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.moditect</groupId>
				<artifactId>moditect-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-module-infos</id>
						<goals>
							<goal>add-module-info</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<overwriteExistingFiles>true</overwriteExistingFiles>
							<module>
								<moduleInfoSource>module org.neo4j.cypherdsl.parser {

										requires static org.jetbrains.annotations;

										requires transitive org.apiguardian.api;
										requires transitive org.neo4j.cypherdsl.core;

										// Those are shaded
										// requires org.neo4j.cypher.internal.parser;
										// requires org.neo4j.cypher.internal.parser.javacc;
										// requires org.neo4j.cypher.internal.ast.factory;

										exports org.neo4j.cypherdsl.parser;
									}</moduleInfoSource>
							</module>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-resources</id>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<phase>generate-test-resources</phase>
						<configuration>
							<outputDirectory>${basedir}/target/test-classes</outputDirectory>
							<resources>
								<resource>
									<directory>${project.basedir}</directory>
									<includes>
										<include>README.adoc</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>com.github.siom79.japicmp</groupId>
				<artifactId>japicmp-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<report>checkstyle</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>
</project>
