<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.falcon</groupId>
        <artifactId>falcon-main</artifactId>
        <version>0.11</version>
    </parent>
    <artifactId>falcon-webapp</artifactId>
    <description>Apache Falcon Web Application</description>
    <name>Apache Falcon Web Application</name>
    <packaging>war</packaging>

    <profiles>
        <profile>
            <id>distributed</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.4</version>
                        <configuration>
                            <packagingExcludes>WEB-INF/classes/deploy.properties,docs/downloads.html</packagingExcludes>
                            <webResources>
                                <resource>
                                    <directory>../falcon-ui/dist</directory>
                                </resource>
                                <resource>
                                    <directory>src/main/webapp/WEB-INF/distributed</directory>
                                    <targetPath>WEB-INF</targetPath>
                                </resource>
                                <resource>
                                    <directory>../prism/target/restapi</directory>
                                    <targetPath>.</targetPath>
                                </resource>
                            </webResources>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>hivedr</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.falcon</groupId>
                    <artifactId>falcon-hive-replication</artifactId>
                    <version>${project.version}</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>hdfs-snapshot-mirroring</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.falcon</groupId>
                    <artifactId>falcon-hdfs-snapshot-mirroring</artifactId>
                    <version>${project.version}</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>adf</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.falcon</groupId>
                    <artifactId>falcon-adf</artifactId>
                    <version>${project.version}</version>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

    <dependencies>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-unit</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-unit</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-common</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet.jsp</groupId>
                    <artifactId>jsp-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-prism</artifactId>
            <version>${project.version}</version>
            <classifier>classes</classifier>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-oozie-adaptor</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-scheduler</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-scheduler</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-extensions</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-retention</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-metrics</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-rerun</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-distcp-replication</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-test-util</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-test</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-plus</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-core</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-oozie-el-extension</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.hive.hcatalog</groupId>
            <artifactId>hive-webhcat-java-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-hadoop-webapp</artifactId>
            <type>war</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-cli</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.falcon</groupId>
            <artifactId>falcon-titan</artifactId>
            <version>${project.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>uber-javadocs</id>
                        <phase>site</phase>
                        <goals>
                            <goal>javadoc</goal>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <includeTransitiveDependencySources>false</includeTransitiveDependencySources>
                            <includeDependencySources>true</includeDependencySources>
                            <dependencySourceIncludes>
                                <dependencySourceInclude>org.apache.falcon:*</dependencySourceInclude>
                            </dependencySourceIncludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <packagingExcludes>docs/downloads.html</packagingExcludes>
                    <webResources>
                        <resource>
                            <directory>../html5-ui</directory>
                        </resource>
                        <resource>
                            <directory>../falcon-ui/dist</directory>
                            <targetPath>public</targetPath>
                        </resource>
                        <resource>
                            <directory>src/main/webapp/WEB-INF/embedded</directory>
                            <targetPath>WEB-INF</targetPath>
                        </resource>
                        <resource>
                            <directory>../prism/target/restapi</directory>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/webapps</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/conf</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/dependency</outputDirectory>
                            <excludeScope>provided</excludeScope>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.falcon</groupId>
                                    <artifactId>falcon-hadoop-webapp</artifactId>
                                    <version>${project.version}</version>
                                    <type>war</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/webapps</outputDirectory>
                                    <destFileName>hadoop.war</destFileName>
                                </artifactItem>
                                <!-- this is only used in integration-tests against external clusters -->
                                <artifactItem>
                                    <groupId>org.apache.activemq</groupId>
                                    <artifactId>activemq-kahadb-store</artifactId>
                                    <version>5.12.0</version>
                                    <type>jar</type>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/libext</outputDirectory>
                                    <destFileName>kahadb.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.falcon</groupId>
                                    <artifactId>falcon-hadoop-dependencies</artifactId>
                                    <version>${project.version}</version>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>${project.build.directory}/falcon-webapp-${project.version}/WEB-INF/lib</outputDirectory>
                                    <destFileName>falcon-hadoop-dependencies-${project.version}.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.pig</groupId>
                                    <artifactId>pig</artifactId>
                                    <version>0.11.1</version>
                                    <type>jar</type>
                                    <overWrite>false</overWrite>
                                    <outputDirectory>${project.build.directory}/sharelib</outputDirectory>
                                    <destFileName>pig.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.oozie</groupId>
                                    <artifactId>oozie-client</artifactId>
                                    <outputDirectory>${project.build.directory}/webapps/oozie/conf/action-conf</outputDirectory>
                                    <includes>**/*.xsd</includes>
                                    <excludes>**/*.class</excludes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <configuration>
                            <target>
                                <delete dir="../target/store" />
                                <delete dir="target/webapps/oozie/data" />
                                <copy file="../test-tools/hadoop-webapp/target/oozie.war" toDir="target/webapps" />
                                <delete dir="../target/store" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <phase>pre-integration-test</phase>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>com.google.code.maven-replacer-plugin</groupId>
                <artifactId>replacer</artifactId>
                <version>1.5.3</version>
                <executions>
                    <execution>
                        <phase>generate-test-resources</phase>
                        <goals>
                            <goal>replace</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includes>
                        <include>${project.build.directory}/test-classes/runtime.properties</include>
                        <include>${project.build.directory}/webapps/oozie/conf/oozie-site.xml</include>
                    </includes>
                    <token>#USER#</token>
                    <value>${user.name}</value>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>${jetty.version}</version>
                <configuration>
                    <skip>${skipITs}</skip> <!--only skip int tests-->
                    <connectors>
                        <connector implementation="org.mortbay.jetty.security.SslSocketConnector">
                            <port>41443</port>
                            <maxIdleTime>60000</maxIdleTime>
                            <keystore>${project.build.directory}/../../prism/target/prism.keystore</keystore>
                            <keyPassword>falcon-prism-passwd</keyPassword>
                            <password>falcon-prism-passwd</password>
                        </connector>
                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                            <port>41000</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                    <webApp>${project.build.directory}/falcon-webapp-${project.version}</webApp>
                    <useTestClasspath>true</useTestClasspath>
                    <contextHandlers>
                        <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
                            <war>${project.build.directory}/webapps/hadoop.war</war>
                            <contextPath>/hadoop</contextPath>
                        </contextHandler>
                        <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">
                            <war>${project.build.directory}/webapps/oozie.war</war>
                            <contextPath>/oozie</contextPath>
                        </contextHandler>
                    </contextHandlers>
                    <systemProperties>
                        <systemProperty>
                            <name>hadoop.conf.dir</name>
                            <value>${project.build.directory}/webapps/hadoop/conf</value>
                        </systemProperty>
                        <systemProperty>
                            <name>hadoop.tmp.dir</name>
                            <value>${project.build.directory}/tmp-hadoop-${user.name}</value>
                        </systemProperty>
                        <systemProperty>
                            <name>hadoop.log.dir</name>
                            <value>${project.build.directory}/logs</value>
                        </systemProperty>
                        <systemProperty>
                            <name>oozie.home.dir</name>
                            <value>${project.build.directory}/webapps/oozie</value>
                        </systemProperty>
                        <systemProperty>
                            <name>oozie.data.dir</name>
                            <value>${project.build.directory}/webapps/oozie/data</value>
                        </systemProperty>
                        <systemProperty>
                            <name>oozie.action.conf</name>
                            <value>${project.build.directory}/webapps/oozie/conf/action-conf</value>
                        </systemProperty>
                        <systemProperty>
                            <name>system.lib.location</name>
                            <value>${project.build.directory}/dependency</value>
                        </systemProperty>
                        <systemProperty>
                            <name>falcon.libext</name>
                            <value>${project.build.directory}/../../hadoop-dependencies/target/falcon-hadoop-dependencies-${project.version}.jar</value>
                        </systemProperty>
                        <systemProperty>
                            <name>keystore.file</name>
                            <value>${project.build.directory}/../../prism/target/prism.keystore</value>
                        </systemProperty>
                        <systemProperty>
                            <name>truststore.file</name>
                            <value>${project.build.directory}/../../prism/target/prism.keystore</value>
                        </systemProperty>
                    </systemProperties>
                    <stopKey>falcon-stop</stopKey>
                    <stopPort>41001</stopPort>
                </configuration>
                <executions>
                    <execution>
                        <id>start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <daemon>true</daemon>
                        </configuration>
                    </execution>
                    <execution>
                        <id>stop-jetty</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>stop</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19</version>
                <configuration>
                    <systemPropertyVariables>
                        <project.version>${project.version}</project.version>
                        <project.build.directory>${project.build.directory}</project.build.directory>
                    </systemPropertyVariables>
                </configuration>
            </plugin>

	    <plugin>
              <groupId>org.apache.rat</groupId>
              <artifactId>apache-rat-plugin</artifactId>
              <configuration>
                <excludes>
		  <exclude>**/loginData.json</exclude>
		  <exclude>**/src/main/webapp/css/*</exclude>
		  <exclude>**/src/main/webapp/js/*</exclude>
		  <exclude>*.txt</exclude>
	          <exclude>**/*.txt</exclude>
	          <exclude>.git/**</exclude>
	          <exclude>**/.idea/**</exclude>
	          <exclude>**/*.twiki</exclude>
	          <exclude>**/*.iml</exclude>
	          <exclude>**/target/**</exclude>
	          <exclude>**/activemq-data/**</exclude>
	          <exclude>**/build/**</exclude>
	          <exclude>**/*.patch</exclude>
	          <exclude>derby.log</exclude>
	          <exclude>**/logs/**</exclude>
	          <exclude>**/.classpath</exclude>
	          <exclude>**/.project</exclude>
	          <exclude>**/.settings/**</exclude>
	          <exclude>**/test-output/**</exclude>
	          <exclude>**/data.txt</exclude>
	          <exclude>**/maven-eclipse.xml</exclude>
	          <exclude>**/.externalToolBuilders/**</exclude>
                  <exclude>**/db1.log</exclude>
                  <exclude>**/db1.properties</exclude>
                  <exclude>**/db1.script</exclude>
                  <exclude>**/credential_provider.jceks</exclude>
                </excludes>
              </configuration>
      	    </plugin>	

        </plugins>
    </build>

</project>
