<?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 https://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.7.6.0.0</version>
  <description>Ambari</description>
  <url>https://ambari.apache.org/</url>
  <scm>
    <url>https://github.com/apache/ambari</url>
    <connection>scm:git:https://gitbox.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>https://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>
    <assemblyPhase>package</assemblyPhase> <!-- use -DassemblyPhase=none to skip building tarball, useful when you want purely compile jar -->
    <eclipselink.version>2.6.2</eclipselink.version>
  </properties>
  <pluginRepositories>
    <pluginRepository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net Repository for Maven</name>
      <url>https://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>https://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>https://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>
    <!-- ToDo: remove after moving the Metrics HDP dependencies to the public nexus -->
    <repository>
      <id>private-nexus</id>
      <name>private-nexus</name>
      <url>https://nexus-private.hortonworks.com/nexus/content/groups/public/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
    <!-- //ToDo: END -->
  </repositories>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.12</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20</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>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2-beta-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]+)\.([0-9]+)((\.|-).*)?</regex>
              <replacement>$1.$2.$3.$4</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]+)((\.|-)(([0-9]+)|(SNAPSHOT)|(techwin)).*)?</regex>
              <replacement>$7</replacement>
              <failIfNoMatch>true</failIfNoMatch>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</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.1.4</version>
        <executions>
          <execution>
            <!-- unbinds rpm creation from maven lifecycle -->
            <phase>none</phase>
            <goals>
              <goal>attached-rpm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <license>2012, Apache Software Foundation</license>
          <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>.github/</exclude>
            <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>contrib/ambari-scom/msi/src/GUI_Ambari.sln</exclude>
            <exclude>contrib/fast-hdfs-resource/dependency-reduced-pom.xml</exclude>
            <exclude>contrib/agent-simulator/docker_image/package_list.txt</exclude>
            <exclude>contrib/agent-simulator/config/cluster.txt</exclude>
            <exclude>version</exclude>
            <!--IDE and GIT files-->
            <exclude>**/.idea/</exclude>
            <exclude>**/.classpath/</exclude>
            <exclude>**/.project/</exclude>
            <exclude>**/.settings/</exclude>
            <exclude>.git/</exclude>
            <exclude>.pydevproject</exclude>
            <exclude>**/.gitattributes</exclude>
            <exclude>**/.gitkeep</exclude>
            <exclude>**/.jshintrc</exclude>
            <exclude>**/.editorconfig</exclude>
            <!--gitignore content-->
            <exclude>.DS_Store</exclude>
            <exclude>*.pyc</exclude>
            <exclude>*.py~</exclude>
            <exclude>.hg</exclude>
            <exclude>.hgignore</exclude>
            <exclude>.hgtags</exclude>
            <exclude>**/.bowerrc</exclude>
            <exclude>**/robots.txt</exclude>
            <exclude>**/rat.txt</exclude>

            <!--Python Mock library (BSD license)-->
            <exclude>ambari-common/src/test/python/mock/**</exclude>
            <!--Coilmq Mock library (Apache license)-->
            <exclude>ambari-common/src/test/python/coilmq/**</exclude>
            <!--Jinja2 library (BSD license)-->
            <exclude>ambari-common/src/main/python/ambari_jinja2/**</exclude>
            <exclude>ambari-common/src/main/python/jinja2/**</exclude>
            <!--Simplejson library (MIT license)-->
            <exclude>ambari-common/src/main/python/ambari_simplejson/**</exclude>
            <!--Subprocess32 library (PSF license)-->
            <exclude>ambari-common/src/main/python/ambari_commons/subprocess32.py</exclude>
            <exclude>ambari-common/src/main/python/ambari_commons/_posixsubprocess.so</exclude>
            <!--Stomp library (Apache license)-->
            <exclude>ambari-common/src/main/python/ambari_stomp/**</exclude>
            <!--ws4py library (BSD 3-Clause)-->
            <exclude>ambari-common/src/main/python/ambari_ws4py/**</exclude>

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

            <!--Contributions-->
            <exclude>contrib/management-packs/hdf-ambari-mpack/src/main/resources/stacks/HDF/2.0/hooks/before-START/files/fast-hdfs-resource.jar</exclude>
            <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/views/commons/src/main/resources/ui/*/.bowerrc</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/bower_components/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/node/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/node_modules/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/public/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/vendor/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/tests/**/public/**</exclude>
            <exclude>contrib/views/commons/src/main/resources/ui/*/tests/**/vendor/**</exclude>
            <exclude>contrib/views/files/src/main/resources/ui/.bowerrc</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/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/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/views/capacity-scheduler/src/main/resources/ui/app/**</exclude>
            <exclude>contrib/views/capacity-scheduler/src/main/resources/ui/runner.js</exclude>

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

            <!--Velocity log -->
            <exclude>**/velocity.log*</exclude>
            <!-- Metrics module -->
            <!-- grafana -->
            <exclude>ambari-metrics/ambari-metrics-grafana/conf/unix/ams-grafana.ini</exclude>
            <!-- 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/ambari-metrics-alertservice/*.iml</exclude>
            <exclude>ambari-metrics/*/target/**</exclude>
            <!-- ignore .settings and .project  -->
            <exclude>ambari-metrics/**/.*/**</exclude>
            <!-- generated DDL-->
            <exclude>**/createDDL.jdbc</exclude>
            <exclude>**/yarn.lock</exclude>

            <exclude>ambari_python.egg-info/**</exclude>
            <exclude>dist/**</exclude>
            <exclude>build/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.vafer</groupId>
        <artifactId>jdeb</artifactId>
        <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-serviceadvisor</module>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>contrib/views</module>
        <module>ambari-metrics</module>
        <module>ambari-server</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
        <module>ambari-logsearch</module>
        <module>ambari-infra</module>
      </modules>
    </profile>
    <profile>
      <id>example-views</id>
      <activation>
        <property>
          <name>exampleViews</name>
        </property>
      </activation>
      <modules>
        <module>ambari-serviceadvisor</module>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-views/examples</module>
        <module>ambari-metrics</module>
        <module>ambari-server</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
      </modules>
    </profile>
    <profile>
      <id>static-web</id>
      <modules>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-metrics</module>
        <module>ambari-server</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
        <module>ambari-logsearch</module>
        <module>ambari-infra</module>
        <module>ambari-serviceadvisor</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-metrics</module>
        <module>ambari-server</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
        <module>ambari-logsearch</module>
        <module>ambari-infra</module>
        <module>ambari-serviceadvisor</module>
        </modules>
    </profile>
    <profile>
      <id>ambari-metrics</id>
      <modules>
        <module>ambari-metrics</module>
      </modules>
    </profile>
    <profile>
      <id>ambari-serviceadvisor</id>
      <modules>
        <module>ambari-serviceadvisor</module>
      </modules>
    </profile>
    <profile>
      <id>windows</id>
      <activation>
        <os>
          <family>win</family>
        </os>
      </activation>
      <modules>
        <module>ambari-serviceadvisor</module>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-metrics</module>
        <module>ambari-server</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</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>
    <profile>
      <id>sources</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>javadoc</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <docfilessubdirs>true</docfilessubdirs>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- This profile exists to only sign the build artifacts when making a release candidate
instead of a SNAPSHOT. -->
    <profile>
      <id>sign-artifacts</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Start of profiles for running unit tests.
     The category names are Java interfaces in utility/src/main/java/category/
     The testcase.groups property contains a csv list of these categories (including the Java package name).

     To run a suite of all test cases annotated with a list of categories, run the command
     mvn test -P $PROFILE_ID

     E.g.,
     mvn test -P FastTests
     -->

    <!-- Tests are are explicitly fast. -->
    <profile>
      <id>FastTests</id>
      <properties>
        <testcase.groups>category.FastTest</testcase.groups>
      </properties>
    </profile>

    <!-- Tests are are explicitly slow. -->
    <profile>
      <id>SlowTests</id>
      <properties>
        <testcase.groups>category.SlowTest</testcase.groups>
      </properties>
    </profile>

    <!-- Slow tests, or tests that are not annotated. -->
    <profile>
      <id>NonFastTests</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <excludedGroups>org.apache.ambari.server.FastTest</excludedGroups>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Unit test Profiles based on features. -->
    <profile>
      <id>AlertTests</id>
      <properties>
        <testcase.groups>category.AlertTest</testcase.groups>
      </properties>
    </profile>
    <profile>
      <id>AmbariUpgradeTests</id>
      <properties>
        <testcase.groups>category.AmbariUpgradeTest</testcase.groups>
      </properties>
    </profile>
    <profile>
      <id>BlueprintTests</id>
      <properties>
        <testcase.groups>category.BlueprintTest</testcase.groups>
      </properties>
    </profile>
    <profile>
      <id>KerberosTests</id>
      <properties>
        <testcase.groups>category.KerberosTest</testcase.groups>
      </properties>
    </profile>
    <profile>
      <id>MetricsTests</id>
      <properties>
        <testcase.groups>category.MetricsTest</testcase.groups>
      </properties>
    </profile>
    <profile>
      <id>StackUpgradeTests</id>
      <properties>
        <testcase.groups>category.StackUpgradeTest</testcase.groups>
      </properties>
    </profile>
  </profiles>
  <!-- End of profiles for running unit tests. -->
</project>
