<?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</groupId>
    <artifactId>apache</artifactId>
    <version>17</version>
  </parent>

  <groupId>org.apache.carbondata</groupId>
  <artifactId>carbondata-parent</artifactId>
  <name>Apache CarbonData :: Parent</name>
  <description>Apache CarbonData is an indexed columnar data format for fast analytics
    on big data platform, e.g.Apache Hadoop, Apache Spark, etc.
  </description>
  <url>http://carbondata.apache.org</url>
  <inceptionYear>2016</inceptionYear>
  <packaging>pom</packaging>

  <version>2.0.0</version>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/carbondata.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/carbondata.git</developerConnection>
    <url>https://git-wip-us.apache.org/repos/asf/carbondata.git</url>
    <tag>apache-carbondata-2.0.0-rc2</tag>
  </scm>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/CARBONDATA</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>CarbonData Dev</name>
      <subscribe>dev-subscribe@carbondata.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@carbondata.apache.org</unsubscribe>
      <post>dev@carbondata.apache.org</post>
    </mailingList>
    <mailingList>
      <name>CarbonData Issues</name>
      <subscribe>issues-subscribe@carbondata.apache.org</subscribe>
      <unsubscribe>issues-unsubscribe@carbondata.apache.org</unsubscribe>
      <post>issues@carbondata.apache.org</post>
    </mailingList>
    <mailingList>
      <name>CarbonData User</name>
      <subscribe>user-subscribe@carbondata.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@carbondata.apache.org</unsubscribe>
      <post>user@carbondata.apache.org</post>
    </mailingList>
    <mailingList>
      <name>CarbonData Commits</name>
      <subscribe>commits-subscribe@carbondata.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@carbondata.apache.org</unsubscribe>
      <post>commits@carbondata.apache.org</post>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <name>The Apache CarbonData Team</name>
      <email>dev@carbondata.apache.org</email>
      <url>http://carbondata.apache.org</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org</organizationUrl>
    </developer>
  </developers>

  <modules>
    <module>common</module>
    <module>core</module>
    <module>processing</module>
    <module>hadoop</module>
    <module>mv/plan</module>
    <module>index/secondary-index</module>
    <module>index/bloom</module>
    <module>index/lucene</module>
    <module>index/examples</module>
    <module>streaming</module>
    <module>geo</module>
    <module>integration/spark</module>
    <module>integration/hive</module>
    <module>integration/flink</module>
    <module>integration/flink-build</module>
    <module>integration/flink-proxy</module>
    <module>integration/presto</module>
    <module>sdk/sdk</module>
    <module>tools/cli</module>
    <module>examples/spark</module>
    <module>examples/flink</module>
    <module>assembly</module>
  </modules>

  <properties>
    <!--    default properties-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <snappy.version>1.1.2.6</snappy.version>
    <hadoop.version>2.7.2</hadoop.version>
    <httpclient.version>4.3.4</httpclient.version>
    <httpcore.version>4.3-alpha1</httpcore.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scala.version>2.11.8</scala.version>
    <hadoop.deps.scope>compile</hadoop.deps.scope>
    <spark.version>2.3.4</spark.version>
    <spark.deps.scope>compile</spark.deps.scope>
    <scala.deps.scope>compile</scala.deps.scope>
    <dev.path>${basedir}/dev</dev.path>
    <spark.master.url>local[2]</spark.master.url>
    <hdfs.url>local</hdfs.url>
    <presto.jdbc.url>localhost:8086</presto.jdbc.url>
    <!--    prestosql by default-->
    <presto.version>316</presto.version>
    <presto.groupid>io.prestosql</presto.groupid>
    <presto.hadoop.groupid>io.prestosql.hadoop</presto.hadoop.groupid>
    <presto.hadoop.artifactid>hadoop-apache</presto.hadoop.artifactid>
    <presto.hadoop.version>3.2.0-2</presto.hadoop.version>
    <airlift.version>0.36</airlift.version>
    <presto.mvn.plugin.groupid>io.prestosql</presto.mvn.plugin.groupid>
    <presto.mvn.plugin.version>6</presto.mvn.plugin.version>
    <presto.depndency.scope>compile</presto.depndency.scope>
    <!--todo:this can be enabled when presto tests need to be run-->
    <!--<spark.hadoop.hive.metastore.uris>thrift://localhost:8086</spark.hadoop.hive.metastore.uris>-->
    <suite.name>org.apache.carbondata.cluster.sdv.suite.SDVSuites</suite.name>
    <script.exetension>.sh</script.exetension>
    <carbon.hive.based.metastore>false</carbon.hive.based.metastore>
  </properties>

  <repositories>
    <repository>
      <id>central</id>
      <!-- This should be at top, it makes maven try the central repo first and then others and hence faster dep resolution -->
      <name>Maven Repository</name>
      <url>https://repo1.maven.org/maven2</url>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
  </repositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
        <scope>${hadoop.deps.scope}</scope>
        <exclusions>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
        <scope>${hadoop.deps.scope}</scope>
        <exclusions>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
        <scope>${hadoop.deps.scope}</scope>
        <exclusions>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-aws</artifactId>
        <version>${hadoop.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-catalyst_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-hive-thriftserver_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-repl_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-network-common_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql-kafka-0-10_${scala.binary.version}</artifactId>
        <version>${spark.version}</version>
        <scope>${spark.deps.scope}</scope>
        <exclusions>
          <exclusion>
            <groupId>net.jpountz.lz4</groupId>
            <artifactId>lz4</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.univocity</groupId>
            <artifactId>univocity-parsers</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-compiler</artifactId>
        <version>${scala.version}</version>
        <scope>${scala.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-reflect</artifactId>
        <version>${scala.version}</version>
        <scope>${scala.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>${scala.version}</version>
        <scope>${scala.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-actors</artifactId>
        <version>${scala.version}</version>
        <scope>${scala.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scalap</artifactId>
        <version>${scala.version}</version>
        <scope>${scala.deps.scope}</scope>
      </dependency>
      <dependency>
        <groupId>org.jmockit</groupId>
        <artifactId>jmockit</artifactId>
        <version>1.10</version>
        <exclusions>
          <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.scalatest</groupId>
        <artifactId>scalatest_${scala.binary.version}</artifactId>
        <version>2.2.1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <additionalparam>-Xdoclint:missing</additionalparam>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.4.3</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <configLocation>${dev.path}/javastyle-config.xml</configLocation>
          <suppressionsLocation>${dev.path}/javastyle-suppressions.xml</suppressionsLocation>
          <headerLocation>${dev.path}/java.header</headerLocation>
          <consoleOutput>true</consoleOutput>
          <failsOnError>true</failsOnError>
          <linkXRef>false</linkXRef>
          <failOnViolation>true</failOnViolation>
          <includeTestSourceDirectory>false</includeTestSourceDirectory>
          <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
          <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
          <outputFile>${basedir}/target/checkstyle-output.xml</outputFile>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.scalastyle</groupId>
        <artifactId>scalastyle-maven-plugin</artifactId>
        <version>0.8.0</version>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <verbose>false</verbose>
          <failOnViolation>true</failOnViolation>
          <includeTestSourceDirectory>false</includeTestSourceDirectory>
          <failOnWarning>false</failOnWarning>
          <sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
          <testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
          <configLocation>${dev.path}/scalastyle-config.xml</configLocation>
          <outputFile>${basedir}/target/scalastyle-output.xml</outputFile>
          <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.4</version>
        <configuration>
          <excludeFilterFile>${dev.path}/findbugs-exclude.xml</excludeFilterFile>
          <failOnError>true</failOnError>
          <findbugsXmlOutput>true</findbugsXmlOutput>
          <xmlOutput>true</xmlOutput>
          <effort>Max</effort>
        </configuration>
        <executions>
          <execution>
            <id>analyze-compile</id>
            <phase>compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.9</version>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-prepare-agent-integration</id>
            <goals>
              <goal>prepare-agent-integration</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report-integration</id>
            <goals>
              <goal>report-integration</goal>
            </goals>
          </execution>
          <execution>
            <id>default-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>**/*SparkUnknownExpression*.class</exclude>
                <exclude>**/org/apache/carbondata/cluster/sdv/generated/*</exclude>
                <exclude>**/org.apache.carbondata.cluster.sdv.generated.*</exclude>
                <exclude>**/org.apache.spark.sql.test.*</exclude>
                <exclude>**/org.apache.carbondata.format.*</exclude>
                <exclude>**/org.apache.carbondata.core.unsafe*</exclude>
              </excludes>
              <includes>
                <include>**/org.apache.*</include>
              </includes>
              <rules>
                <!-- implementation is needed only for Maven 2 -->
                <rule implementation="org.jacoco.maven.RuleConfiguration">
                  <element>BUNDLE</element>
                  <limits>
                    <!-- implementation is needed only for Maven 2 -->
                    <limit implementation="org.jacoco.report.check.Limit">
                      <counter>COMPLEXITY</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.10</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <!--This profile does not build spark module, so user should explicitly give spark profile -->
      <id>build-with-format</id>
      <modules>
        <module>format</module>
      </modules>
    </profile>
    <profile>
      <id>hadoop-2.8</id>
      <properties>
        <hadoop.version>2.8.3</hadoop.version>
        <httpclient.version>4.5.2</httpclient.version>
      </properties>
    </profile>
    <profile>
      <id>spark-2.3</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <spark.binary.version>2.3</spark.binary.version>
        <spark.version>2.3.4</spark.version>
        <scala.binary.version>2.11</scala.binary.version>
        <scala.version>2.11.8</scala.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <!--<version>1.2.2</version>-->
            <configuration>
            </configuration>
            <executions>
              <!-- enable flattening -->
              <execution>
                <id>flatten</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>flatten</goal>
                </goals>
              </execution>
              <!-- ensure proper cleanup -->
              <execution>
                <id>flatten.clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>4.3.0</version>
            <configuration>
              <repoToken>opPwqWW41vYppv6KISea3u1TJvE1ugJ5Y</repoToken>
              <sourceEncoding>UTF-8</sourceEncoding>
              <jacocoReports>
                <jacocoReport>${basedir}/target/carbondata-coverage-report/carbondata-coverage-report.xml
                </jacocoReport>
              </jacocoReports>
              <sourceDirectories>
                <sourceDirectory>${basedir}/common/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/core/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/geo/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/geo/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/processing/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/hadoop/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/spark2.3</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/integration/hive/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/hive/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/streaming/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/streaming/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/sdk/sdk/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/bloom/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/lucene/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/secondary-index/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/index/secondary-index/src/main/java</sourceDirectory>
              </sourceDirectories>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>spark-2.4</id>
      <properties>
        <spark.binary.version>2.4</spark.binary.version>
        <spark.version>2.4.5</spark.version>
        <scala.binary.version>2.11</scala.binary.version>
        <scala.version>2.11.12</scala.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <!--<version>1.2.2</version>-->
            <configuration>
            </configuration>
            <executions>
              <!-- enable flattening -->
              <execution>
                <id>flatten</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>flatten</goal>
                </goals>
              </execution>
              <!-- ensure proper cleanup -->
              <execution>
                <id>flatten.clean</id>
                <phase>clean</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>4.3.0</version>
            <configuration>
              <repoToken>opPwqWW41vYppv6KISea3u1TJvE1ugJ5Y</repoToken>
              <sourceEncoding>UTF-8</sourceEncoding>
              <jacocoReports>
                <jacocoReport>${basedir}/target/carbondata-coverage-report/carbondata-coverage-report.xml
                </jacocoReport>
              </jacocoReports>
              <sourceDirectories>
                <sourceDirectory>${basedir}/common/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/core/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/geo/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/geo/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/processing/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/hadoop/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/spark2.4</sourceDirectory>
                <sourceDirectory>${basedir}/integration/spark/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/integration/hive/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/hive/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/streaming/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/streaming/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/sdk/sdk/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/bloom/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/lucene/src/main/java</sourceDirectory>
                <sourceDirectory>${basedir}/index/secondary-index/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/index/secondary-index/src/main/java</sourceDirectory>
              </sourceDirectories>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>include-all</id>
    </profile>
    <profile>
      <id>sdvtest</id>
      <modules>
        <module>integration/spark-common-cluster-test</module>
      </modules>
    </profile>
    <profile>
      <id>rat</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <version>0.12</version>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
              <excludeSubProjects>false</excludeSubProjects>
              <consoleOutput>true</consoleOutput>
              <useDefaultExcludes>true</useDefaultExcludes>
              <excludes>
                <exclude>**/target/**/*</exclude>
                <exclude>.github/**/*</exclude>
                <exclude>**/*.iml</exclude>
                <exclude>**/src/test/**/*</exclude>
                <exclude>examples/**/*.csv</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>windows</id>
      <properties>
        <script.exetension>.bat</script.exetension>
      </properties>
    </profile>
    <!--    prestodb-->
    <profile>
      <id>prestodb</id>
      <properties>
        <presto.version>0.217</presto.version>
        <scala.version>2.11.8</scala.version>
        <airlift.version>0.31</airlift.version>
        <presto.groupid>com.facebook.presto</presto.groupid>
        <presto.hadoop.groupid>com.facebook.presto.hadoop</presto.hadoop.groupid>
        <presto.hadoop.artifactid>hadoop-apache2</presto.hadoop.artifactid>
        <presto.hadoop.version>2.7.4-3</presto.hadoop.version>
        <presto.mvn.plugin.groupid>io.takari.maven.plugins</presto.mvn.plugin.groupid>
        <presto.mvn.plugin.version>0.1.12</presto.mvn.plugin.version>
        <presto.depndency.scope>provided</presto.depndency.scope>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>4.3.0</version>
            <configuration>
              <repoToken>opPwqWW41vYppv6KISea3u1TJvE1ugJ5Y</repoToken>
              <sourceEncoding>UTF-8</sourceEncoding>
              <jacocoReports>
                <jacocoReport>${basedir}/target/carbondata-coverage-report/carbondata-coverage-report.xml
                </jacocoReport>
              </jacocoReports>
              <sourceDirectories>
                <sourceDirectory>${basedir}/integration/presto/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/presto/src/main/java</sourceDirectory>
              </sourceDirectories>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!--    prestosql-->
    <profile>
      <id>prestosql</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <presto.version>316</presto.version>
        <scala.version>2.11.8</scala.version>
        <airlift.version>0.36</airlift.version>
        <presto.groupid>io.prestosql</presto.groupid>
        <presto.hadoop.groupid>io.prestosql.hadoop</presto.hadoop.groupid>
        <presto.hadoop.artifactid>hadoop-apache</presto.hadoop.artifactid>
        <presto.hadoop.version>3.2.0-2</presto.hadoop.version>
        <presto.mvn.plugin.groupid>io.prestosql</presto.mvn.plugin.groupid>
        <presto.mvn.plugin.version>6</presto.mvn.plugin.version>
        <presto.depndency.scope>compile</presto.depndency.scope>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>4.3.0</version>
            <configuration>
              <repoToken>opPwqWW41vYppv6KISea3u1TJvE1ugJ5Y</repoToken>
              <sourceEncoding>UTF-8</sourceEncoding>
              <jacocoReports>
                <jacocoReport>${basedir}/target/carbondata-coverage-report/carbondata-coverage-report.xml
                </jacocoReport>
              </jacocoReports>
              <sourceDirectories>
                <sourceDirectory>${basedir}/integration/presto/src/main/scala</sourceDirectory>
                <sourceDirectory>${basedir}/integration/presto/src/main/java</sourceDirectory>
              </sourceDirectories>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
