<?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.0.1</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>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>
