blob: 28bf76a11eef7a42f8845f4b575bc45c7ca779aa [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright (C) 2014-2018 LinkedIn Corp. (pinot-core@linkedin.com)
Licensed 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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>pinot</artifactId>
<groupId>com.linkedin.pinot</groupId>
<version>0.016</version>
</parent>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-tools</artifactId>
<version>0.016</version>
<name>pinot-tools</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-core</artifactId>
</dependency>
<dependency>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-common</artifactId>
</dependency>
<dependency>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-server</artifactId>
</dependency>
<dependency>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-controller</artifactId>
</dependency>
<dependency>
<groupId>com.linkedin.pinot</groupId>
<artifactId>pinot-broker</artifactId>
</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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<configuration>
<programs>
<program>
<mainClass>com.linkedin.pinot.tools.PinotToolLauncher</mainClass>
<name>pinot-tools</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.admin.PinotAdministrator</mainClass>
<name>pinot-admin</name>
<jvmSettings>
<initialMemorySize>4G</initialMemorySize>
<maxMemorySize>4G</maxMemorySize>
<extraArguments>
<extraArgument>-XX:MaxDirectMemorySize=30g</extraArgument>
<extraArgument>-Dlog4j.configuration=conf/pinot-admin-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.scan.query.ScanBasedQueryProcessor</mainClass>
<name>scan-query</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>20G</maxMemorySize>
<extraArguments>
<extraArgument>-XX:MaxDirectMemorySize=30g</extraArgument>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.query.comparison.QueryComparison</mainClass>
<name>query-comparator</name>
<jvmSettings>
<initialMemorySize>10G</initialMemorySize>
<maxMemorySize>30G</maxMemorySize>
<extraArguments>
<extraArgument>-XX:MaxDirectMemorySize=30g</extraArgument>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.query.comparison.StarQueryComparison</mainClass>
<name>star-query-comparator</name>
<jvmSettings>
<initialMemorySize>10G</initialMemorySize>
<maxMemorySize>30G</maxMemorySize>
<extraArguments>
<extraArgument>-XX:MaxDirectMemorySize=30g</extraArgument>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.query.comparison.StatsGenerator</mainClass>
<name>stats-generator</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.StarTreeIndexViewer</mainClass>
<name>star-tree-index-viewer</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-tools-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.admin.PinotController</mainClass>
<name>start-controller</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-controller-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.admin.PinotBroker</mainClass>
<name>start-broker</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-broker-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.admin.PinotServer</mainClass>
<name>start-server</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/pinot-server-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.Quickstart</mainClass>
<name>quick-start-offline</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/quickstart-offline-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.HybridQuickstart</mainClass>
<name>quick-start-hybrid</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-XX:MaxDirectMemorySize=6g</extraArgument>
<extraArgument>-Dlog4j.configuration=conf/quickstart-offline-log4j.properties</extraArgument>
</extraArguments>
</jvmSettings>
</program>
<program>
<mainClass>com.linkedin.pinot.tools.RealtimeQuickStart</mainClass>
<name>quick-start-realtime</name>
<jvmSettings>
<initialMemorySize>1G</initialMemorySize>
<maxMemorySize>1G</maxMemorySize>
<extraArguments>
<extraArgument>-Dlog4j.configuration=conf/quickstart-realtime-log4j.properties</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>com.linkedin.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>com.linkedin.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>
</plugins>
</build>
</project>