<?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
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>ambari-metrics</artifactId>
    <groupId>org.apache.ambari</groupId>
    <version>2.0.0.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ambari-metrics-timelineservice</artifactId>
  <version>2.0.0.0-SNAPSHOT</version>
  <name>Ambari Metrics Collector</name>
  <packaging>jar</packaging>

  <properties>
    <!-- Needed for generating FindBugs warnings using parent pom -->
    <!--<yarn.basedir>${project.parent.parent.basedir}</yarn.basedir>-->
    <protobuf.version>2.5.0</protobuf.version>
    <hadoop.version>2.7.1.2.3.4.0-3347</hadoop.version>
    <phoenix.version>4.4.0.2.3.4.0-3347</phoenix.version>
    <hbase.version>1.1.2.2.3.4.0-3347</hbase.version>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <id>parse-version</id>
            <phase>validate</phase>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
          <execution>
            <id>regex-property</id>
            <goals>
              <goal>regex-property</goal>
            </goals>
            <configuration>
              <name>ambariVersion</name>
              <value>${project.version}</value>
              <regex>^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)(\.|-).*</regex>
              <replacement>$1.$2.$3.$4</replacement>
              <failIfNoMatch>false</failIfNoMatch>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/lib</outputDirectory>
              <includeScope>compile</includeScope>
              <excludeScope>test</excludeScope>
              <excludeArtifactIds>jasper-runtime,jasper-compiler</excludeArtifactIds>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
      </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>rpm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <name>ambari-metrics-collector</name>
          <copyright>2012, Apache Software Foundation</copyright>
          <group>Development</group>
          <description>Maven Recipe: RPM Package.</description>
          <autoRequires>false</autoRequires>
          <requires>
            <require>${python.ver}</require>
          </requires>

          <defaultFilemode>644</defaultFilemode>
          <defaultDirmode>755</defaultDirmode>
          <defaultUsername>root</defaultUsername>
          <defaultGroupname>root</defaultGroupname>

          <mappings>
            <mapping>
              <!--jars-->
              <directory>/usr/lib/ambari-metrics-collector/</directory>
              <sources>
                <source>
                  <location>target/lib</location>
                  <excludes>
                  <exclude>*tests.jar</exclude>
                  </excludes>
                </source>
                <source>
                  <location>${project.build.directory}/${project.artifactId}-${project.version}.jar</location>
                </source>
              </sources>
            </mapping>
            <mapping>
              <!--embedded applications-->
              <directory>/usr/lib/ams-hbase/</directory>
              <sources>
                <source>
                  <location>target/embedded/${hbase.folder}</location>
                  <excludes>
                    <exclude>bin/**</exclude>
                    <exclude>bin/*</exclude>
                    <exclude>lib/*tests.jar</exclude>
                  </excludes>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/usr/lib/ams-hbase/bin</directory>
              <filemode>755</filemode>
              <sources>
                <source>
                  <location>target/embedded/${hbase.folder}/bin</location>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/usr/lib/ams-hbase/lib/</directory>
              <sources>
                <source>
                  <location>target/lib</location>
                  <includes>
                    <include>phoenix*.jar</include>
                    <include>antlr*.jar</include>
                  </includes>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/usr/sbin</directory>
              <filemode>755</filemode>
              <username>root</username>
              <groupname>root</groupname>
              <directoryIncluded>false</directoryIncluded>
              <sources>
                <source>
                  <location>conf/unix/ambari-metrics-collector</location>
                  <filter>false</filter>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/usr/lib/ambari-metrics-collector/bin</directory>
              <filemode>755</filemode>
              <username>root</username>
              <groupname>root</groupname>
              <directoryIncluded>false</directoryIncluded>
              <sources>
                <source>
                  <location>conf/unix/sqlline</location>
                  <filter>false</filter>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/etc/ambari-metrics-collector/conf</directory>
              <configuration>true</configuration>
              <sources>
                <source>
                  <location>conf/unix/ams-env.sh</location>
                </source>
                <source>
                  <location>conf/unix/ams-site.xml</location>
                </source>
                <source>
                  <location>conf/unix/log4j.properties</location>
                </source>
                <source>
                  <location>conf/unix/metrics_whitelist</location>
                </source>
                <source>
                  <location>conf/unix/amshbase_metrics_whitelist</location>
                </source>
                <source>
                  <location>target/embedded/${hbase.folder}/conf/hbase-site.xml</location>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/etc/ams-hbase/conf</directory>
              <configuration>true</configuration>
              <sources>
                <source>
                  <location>target/embedded/${hbase.folder}/conf</location>
                  <includes>
                    <include>*.*</include>
                  </includes>
                </source>
              </sources>
            </mapping>
            <mapping>
              <directory>/var/run/ams-hbase</directory>
            </mapping>
            <mapping>
              <directory>/var/lib/ambari-metrics-collector</directory>
            </mapping>
          </mappings>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <redirectTestOutputToFile>true</redirectTestOutputToFile>
          <forkMode>always</forkMode>
          <argLine>-XX:-UseSplitVerifier</argLine>
          <!-- Each profile in the top-level pom.xml defines which test group categories to run. -->
          <groups>${testcase.groups}</groups>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>conf/unix/metrics_whitelist</exclude>
            <exclude>conf/unix/amshbase_metrics_whitelist</exclude>
            <exclude>conf/windows/metrics_whitelist</exclude>
            <exclude>conf/windows/amshbase_metrics_whitelist</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>
            <!--Stub execution on direct plugin call - workaround for ambari deb build process-->
            <id>stub-execution</id>
            <phase>none</phase>
            <goals>
              <goal>jdeb</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <skip>true</skip>
          <attach>false</attach>
          <submodules>false</submodules>
          <controlDir>${project.basedir}/../src/main/package/deb/control</controlDir>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>

    <dependency>
      <groupId>org.apache.helix</groupId>
      <artifactId>helix-core</artifactId>
      <version>0.6.6</version>
      <exclusions>
        <!-- zkclient is helix-core dependency but it need to be 0.9 in order for AMS HA to work on secure cluster-->
        <exclusion>
          <artifactId>zkclient</artifactId>
          <groupId>com.101tec</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- zkclient is helix-core dependency but it need to be 0.9 in order for AMS HA to work on secure cluster-->
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.9</version>
    </dependency>
    <dependency>
      <groupId>org.apache.phoenix</groupId>
      <artifactId>phoenix-core</artifactId>
      <version>${phoenix.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-annotations</artifactId>
        </exclusion>
        <exclusion>
          <groupId>net.sourceforge.findbugs</groupId>
          <artifactId>annotations</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.5</version>
    </dependency>

    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-metrics-common</artifactId>
      <version>2.0.0.0-SNAPSHOT</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>commons-el</groupId>
          <artifactId>commons-el</artifactId>
        </exclusion>
        <exclusion>
          <groupId>tomcat</groupId>
          <artifactId>jasper-runtime</artifactId>
        </exclusion>
        <exclusion>
          <groupId>tomcat</groupId>
          <artifactId>jasper-compiler</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jsp-2.1-jetty</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-annotations</artifactId>
      <version>${hadoop.version}</version>
      <exclusions>
        <exclusion>
          <groupId>jdk.tools</groupId>
          <artifactId>jdk.tools</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>${hadoop.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.inject.extensions</groupId>
      <artifactId>guice-servlet</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>${protobuf.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
      <version>4.10</version>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>
      <version>3.0</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey.jersey-test-framework</groupId>
      <artifactId>jersey-test-framework-core</artifactId>
      <version>1.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-json</artifactId>
      <version>1.11</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey.contribs</groupId>
      <artifactId>jersey-guice</artifactId>
      <version>1.11</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-server</artifactId>
      <version>1.11</version>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-common</artifactId>
      <version>${hadoop.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-api</artifactId>
      <version>${hadoop.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>2.2.2</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jettison</groupId>
      <artifactId>jettison</artifactId>
      <version>1.1</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
      <version>1.11</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-client</artifactId>
      <version>1.11</version>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.2</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>14.0.1</version>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math3</artifactId>
      <version>3.4.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>2.3</version>
    </dependency>
    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_core</artifactId>
      <version>2.13</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-nop</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-math3</groupId>
          <artifactId>commons-math3</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-pool2</groupId>
          <artifactId>commons-pool2</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_http</artifactId>
      <version>2.13</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-nop</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-math3</groupId>
          <artifactId>commons-math3</artifactId>
        </exclusion>
        <exclusion>
          <groupId>commons-pool2</groupId>
          <artifactId>commons-pool2</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-yarn-server-common</artifactId>
      <version>${hadoop.version}</version>
    </dependency>

    <!-- 'mvn dependency:analyze' fails to detect use of this dependency -->
    <dependency>
      <groupId>com.sun.jersey.jersey-test-framework</groupId>
      <artifactId>jersey-test-framework-grizzly2</artifactId>
      <scope>test</scope>
      <version>1.11</version>
    </dependency>

    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>
      <version>1.9.9</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.20</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.20</version>
    </dependency>

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

    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2.1</version>
    </dependency>

    <dependency>
      <groupId>org.fusesource.leveldbjni</groupId>
      <artifactId>leveldbjni-all</artifactId>
      <version>1.8</version>
    </dependency>

    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>1.7.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymock</artifactId>
      <version>3.2</version>
      <scope>test</scope>
    </dependency>
    <!-- for unit tests only -->
    <dependency>
      <groupId>org.apache.phoenix</groupId>
      <artifactId>phoenix-core</artifactId>
      <type>test-jar</type>
      <version>${phoenix.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-it</artifactId>
      <version>${hbase.version}</version>
      <scope>test</scope>
      <classifier>tests</classifier>
    </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-testing-util</artifactId>
        <version>${hbase.version}</version>
        <scope>test</scope>
        <optional>true</optional>
        <exclusions>
          <exclusion>
            <groupId>org.jruby</groupId>
            <artifactId>jruby-complete</artifactId>
          </exclusion>
          <exclusion>
            <artifactId>zookeeper</artifactId>
            <groupId>org.apache.zookeeper</groupId>
          </exclusion>
        </exclusions>
      </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-easymock</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- Dependency in order to annotate unit tests with a category. -->
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-utility</artifactId>
      <version>1.0.0.0-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>linux</id>
      <activation>
        <os>
          <family>unix</family>
        </os>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="Download HBase">
                    <mkdir dir="${project.build.directory}/embedded" />
                    <get
                      src="${hbase.tar}"
                      dest="${project.build.directory}/embedded/hbase.tar.gz"
                      usetimestamp="true"
                      />
                    <untar
                      src="${project.build.directory}/embedded/hbase.tar.gz"
                      dest="${project.build.directory}/embedded"
                      compression="gzip"
                      />
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>phoenix_download</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="Download Phoenix">
                    <mkdir dir="${project.build.directory}/embedded"/>
                    <get
                      src="${phoenix.tar}"
                      dest="${project.build.directory}/embedded/phoenix.tar.gz"
                      usetimestamp="true"
                      />
                    <untar
                      src="${project.build.directory}/embedded/phoenix.tar.gz"
                      dest="${project.build.directory}/embedded"
                      compression="gzip"
                      />
                    <move
                      file="${project.build.directory}/embedded/${phoenix.folder}/phoenix-${phoenix.version}-server.jar"
                      tofile="${project.build.directory}/embedded/${hbase.folder}/lib/phoenix-${phoenix.version}-server.jar"
                      />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>windows</id>
      <activation>
        <os>
          <family>win</family>
        </os>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <id>hbase_download</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target name="Download HBase">
                    <mkdir dir="${project.build.directory}/embedded" />
                    <get
                      src="${hbase.winpkg.zip}"
                      dest="${project.build.directory}/embedded/hbase.zip"
                      usetimestamp="true"
                      />
                    <unzip
                      src="${project.build.directory}/embedded/hbase.zip"
                      dest="${project.build.directory}/embedded/hbase.temp"
                      />
                    <unzip
                      src="${project.build.directory}/embedded/hbase.temp/resources/${hbase.winpkg.folder}.zip"
                      dest="${project.build.directory}/embedded"
                      />
                    <copy
                      file="${project.build.directory}/embedded/hbase.temp/resources/servicehost.exe"
                      tofile="${project.build.directory}/embedded/${hbase.winpkg.folder}/bin/ams_hbase_master.exe"
                      />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>sim</id>
      <build>

        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
              <descriptors>
                <descriptor>src/main/assemblies/simulator.xml</descriptor>
              </descriptors>
              <tarLongFileMode>gnu</tarLongFileMode>
            </configuration>
            <executions>
              <execution>
                <id>build-tarball</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <!-- The configuration of the plugin -->
            <configuration>
              <!-- Configuration of the archiver -->
              <finalName>${project.artifactId}-simulator-${project.version}</finalName>
              <archive>
                <!-- Manifest specific configuration -->
                <manifest>
                  <!-- Classpath is added to the manifest of the created jar file. -->
                  <addClasspath>true</addClasspath>
                  <!--
                      Configures the classpath prefix. This configuration option is
                      used to specify that all needed libraries are found under lib/
                      directory.
                  -->
                  <classpathPrefix></classpathPrefix>
                  <!-- Specifies the main class of the application -->
                  <mainClass>
                    org.apache.hadoop.yarn.server.applicationhistoryservice.metrics.loadsimulator.MetricsLoadSimulator
                  </mainClass>
                </manifest>
              </archive>
            </configuration>
          </plugin>
        </plugins>

      </build>

    </profile>
  </profiles>
</project>
