<?xml version="1.0" encoding="UTF-8"?>
<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">
  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.example</groupId>
  <version>1.0-SNAPSHOT</version>
  <artifactId>hdfsToKafka</artifactId>
  <packaging>jar</packaging>

  <!-- change these to the appropriate values -->
  <name>HDFS to Kafka</name>
  <description>Simple application to transfer data from HDFS to Kafka</description>

  <properties>
    <!-- change this if you desire to use a different version of Apex Core -->
    <apex.version>3.5.0</apex.version>
    <malhar.version>3.6.0</malhar.version>
    <apex.apppackage.classpath>lib/*.jar</apex.apppackage.classpath>
  </properties>

  <build>
    <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-eclipse-plugin</artifactId>
         <version>2.9</version>
         <configuration>
           <downloadSources>true</downloadSources>
         </configuration>
       </plugin>
       <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.3</version>
         <configuration>
           <encoding>UTF-8</encoding>
           <source>1.7</source>
           <target>1.7</target>
           <debug>true</debug>
           <optimize>false</optimize>
           <showDeprecation>true</showDeprecation>
           <showWarnings>true</showWarnings>
         </configuration>
       </plugin>
       <plugin>
         <artifactId>maven-dependency-plugin</artifactId>
         <version>2.8</version>
         <executions>
           <execution>
             <id>copy-dependencies</id>
             <phase>prepare-package</phase>
             <goals>
               <goal>copy-dependencies</goal>
             </goals>
             <configuration>
               <outputDirectory>target/deps</outputDirectory>
               <includeScope>runtime</includeScope>
             </configuration>
           </execution>
         </executions>
       </plugin>

       <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <executions>
           <execution>
             <id>app-package-assembly</id>
             <phase>package</phase>
             <goals>
               <goal>single</goal>
             </goals>
             <configuration>
               <finalName>${project.artifactId}-${project.version}-apexapp</finalName>
               <appendAssemblyId>false</appendAssemblyId>
               <descriptors>
                 <descriptor>src/assemble/appPackage.xml</descriptor>
               </descriptors>
               <archiverConfig>
                 <defaultDirectoryMode>0755</defaultDirectoryMode>
               </archiverConfig>                  
               <archive>
                 <manifestEntries>
                   <Class-Path>${apex.apppackage.classpath}</Class-Path>
                   <DT-Engine-Version>${apex.version}</DT-Engine-Version>
                   <DT-App-Package-Group-Id>${project.groupId}</DT-App-Package-Group-Id>
                   <DT-App-Package-Name>${project.artifactId}</DT-App-Package-Name>
                   <DT-App-Package-Version>${project.version}</DT-App-Package-Version>
                   <DT-App-Package-Display-Name>${project.name}</DT-App-Package-Display-Name>
                   <DT-App-Package-Description>${project.description}</DT-App-Package-Description>
                 </manifestEntries>
               </archive>
             </configuration>
           </execution>
         </executions>
       </plugin>

       <plugin>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.7</version>
         <executions>
           <execution>
             <phase>package</phase>
             <configuration>
               <target>
                 <move file="${project.build.directory}/${project.artifactId}-${project.version}-apexapp.jar"
                       tofile="${project.build.directory}/${project.artifactId}-${project.version}.apa" />
               </target>
             </configuration>
             <goals>
               <goal>run</goal>
             </goals>
           </execution>
           <execution>
             <!-- create resource directory for xml javadoc-->
             <id>createJavadocDirectory</id>
             <phase>generate-resources</phase>
             <configuration>
               <tasks>
                 <delete dir="${project.build.directory}/generated-resources/xml-javadoc"/>
                 <mkdir dir="${project.build.directory}/generated-resources/xml-javadoc"/>
               </tasks>
             </configuration>
             <goals>
               <goal>run</goal>
             </goals>
           </execution>
         </executions>
       </plugin>

       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
         <version>1.9.1</version>
         <executions>
           <execution>
             <id>attach-artifacts</id>
             <phase>package</phase>
             <goals>
               <goal>attach-artifact</goal>
             </goals>
             <configuration>
               <artifacts>
                 <artifact>
                   <file>target/${project.artifactId}-${project.version}.apa</file>
                   <type>apa</type>
                 </artifact>
               </artifacts>
               <skipAttach>false</skipAttach>
             </configuration>
           </execution>
         </executions>
       </plugin>

      <!-- generate javdoc -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <!-- generate xml javadoc -->
          <execution>
            <id>xml-doclet</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>javadoc</goal>
            </goals>
            <configuration>
              <doclet>com.github.markusbernhardt.xmldoclet.XmlDoclet</doclet>
              <additionalparam>-d ${project.build.directory}/generated-resources/xml-javadoc -filename ${project.artifactId}-${project.version}-javadoc.xml</additionalparam>
              <useStandardDocletOptions>false</useStandardDocletOptions>
              <docletArtifact>
                <groupId>com.github.markusbernhardt</groupId>
                <artifactId>xml-doclet</artifactId>
                <version>1.0.4</version>
              </docletArtifact>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Transform xml javadoc to stripped down version containing only class/interface comments and tags-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xml-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>transform-xmljavadoc</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>transform</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <transformationSets>
            <transformationSet>
              <dir>${project.build.directory}/generated-resources/xml-javadoc</dir>
              <includes>
                <include>${project.artifactId}-${project.version}-javadoc.xml</include>
              </includes>
              <stylesheet>XmlJavadocCommentsExtractor.xsl</stylesheet>
              <outputDir>${project.build.directory}/generated-resources/xml-javadoc</outputDir>
            </transformationSet>
          </transformationSets>
        </configuration>
      </plugin>
      <!-- copy xml javadoc to class jar -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/classes</outputDirectory>
              <resources>
                <resource>
                  <directory>${project.build.directory}/generated-resources/xml-javadoc</directory>
                  <includes>
                    <include>${project.artifactId}-${project.version}-javadoc.xml</include>
                  </includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>

  </build>

  <dependencies>
    <!-- add your dependencies here -->
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>malhar-library</artifactId>
      <version>3.4.0</version>
      <!-- 
           If you know that your application does not need transitive dependencies pulled in by malhar-library,
           uncomment the following to reduce the size of your app package.
      -->
      <!--    
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
      -->
    </dependency>
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>malhar-contrib</artifactId>
      <version>3.4.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>apex-common</artifactId>
      <version>${apex.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>apex-engine</artifactId>
      <version>${apex.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka_2.8.2</artifactId>
      <version>0.8.1</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-simple</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.zookeeper</groupId>
          <artifactId>zookeeper</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>info.batey.kafka</groupId>
      <artifactId>kafka-unit</artifactId>
      <version>0.3</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

  </dependencies>

</project>
