<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>
		<artifactId>collect</artifactId>
		<groupId>org.openforis.collect</groupId>
		<version>4.0.109</version>
	</parent>
	<name>Open Foris Collect Server module</name>
	<artifactId>collect-server</artifactId>
	<packaging>jar</packaging>

	<properties>
		<collectearth.version>1.21.9</collectearth.version>
		<repository-message-broker.version>0.1.3</repository-message-broker.version>
		<geotools.version>26.3</geotools.version>
		<aspectj.version>1.9.9.1</aspectj.version>
		<jackson.version>2.15.0</jackson.version>
		<zk.version>9.6.0.2</zk.version>
		<zk.spring.version>4.0.1</zk.spring.version>
	</properties>

	<repositories>
		<repository>
			<id>zk repository</id>
			<url>https://mavensync.zkoss.org/maven2</url>
		</repository>
	</repositories>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
					<excludes>
						<exclude>**/*IntegrationTest.java</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<configuration>
					<failIfNoTests>true</failIfNoTests>
					<testSourceDirectory>${basedir}/src/it/java</testSourceDirectory>
					<includes>
						<include>**/*IntegrationTest.java</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Add generated sources to build path -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-integration-test-sources</id>
						<phase>compile</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/it/java</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-integration-test-resources</id>
						<phase>compile</phase>
						<goals>
							<goal>add-test-resource</goal>
						</goals>
						<configuration>
							<resources>
								<resource>
									<directory>src/it/resources</directory>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- run "mvn javadoc:javadoc" to use this plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
<!--			<plugin>-->
<!--				<groupId>io.github.swagger2markup</groupId>-->
<!--				<artifactId>swagger2markup-maven-plugin</artifactId>-->
<!--				<version>1.3.7</version>-->
<!--				<configuration>-->
<!--					<swaggerInput>${basedir}/doc/restful_api/restful_api.yaml</swaggerInput>-->
<!--					<outputFile>${project.build.directory}/generated-docs/asciidoc/RESTful_API_Doc</outputFile>-->
<!--					<config>-->
<!--						<swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>-->
<!--					</config>-->
<!--				</configuration>-->
<!--				<executions>-->
<!--					<execution>-->
<!--						<phase>prepare-package</phase>-->
<!--						<goals>-->
<!--							<goal>convertSwagger2markup</goal>-->
<!--						</goals>-->
<!--					</execution>-->
<!--				</executions>-->
<!--			</plugin>-->
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.openforis.collect</groupId>
			<artifactId>collect-core</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.collect</groupId>
			<artifactId>collect-rdb</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.collect.earth</groupId>
			<artifactId>collect-earth-core</artifactId>
			<version>${collectearth.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.collect</groupId>
			<artifactId>collect-core</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.openforis.commons</groupId>
			<artifactId>of-commons-web-spring</artifactId>
		</dependency>
		<dependency>
			<groupId>org.openforis.rmb</groupId>
			<artifactId>repository-message-broker-core</artifactId>
			<version>${repository-message-broker.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.rmb</groupId>
			<artifactId>repository-message-broker-metrics</artifactId>
			<version>${repository-message-broker.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.rmb</groupId>
			<artifactId>repository-message-broker-slf4j</artifactId>
			<version>${repository-message-broker.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.rmb</groupId>
			<artifactId>repository-message-broker-spring</artifactId>
			<version>${repository-message-broker.version}</version>
		</dependency>
		<dependency>
			<groupId>org.openforis.rmb</groupId>
			<artifactId>repository-message-broker-xstream</artifactId>
			<version>${repository-message-broker.version}</version>
		</dependency>
		
		<!-- TODO update xstream version in repository-message-broker-xstream -->
		<dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.19</version>
            <exclusions>
                <exclusion>
                    <groupId>xmlpull</groupId>
                    <artifactId>xmlpull</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>xpp3</groupId>
                    <artifactId>xpp3_min</artifactId>
                </exclusion>
                <exclusion>
                	<groupId>io.github.x-stream</groupId>
                	<artifactId>mxparser</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.2</version>
			<scope>provided</scope>
		</dependency>

		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-messaging</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-websocket</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Spring security dependencies -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-taglibs</artifactId>
		</dependency>

		<!-- start of aspectj dependencies -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<!-- end of aspectj dependencies -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.11.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.12.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpmime</artifactId>
			<version>4.5.13</version>
		</dependency>
		<dependency>
			<groupId>commons-validator</groupId>
			<artifactId>commons-validator</artifactId>
			<version>1.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>1.22</version>
		</dependency>

		<!-- ZK dependencies -->
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zul</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkplus</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zhtml</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkbind</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.composite</groupId>
			<artifactId>zkcomposite</artifactId>
			<version>0.9.0</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkspring-core</artifactId>
			<version>${zk.spring.version}</version>
			<exclusions>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-classic</artifactId>
				</exclusion>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.collections</groupId>
					<artifactId>google-collections</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkspring-security</artifactId>
			<version>${zk.spring.version}</version>
		</dependency>
		<!-- end of ZK dependencies -->

		<!-- GeoTools -->
		<dependency>
			<groupId>org.geotools</groupId>
			<artifactId>gt-main</artifactId>
			<version>${geotools.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-beanutils</artifactId>
					<groupId>commons-beanutils</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.geotools</groupId>
			<artifactId>gt-metadata</artifactId>
			<version>${geotools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.geotools</groupId>
			<artifactId>gt-referencing</artifactId>
			<version>${geotools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.geotools</groupId>
			<artifactId>gt-epsg-hsql</artifactId>
			<version>${geotools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.geotools</groupId>
			<artifactId>gt-epsg-wkt</artifactId>
			<version>${geotools.version}</version>
		</dependency>
		<!-- end of GeoTools dependencies -->
		<dependency>
			<groupId>javax.media</groupId>
			<artifactId>jai_core</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>net.lingala.zip4j</groupId>
			<artifactId>zip4j</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.el</groupId>
			<artifactId>el-api</artifactId>
			<version>2.2.1-b04</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>7.0.4.Final</version>
		</dependency>
		<dependency>
			<groupId>de.grundid.opendatalab</groupId>
			<artifactId>geojson-jackson</artifactId>
			<version>1.14</version>
		</dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
			<exclusions>
				<exclusion>
					<groupId>junit</groupId>
					<artifactId>junit</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-annotations</artifactId>
		    <version>${jackson.version}</version>
		</dependency>
		<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-databind</artifactId>
		    <version>2.13.4.2</version>
		</dependency>
		<dependency>
			<groupId>net.coobird</groupId>
			<artifactId>thumbnailator</artifactId>
			<version>0.4.18</version>
		</dependency>
		<dependency>
			<groupId>de.micromata.jak</groupId>
			<artifactId>JavaAPIforKml</artifactId>
			<version>2.2.1</version>
		</dependency>
		<dependency>
			<groupId>io.sentry</groupId>
			<artifactId>sentry-log4j2</artifactId>
			<version>5.7.1</version>
		</dependency>
		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.restdocs</groupId>
			<artifactId>spring-restdocs-mockmvc</artifactId>
			<version>2.0.6.RELEASE</version>
			<scope>test</scope>
		</dependency>

	</dependencies>


	<pluginRepositories>
		<!-- swagger2markup-maven-plugin -->
		<pluginRepository>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
			<id>jcenter-releases</id>
			<name>jcenter</name>
			<url>https://jcenter.bintray.com</url>
		</pluginRepository>
	</pluginRepositories>

</project>
