<?xml version="1.0"?>
<!--

    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>pinot</artifactId>
    <groupId>org.apache.pinot</groupId>
    <version>0.4.0</version>
    <relativePath>..</relativePath>
  </parent>
  <artifactId>pinot-tools</artifactId>
  <name>Pinot Tools</name>
  <url>https://pinot.apache.org/</url>
  <properties>
    <pinot.root>${basedir}/..</pinot.root>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-server</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-controller</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-broker</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-avro</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-csv</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-json</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-orc</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-parquet</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-thrift</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-kafka-${kafka.version}</artifactId>
      <version>${project.version}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.pinot</groupId>
      <artifactId>pinot-batch-ingestion-standalone</artifactId>
      <version>${project.version}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
    </dependency>
    <dependency>
      <groupId>args4j</groupId>
      <artifactId>args4j</artifactId>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.glassfish.tyrus.bundles</groupId>
      <artifactId>tyrus-standalone-client</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math3</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <configuration>
          <programs>
            <program>
              <mainClass>org.apache.pinot.tools.PinotToolLauncher</mainClass>
              <name>pinot-tools</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.admin.PinotAdministrator</mainClass>
              <name>pinot-admin</name>
              <jvmSettings>
                <initialMemorySize>4G</initialMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-admin-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.scan.query.ScanBasedQueryProcessor</mainClass>
              <name>scan-query</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>20G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.query.comparison.QueryComparison</mainClass>
              <name>query-comparator</name>
              <jvmSettings>
                <initialMemorySize>10G</initialMemorySize>
                <maxMemorySize>30G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.query.comparison.StarQueryComparison</mainClass>
              <name>star-query-comparator</name>
              <jvmSettings>
                <initialMemorySize>10G</initialMemorySize>
                <maxMemorySize>30G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.query.comparison.StatsGenerator</mainClass>
              <name>stats-generator</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.StarTreeIndexViewer</mainClass>
              <name>star-tree-index-viewer</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-tools-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.admin.PinotController</mainClass>
              <name>start-controller</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-controller-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.admin.PinotBroker</mainClass>
              <name>start-broker</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-broker-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.admin.PinotServer</mainClass>
              <name>start-server</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-server-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.Quickstart</mainClass>
              <name>quick-start-batch</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/quickstart-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.HybridQuickstart</mainClass>
              <name>quick-start-hybrid</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/quickstart-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.RealtimeQuickStart</mainClass>
              <name>quick-start-streaming</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/quickstart-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
            <program>
              <mainClass>org.apache.pinot.tools.admin.command.LaunchDataIngestionJobCommand</mainClass>
              <name>pinot-ingestion-job</name>
              <jvmSettings>
                <initialMemorySize>1G</initialMemorySize>
                <maxMemorySize>1G</maxMemorySize>
                <extraArguments>
                  <extraArgument>-Dlog4j2.configurationFile=conf/pinot-ingestion-job-log4j2.xml</extraArgument>
                </extraArguments>
              </jvmSettings>
            </program>
          </programs>
          <binFileExtensions>
            <unix>.sh</unix>
          </binFileExtensions>

          <!-- Set the target configuration directory to be used in the bin scripts -->
          <configurationDirectory>conf</configurationDirectory>
          <!-- Copy the contents from "/src/main/config" to the target configuration directory in the assembled application -->
          <copyConfigurationDirectory>false</copyConfigurationDirectory>
          <!-- Include the target configuration directory in the beginning of the classpath declaration in the bin scripts -->
          <includeConfigurationDirectoryInClasspath>false</includeConfigurationDirectoryInClasspath>
          <assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory>
          <unixScriptTemplate>${project.basedir}/src/main/resources/appAssemblerScriptTemplate</unixScriptTemplate>
          <!-- Generate bin scripts for windows and unix pr default -->
          <platforms>
            <platform>unix</platform>
          </platforms>
          <repositoryLayout>flat</repositoryLayout>
          <repositoryName>lib</repositoryName>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>build-pinot-tool-launcher</id>
            <configuration>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
              <archive>
                <manifest>
                  <mainClass>org.apache.pinot.tools.PinotToolLauncher</mainClass>
                </manifest>
              </archive>
              <finalName>pinot-tool-launcher</finalName>
            </configuration>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
          <execution>
            <id>build-query-comparison</id>
            <configuration>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
              <archive>
                <manifest>
                  <mainClass>org.apache.pinot.tools.query.comparison.QueryComparison</mainClass>
                </manifest>
              </archive>
              <finalName>query-comparison</finalName>
            </configuration>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>copy-kafka-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <!-- this is important -->
              <overwrite>true</overwrite>
              <!-- target -->
              <outputDirectory>${basedir}/target/classes/sample_data/</outputDirectory>
              <resources>
                <resource>
                  <!-- source -->
                  <directory>src/main/resources/sample_data/kafka_${kafka.version}</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-batch-ingestion-resources</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <!-- this is important -->
              <overwrite>true</overwrite>
              <!-- target -->
              <outputDirectory>${basedir}/target/classes/examples/</outputDirectory>
              <resources>
                <resource>
                  <!-- source -->
                  <directory>src/main/resources/examples</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
