<?xml version="1.0" encoding="UTF-8"?>
<!--
  #%L
  SAMOA
  %%
  Copyright (C) 2014 - 2015 Apache Software Foundation
  %%
  Licensed 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.
  #L%
  -->

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

    <name>Apache SAMOA</name>
    <description>Scalable Advanced Massive Online Analysis</description>
    <url>http://samoa.incubator.apache.org</url>
    <inceptionYear>2013</inceptionYear>
    <modules>
        <module>samoa-test</module>
    </modules>
    <packaging>pom</packaging>

    <groupId>org.apache.samoa</groupId>
    <artifactId>samoa</artifactId>
    <version>0.3.0-SNAPSHOT</version>

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

    <scm>
        <url>https://git-wip-us.apache.org/repos/asf/incubator-samoa.git</url>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-samoa.git</connection>
        <developerConnection>scm:git:git://git.apache.org/incubator-samoa.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <profiles>
        <profile>
            <id>local</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-local</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>threads</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-threads</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>storm</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-storm</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>s4</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-s4</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>flink</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-flink</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>samza</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-samza</module>
                <module>samoa-test</module>
            </modules>
        </profile>
        <profile>
            <id>all</id>
            <modules>
                <module>samoa-instances</module>
                <module>samoa-api</module>
                <module>samoa-local</module>
                <module>samoa-threads</module>
                <module>samoa-storm</module>
                <module>samoa-flink</module>
                <module>samoa-s4</module>
                <module>samoa-samza</module>
                <module>samoa-test</module>
            </modules>
        </profile>
    </profiles>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <maven-dependency-plugin.version>2.7</maven-dependency-plugin.version>
        <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>

        <commons-lang3.version>3.1</commons-lang3.version>
        <guava.version>17.0</guava.version>
        <hadoop.version>2.2.0</hadoop.version>
        <javacliparser.version>0.5.0</javacliparser.version>
        <jcip-annotations.version>1.0</jcip-annotations.version>
        <jmockit.version>1.13</jmockit.version>
        <junit.version>4.10</junit.version>
        <kafka.version>0.8.1</kafka.version>
        <kryo.version>2.21</kryo.version>
        <metrics-core.version>2.2.0</metrics-core.version>
        <miniball.version>1.0.3</miniball.version>
        <s4.version>0.6.0-incubating</s4.version>
        <samza.version>0.7.0</samza.version>
        <flink.version>0.9.0</flink.version>
        <slf4j-log4j12.version>1.7.2</slf4j-log4j12.version>
        <slf4j-simple.version>1.7.5</slf4j-simple.version>
        <maven-surefire-plugin.version>2.18</maven-surefire-plugin.version>
        <storm.version>0.9.4</storm.version>
        <!-- storm 0.8.2 loads zookeeper classes with hardcoded names from 3.3 version-->
        <zookeeper.storm.version>3.4.6</zookeeper.storm.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>${jmockit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.1</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.2</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <tagNameFormat>v@{project.version}</tagNameFormat>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <aggregate>true</aggregate>
                    <show>public</show>
                    <nohelp>true</nohelp>
                    <header>SAMOA ${project.version}</header>
                    <footer>Scalable Advanced Massive Online Analysis,
                        ${project.version}</footer>
                    <doctitle>SAMOA API ${project.version}</doctitle>
                    <links>
                        <link>http://samoa-project.net/docs/api/</link>
                    </links>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>1.5</version>
                <configuration>
                    <licenseName>apache_v2</licenseName>
                    <inceptionYear>2014</inceptionYear>
                    <organizationName>Apache Software Foundation</organizationName>
                    <projectName>SAMOA</projectName>
                    <roots>
                        <root>samoa-api</root>
                        <root>samoa-instances</root>
                        <root>samoa-local</root>
                        <root>samoa-storm</root>
                        <root>samoa-s4</root>
                        <root>samoa-flink</root>
                        <root>samoa-samza</root>
                        <root>bin</root>
                    </roots>
                    <excludes>
                        <exclude>**/target/**</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <id>first</id>
                        <goals>
                            <goal>update-file-header</goal>
                        </goals>
                        <phase>process-sources</phase>
                    </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.codehaus.mojo
                                        </groupId>
                                        <artifactId>
                                            license-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.5,)
                                        </versionRange>
                                        <goals>
                                            <goal>
                                                update-file-header
                                            </goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.10</version>
                    <configuration>
                        <excludes>
                            <exclude>.git/**/*</exclude>
                            <exclude>**/*.iml</exclude>
                            <exclude>**/README.md</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>7</version>
    </parent>
</project>
