<?xml version="1.0"?>
<!--
  ~ 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:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0">

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>13</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.atlas</groupId>
    <artifactId>apache-atlas</artifactId>
    <version>0.1-incubating-SNAPSHOT</version>
    <description>Metadata Management and Data Governance Platform over Hadoop</description>
    <name>apache-atlas</name>
    <packaging>pom</packaging>
    <url>http://www.apache.org/</url>

    <prerequisites>
        <maven>3.0.4</maven>
    </prerequisites>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

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

    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/XXX</url>
    </issueManagement>

    <ciManagement>
        <system>Jenkins</system>
        <url>https://builds.apache.org/job/XXX</url>
    </ciManagement>

    <inceptionYear>2015</inceptionYear>

    <scm>
        <connection>scm:git:https://github.com/apache/incubator-atlas</connection>
        <developerConnection>scm:git:https://github.com/apache/incubator-atlas</developerConnection>
        <url>https://github.com/apache/incubator-atlas</url>
    </scm>

    <properties>
        <!-- platform encoding override -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <slf4j.version>1.7.7</slf4j.version>
        <jetty.version>6.1.26</jetty.version>
        <jersey.version>1.9</jersey.version>
        <tinkerpop.version>2.6.0</tinkerpop.version>
        <titan.version>0.5.4</titan.version>
        <hadoop.version>2.6.0</hadoop.version>

        <!-- scala versions -->
        <scala.version>2.10.4</scala.version>
        <scala.binary.version>2.10</scala.binary.version>
        <scala.macros.version>2.0.1</scala.macros.version>
        <json.version>3.2.11</json.version>
        <log4j.version>1.2.17</log4j.version>
        <akka.version>2.3.7</akka.version>
        <spray.version>1.3.1</spray.version>
        <guava.version>14.0</guava.version>
        <fastutil.version>6.5.16</fastutil.version>

        <PermGen>64m</PermGen>
        <MaxPermGen>512m</MaxPermGen>
        <SnapshotsId>apache.snapshots.repo</SnapshotsId>
        <SnapshotsName>Apache Snapshot Repository</SnapshotsName>
        <SnapshotsUrl>https://repository.apache.org/content/groups/snapshots</SnapshotsUrl>
        <StagingId>apache-staging</StagingId>
        <StagingName>Apache Release Distribution Repository</StagingName>
        <StagingUrl>https://repository.apache.org/content/groups/staging</StagingUrl>

        <!-- skips checkstyle and find bugs -->
        <skipCheck>false</skipCheck>
    </properties>

    <profiles>
        <profile>
            <id>Windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <python.path.l>
                    ${project.basedir}\src\bin;${project.basedir}\src\test\python\scripts;${project.basedir}\src\test\mock
                </python.path.l>
            </properties>
        </profile>

        <profile>
            <id>Linux</id>
            <activation>
                <os>
                    <family>!windows</family>
                </os>
            </activation>
            <properties>
                <python.path.l>
                    ${project.basedir}/src/bin:${project.basedir}/src/test/mock:${project.basedir}/src/test/python/scripts
                </python.path.l>
            </properties>
        </profile>
    </profiles>

    <modules>
        <module>typesystem</module>
        <module>client</module>
        <module>repository</module>
        <module>webapp</module>
        <module>docs</module>
        <module>addons/hive-bridge</module>
    </modules>

    <repositories>
        <repository>
            <id>central</id>
            <url>http://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>hortonworks.repo</id>
            <url>http://repo.hortonworks.com/content/repositories/releases</url>
            <name>Hortonworks Repo</name>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>Codehaus repository</id>
            <url>http://repository.codehaus.org/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>apache.snapshots.repo</id>
            <url>https://repository.apache.org/content/groups/snapshots</url>
            <name>Apache Snapshots Repository</name>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>apache-staging</id>
            <url>https://repository.apache.org/content/groups/staging/</url>
        </repository>
        <repository>
            <id>default</id>
            <url>https://repository.apache.org/content/groups/public/</url>
        </repository>
        <repository>
            <id>java.net-Public</id>
            <name>Maven Java Net Snapshots and Releases</name>
            <url>https://maven.java.net/content/groups/public/</url>
        </repository>
        <repository>
            <id>repository.jboss.org-public</id>
            <name>JBoss repository</name>
            <url>https://repository.jboss.org/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>typesafe</id>
            <name>Typesafe Repository</name>
            <url>http://repo.typesafe.com/typesafe/releases/</url>
        </repository>
    </repositories>
    <distributionManagement>
        <repository>
            <id>${StagingId}</id>
            <name>${StagingName}</name>
            <url>${StagingUrl}</url>
        </repository>
        <snapshotRepository>
            <id>${SnapshotsId}</id>
            <name>${SnapshotsName}</name>
            <url>${SnapshotsUrl}</url>
        </snapshotRepository>
    </distributionManagement>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jsp-2.1</artifactId>
                <version>6.0.0</version>
            </dependency>

            <!-- Logging -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
                <scope>compile</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.mail</groupId>
                        <artifactId>mail</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jmx</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- hadoop -->
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hadoop.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-annotations</artifactId>
                <version>${hadoop.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>${hadoop.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-minikdc</artifactId>
                <version>${hadoop.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- commons -->
            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>1.10</version>
            </dependency>

            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.2</version>
            </dependency>

            <dependency>
                <groupId>commons-el</groupId>
                <artifactId>commons-el</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>

            <!-- utilities -->
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>4.0</version>
            </dependency>

            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-throwingproviders</artifactId>
                <version>4.0</version>
            </dependency>

            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-multibindings</artifactId>
                <version>4.0</version>
            </dependency>

            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-servlet</artifactId>
                <version>4.0</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-guice</artifactId>
                <version>1.18.3</version>
            </dependency>

            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>2.5</version>
            </dependency>

            <!-- Jersey -->
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.0</version>
            </dependency>

            <!-- JSON -->
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.5.2</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.5.2</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>1.3</version>
            </dependency>

            <dependency>
                <groupId>com.googlecode.json-simple</groupId>
                <artifactId>json-simple</artifactId>
                <version>1.1.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Jetty -->
            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>${jetty.version}</version>
                <scope>compile</scope>
            </dependency>

            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-plus</artifactId>
                <version>${jetty.version}</version>
                <scope>compile</scope>
            </dependency>

            <dependency>
                <groupId>net.sourceforge.findbugs</groupId>
                <artifactId>annotations</artifactId>
                <version>1.3.2</version>
            </dependency>

            <!-- Graph DB -->
            <dependency>
                <groupId>com.tinkerpop.blueprints</groupId>
                <artifactId>blueprints-core</artifactId>
                <version>${tinkerpop.version}</version>
            </dependency>

            <dependency>
                <groupId>com.thinkaurelius.titan</groupId>
                <artifactId>titan-core</artifactId>
                <version>${titan.version}</version>
                <exclusions>
                    <!-- rexster does not work with servlet-api -->
                    <exclusion>
                        <groupId>com.tinkerpop.rexster</groupId>
                        <artifactId>rexster-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.tinkerpop.rexster</groupId>
                        <artifactId>rexster-server</artifactId>
                    </exclusion>
                    <!-- asm 4.0 does not work with jersey asm 3.1 -->
                    <exclusion>
                        <groupId>com.tinkerpop</groupId>
                        <artifactId>frames</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.esotericsoftware.reflectasm</groupId>
                        <artifactId>reflectasm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.thinkaurelius.titan</groupId>
                <artifactId>titan-berkeleyje</artifactId>
                <version>${titan.version}</version>
            </dependency>

            <dependency>
                <groupId>com.thinkaurelius.titan</groupId>
                <artifactId>titan-es</artifactId>
                <version>${titan.version}</version>
            </dependency>

            <dependency>
                <groupId>com.thinkaurelius.titan</groupId>
                <artifactId>titan-lucene</artifactId>
                <version>${titan.version}</version>
                <!--<scope>test</scope>-->
            </dependency>

            <dependency>
                <groupId>com.tinkerpop.gremlin</groupId>
                <artifactId>gremlin-java</artifactId>
                <version>${tinkerpop.version}</version>
            </dependency>

            <!--  atlas modules -->
            <dependency>
                <groupId>org.apache.atlas</groupId>
                <artifactId>atlas-typesystem</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.atlas</groupId>
                <artifactId>atlas-repository</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.atlas</groupId>
                <artifactId>atlas-webapp</artifactId>
                <version>${project.version}</version>
                <classifier>classes</classifier>
            </dependency>

            <dependency>
                <groupId>org.apache.atlas</groupId>
                <artifactId>atlas-client</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.atlas</groupId>
                <artifactId>atlas-client</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>

            <!--Scala dependencies-->
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>jline</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-actors</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scalap</artifactId>
                <version>${scala.version}</version>
            </dependency>

            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_${scala.binary.version}</artifactId>
                <version>2.2.0</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.scalamacros</groupId>
                <artifactId>quasiquotes_${scala.binary.version}</artifactId>
                <version>${scala.macros.version}</version>
            </dependency>

            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-native_2.10</artifactId>
                <version>${json.version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.nscala-time</groupId>
                <artifactId>nscala-time_2.10</artifactId>
                <version>1.6.0</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>1.2.1</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-actor_2.10</artifactId>
                <version>${akka.version}</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-testkit_2.10</artifactId>
                <version>${akka.version}</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.akka</groupId>
                <artifactId>akka-slf4j_2.10</artifactId>
                <version>${akka.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-routing</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-can</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-httpx</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>io.spray</groupId>
                <artifactId>spray-testkit</artifactId>
                <version>${spray.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.3.1</version>
            </dependency>

            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil</artifactId>
                <version>${fastutil.version}</version>
            </dependency>

            <!-- supports simple auth handler -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.2.5</version>
            </dependency>

            <!--Test dependencies-->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.1.1</version>
                <scope>test</scope>
            </dependency>

            <!-- todo - use testng and delete junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.10</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>2.4</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.8.5</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.4</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <directory>target</directory>
        <outputDirectory>target/classes</outputDirectory>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <testOutputDirectory>target/test-classes</testOutputDirectory>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>..</directory>
                <targetPath>META-INF</targetPath>
                <includes>
                    <include>LICENSE.txt</include>
                    <include>NOTICE.txt</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>1.0</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.2.1</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.8.1</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.16</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.18.1</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.7</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.7</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.9.1</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.2</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <!-- Source code metrics: mvn javancss:report or mvn site -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javancss-maven-plugin</artifactId>
                    <version>2.0</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                </plugin>

                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <executions>
                        <execution>
                            <id>scala-compile-first</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>scala-test-compile-first</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>attach-scaladocs</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>doc-jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <scalaVersion>${scala.version}</scalaVersion>
                        <recompileMode>incremental</recompileMode>
                        <useZincServer>true</useZincServer>
                        <args>
                            <arg>-unchecked</arg>
                            <arg>-deprecation</arg>
                            <arg>-feature</arg>
                        </args>
                        <jvmArgs>
                            <jvmArg>-Xmx512m</jvmArg>
                            <jvmArg>-XX:MaxPermSize=128m</jvmArg>
                        </jvmArgs>
                        <!--
                        <javacArgs>
                            <javacArg>-source</javacArg>
                            <javacArg>${java.version}</javacArg>
                            <javacArg>-target</javacArg>
                            <javacArg>${java.version}</javacArg>
                        </javacArgs>
                        -->
                        <!-- The following plugin is required to use quasiquotes in Scala 2.10 and is used
                             by Spark SQL for code generation. -->
                        <!--<compilerPlugins>
                            <compilerPlugin>
                                <groupId>org.scalamacros</groupId>
                                <artifactId>paradise_${scala.version}</artifactId>
                                <version>${scala.macros.version}</version>
                            </compilerPlugin>
                        </compilerPlugins>-->
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.enunciate</groupId>
                    <artifactId>maven-enunciate-plugin</artifactId>
                    <version>1.29</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <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>
                    <optimize>true</optimize>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assemblies/standalone-package.xml</descriptor>
                        <descriptor>src/main/assemblies/src-package.xml</descriptor>
                    </descriptors>
                    <finalName>apache-atlas-${project.version}</finalName>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <!--<skipTests>true</skipTests>-->
                    <forkMode>always</forkMode>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <argLine>-Djava.awt.headless=true -Dproject.version=${project.version}
                        -Dhadoop.tmp.dir=${project.build.directory}/tmp-hadoop-${user.name}
                        -Xmx1024m -XX:MaxPermSize=512m
                    </argLine>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-testng</artifactId>
                        <version>2.18.1</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit4</artifactId>
                        <version>2.18.1</version>
                    </dependency>
                </dependencies>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <argLine>-Djava.awt.headless=true -Dproject.version=${project.version}
                        -Dhadoop.tmp.dir=${project.build.directory}/tmp-hadoop-${user.name}
                        -Xmx1024m -XX:MaxPermSize=512m
                    </argLine>
                    <parallel>none</parallel>
                    <reuseForks>false</reuseForks>
                    <forkCount>1</forkCount>
                    <threadCount>5</threadCount>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>verify</id>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Run the application using "mvn jetty:run" -->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.16</version>
                <configuration>
                    <!-- Log to the console. -->
                    <requestLog implementation="org.mortbay.jetty.NCSARequestLog">
                        <!-- This doesn't do anything for Jetty, but is a workaround for a Maven bug
                             that prevents the requestLog from being set. -->
                        <append>true</append>
                    </requestLog>
                </configuration>
            </plugin>

            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <revisionOnScmFailure>release</revisionOnScmFailure>
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <useDefaultExcludes>true</useDefaultExcludes>
                    <useMavenDefaultExcludes>true</useMavenDefaultExcludes>
                    <useIdeaDefaultExcludes>true</useIdeaDefaultExcludes>
                    <useEclipseDefaultExcludes>true</useEclipseDefaultExcludes>
                    <excludeSubProjects>true</excludeSubProjects>
                    <excludes>
                        <exclude>*.txt</exclude>
                        <exclude>**/*.txt</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>.git/**</exclude>
                        <exclude>.gitignore</exclude>
                        <exclude>**/.idea/**</exclude>
                        <exclude>**/*.twiki</exclude>
                        <exclude>**/*.iml</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>**/*.uml</exclude>
                        <exclude>**/target/**</exclude>
                        <exclude>**/build/**</exclude>
                        <exclude>**/*.patch</exclude>
                        <exclude>derby.log</exclude>
                        <exclude>**/logs/**</exclude>
                        <exclude>**/.classpath</exclude>
                        <exclude>**/.project</exclude>
                        <exclude>**/.settings/**</exclude>
                        <exclude>**/test-output/**</exclude>
                        <exclude>**/mock/**</exclude>
                        <exclude>**/data/**</exclude>
                        <exclude>**/data.txt</exclude>
                        <exclude>**/maven-eclipse.xml</exclude>
                        <exclude>**/.externalToolBuilders/**</exclude>
                        <exclude>dashboard/**</exclude>
                        <exclude>**/build.log</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <id>rat-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>verify</phase>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>checkstyle-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>verify</phase>
                        <configuration>
                            <skip>${skipCheck}</skip>
                            <consoleOutput>true</consoleOutput>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                            <configLocation>src/build/checkstyle.xml</configLocation>
                            <headerLocation>src/build/checkstyle-java-header.txt</headerLocation>
                            <failOnViolation>false</failOnViolation>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <configuration>
                    <!--debug>true</debug -->
                    <xmlOutput>true</xmlOutput>
                    <failOnError>false</failOnError>
                    <skip>${skipCheck}</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>findbugs-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>verify</phase>
                    </execution>
                </executions>
            </plugin>

            <!-- Source code metrics: mvn javancss:report or mvn site -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>javancss-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <configuration>
                            <executable>python</executable>
                            <workingDirectory>src/test/python</workingDirectory>
                            <arguments>
                                <argument>unitTests.py</argument>
                            </arguments>
                            <environmentVariables>
                                <PYTHONPATH>${python.path.l}</PYTHONPATH>
                            </environmentVariables>
                        </configuration>
                        <id>python-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}</directory>
                            <includes>
                                <include>**/*.pyc</include>
                            </includes>
                            <followSymlinks>false</followSymlinks>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>