<?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">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.carbondata</groupId>
    <artifactId>carbondata-parent</artifactId>
    <version>2.1.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <artifactId>carbondata-spark_${spark.binary.version}</artifactId>
  <name>Apache CarbonData :: Spark</name>

  <properties>
    <dev.path>${basedir}/../../dev</dev.path>
    <jacoco.append>true</jacoco.append>

    <build.directory.projectCommon>../../common/target</build.directory.projectCommon>
    <build.directory.projectCore>../../core/target</build.directory.projectCore>
    <build.directory.projectProcessing>../../processing/target</build.directory.projectProcessing>
    <build.directory.projectHadoop>../../hadoop/target</build.directory.projectHadoop>
    <build.directory.projectFormat>../../format/target</build.directory.projectFormat>
    <build.directory.projectSpark>../../integration/spark/target</build.directory.projectSpark>
    <build.directory.projectStoreSdk>../../sdk/sdk/target</build.directory.projectStoreSdk>
    <build.directory.projectStreaming>../../streaming/target</build.directory.projectStreaming>
    <build.directory.projectBloom>../../index/bloom/target</build.directory.projectBloom>
    <build.directory.projectLucene>../../index/lucene/target</build.directory.projectLucene>

    <classes.directory.projectCommon>../../common/target/classes</classes.directory.projectCommon>
    <classes.directory.projectCore>../../core/target/classes</classes.directory.projectCore>
    <classes.directory.projectProcessing>../../processing/target/classes</classes.directory.projectProcessing>
    <classes.directory.projectHadoop>../../hadoop/target/classes</classes.directory.projectHadoop>
    <classes.directory.projectFormat>../../format/target/classes</classes.directory.projectFormat>
    <classes.directory.projectSpark>../../integration/spark/target/classes</classes.directory.projectSpark>
    <classes.directory.projectStoreSdk>../../sdk/sdk/target/classes</classes.directory.projectStoreSdk>
    <classes.directory.projectStreaming>../../streaming/target/classes</classes.directory.projectStreaming>
    <classes.directory.projectBloom>../../index/bloom/target/classes</classes.directory.projectBloom>
    <classes.directory.projectLucene>../../index/lucene/target/classes</classes.directory.projectLucene>

    <sources.directory.projectCommon>../../common/src/main/java</sources.directory.projectCommon>
    <sources.directory.projectCore>../../core/src/main/java</sources.directory.projectCore>
    <sources.directory.projectProcessing>../../processing/src/main/java</sources.directory.projectProcessing>
    <sources.directory.projectHadoop>../../hadoop/src/main/java</sources.directory.projectHadoop>
    <sources.directory.projectFormat>../../format/src/main/thrift</sources.directory.projectFormat>
    <sources.directory.projectSpark>../../integration/spark/src/main/scala</sources.directory.projectSpark>
    <sources.directory.projectSpark>../../integration/spark/src/main/java</sources.directory.projectSpark>
    <sources.directory.projectStoreSdk>../../sdk/sdk/src/main/java</sources.directory.projectStoreSdk>
    <sources.directory.projectStreaming>../../streaming/src/main/java</sources.directory.projectStreaming>
    <sources.directory.projectStreaming>../../streaming/src/main/scala</sources.directory.projectStreaming>
    <sources.directory.projectBloom>../../index/bloom/src/main/java</sources.directory.projectBloom>
    <sources.directory.projectLucene>../../index/lucene/src/main/java</sources.directory.projectLucene>

    <generated-sources.directory.projectCommon>../../common/target/generated-sources/annotations</generated-sources.directory.projectCommon>
    <generated-sources.directory.projectCore>../../core/target/generated-sources/annotations</generated-sources.directory.projectCore>
    <generated-sources.directory.projectProcessing>../../processing/target/generated-sources/annotations</generated-sources.directory.projectProcessing>
    <generated-sources.directory.projectHadoop>../../hadoop/target/generated-sources/annotations</generated-sources.directory.projectHadoop>
    <generated-sources.directory.projectFormat>../../format/target/generated-sources/annotations</generated-sources.directory.projectFormat>
    <generated-sources.directory.projectSpark>../../integration/spark/target/generated-sources/annotations</generated-sources.directory.projectSpark>
    <generated-sources.directory.projectStoreSdk>../../sdk/sdk/target/generated-sources/annotations</generated-sources.directory.projectStoreSdk>
    <generated-sources.directory.projectStreaming>../../streaming/target/generated-sources/annotations</generated-sources.directory.projectStreaming>
    <generated-sources.directory.projectBloom>../../index/bloom/target/generated-sources/annotations</generated-sources.directory.projectBloom>
    <generated-sources.directory.projectLucene>../../index/lucene/target/generated-sources/annotations</generated-sources.directory.projectLucene>

  </properties>

  <dependencies>
    <!-- carbon -->
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-hive</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.commons</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.hive</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.spark-project.hive</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-cli</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-lucene</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-bloom</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-geo</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-streaming</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.carbondata</groupId>
      <artifactId>carbondata-mv-plan_${spark.binary.version}</artifactId>
      <version>${project.version}</version>
    </dependency>
    <!-- spark -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive-thriftserver_${scala.binary.version}</artifactId>
      <exclusions>
        <exclusion>
          <groupId>com.twitter</groupId>
          <artifactId>chill-java</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-repl_${scala.binary.version}</artifactId>
      <exclusions>
        <exclusion>
          <groupId>com.twitter</groupId>
          <artifactId>chill-java</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>spark-avro_${scala.binary.version}</artifactId>
      <version>4.0.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-avro_${scala.binary.version}</artifactId>
      <version>2.4.5</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql-kafka-0-10_${scala.binary.version}</artifactId>
      <exclusions>
        <exclusion>
          <groupId>net.jpountz.lz4</groupId>
          <artifactId>lz4</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.twitter</groupId>
          <artifactId>chill-java</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>${httpclient.version}</version>
    </dependency>
    <dependency>
      <groupId>net.java.dev.jets3t</groupId>
      <artifactId>jets3t</artifactId>
      <version>0.9.0</version>
    </dependency>
    <!-- scala -->
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-compiler</artifactId>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-reflect</artifactId>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
    </dependency>
    <!-- test -->
    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_${scala.binary.version}</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jmockit</groupId>
      <artifactId>jmockit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/resources</directory>
      </resource>
      <resource>
        <directory>.</directory>
        <includes>
          <include>CARBON_SPARK_INTERFACELogResource.properties</include>
        </includes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.2</version>
        <executions>
          <execution>
            <id>compile</id>
            <goals>
              <goal>compile</goal>
            </goals>
            <phase>compile</phase>
          </execution>
          <execution>
            <id>testCompile</id>
            <goals>
              <goal>testCompile</goal>
            </goals>
            <phase>test</phase>
          </execution>
          <execution>
            <phase>process-resources</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>compile</id>
            <phase>compile</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.carbondata</groupId>
                  <artifactId>carbondata-format</artifactId>
                  <version>${project.version}</version>
                </artifactItem>
                <artifactItem>
                  <groupId>com.google.code.gson</groupId>
                  <artifactId>gson</artifactId>
                  <version>2.4</version>
                </artifactItem>
                <artifactItem>
                  <groupId>org.xerial.snappy</groupId>
                  <artifactId>snappy-java</artifactId>
                  <version>${snappy.version}</version>
                </artifactItem>
              </artifactItems>
              <outputDirectory>${project.build.directory}/jars</outputDirectory>
              <!-- other configurations here -->
            </configuration>
          </execution>
          <execution>
            <id>jacoco-dependency-ant</id>
            <goals>
              <goal>copy</goal>
            </goals>
            <phase>process-test-resources</phase>
            <inherited>false</inherited>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.jacoco</groupId>
                  <artifactId>org.jacoco.ant</artifactId>
                  <version>0.7.9</version>
                </artifactItem>
              </artifactItems>
              <stripVersion>true</stripVersion>
              <outputDirectory>${basedir}/target/jacoco-jars</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18</version>
        <!-- Note config is repeated in scalatest config -->
        <configuration>
          <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
          <argLine>-Xmx3g -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=512m</argLine>
          <systemProperties>
            <java.awt.headless>true</java.awt.headless>
            <spark.carbon.hive.schema.store>${carbon.hive.based.metastore}</spark.carbon.hive.schema.store>
          </systemProperties>
          <failIfNoTests>false</failIfNoTests>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.scalatest</groupId>
        <artifactId>scalatest-maven-plugin</artifactId>
        <version>1.0</version>
        <!-- Note config is repeated in surefire config -->
        <configuration>
          <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
          <junitxml>.</junitxml>
          <filereports>CarbonTestSuite.txt</filereports>
          <argLine> ${argLine} -ea -Xmx3g -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=512m
          </argLine>
          <stderr />
          <environmentVariables>
          </environmentVariables>
          <systemProperties>
            <java.awt.headless>true</java.awt.headless>
            <spark.carbon.hive.schema.store>${carbon.hive.based.metastore}</spark.carbon.hive.schema.store>
          </systemProperties>
        </configuration>
        <executions>
          <execution>
            <id>test</id>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.6</version>
        <executions>
          <execution>
            <phase>post-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo message="Generating JaCoCo Reports" />
                <taskdef name="report" classname="org.jacoco.ant.ReportTask">
                  <classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" />
                </taskdef>
                <mkdir dir="${basedir}/target/coverage-report" />
                <report>
                  <executiondata>
                    <fileset dir="${build.directory.projectCommon}">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectCore}">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectProcessing}">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectHadoop}">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectFormat}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectSpark}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>
                    <!--<fileset dir="${build.directory.projectHive}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>-->
                    <!--<fileset dir="${build.directory.projectPresto}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>-->
                    <fileset dir="${build.directory.projectStoreSdk}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectStreaming}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectBloom}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>
                    <fileset dir="${build.directory.projectLucene}" erroronmissingdir="false">
                      <include name="jacoco.exec" />
                    </fileset>

                  </executiondata>
                  <structure name="jacoco-CarbonData Coverage Project">
                    <group name="carbondata-coverage">
                      <classfiles>
                        <fileset dir="${classes.directory.projectCommon}" />
                        <fileset dir="${classes.directory.projectCore}" />
                        <fileset dir="${classes.directory.projectProcessing}" />
                        <fileset dir="${classes.directory.projectHadoop}" />
                        <!--<fileset dir="${classes.directory.projectFormat}" erroronmissingdir="false" />-->
                        <fileset dir="${classes.directory.projectSpark}" erroronmissingdir="false" />
                        <!--<fileset dir="${classes.directory.projectHive}" erroronmissingdir="false" />-->
                        <!--<fileset dir="${classes.directory.projectPresto}" erroronmissingdir="false" />-->
                        <fileset dir="${classes.directory.projectStoreSdk}" erroronmissingdir="false" />
                        <fileset dir="${classes.directory.projectStreaming}" erroronmissingdir="false" />
                        <fileset dir="${classes.directory.projectBloom}" erroronmissingdir="false" />
                        <fileset dir="${classes.directory.projectLucene}" erroronmissingdir="false" />
                      </classfiles>
                      <sourcefiles encoding="UTF-8">
                        <fileset dir="${sources.directory.projectCommon}" />
                        <fileset dir="${sources.directory.projectCore}" />
                        <fileset dir="${sources.directory.projectProcessing}" />
                        <fileset dir="${sources.directory.projectHadoop}" />
                        <!--<fileset dir="${sources.directory.projectFormat}" erroronmissingdir="false" />-->
                        <fileset dir="${sources.directory.projectSpark}" erroronmissingdir="false" />
                        <!--<fileset dir="${sources.directory.projectHive}" erroronmissingdir="false" />-->
                        <!--<fileset dir="${sources.directory.projectPresto}" erroronmissingdir="false" />-->
                        <fileset dir="${sources.directory.projectStoreSdk}" erroronmissingdir="false" />
                        <fileset dir="${sources.directory.projectStreaming}" erroronmissingdir="false" />
                        <fileset dir="${sources.directory.projectBloom}" erroronmissingdir="false" />
                        <fileset dir="${sources.directory.projectLucene}" erroronmissingdir="false" />

                      </sourcefiles>
                    </group>
                  </structure>
                  <html destdir="../../target/carbondata-coverage-report/html" />
                  <xml destfile="../../target/carbondata-coverage-report/carbondata-coverage-report.xml" />
                  <csv destfile="../../target/carbondata-coverage-report/carbondata-coverage-report.csv" />
                </report>
              </target>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.ant</artifactId>
            <version>0.7.9</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.2</version>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>sdvtest</id>
      <properties>
        <maven.test.skip>true</maven.test.skip>
      </properties>
    </profile>
    <profile>
      <id>spark-2.3</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <spark.binary.version>2.3</spark.binary.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>src/main/spark2.4</exclude>
              </excludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
              <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>src/main/spark2.3</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>spark-2.4</id>
      <properties>
        <spark.binary.version>2.4</spark.binary.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>src/main/spark2.3</exclude>
              </excludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
              <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>src/main/spark2.4</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
