<?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>Apache SAMOA (incubating) is a platform for mining big data streams.</description>
    <url>http://samoa.incubator.apache.org</url>
    <inceptionYear>2013</inceptionYear>
    <packaging>pom</packaging>

    <groupId>org.apache.samoa</groupId>
    <artifactId>samoa</artifactId>
    <version>0.4.0-incubating-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:https://git-wip-us.apache.org/repos/asf/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>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-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.6.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>
        <samza.version>0.10</samza.version>
        <flink.version>0.10.1</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>
        <avro.version>1.7.7</avro.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.5</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</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.10.1</version>
                <configuration>
                    <aggregate>true</aggregate>
                    <show>public</show>
                    <nohelp>true</nohelp>
                    <header>Apache SAMOA ${project.version}</header>
                    <footer>Scalable Advanced Massive Online Analysis,
                        ${project.version}</footer>
                    <doctitle>Apache SAMOA API ${project.version}</doctitle>
                    <links>
                        <link>http://samoa.incubator.apache.org/docs/api/</link>
                    </links>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>1.8</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-flink</root>
                        <root>samoa-samza</root>
                        <root>samoa-test</root>
                        <root>samoa-threads</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.apache</groupId>
        <artifactId>apache</artifactId>
        <version>17</version>
    </parent>

</project>
