<?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>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>21</version>
  </parent>
  <groupId>org.apache.ambari</groupId>
  <artifactId>ambari</artifactId>
  <packaging>pom</packaging>
  <name>Ambari Main</name>
  <version>${revision}</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>
  <mailingLists>
    <mailingList>
      <name>Dev</name>
      <subscribe>dev-subscribe@ambari.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@ambari.apache.org</unsubscribe>
      <post>dev@ambari.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/ambari-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Users</name>
      <subscribe>users-subscribe@ambari.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@ambari.apache.org</unsubscribe>
      <post>users@ambari.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/ambari-users</archive>
    </mailingList>
    <mailingList>
      <name>Commits</name>
      <subscribe>commits-subscribe@ambari.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@ambari.apache.org</unsubscribe>
      <post>commits@ambari.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/ambari-commits</archive>
    </mailingList>
    <mailingList>
      <name>Issues</name>
      <subscribe>issues-subscribe@ambari.apache.org</subscribe>
      <unsubscribe>issues-unsubscribe@ambari.apache.org</unsubscribe>
      <post>issues@ambari.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/ambari-issues</archive>
    </mailingList>
  </mailingLists>
  <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>
    <revision>3.0.0.0-SNAPSHOT</revision>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <clover.license>${user.home}/clover.license</clover.license>
    <jdk.version>1.8</jdk.version>
    <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>BIGTOP</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>
    <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>

  <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>
  </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>${jdk.version}</source>
          <target>${jdk.version}</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/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>
            <exclude>ambari-common/src/main/python/ambari_pyaes/**</exclude>
            <exclude>ambari-common/src/main/python/ambari_pbkdf2/**</exclude>
            <exclude>**/.metadata_never_index</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/**/bower_components/**</exclude>
            <exclude>contrib/**/dist/**</exclude>
            <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/capacity-scheduler/src/main/resources/ui/node_modules/**</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>
            <!-- 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>

      <!--
      Required when using the ${revision} placeholder to generate target/.flattened-pom.xml
      See: https://maven.apache.org/maven-ci-friendly.html
      -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>1.0.1</version>
        <configuration>
          <flattenMode>oss</flattenMode>
          <updatePomFile>true</updatePomFile>
          <outputDirectory>${project.build.directory}</outputDirectory>
        </configuration>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
          </execution>
          <execution>
            <id>flatten.clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M2</version>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.5.0</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>1.8</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>default-views</id>
      <activation>
        <property>
          <name>views</name>
        </property>
      </activation>
      <modules>
        <module>ambari-serviceadvisor</module>
        <module>ambari-utility</module>
        <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-server-spi</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
      </modules>
    </profile>
    <profile>
      <id>example-views</id>
      <activation>
        <property>
          <name>exampleViews</name>
        </property>
      </activation>
      <modules>
        <module>ambari-serviceadvisor</module>
        <module>ambari-utility</module>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-views/examples</module>
        <module>ambari-server</module>
        <module>ambari-server-spi</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-server</module>
        <module>ambari-server-spi</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
        <module>ambari-serviceadvisor</module>
        <module>ambari-utility</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-server-spi</module>
        <module>ambari-funtest</module>
        <module>ambari-agent</module>
        <module>ambari-serviceadvisor</module>
        <module>ambari-utility</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-utility</module>
        <module>ambari-web</module>
        <module>ambari-project</module>
        <module>ambari-views</module>
        <module>ambari-admin</module>
        <module>ambari-server</module>
        <module>ambari-server-spi</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>
