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

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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

  http://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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.stormcrawler</groupId>
		<artifactId>stormcrawler</artifactId>
		<version>3.3.0</version>
	</parent>

	<artifactId>stormcrawler-core</artifactId>
	<packaging>jar</packaging>

	<name>stormcrawler-core</name>
	<url>https://github.com/apache/incubator-stormcrawler/tree/master/core</url>
	<description>StormCrawler core Java API.</description>

	<properties>
		<!-- dependency versions -->
		<crawler-commons.version>1.4</crawler-commons.version>
		<jsoup.version>1.19.1</jsoup.version>
		<icu4j.version>76.1</icu4j.version>
		<xerces.version>2.12.2</xerces.version>
		<httpclient.version>4.5.14</httpclient.version>
		<snakeyaml.version>2.4</snakeyaml.version>
		<commons.lang.version>2.6</commons.lang.version>
		<wiremock.version>3.12.1</wiremock.version>
		<rometools.version>2.1.0</rometools.version>
		<selenium.version>4.29.0</selenium.version>
		<cli.version>1.6.0</cli.version>
		<okhttp.version>4.12.0</okhttp.version>
		<caffeine.version>3.2.0</caffeine.version>
		<xsoup.version>0.3.7</xsoup.version>
		<awaitility.version>4.3.0</awaitility.version>
		<!-- XXX https://github.com/apache/incubator-stormcrawler/issues/1298 -->
		<jacoco.haltOnFailure>false</jacoco.haltOnFailure>
		<jacoco.classRatio>0.73</jacoco.classRatio>
		<jacoco.instructionRatio>0.56</jacoco.instructionRatio>
		<jacoco.methodRatio>0.62</jacoco.methodRatio>
		<jacoco.branchRatio>0.50</jacoco.branchRatio>
		<jacoco.lineRatio>0.56</jacoco.lineRatio>
		<jacoco.complexityRatio>0.44</jacoco.complexityRatio>
	</properties>

	<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-test</id>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>

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

		<dependency>
			<groupId>org.apache.storm</groupId>
			<artifactId>storm-client</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.tika</groupId>
			<artifactId>tika-core</artifactId>
			<version>${tika.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.wiremock</groupId>
			<artifactId>wiremock</artifactId>
			<version>${wiremock.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.awaitility</groupId>
			<artifactId>awaitility</artifactId>
			<version>${awaitility.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>${cli.version}</version>
		</dependency>

		<dependency>
			<groupId>com.github.crawler-commons</groupId>
			<artifactId>crawler-commons</artifactId>
			<version>${crawler-commons.version}</version>
		</dependency>

		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>${xerces.version}</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>

		<dependency>
			<groupId>com.github.ben-manes.caffeine</groupId>
			<artifactId>caffeine</artifactId>
			<version>${caffeine.version}</version>
		</dependency>

		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>${jsoup.version}</version>
		</dependency>

		<dependency>
			<groupId>com.ibm.icu</groupId>
			<artifactId>icu4j</artifactId>
			<version>${icu4j.version}</version>
		</dependency>

		<dependency>
			<groupId>com.rometools</groupId>
			<artifactId>rome</artifactId>
			<version>${rometools.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>${httpclient.version}</version>
		</dependency>

		<dependency>
			<groupId>org.yaml</groupId>
			<artifactId>snakeyaml</artifactId>
			<version>${snakeyaml.version}</version>
		</dependency>

		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>${commons.lang.version}</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-remote-driver</artifactId>
			<version>${selenium.version}</version>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-support</artifactId>
			<version>${selenium.version}</version>
		</dependency>

		<dependency>
			<groupId>us.codecraft</groupId>
			<artifactId>xsoup</artifactId>
			<version>${xsoup.version}</version>
			<exclusions>
				<!-- We declare a newer version of jsoup -->
				<exclusion>
					<groupId>org.jsoup</groupId>
					<artifactId>jsoup</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>okhttp</artifactId>
			<version>${okhttp.version}</version>
		</dependency>

		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>okhttp-brotli</artifactId>
			<version>${okhttp.version}</version>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>selenium</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-chrome-driver</artifactId>
			<version>${selenium.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-annotations</artifactId>
				<version>${jackson.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>
