<?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="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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.ambari</groupId>
  <artifactId>ambari</artifactId>
  <packaging>pom</packaging>
  <name>Ambari Main</name>
  <version>2.0.2.0</version>
  <description>Ambari</description>
  <url>http://ambari.apache.org/</url>
  <scm>
    <url>https://github.com/apache/ambari</url>
    <connection>https://git-wip-us.apache.org/repos/asf/ambari.git</connection>
  </scm>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </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/AMBARI</url>
  </issueManagement>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <clover.license>${user.home}/clover.license</clover.license>
    <buildnumber-maven-plugin-version>1.2</buildnumber-maven-plugin-version>
    <deb.publisher>Hortonworks</deb.publisher>
    <deb.section>universe/admin</deb.section>
    <deb.architecture>i386 amd64</deb.architecture>
    <deb.priority>extra</deb.priority>
    <stack.distribution>HDP</stack.distribution>
    <ambari.dir>${project.basedir}</ambari.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId>
    <distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
    <distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
    <distMgmtStagingId>apache.staging.https</distMgmtStagingId>
    <distMgmtStagingName>Apache Release Distribution Repository</distMgmtStagingName>
    <distMgmtStagingUrl>https://repository.apache.org/service/local/staging/deploy/maven2</distMgmtStagingUrl>
  </properties>
  <pluginRepositories>
    <pluginRepository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/2/</url>
      <layout>default</layout>
    </pluginRepository>
    <pluginRepository>
      <id>maven2-glassfish-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>http://download.java.net/maven/glassfish/</url>
    </pluginRepository>
    <pluginRepository>
      <id>maven2-repository.atlassian</id>
      <name>Atlassian Maven Repository</name>
      <url>https://maven.atlassian.com/repository/public</url>
      <layout>default</layout>
    </pluginRepository>
    <pluginRepository>
      <id>${distMgmtSnapshotsId}</id>
      <name>${distMgmtSnapshotsName}</name>
      <url>${distMgmtSnapshotsUrl}</url>
      <layout>default</layout>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <repository>
      <id>${distMgmtStagingId}</id>
      <name>${distMgmtStagingName}</name>
      <url>${distMgmtStagingUrl}</url>
    </repository>
    <snapshotRepository>
      <id>${distMgmtSnapshotsId}</id>
      <name>${distMgmtSnapshotsName}</name>
      <url>${distMgmtSnapshotsUrl}</url>
    </snapshotRepository>
  </distributionManagement>

  <repositories>
    <repository>
      <id>oss.sonatype.org</id>
      <name>OSS Sonatype Staging</name>
      <url>https://oss.sonatype.org/content/groups/staging</url>
    </repository>
    <repository>
      <id>spring-milestones</id>
      <name>Spring Milestones</name>
      <url>http://repo.spring.io/milestone</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>ASF Staging</id>
      <url>https://repository.apache.org/content/groups/staging/</url>
    </repository>
    <repository>
      <id>ASF Snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.12</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>rpm-maven-plugin</artifactId>
          <version>2.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.vafer</groupId>
          <artifactId>jdeb</artifactId>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <id>parse-package-version</id>
            <goals>
              <goal>regex-property</goal>
            </goals>
            <configuration>
              <name>package-version</name>
              <value>${project.version}</value>
              <regex>^([0-9]+)\.([0-9]+)\.([0-9]+)(\.|-).*</regex>
              <replacement>$1.$2.$3</replacement>
              <failIfNoMatch>true</failIfNoMatch>
            </configuration>
          </execution>
          <execution>
            <id>parse-package-release</id>
            <goals>
              <goal>regex-property</goal>
            </goals>
            <configuration>
              <name>package-release</name>
              <value>${project.version}</value>
              <regex>^([0-9]+)\.([0-9]+)\.([0-9]+)(\.|-)(([0-9]+)|(SNAPSHOT)|(techwin)).*</regex>
              <replacement>$5</replacement>
              <failIfNoMatch>true</failIfNoMatch>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>${ambari.dir}/ambari-project/src/main/assemblies/empty.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.0.1</version>
        <executions>
          <execution>
            <!-- unbinds rpm creation from maven lifecycle -->
            <phase>none</phase>
            <goals>
              <goal>attached-rpm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <copyright>2012, Apache Software Foundation</copyright>
          <group>Development</group>
          <description>Maven Recipe: RPM Package.</description>
          <release>${package-release}</release>
          <version>${package-version}</version>
          <mappings/>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/repo_*.j2</exclude>
            <exclude>**/ambari-log4j.spec</exclude>
            <exclude>**/version.txt</exclude>
            <exclude>**/release.txt</exclude>
            <exclude>**/*.list</exclude>
            <exclude>**/hdp_mon_nagios_addons.conf</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/*.svg</exclude>
            <exclude>derby.log</exclude>
            <exclude>CHANGES.txt</exclude>
            <exclude>pass.txt</exclude>
            <exclude>ambari-metrics/ambari-metrics-host-monitoring/conf/unix/metric_groups.conf</exclude>
            <exclude>ambari-metrics/ambari-metrics-host-monitoring/conf/windows/metric_groups.conf</exclude>
            <exclude>contrib/addons/test/dataServices/jmx/data/cluster_configuration.json.nohbase</exclude>
            <exclude>contrib/ambari-scom/msi/src/GUI_Ambari.sln</exclude>
            <exclude>version</exclude>
            <!--IDE and GIT files-->
            <exclude>**/.idea/</exclude>
            <exclude>.git/</exclude>
            <exclude>.pydevproject</exclude>
            <exclude>**/.gitignore</exclude>
            <exclude>**/.gitattributes</exclude>
            <exclude>**/.gitkeep</exclude>
            <exclude>**/.jshintrc</exclude>
            <exclude>**/.editorconfig</exclude>
              <!--gitignore content-->
            <exclude>.DS_Store</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>.classpath</exclude>
            <exclude>.project</exclude>
            <exclude>.settings</exclude>
            <exclude>*.pyc</exclude>
            <exclude>*.py~</exclude>
            <exclude>.hg</exclude>
            <exclude>.hgignore</exclude>
            <exclude>.hgtags</exclude>

            <!--Python Mock library (BSD license)-->
            <exclude>ambari-common/src/test/python/mock/**</exclude>
            <!--Jinja2 library (BSD license)-->
            <exclude>ambari-common/src/main/python/ambari_jinja2/**</exclude>
            <exclude>ambari-common/src/main/python/jinja2/**</exclude>

            <exclude>ambari-web/node_modules/**</exclude>

            <!--Contributions-->
            <exclude>contrib/ambari-scom/management-pack/Hadoop_MP/**</exclude>
            <exclude>contrib/addons/test/dataServices/jmx/data/cluster_configuration.json.nohbase</exclude>
            <exclude>contrib/ambari-scom/msi/src/GUI_Ambari.sln</exclude>
            <exclude>contrib/ambari-scom/ambari-scom-server/pass.txt</exclude>
            <exclude>contrib/ambari-scom/*/rat.txt</exclude>
            <exclude>contrib/ambari-scom/metrics-sink/target/**</exclude>
            <exclude>contrib/views/*/target/**</exclude>
            <exclude>contrib/views/hive/src/main/resources/ui/hive-web/vendor/codemirror/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/bower_components/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/node/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/node_modules/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/public/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/vendor/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/runner.js</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/app/assets/stylesheets/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/app/assets/javascripts/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/.tmp/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/**/bower_components/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/dist/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/node/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/node_modules/**</exclude>
            <exclude>contrib/views/jobs/src/main/resources/ui/**/.bowerrc</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/public/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/node_modules/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/node/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/bower_components/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/vendor/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/app/assets/static/stylesheets/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/app/assets/static/javascripts/**</exclude>
            <exclude>contrib/views/pig/src/main/resources/ui/pig-web/runner.js</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/public/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/node_modules/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/vendor/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/app/assets/stylesheets/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/app/assets/javascripts/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/bower_components/**</exclude>
            <exclude>contrib/views/slider/src/main/resources/ui/runner.js</exclude>
            <exclude>contrib/addons/package/deb/nagios_addon_deb_control</exclude>
            <exclude>contrib/addons/src/addOns/nagios/conf.d/hdp_mon_nagios_addons.conf</exclude>
            <exclude>contrib/views/*/.classpath</exclude>
            <exclude>contrib/views/*/.project</exclude>
            <exclude>contrib/views/*/.settings/**</exclude>

            <exclude>contrib/ambari-scom/ambari-scom-server/pass.txt</exclude>
            <exclude>contrib/ambari-scom/ambari-scom-server/target/**</exclude>
            <exclude>contrib/ambari-scom/*/rat.txt</exclude>
            <exclude>contrib/ambari-scom/metrics-sink/target/**</exclude>

            <!--Velocity log -->
            <exclude>**/velocity.log*</exclude>

            <!-- Metrics module -->
            <!-- psutil : external lib, Apache 2.0 license included as a source file -->
            <exclude>ambari-metrics/target/**</exclude>
            <exclude>ambari-metrics/ambari-metrics-host-monitoring/src/main/python/psutil/**</exclude>
            <exclude>ambari-metrics/target/rpm/ambari-metrics/SPECS/ambari-metrics.spec</exclude>
            <exclude>ambari-metrics/ambari-metrics-timelineservice/src/test/resources/lib/org/apache/phoenix/phoenix-core-tests/4.2.0/phoenix-core-tests-4.2.0.pom</exclude>
            <exclude>ambari-metrics/ambari-metrics-timelineservice/src/test/resources/lib/org/apache/phoenix/phoenix-core-tests/maven-metadata-local.xml</exclude>
            <exclude>ambari-metrics/*/target/**</exclude>
            <!-- ignore .settings and .project  -->
            <exclude>ambari-metrics/**/.*/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.vafer</groupId>
        <artifactId>jdeb</artifactId>
        <version>1.0.1</version>
        <executions>
          <execution>
            <phase>none</phase>
            <goals>
              <goal>jdeb</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <skip>true</skip>
          <attach>false</attach>
          <submodules>true</submodules>
          <controlDir>${basedir}/ambari-project/src/main/package/deb/control</controlDir>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>${basedir}</directory>
              <followSymlinks>false</followSymlinks>
               <includes>
                <include>**/*.pyc</include>
              </includes>
             </fileset>
          </filesets>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>default-views</id>
      <activation>
        <property>
          <name>views</name>
        </property>
      </activation>
      <modules>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>contrib/views</module>
        <module>ambari-server</module>
        <module>ambari-agent</module>
        <module>ambari-client</module>
        <module>ambari-shell</module>
        <module>ambari-metrics/ambari-metrics-common</module>
      </modules>
    </profile>
    <profile>
      <id>static-web</id>
      <modules>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-server</module>
        <module>ambari-agent</module>
        <module>ambari-client</module>
        <module>ambari-shell</module>
        <module>ambari-metrics/ambari-metrics-common</module>
      </modules>
    </profile>
    <profile>
      <id>linux</id>
      <activation>
        <os>
          <family>unix</family>
        </os>
      </activation>
      <modules>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-server</module>
        <module>ambari-agent</module>
        <module>ambari-client</module>
        <module>ambari-shell</module>
        <module>ambari-metrics/ambari-metrics-common</module>
      </modules>
    </profile>
    <profile>
      <id>ambari-metrics</id>
      <modules>
        <module>ambari-metrics</module>
      </modules>
    </profile>
    <profile>
      <id>windows</id>
      <activation>
        <os>
          <family>win</family>
        </os>
      </activation>
      <modules>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>contrib/ambari-scom/metrics-sink</module>
        <module>ambari-server</module>
        <module>ambari-agent</module>
        <module>ambari-client</module>
        <module>ambari-shell</module>
        <module>ambari-metrics/ambari-metrics-common</module>
      </modules>
    </profile>
    <profile>
      <id>clover</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>clover</name>
        </property>
      </activation>
      <properties>
        <maven.clover.licenseLocation>${clover.license}</maven.clover.licenseLocation>
        <clover.version>3.1.11</clover.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-clover2-plugin</artifactId>
            <version>${clover.version}</version>
            <configuration>
              <includesAllSourceRoots>true</includesAllSourceRoots>
              <includesTestSourceRoots>true</includesTestSourceRoots>
              <targetPercentage>50%</targetPercentage>
              <generateHtml>true</generateHtml>
              <generateXml>true</generateXml>
              <excludes>
                <exclude>**/generated/**</exclude>
              </excludes>
            </configuration>
            <executions>
              <execution>
                <id>clover-setup</id>
                <phase>process-sources</phase>
                <goals>
                  <goal>setup</goal>
                </goals>
              </execution>
              <execution>
                <id>clover</id>
                <phase>test</phase>
                <goals>
                  <goal>clover</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
