<?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>2023.9.2</version>
	</parent>
	<artifactId>neo4j-cypher-dsl-parser</artifactId>
	<version>2023.9.2</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>GNU General Public License, Version 3</name>
			<url>http://www.gnu.org/licenses/gpl-3.0-standalone.html</url>
			<comments>The software ("Software") developed and owned by Neo4j Sweden AB (referred to in this notice as "Neo4j") is
				licensed under the GNU GENERAL PUBLIC LICENSE Version 3 to all third
				parties and that license is included below.

				However, if you have executed an End User Software License and Services
				Agreement or an OEM Software License and Support Services Agreement, or
				another commercial license agreement with Neo4j or one of its
				affiliates (each, a "Commercial Agreement"), the terms of the license in
				such Commercial Agreement will supersede the GNU GENERAL PUBLIC LICENSE
				Version 3 and you may use the Software solely pursuant to the terms of
				the relevant Commercial Agreement.</comments>
		</license>
	</licenses>
	<properties>
		<covered-ratio-complexity>0.68</covered-ratio-complexity>
		<sonar.coverage.jacoco.xmlReportPaths>${basedir}/../${aggregate.report.dir}</sonar.coverage.jacoco.xmlReportPaths>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.neo4j</groupId>
			<artifactId>neo4j-cypher-dsl</artifactId>
			<version>2023.9.2</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-core</artifactId>
			<version>3.6.2</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.jetbrains</groupId>
			<artifactId>annotations</artifactId>
			<version>24.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.neo4j.driver</groupId>
			<artifactId>neo4j-java-driver</artifactId>
			<version>5.16.0</version>
			<scope>provided</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.opencsv</groupId>
			<artifactId>opencsv</artifactId>
			<version>5.9</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-lang3</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.commons</groupId>
					<artifactId>commons-text</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.asciidoctor</groupId>
			<artifactId>asciidoctorj</artifactId>
			<version>2.5.11</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>com.beust</groupId>
					<artifactId>jcommander</artifactId>
				</exclusion>
				<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.25.1</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.10.1</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.15.0</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>annotations</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>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<licenseSets>
						<licenseSet>
							<header>etc/license-gpl.tpl</header>
						</licenseSet>
					</licenseSets>
				</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>
								</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>META-INF/*</exclude>
										<exclude>module-info.class</exclude>
										<exclude>library.properties</exclude>
										<exclude>LICENSE.txt</exclude>
										<exclude>rootdoc.txt</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.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>
