<!--

    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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.apex</groupId>
    <artifactId>malhar</artifactId>
    <version>3.7.0</version>
  </parent>

  <artifactId>malhar-library</artifactId>
  <packaging>jar</packaging>

  <name>Apache Apex Malhar Library</name>

  <build>
    <plugins>
      <!-- Publish tests jar -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>
      <!-- create resource directory for xml javadoc-->
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <executions>
            <execution>
                <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>
      <!-- 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>
          <!-- generate default javadoc jar with custom tags -->
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <skip>true</skip>
              <tags>
                <tag>
                  <name>customTag1</name>
                  <placement>a</placement>
                  <head>Custom Tag One:</head>
                </tag>
                <tag>
                  <name>customTag2</name>
                  <placement>a</placement>
                  <head>Custom Tag two:</head>
                </tag>
                <tag>
                  <name>customTag3</name>
                  <placement>a</placement>
                  <head>Custom Tag three:</head>
                </tag>
              </tags>
            </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>
      <plugin>
        <groupId>com.github.siom79.japicmp</groupId>
        <artifactId>japicmp-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <suppressionsLocation>library-checkstyle-suppressions.xml</suppressionsLocation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19.1</version>
        <configuration>
          <excludes>
            <exclude>**/S3InputModuleAppTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>apex-common</artifactId>
      <version>${apex.core.version}</version>
    </dependency>
    <dependency>
      <groupId>com.icegreen</groupId>
      <artifactId>greenmail</artifactId>
      <version>1.3.1b</version>
      <scope>test</scope>
      <type>jar</type>
      <exclusions>
        <exclusion>
          <artifactId>mail</artifactId>
          <groupId>javax.mail</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>
      <version>${jetty.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>javax.servlet</artifactId>
          <groupId>org.eclipse.jetty.orbit</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <version>1.5.0</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-client</artifactId>
      <version>${jersey.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.jms</groupId>
      <artifactId>jms-api</artifactId>
      <version>1.1-rev-1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-client</artifactId>
      <version>5.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-broker</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-kahadb-store</artifactId>
      <version>5.8.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.5</version>
    </dependency>
    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>2.3.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.github.tony19</groupId>
      <artifactId>named-regexp</artifactId>
      <version>0.2.3</version>
    </dependency>
    <dependency>
      <groupId>org.mockftpserver</groupId>
      <artifactId>MockFtpServer</artifactId>
      <version>2.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.1</version>
      <type>jar</type>
    </dependency>
    <dependency>
      <groupId>org.codehaus.janino</groupId>
      <artifactId>commons-compiler</artifactId>
      <version>2.7.8</version>
      <type>jar</type>
    </dependency>
    <dependency>
      <groupId>org.codehaus.janino</groupId>
      <artifactId>janino</artifactId>
      <version>2.7.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-websocket</artifactId>
      <version>${jetty.version}</version>
      <type>jar</type>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.9.2</version>
    </dependency>
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>it.unimi.dsi</groupId>
      <artifactId>fastutil</artifactId>
      <version>7.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.jooq</groupId>
      <artifactId>jooq</artifactId>
      <version>3.6.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.apex</groupId>
      <artifactId>apex-shaded-ning19</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-s3</artifactId>
      <version>1.10.73</version>
    </dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-sqs</artifactId>
      <version>1.10.73</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.5.4</version>
    </dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>amazon-sqs-java-messaging-lib</artifactId>
      <version>1.0.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>com.amazonaws</groupId>
          <artifactId>aws-java-sdk-sqs</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>fullTests</id>
      <properties>
        <test.excludedGroups></test.excludedGroups>
      </properties>
    </profile>
  </profiles>

</project>
