<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>com.erudika</groupId>
		<artifactId>para-parent</artifactId>
		<version>1.41.2</version>
	</parent>

	<artifactId>para-server</artifactId>
	<packaging>jar</packaging>
	<name>para-server</name>

	<properties>
		<springSecVer>5.5.2</springSecVer>
		<springLdapVer>2.3.4.RELEASE</springLdapVer>
	</properties>

	<dependencies>
		<dependency>
			<groupId>com.erudika</groupId>
			<artifactId>para-core</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- SPRING SECURITY -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
			<version>${springSecVer}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>${springSecVer}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>${springSecVer}</version>
			<exclusions>
				<exclusion>
					<groupId>org.jetbrains.kotlin</groupId>
					<artifactId>kotlin-stdlib-jdk8</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jetbrains.kotlin</groupId>
					<artifactId>kotlin-stdlib</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jetbrains.kotlin</groupId>
					<artifactId>kotlin-reflect</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- SPRING BOOT -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>${springBootVer}</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-validator</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty.http2</groupId>
			<artifactId>http2-server</artifactId>
			<version>${jettyVer}</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-alpn-java-server</artifactId>
			<version>${jettyVer}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
			<version>${springBootVer}</version>
			<exclusions>
				<exclusion>
					<groupId>org.eclipse.jetty.websocket</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
			<version>${springBootVer}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-ldap</artifactId>
			<version>${springSecVer}</version>
		</dependency>
		<!-- SPRING LDAP -->
		<dependency>
			<groupId>org.springframework.ldap</groupId>
			<artifactId>spring-ldap-core</artifactId>
			<version>${springLdapVer}</version>
		</dependency>
		<dependency>
			<groupId>com.unboundid</groupId>
			<artifactId>unboundid-ldapsdk</artifactId>
			<version>5.1.4</version>
		</dependency>

		<!-- SAML -->
		<dependency>
			<groupId>com.onelogin</groupId>
			<artifactId>java-saml</artifactId>
			<version>2.8.0</version>
		</dependency>

		<!--	 CAFFEINE -->
		<dependency>
			<groupId>com.github.ben-manes.caffeine</groupId>
			<artifactId>caffeine</artifactId>
			<version>2.9.2</version>
		</dependency>

		<!-- JERSEY -->
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-server</artifactId>
			<version>${jerseyVer}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-servlet</artifactId>
			<version>${jerseyVer}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.inject</groupId>
			<artifactId>jersey-hk2</artifactId>
			<version>${jerseyVer}</version>
		</dependency>


		<!-- AWS JAVA SDK -->
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>dynamodb</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>s3</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>ses</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>sqs</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>applicationautoscaling</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>

		<!-- GUICE -->
		<dependency>
			<groupId>com.google.inject</groupId>
			<artifactId>guice</artifactId>
			<version>5.0.1</version>
		</dependency>

		<!-- METRICS -->
		<dependency>
			<groupId>io.dropwizard.metrics</groupId>
			<artifactId>metrics-jmx</artifactId>
			<version>${metricsVer}</version>
		</dependency>
		<dependency>
			<groupId>io.dropwizard.metrics</groupId>
			<artifactId>metrics-graphite</artifactId>
			<version>${metricsVer}</version>
			<exclusions>
				<exclusion>
					<groupId>joda-time</groupId>
					<artifactId>joda-time</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.code.findbugs</groupId>
					<artifactId>jsr305</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-validator</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- OTHER -->
		<dependency>
			<groupId>org.yaml</groupId>
			<artifactId>snakeyaml</artifactId>
			<version>1.29</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<!--<scope>provided</scope>-->
		</dependency>
		<dependency>
			<groupId>org.glassfish.jaxb</groupId>
			<artifactId>jaxb-runtime</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>9.15.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents.core5</groupId>
			<artifactId>httpcore5</artifactId>
			<version>${httpCoreVer}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents.client5</groupId>
			<artifactId>httpclient5</artifactId>
			<version>${httpClientVer}</version>
		</dependency>

		<!-- TESTING -->
		<dependency>
			<groupId>com.erudika</groupId>
			<artifactId>para-client</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.erudika</groupId>
			<artifactId>para-search-lucene</artifactId>
			<version>1.39.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.elasticmq</groupId>
			<artifactId>elasticmq-rest-sqs_2.11</artifactId>
			<version>0.14.15</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.joda</groupId>
					<artifactId>joda-convert</artifactId>
				</exclusion>
				<exclusion>
					<groupId>joda-time</groupId>
					<artifactId>joda-time</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-mock</artifactId>
			<version>2.0.8</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.test-framework.providers</groupId>
			<artifactId>jersey-test-framework-provider-inmemory</artifactId>
			<version>${jerseyVer}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.ldap</groupId>
			<artifactId>spring-ldap-test</artifactId>
			<version>${springLdapVer}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-codec</groupId>
					<artifactId>commons-codec</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.vmlens</groupId>
			<artifactId>concurrent-junit</artifactId>
			<version>1.0.2</version>
			<scope>test</scope>
		</dependency>
		<!--		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<version>${springBootVer}</version>
			<scope>test</scope>
		</dependency>-->
		<!--		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-test</artifactId>
			<version>${springSecVer}</version>
			<scope>test</scope>
		</dependency>-->
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>${commonsCodecVer}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4jVer}</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>${springBootVer}</version>
				<configuration>
					<fork>false</fork>
				</configuration>
			</plugin>

			<plugin>
				<groupId>com.jcabi</groupId>
				<artifactId>jcabi-dynamodb-maven-plugin</artifactId>
				<version>0.9.2</version>
				<executions>
					<execution>
						<id>dynamodb-integration-test</id>
						<goals>
							<goal>start</goal>
							<goal>stop</goal>
						</goals>
						<configuration>
							<scope>test</scope>
							<skip>${skipITs}</skip>
							<port>8000</port>
							<dist>${project.build.directory}/dynamodb-dist</dist>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.1.2</version>
				<executions>
					<execution>
						<id>unpack-dynamodb-local</id>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<scope>test</scope>
							<skip>${skipITs}</skip>
							<artifactItems>
								<artifactItem>
									<groupId>com.jcabi</groupId>
									<artifactId>DynamoDBLocal</artifactId>
									<version>2015-07-16</version>
									<type>zip</type>
									<outputDirectory>${project.build.directory}/dynamodb-dist</outputDirectory>
									<overWrite>false</overWrite>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<id>validate-server</id>
						<phase>validate</phase>
						<configuration>
							<skip>${skipTests}</skip>
							<configLocation>../para-core/src/main/resources/checkstyle.xml</configLocation>
							<encoding>UTF-8</encoding>
							<consoleOutput>true</consoleOutput>
							<failsOnError>true</failsOnError>
							<linkXRef>false</linkXRef>
						</configuration>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.2.0</version>
				<executions>
					<execution>
						<id>javadocs</id>
						<goals>
							<goal>javadoc</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<source>1.8</source>
					<stylesheetfile>../para-core/src/main/javadoc/stylesheet.css</stylesheetfile>
					<show>public</show>
					<aggregate>true</aggregate>
					<quiet>true</quiet>
					<docfilessubdirs>true</docfilessubdirs>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
