<!--
 ! 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>
    <artifactId>apache-asterixdb</artifactId>
    <groupId>org.apache.asterix</groupId>
    <version>0.9.9-SNAPSHOT</version>
  </parent>
  <artifactId>asterix-app</artifactId>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>
  <properties>
    <root.dir>${basedir}/..</root.dir>
    <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory>
    <sonar.sources>pom.xml,src/main/java,src/main/resources</sonar.sources>
    <pip.path>${project.build.directory}/bin/pip3</pip.path>
    <shiv.path>${project.build.directory}/bin/shiv</shiv.path>
    <asterix-test-datagenerator-maven-plugin.version>${project.version}</asterix-test-datagenerator-maven-plugin.version>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>revision</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <!--
              If you'd like to tell the plugin where your .git directory is,
              use this setting, otherwise we'll perform a search trying to
              figure out the right directory. It's better to add it explicite IMHO.
          -->
          <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
          <!-- this is false by default, forces the plugin to generate the git.properties file -->
          <generateGitPropertiesFile>true</generateGitPropertiesFile>

          <!-- The path for the to be generated properties file, it's relative to ${project.basedir} -->
          <generateGitPropertiesFilename>./target/classes/git.properties</generateGitPropertiesFilename>

          <!-- there is no .git directory when building from a source assembly- a static git.properties file (generated
               at source assembly time) is used in this case -->
          <failOnNoGitDirectory>false</failOnNoGitDirectory>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-external-data-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target/data/csv</outputDirectory>
              <overwrite>true</overwrite>
              <resources>
                <resource>
                  <directory>../asterix-external-data/src/test/resources</directory>
                  <includes>
                    <include>change_feed.csv</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.asterix</groupId>
        <artifactId>asterix-test-datagenerator-maven-plugin</artifactId>
        <version>${asterix-test-datagenerator-maven-plugin.version}</version>
        <executions>
          <execution>
            <id>replace-template-data</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>generate-testdata</goal>
            </goals>
            <configuration>
              <inputFiles>
                <directory>data</directory>
                <includes>
                  <include>**/*.template</include>
                </includes>
              </inputFiles>
              <outputDir>target/data</outputDir>
              <skip>${skip.testResources}</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-external-testlib</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeClassifiers>testlib</includeClassifiers>
              <outputDirectory>target/data/externallib</outputDirectory>
              <overwrite>true</overwrite>
              <stripVersion>true</stripVersion>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <ignoredUsedUndeclaredDependencies combine.children="append">
            <ignoredUsedUndeclaredDependency>commons-logging:commons-logging-api:*</ignoredUsedUndeclaredDependency>
          </ignoredUsedUndeclaredDependencies>
          <usedDependencies combine.children="append">
            <usedDependency>org.apache.hadoop:hadoop-common</usedDependency>
            <usedDependency>org.apache.asterix:asterix-geo</usedDependency>
          </usedDependencies>
          <ignoredUnusedDeclaredDependencies>
            <ignoredUnusedDeclaredDependency>org.apache.asterix:asterix-external-data:zip:*</ignoredUnusedDeclaredDependency>
            <ignoredUnusedDeclaredDependency>org.apache.asterix:asterix-external-data:test-jar:*</ignoredUnusedDeclaredDependency>
            <ignoredUnusedDeclaredDependency>org.postgresql:postgresql:jar:*</ignoredUnusedDeclaredDependency>
          </ignoredUnusedDeclaredDependencies>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>venv</id>
            <phase>${prepare-env.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <!--suppress UnresolvedMavenProperty -->
              <executable>${python.path}</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>-m</argument>
                <argument>venv</argument>
                <argument>${project.build.directory}</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>shiv-install</id>
            <phase>${prepare-env.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${pip.path}</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>install</argument>
                <argument>--exists-action</argument>
                <argument>w</argument>
                <argument>--upgrade</argument>
                <argument>shiv</argument>
              </arguments>
              <environmentVariables>
                <VIRTUALENV>${project.build.directory}</VIRTUALENV>
                <PATH>${project.build.directory}${path.separator}${env.PATH}${file.separator}bin</PATH>
              </environmentVariables>
            </configuration>
          </execution>
          <execution>
            <id>shiv-msgpack-shim</id>
            <phase>${shim.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${shiv.path}</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>-o </argument>
                <argument>${project.build.directory}${file.separator}classes${file.separator}msgpack.pyz</argument>
                <argument>msgpack</argument>
              </arguments>
              <environmentVariables>
                <VIRTUALENV>${project.build.directory}</VIRTUALENV>
                <PATH>${project.build.directory}${path.separator}${env.PATH}${file.separator}bin</PATH>
              </environmentVariables>
            </configuration>
          </execution>
          <execution>
            <id>shiv-test-lib</id>
            <phase>${pytestlib.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>${shiv.path}</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>-o </argument>
                <argument>${project.build.directory}${file.separator}TweetSent.pyz</argument>
                <argument>--site-packages</argument>
                <argument>${project.build.directory}${file.separator}..${file.separator}src${file.separator}test${file.separator}resources${file.separator}TweetSent</argument>
                <argument>scikit-learn</argument>
              </arguments>
              <environmentVariables>
                <VIRTUALENV>${project.build.directory}</VIRTUALENV>
                <PATH>${project.build.directory}${path.separator}${env.PATH}${file.separator}bin</PATH>
              </environmentVariables>
            </configuration>
          </execution>
          <execution>
            <id>azurite</id>
            <phase>${azurite.stage}</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <!--suppress UnresolvedMavenProperty -->
              <executable>${project.build.directory}/npm/node_modules/.bin/azurite-blob</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <environmentVariables>
                <PATH>${project.build.directory}/npm/node</PATH>
              </environmentVariables>
              <arguments>
                <argument>--blobPort</argument>
                <argument>15055</argument>
                <argument>--location</argument>
                <argument>${project.build.directory}/azurite</argument>
                <argument>--debug</argument>
                <argument>${project.build.directory}/azurite/logs/azurite-debug.log</argument>
              </arguments>
              <async>true</async>
              <outputFile>${project.build.directory}/azurite/logs/azurite.log</outputFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <id>default</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <licenses combine.children="append">
                <license implementation="org.apache.rat.analysis.license.MITLicense" />
              </licenses>
              <excludes combine.children="append">
                <exclude>src/test/resources/**/results_parser_sqlpp/**</exclude>
                <exclude>src/test/resources/**/results/**</exclude>
                <exclude>src/test/resources/**/results_cbo/**</exclude>
                <exclude>src/test/resources/**/results_less_parallelism/**</exclude>
                <exclude>src/test/resources/**/results_full_parallelism/**</exclude>
                <exclude>src/test/resources/fuzzyjoin/pub/fuzzy-join-aql*.dot</exclude>
                <exclude>src/test/resources/fuzzyjoin/pub/fuzzy-join-aql*.json</exclude>
                <exclude>**/data/**</exclude>
                <exclude>src/test//resources/**/data/**</exclude>
                <exclude>src/main/resources/queryui/**</exclude>
                <exclude>src/main/resources/webui/**</exclude>
                <exclude>src/test/resources/**/only*.xml</exclude>
                <exclude>src/main/resources/sdk/**</exclude>
                <exclude>src/main/resources/dashboard/**</exclude>
                <exclude>src/test/resources/security/**</exclude>
              </excludes>
            </configuration>
          </execution>
          <execution>
            <id>webqueryui</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <reportFile>${project.build.directory}/webqueryui-rat.txt</reportFile>
              <licenses combine.children="append">
                <license implementation="org.apache.rat.analysis.license.MITLicense" />
                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                  <licenseFamilyCategory>MIT</licenseFamilyCategory>
                  <licenseFamilyName>JQuery</licenseFamilyName>
                  <patterns>(c) jQuery Foundation | jquery.org/license</patterns>
                </license>
                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                  <licenseFamilyCategory>MIT</licenseFamilyCategory>
                  <licenseFamilyName>Bootstrap</licenseFamilyName>
                  <patterns>Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)</patterns>
                </license>
                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                  <licenseFamilyCategory>MIT</licenseFamilyCategory>
                  <licenseFamilyName>AngularJS</licenseFamilyName>
                  <patterns>http://angularjs.org | (c) 2010-2016 Google, Inc. | License: MIT</patterns>
                </license>
              </licenses>
              <licenseFamilies combine.children="append">
                <licenseFamily implementation="org.apache.rat.license.MITLicenseFamily" />
                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                  <familyName>JQuery</familyName>
                </licenseFamily>
                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                  <familyName>Bootstrap</familyName>
                </licenseFamily>
                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                  <familyName>AngularJS</familyName>
                </licenseFamily>
              </licenseFamilies>
              <includes>
                <include>src/main/resources/queryui/**</include>
                <include>src/main/resources/webui/**</include>
              </includes>
              <excludes>src/main/resources/queryui/fonts/glyphicons-halflings-regular.svg</excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.eirslett</groupId>
        <artifactId>frontend-maven-plugin</artifactId>
        <version>1.13.4</version>
        <configuration>
          <nodeVersion>v14.15.4</nodeVersion>
          <npmVersion>6.14.11</npmVersion>
          <workingDirectory>target/npm</workingDirectory>
          <installDirectory>target/npm</installDirectory>
        </configuration>
        <executions>
          <execution>
            <id>install node and yarn</id>
            <goals>
              <goal>install-node-and-npm</goal>
            </goals>
            <phase>${azurite.npm.install.stage}</phase>
          </execution>
          <execution>
            <id>azurite blob</id>
            <phase>${azurite.install.stage}</phase>
            <goals>
              <goal>npm</goal>
            </goals>
            <configuration>
              <arguments>install azurite</arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.asterix</groupId>
                    <artifactId>asterix-test-datagenerator-maven-plugin</artifactId>
                    <versionRange>[0.0,)</versionRange>
                    <goals>
                      <goal>generate-testdata</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>skip.asterix-app.tests</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>windows.python.envs</id>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>
      <properties>
        <pip.path>${project.build.directory}\Scripts\pip3.exe</pip.path>
        <shiv.path>${project.build.directory}\Scripts\shiv.exe</shiv.path>
      </properties>
    </profile>
    <profile>
      <id>asterix-gerrit-asterix-app</id>
      <properties>
        <test.excludes>**/SqlppExecutionWithCancellationTest.java,**/DmlTest.java,**/RepeatedTest.java,**/SqlppExecutionTest.java,**/*StaticPartitioning*Test.java,**/*Ssl*Test.java,**/Podman*.java,**/*AnalyzedExecutionTest.java,**/SqlppProfiledExecutionTest.java</test.excludes>
        <itest.excludes>**/*.java</itest.excludes>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>SqlppExecutionTest</id>
                <configuration>
                  <excludes combine.self="override"/>
                  <argLine>
                    -enableassertions -Xmx${test.heap.size}m
                    -Dfile.encoding=UTF-8
                    -Xdebug
                    -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=${debug.suspend.flag}
                    -Xloggc:"${project.build.directory}/surefire-reports/SqlppExecutionTest-%p-gc.log" -XX:+PrintGC -XX:+PrintGCDateStamps -XX:GCLogFileSize=10M
                  </argLine>
                </configuration>
                <goals>
                  <goal>test</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>asterix-gerrit-asterix-app-sql-execution</id>
      <properties>
        <test.excludes>**/*.java</test.excludes>
        <itest.includes>**/SqlppExecution*IT.java,**/ExternalPythonFunctionIT.java</itest.includes>
        <failIfNoTests>false</failIfNoTests>
      </properties>
    </profile>
    <profile>
      <id>asterix-gerrit-asterix-app-sql-rqg</id>
      <properties>
        <test.excludes>**/*.java</test.excludes>
        <itest.includes>**/SqlppRQG*IT.java</itest.includes>
        <failIfNoTests>false</failIfNoTests>
      </properties>
    </profile>
    <profile>
      <id>asterix-gerrit-ssl-compression</id>
      <properties>
        <test.includes>**/*StaticPartitioning*Test.java,**/*Ssl*Test.java,**/*AnalyzedExecutionTest.java</test.includes>
        <itest.excludes>**/*.java</itest.excludes>
        <failIfNoTests>false</failIfNoTests>
      </properties>
    </profile>
    <profile>
      <id>asterix-gerrit-verify-asterix-app</id>
      <properties>
        <test.includes>**/SqlppProfiledExecutionTest.java</test.includes>
        <itest.excludes>**/External*IT.java,**/SqlppExecution*IT.java,**/SqlppRQG*IT.java,**/RebalanceWithCancellationIT.java</itest.excludes>
        <failIfNoTests>false</failIfNoTests>
      </properties>
    </profile>
    <profile>
      <id>asterix-gerrit-rebalance-cancellation</id>
      <properties>
        <test.excludes>**/*.java</test.excludes>
        <itest.includes>**/RebalanceWithCancellationIT.java</itest.includes>
        <failIfNoTests>false</failIfNoTests>
      </properties>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-control-cc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-control-nc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>algebricks-compiler</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-http</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-algebra</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-om</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-metadata</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-common</artifactId>
      <version>${project.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-transactions</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-test-framework</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-replication</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-external-data</artifactId>
      <version>${project.version}</version>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-external-data</artifactId>
      <version>${project.version}</version>
      <type>zip</type>
      <classifier>testlib</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-external-data</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-test-support</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-api</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-dataflow-common</artifactId>
    </dependency>
    <dependency>
      <groupId>com.e-movimento.tinytools</groupId>
      <artifactId>privilegedaccessor</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-lsm-btree</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>algebricks-data</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>algebricks-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-net</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-ipc</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>algebricks-runtime</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-lang-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-lsm-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-runtime</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>algebricks-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-lang-sqlpp</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-util</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-util</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>args4j</groupId>
      <artifactId>args4j</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-mapreduce-client-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-data-std</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-dataflow-std</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-btree</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-control-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-active</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-lsm-btree-test</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-comm</artifactId>
      <version>${hyracks.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jul</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-geo</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-fuzzyjoin</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-rtree</artifactId>
      <version>${hyracks.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-lsm-rtree</artifactId>
      <version>${hyracks.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hyracks</groupId>
      <artifactId>hyracks-storage-am-lsm-invertedindex</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.asterix</groupId>
      <artifactId>asterix-cloud</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>postgresql</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.teradata.tpcds</groupId>
      <artifactId>tpcds</artifactId>
      <version>1.2</version>
      <exclusions>
        <exclusion>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.google.code.findbugs</groupId>
          <artifactId>annotations</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.airlift</groupId>
          <artifactId>airline</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-codec-http</artifactId>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-buffer</artifactId>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mindrot</groupId>
      <artifactId>jbcrypt</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- AWS -->
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>sdk-core</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>s3</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>regions</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>auth</artifactId>
    </dependency>
    <!-- Mock for AWS S3 -->
    <dependency>
      <groupId>io.findify</groupId>
      <artifactId>s3mock_2.12</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Needed for the s3 mock -->
    <dependency>
      <groupId>com.typesafe.akka</groupId>
      <artifactId>akka-http-core_2.12</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Azure -->
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-blob</artifactId>
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
    </dependency>
    <!-- Google Cloud Storage SDK -->
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-storage</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.iceberg</groupId>
      <artifactId>iceberg-core</artifactId>
      <version>1.1.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.iceberg</groupId>
      <artifactId>iceberg-data</artifactId>
      <version>1.1.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.parquet</groupId>
          <artifactId>parquet-avro</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.iceberg</groupId>
          <artifactId>iceberg-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.iceberg</groupId>
      <artifactId>iceberg-parquet</artifactId>
      <version>1.1.0</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.parquet</groupId>
          <artifactId>parquet-avro</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.iceberg</groupId>
          <artifactId>iceberg-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.parquet</groupId>
      <artifactId>parquet-avro</artifactId>
      <version>1.12.3</version>
      <exclusions>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>tech.allegro.schema.json2avro</groupId>
      <artifactId>converter</artifactId>
      <version>0.2.15</version>
    </dependency>
  </dependencies>
</project>
