<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.26.2</version>
	</parent>

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

	<properties>
		<springSecVer>4.2.3.RELEASE</springSecVer>
		<springLdapVer>2.3.2.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-openid</artifactId>
			<version>${springSecVer}</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>${springSecVer}</version>
		</dependency>
		<!-- SPRING BOOT -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<version>${springBootVer}</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-autoconfigure</artifactId>
				</exclusion>
			</exclusions>
		</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>4.0.1</version>
		</dependency>

		<!-- H2 DB -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.4.196</version>
		</dependency>

		<!-- LUCENE -->
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
			<version>${luceneVer}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-spatial</artifactId>
			<version>${luceneVer}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-analyzers-common</artifactId>
			<version>${luceneVer}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-queryparser</artifactId>
			<version>${luceneVer}</version>
		</dependency>

		<!--	 CAFFEINE -->
		<dependency>
			<groupId>com.github.ben-manes.caffeine</groupId>
			<artifactId>caffeine</artifactId>
			<version>2.6.0</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>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-dynamodb</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-s3</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-ses</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-sqs</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-iot</artifactId>
			<version>${awsJdkVer}</version>
		</dependency>

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

		<!-- OTHER -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<!-- Skip 4.4 because it causes SSL exceptions with some hostnames-->
			<version>4.4.6</version>
		</dependency>
		<dependency>
			<!-- Skip 4.4 because it causes SSL exceptions with some hostnames-->
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<!-- Skip 4.4 because it causes SSL exceptions with some hostnames-->
			<version>4.5.3</version>
		 <exclusions>
		  <exclusion>
		   <groupId>commons-logging</groupId>
		   <artifactId>commons-logging</artifactId>
		  </exclusion>
		 </exclusions>
		</dependency>
		<dependency>
			<groupId>org.yaml</groupId>
			<artifactId>snakeyaml</artifactId>
			<version>1.18</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<!--<scope>provided</scope>-->
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>5.1</version>
		</dependency>
		<dependency>
			<groupId>com.microsoft.azure.iothub-java-client</groupId>
			<artifactId>iothub-java-service-client</artifactId>
			<version>1.0.11</version>
		</dependency>
		<dependency>
			<groupId>com.microsoft.azure</groupId>
			<artifactId>azure-eventhubs</artifactId>
			<version>0.11.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.qpid</groupId>
			<artifactId>proton-j</artifactId>
			<version>0.18.0</version>
		</dependency>

		<!-- TESTING -->
		<dependency>
			<groupId>com.erudika</groupId>
			<artifactId>para-client</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.elasticmq</groupId>
			<artifactId>elasticmq-rest-sqs_2.11</artifactId>
			<version>0.13.8</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>
		</dependency>
		<dependency>
			<groupId>com.vmlens</groupId>
			<artifactId>concurrent-junit</artifactId>
			<version>1.0.0</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>-->
	</dependencies>

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

			<plugin>
				<groupId>com.jcabi</groupId>
				<artifactId>jcabi-dynamodb-maven-plugin</artifactId>
				<version>0.9.1</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.0.1</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>2.17</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>2.10.4</version>
				<executions>
					<execution>
						<id>javadocs</id>
						<goals>
							<goal>javadoc</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<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>
