<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>druid-integration-tests</artifactId>
    <name>druid-integration-tests</name>
    <description>druid-integration-tests</description>

    <parent>
        <groupId>org.apache.druid</groupId>
        <artifactId>druid</artifactId>
        <version>0.20.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>amazon-kinesis-producer</artifactId>
            <version>0.13.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
        </dependency>
        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>io.airlift</groupId>
            <artifactId>airline</artifactId>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-kinesis</artifactId>
            <version>${aws.sdk.version}</version>
            <exclusions>
                <!-- aws-java-sdk-core is provided by Druid core. -->
                <exclusion>
                    <groupId>com.amazonaws</groupId>
                    <artifactId>aws-java-sdk-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-core</artifactId>
            <version>${aws.sdk.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-core</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-s3</artifactId>
            <version>${aws.sdk.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-orc-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-parquet-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-avro-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-s3-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-kinesis-indexing-service</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-azure-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-google-extensions</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-hdfs-storage</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-datasketches</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-histogram</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-aws-common</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-processing</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-sql</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-indexing-service</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>mysql-metadata-storage</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-kafka-indexing-service</artifactId>
            <version>${project.parent.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.kafka</groupId>
                    <artifactId>kafka-clients</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-basic-security</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>druid-lookups-cached-global</artifactId>
            <version>${project.parent.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.druid.extensions</groupId>
            <artifactId>simple-client-sslcontext</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-services</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.druid</groupId>
            <artifactId>druid-server</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>${apache.kafka.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-smile-provider</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.docker-java</groupId>
            <artifactId>docker-java</artifactId>
            <version>3.2.0</version>
            <exclusions>
                <exclusion>
                    <groupId>com.github.docker-java</groupId>
                    <artifactId>docker-java-transport-jersey</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-transport-native-kqueue</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.docker-java</groupId>
            <artifactId>docker-java-transport-netty</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.docker-java</groupId>
            <artifactId>docker-java-api</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-kqueue</artifactId>
            <version>${netty4.version}</version>
            <classifier>osx-x86_64</classifier>
            <scope>runtime</scope>
        </dependency>

        <!-- Tests -->
        <dependency>
            <groupId>org.apache.calcite.avatica</groupId>
            <artifactId>avatica</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.calcite.avatica</groupId>
            <artifactId>avatica-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/IT*.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>org.testng.TestNG</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>test-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>integration-tests</id>
            <properties>
                <start.hadoop.docker>false</start.hadoop.docker>
                <docker.run.skip>false</docker.run.skip>
                <docker.build.skip>false</docker.build.skip>
                <override.config.path></override.config.path>
                <resource.file.dir.path></resource.file.dir.path>
                <extra.datasource.name.suffix>\ Россия\ 한국\ 中国!?</extra.datasource.name.suffix>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>docker-package</id>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <phase>pre-integration-test</phase>
                                <configuration>
                                    <environmentVariables>
                                        <DRUID_INTEGRATION_TEST_START_HADOOP_DOCKER>${start.hadoop.docker}</DRUID_INTEGRATION_TEST_START_HADOOP_DOCKER>
                                        <DRUID_INTEGRATION_TEST_JVM_RUNTIME>${jvm.runtime}</DRUID_INTEGRATION_TEST_JVM_RUNTIME>
                                        <DRUID_INTEGRATION_TEST_GROUP>${groups}</DRUID_INTEGRATION_TEST_GROUP>
                                        <DRUID_INTEGRATION_TEST_OVERRIDE_CONFIG_PATH>${override.config.path}</DRUID_INTEGRATION_TEST_OVERRIDE_CONFIG_PATH>
                                        <DRUID_INTEGRATION_TEST_RESOURCE_FILE_DIR_PATH>${resource.file.dir.path}</DRUID_INTEGRATION_TEST_RESOURCE_FILE_DIR_PATH>
                                        <DRUID_INTEGRATION_TEST_SKIP_BUILD_DOCKER>${docker.build.skip}</DRUID_INTEGRATION_TEST_SKIP_BUILD_DOCKER>
                                        <DRUID_INTEGRATION_TEST_SKIP_RUN_DOCKER>${docker.run.skip}</DRUID_INTEGRATION_TEST_SKIP_RUN_DOCKER>
                                    </environmentVariables>
                                    <executable>${project.basedir}/build_run_cluster.sh</executable>
                                </configuration>
                            </execution>
                            <execution>
                                <id>stop-druid-cluster</id>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <phase>post-integration-test</phase>
                                <configuration>
                                    <environmentVariables>
                                        <DRUID_INTEGRATION_TEST_SKIP_RUN_DOCKER>${docker.run.skip}</DRUID_INTEGRATION_TEST_SKIP_RUN_DOCKER>
                                    </environmentVariables>
                                    <executable>${project.basedir}/stop_cluster.sh</executable>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>integration-tests</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <properties>
                                <property>
                                    <name>testrunfactory</name>
                                    <value>org.testng.DruidTestRunnerFactory</value>
                                </property>
                            </properties>
                            <argLine>
                                -Duser.timezone=UTC
                                -Dfile.encoding=UTF-8
                                -Ddruid.test.config.dockerIp=${env.DOCKER_IP}
                                -Ddruid.test.config.hadoopDir=${env.HADOOP_DIR}
                                -Ddruid.test.config.extraDatasourceNameSuffix=${extra.datasource.name.suffix}
                                -Ddruid.zk.service.host=${env.DOCKER_IP}
                                -Ddruid.client.https.trustStorePath=client_tls/truststore.jks
                                -Ddruid.client.https.trustStorePassword=druid123
                                -Ddruid.client.https.keyStorePath=client_tls/client.jks
                                -Ddruid.client.https.certAlias=druid
                                -Ddruid.client.https.keyManagerPassword=druid123
                                -Ddruid.client.https.keyStorePassword=druid123
                            </argLine>
                            <reportFormat>plain</reportFormat>  <!-- show elapsed time for each test -->
                            <suiteXmlFiles>
                                <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>de.thetaphi</groupId>
                        <artifactId>forbiddenapis</artifactId>
                        <configuration>
                            <signaturesFiles>
                                <!-- Needed because of https://github.com/policeman-tools/forbidden-apis/issues/126 -->
                                <signaturesFile>../codestyle/joda-time-forbidden-apis.txt</signaturesFile>
                                <signaturesFile>../codestyle/druid-forbidden-apis.txt</signaturesFile>
                            </signaturesFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>int-tests-config-file</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>integration-tests</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <properties>
                                <property>
                                    <name>testrunfactory</name>
                                    <value>org.testng.DruidTestRunnerFactory</value>
                                </property>
                            </properties>
                            <argLine>
                                -Duser.timezone=UTC
                                -Dfile.encoding=UTF-8
                                -Ddruid.test.config.type=configFile
                                -Ddruid.test.config.configFile=${env.CONFIG_FILE}
                                -Ddruid.client.https.trustStorePath=client_tls/truststore.jks
                                -Ddruid.client.https.trustStorePassword=druid123
                                -Ddruid.client.https.keyStorePath=client_tls/client.jks
                                -Ddruid.client.https.certAlias=druid
                                -Ddruid.client.https.keyManagerPassword=druid123
                                -Ddruid.client.https.keyStorePassword=druid123
                            </argLine>
                            <suiteXmlFiles>
                                <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>de.thetaphi</groupId>
                        <artifactId>forbiddenapis</artifactId>
                        <configuration>
                            <signaturesFiles>
                                <!-- Needed because of https://github.com/policeman-tools/forbidden-apis/issues/126 -->
                                <signaturesFile>../codestyle/joda-time-forbidden-apis.txt</signaturesFile>
                                <signaturesFile>../codestyle/druid-forbidden-apis.txt</signaturesFile>
                            </signaturesFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
