<?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>

 
	<groupId>org.apache.pirk</groupId>
	<artifactId>pirk</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	
	<name>Apache Pirk (incubating) Project</name>
	<description>Apache Pirk (incubating) is a framework for scalable 
		Private Information Retrieval (PIR). </description>
	<url>http://pirk.incubator.apache.org/</url>

	<!-- this is the year of inception at ASF -->
	<inceptionYear>2016</inceptionYear>

	<organization>
		<name>The Apache Software Foundation</name>
		<url>https://www.apache.org</url>
	</organization>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>

	<mailingLists>
		<mailingList>
			<name>Dev</name>
			<subscribe>dev-subscribe@pirk.incubator.apache.org</subscribe>
			<unsubscribe>dev-unsubscribe@pirk.incubator.apache.org</unsubscribe>
			<post>dev@pirk.incubator.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-pirk-dev/</archive>
		</mailingList>
		<mailingList>
			<name>Commits</name>
			<subscribe>commits-subscribe@pirk.incubator.apache.org</subscribe>
			<unsubscribe>commits-unsubscribe@pirk.incubator.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/incubator-pirk-commits</archive>
		</mailingList>
	</mailingLists>

	<repositories>
		<repository>
			<id>mvn-public</id>
			<url>http://mvnrepository.com/artifact</url>
			<snapshots>
				<updatePolicy>always</updatePolicy>
			</snapshots>
		</repository>
		
		<repository>
			<id>conjars.org</id>
			<url>http://conjars.org/repo</url>
		</repository>
             
	</repositories>

	<properties>
		<maven.compiler.source>1.7</maven.compiler.source>
		<maven.compiler.target>1.7</maven.compiler.target>
		<scala.version>2.10.4</scala.version>
		<jmh.version>1.11.3</jmh.version>
		<benchmarkjar.name>benchmarks</benchmarkjar.name>
		<javac.target>1.7</javac.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-math3</artifactId>
			<version>3.3</version>
		</dependency>
		
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-common</artifactId>
			<version>2.7.2</version>
		</dependency>

		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-mapreduce-client-core</artifactId>
			<version>2.7.2</version>
		</dependency>

		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>2.7.2</version>
		</dependency>

		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-core_2.11</artifactId>
			<version>1.6.1</version>
		</dependency>
		
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1</version>
		</dependency>

		<dependency>
			<groupId>commons-net</groupId>
			<artifactId>commons-net</artifactId>
			<version>3.3</version>
		</dependency>
            
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch-hadoop</artifactId>
			<version>2.1.2</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-net</artifactId>
					<groupId>commons-net</groupId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>log4j-over-slf4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<!-- Square's JNA GMP module-->
		<dependency>
		    <groupId>com.squareup.jnagmp</groupId>
		    <artifactId>jnagmp</artifactId>
		    <version>1.1.0</version>
		</dependency>
		<!-- JMH for benchmarking the Paillier functions -->
		<dependency>
		    <groupId>org.openjdk.jmh</groupId>
		    <artifactId>jmh-core</artifactId>
		    <version>${jmh.version}</version>
		</dependency>
		<dependency>
		    <groupId>org.openjdk.jmh</groupId>
		    <artifactId>jmh-generator-annprocess</artifactId>
		    <version>${jmh.version}</version>
		</dependency>
		
	</dependencies>

	<build>
		<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>2.18</version>
			<configuration>
			<redirectTestOutputToFile>true</redirectTestOutputToFile>
			<argLine combine.children="append">-Xmx1G
				-Djava.net.preferIPv4Stack=true</argLine>
			</configuration>
			<dependencies>
				<dependency>
				<!-- Force surefire to use JUnit -->
				<groupId>org.apache.maven.surefire</groupId>
				<artifactId>surefire-junit4</artifactId>
				<version>2.18</version>
				</dependency>
			</dependencies>
                </plugin>
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-compiler-plugin</artifactId>
			    <version>3.1</version>
			    <configuration>
			        <compilerVersion>${javac.target}</compilerVersion>
			        <source>${javac.target}</source>
			        <target>${javac.target}</target>
			    </configuration>
			</plugin>
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-shade-plugin</artifactId>
			    <version>2.4.3</version> <!-- older versions of maven-shade-plugin make JMH painful -->

				<executions>
					<execution>
						<phase>package</phase>
						<id>main</id>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<shadedArtifactAttached>true</shadedArtifactAttached>
							<shadedClassifierName>exe</shadedClassifierName>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer">
								</transformer>
							</transformers>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>META-INF/*.SF</exclude>
										<exclude>META-INF/*.DSA</exclude>
										<exclude>META-INF/*.RSA</exclude>
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
					<execution>
					    <phase>package</phase>
					    <id>benchmark</id>
					    <goals>
					        <goal>shade</goal>
					    </goals>
					    <configuration>
					        <!-- The jar is very corrupted if it isn't minimized -->
					        <minimizeJar>true</minimizeJar>
					        <finalName>${benchmarkjar.name}</finalName>
					        <transformers>
					            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
					                <mainClass>org.openjdk.jmh.Main</mainClass>
					            </transformer>
					        </transformers>
					        <filters>
					            <filter>
					                <!--
					                    Shading signed JARs will fail without this.
					                    http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar
					                -->
					                <artifact>*:*</artifact>
					                <excludes>
					                    <exclude>META-INF/*.SF</exclude>
					                    <exclude>META-INF/*.DSA</exclude>
					                    <exclude>META-INF/*.RSA</exclude>
					                </excludes>
					            </filter>
					        </filters>
					    </configuration>
					</execution>
					
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.scala-tools
										</groupId>
										<artifactId>
											maven-scala-plugin
										</artifactId>
										<versionRange>
											[2.15.2,)
										</versionRange>
										<goals>
											<goal>testCompile</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

	</build>

</project>
