<?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.solven.adhoc</groupId>
		<artifactId>pivotable</artifactId>
		<version>0.1.0</version>
	</parent>

	<artifactId>pivotable-server</artifactId>
	<!-- `name` is required by Sonatype-->
	<name>${project.groupId}:${project.artifactId}</name>

	<properties>
		<jacoco.branch.ratio>0.20</jacoco.branch.ratio>
		<jacoco.instruction.ratio>0.51</jacoco.instruction.ratio>

		<springdoc-openapi.version>3.0.2</springdoc-openapi.version>
		<automatic.module.name>eu.solven.adhoc.pivotable.server</automatic.module.name>
	</properties>

	<dependencies>
		<dependency>
			<groupId>eu.solven.adhoc</groupId>
			<artifactId>pivotable-server-core</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>eu.solven.adhoc</groupId>
			<artifactId>pivotable-server-oauth2</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>eu.solven.adhoc</groupId>
			<artifactId>pivotable-js</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<!-- Used by some examples datasets in InjectSimpleCubesConfig -->
			<groupId>org.duckdb</groupId>
			<artifactId>duckdb_jdbc</artifactId>
			<version>${duckdb.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- Used by Pixar example -->
		<dependency>
			<groupId>com.opencsv</groupId>
			<artifactId>opencsv</artifactId>
			<!-- Many projects may not use CSVParsing-->
			<optional>true</optional>
		</dependency>

		<!-- Used by Simple example -->
		<dependency>
			<groupId>net.datafaker</groupId>
			<artifactId>datafaker</artifactId>
			<version>2.5.4</version>
			<!-- Many projects may not use CSVParsing-->
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-oauth2-client</artifactId>
		</dependency>

		<!-- Merges META-INF/additional-spring-configuration-metadata.json into the final
			META-INF/spring-configuration-metadata.json so IDEs (IntelliJ Spring plugin, VSCode
			Spring) surface autocomplete + Javadoc for our `adhoc.pivotable.*` keys.
			`optional=true` keeps it off downstream consumers' classpaths. -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>

		<!-- tools -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<!--		<dependency>-->
		<!--			<groupId>org.springframework.boot</groupId>-->
		<!--			<artifactId>spring-boot-starter-graphql</artifactId>-->
		<!--		</dependency>-->

		<dependency>
			<!-- @WithMockUser -->
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security-test</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<!-- Used to check links in HTML -->
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.22.2</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.github.solven-eu.pepper</groupId>
			<artifactId>pepper-unittest</artifactId>
			<version>${pepper.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webclient-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-webtestclient</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<!-- Root pom declares an explicit `annotationProcessorPaths` (Lombok only); when that
					element is set, only processors listed there run. We append spring-boot-configuration-processor
					so it can merge META-INF/additional-spring-configuration-metadata.json and emit
					META-INF/spring-configuration-metadata.json for IDE autocomplete. -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<annotationProcessorPaths combine.children="append">
						<path>
							<groupId>org.springframework.boot</groupId>
							<artifactId>spring-boot-configuration-processor</artifactId>
							<version>${spring-boot.version}</version>
						</path>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<classifier>exec</classifier>

					<mainClass>eu.solven.adhoc.pivotable.webnone.app.PivotableServerWebnoneApplication</mainClass>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
