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

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

	<properties>
		<springSecVer>5.0.7.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>
			</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.6</version>
		</dependency>

		<!--	 CAFFEINE -->
		<dependency>
			<groupId>com.github.ben-manes.caffeine</groupId>
			<artifactId>caffeine</artifactId>
			<version>2.6.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>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>

		<!-- 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.21</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.0</version>
			<!--<scope>provided</scope>-->
		</dependency>
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>5.10</version>
		</dependency>
		<dependency>
			<groupId>com.microsoft.azure.iothub-java-client</groupId>
			<artifactId>iothub-java-service-client</artifactId>
			<version>1.0.11</version>
		 <exclusions>
		  <exclusion>
		   <groupId>commons-codec</groupId>
		   <artifactId>commons-codec</artifactId>
		  </exclusion>
		 </exclusions>
		</dependency>
		<dependency>
			<groupId>com.microsoft.azure</groupId>
			<artifactId>azure-eventhubs</artifactId>
			<version>0.15.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.qpid</groupId>
			<artifactId>proton-j</artifactId>
			<version>0.25.0</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.29.0</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>
		 <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>1.10</version>
	 </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.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.0.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.0.0</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>
