phoenix
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix</artifactId> <version>5.2.1</version> </dependency>
<?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> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix</artifactId> <version>5.2.1</version> <packaging>pom</packaging> <name>Apache Phoenix</name> <description>A SQL layer over HBase</description> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> <comments/> </license> </licenses> <organization> <name>Apache Software Foundation</name> <url>https://www.apache.org</url> </organization> <modules> <module>phoenix-hbase-compat-2.6.0</module> <module>phoenix-hbase-compat-2.5.4</module> <module>phoenix-hbase-compat-2.5.0</module> <module>phoenix-hbase-compat-2.4.1</module> <module>phoenix-core-client</module> <module>phoenix-core-server</module> <module>phoenix-core</module> <module>phoenix-pherf</module> <module>phoenix-tracing-webapp</module> <!-- shaded artifact and assembly modules are added in shade-and-assembly profile --> </modules> <repositories> <repository> <id>apache release</id> <url>https://repository.apache.org/content/repositories/releases/</url> </repository> </repositories> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>30</version> </parent> <scm> <connection>scm:git:https://git-wip-us.apache.org/repos/asf/phoenix.git</connection> <url>https://git-wip-us.apache.org/repos/asf/phoenix.git</url> <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/phoenix.git</developerConnection> </scm> <properties> <!-- Hadoop and Hbase-thirdparty version --> <!-- These are expected to be overridden to conform to cluster versions along with hbase.version (defined in profiles) --> <hadoop.version>3.3.6</hadoop.version> <phoenix.thirdparty.version>2.1.0</phoenix.thirdparty.version> <hbase.suffix>hbase-${hbase.profile}</hbase.suffix> <!-- This is used by the release script only --> <hbase.profile.list>2.4 2.5.0 2.5 2.6</hbase.profile.list> <!-- The default hbase versions to build with (override with hbase.version) --> <hbase-2.4.runtime.version>2.4.18</hbase-2.4.runtime.version> <hbase-2.5.0.runtime.version>2.5.3-hadoop3</hbase-2.5.0.runtime.version> <hbase-2.5.runtime.version>2.5.10-hadoop3</hbase-2.5.runtime.version> <hbase-2.6.runtime.version>2.6.1-hadoop3</hbase-2.6.runtime.version> <compileSource>1.8</compileSource> <maven.compiler.source>${compileSource}</maven.compiler.source> <maven.compiler.target>${compileSource}</maven.compiler.target> <!-- General Properties --> <antlr-input.dir>src/main/antlr3</antlr-input.dir> <antlr-output.dir>target/generated-sources/antlr3</antlr-output.dir> <test.output.tofile>true</test.output.tofile> <top.dir>${project.basedir}/..</top.dir> <test.tmp.dir>${project.build.directory}</test.tmp.dir> <shadeSources>true</shadeSources> <!-- Dependency versions --> <jackson-bom.version>2.14.1</jackson-bom.version> <netty-bom.version>4.1.108.Final</netty-bom.version> <antlr.version>3.5.2</antlr.version> <!-- Only used for tests with HBase 2.1-2.4 --> <reload4j.version>1.2.19</reload4j.version> <log4j2.version>2.18.0</log4j2.version> <disruptor.version>3.3.6</disruptor.version> <slf4j.version>1.7.36</slf4j.version> <!-- com.google repo will be used except on Aarch64 platform. --> <protobuf.group>com.google.protobuf</protobuf.group> <protobuf-java.version>2.5.0</protobuf-java.version> <protoc.version>2.5.0</protoc.version> <commons-io.version>2.14.0</commons-io.version> <commons-lang3.version>3.8</commons-lang3.version> <commons-csv.version>1.0</commons-csv.version> <commons-compress.version>1.26.0</commons-compress.version> <sqlline.version>1.9.0</sqlline.version> <jcip-annotations.version>1.0-1</jcip-annotations.version> <jsr305.version>2.0.1</jsr305.version> <snappy.version>0.5</snappy.version> <commons-codec.version>1.16.0</commons-codec.version> <htrace.version>3.1.0-incubating</htrace.version> <collections.version>3.2.2</collections.version> <jodatime.version>2.10.5</jodatime.version> <joni.version>2.1.31</joni.version> <omid.version>1.1.2</omid.version> <stream.version>2.9.5</stream.version> <icu4j.version>72.1</icu4j.version> <guice.version>5.1.0</guice.version> <zookeeper.version>3.8.4</zookeeper.version> <curator.version>4.2.0</curator.version> <jcodings.version>1.0.55</jcodings.version> <jetty.version>9.4.56.v20240826</jetty.version> <javax.servlet-api.version>3.1.0</javax.servlet-api.version> <!-- Test Dependencies --> <mockito.version>4.11.0</mockito.version> <junit.version>4.13.1</junit.version> <hdrhistogram.version>2.1.12</hdrhistogram.version> <!-- These are only used for exclusion when shading, and the exact version is completely irrelevant, but we need to keep them up to date to appease static checkers. While Phoenix does use theses packages, it does not explicitly depend on them, but instead takes the transitve dependencies from the Hadoop/HBase version used for building. --> <commons-configuration2.excludeonly.version>2.10.1</commons-configuration2.excludeonly.version> <hbase-thirdparty.excludeonly.version>4.1.7</hbase-thirdparty.excludeonly.version> <!-- Plugin versions --> <maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version> <maven-build-helper-plugin.version>3.5.0</maven-build-helper-plugin.version> <restrict-imports.enforcer.version>2.4.0</restrict-imports.enforcer.version> <maven-antlr-eclipse-plugin.version>${antlr.version}</maven-antlr-eclipse-plugin.version> <spotbugs-maven-plugin.version>4.8.1.0</spotbugs-maven-plugin.version> <spotbugs.version>4.8.1</spotbugs.version> <jacoco-maven-plugin.version>0.8.11</jacoco-maven-plugin.version> <sonar-maven-plugin.version>3.10.0.2594</sonar-maven-plugin.version> <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version> <maven-owasp-plugin.version>10.0.2</maven-owasp-plugin.version> <os.maven.version>1.7.1</os.maven.version> <jasmine-maven-plugin.version>2.2</jasmine-maven-plugin.version> <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version> <maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version> <exec-maven-plugin.version>3.1.1</exec-maven-plugin.version> <maven-checkstyle-plugin.version>3.3.0</maven-checkstyle-plugin.version> <maven-shade-plugin.version>3.6.0</maven-shade-plugin.version> <!-- Plugin options --> <skipParallelStatsEnabledTests>false</skipParallelStatsEnabledTests> <skipParallelStatsDisabledTests>false</skipParallelStatsDisabledTests> <skipNeedsOwnMiniClusterTests>false</skipNeedsOwnMiniClusterTests> <numForkedUT>8</numForkedUT> <numForkedIT>7</numForkedIT> <it.failIfNoSpecifiedTests>false</it.failIfNoSpecifiedTests> <surefire.failIfNoSpecifiedTests>false</surefire.failIfNoSpecifiedTests> <!-- Empty argument when code coverage is deactivated --> <jacocoArgLine></jacocoArgLine> <!-- JVM version dependent JVM options for running tests. Keep mostly in sync with HBase--> <surefire.Xmx>2200m</surefire.Xmx> <surefire.Xms>1000m</surefire.Xms> <phoenix-surefire.argLine>-enableassertions -Xmx${surefire.Xmx} -Xms${surefire.Xms} -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced -Dio.netty.eventLoopThreads=3 -Duser.timezone="America/Los_Angeles" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./target/ "-Djava.library.path=${hadoop.library.path}${path.separator}${java.library.path}" </phoenix-surefire.argLine> <phoenix-surefire.jdk8.tuning.flags> -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68 </phoenix-surefire.jdk8.tuning.flags> <phoenix-surefire.jdk11.flags>-Dorg.apache.hbase.thirdparty.io.netty.tryReflectionSetAccessible=true --add-modules jdk.unsupported --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-exports java.security.jgss/sun.security.krb5=ALL-UNNAMED</phoenix-surefire.jdk11.flags> <phoenix-surefire.jdk11.tuning.flags> ${phoenix-surefire.jdk8.tuning.flags} </phoenix-surefire.jdk11.tuning.flags> <phoenix-surefire.jdk17.flags>--add-opens java.base/jdk.internal.util.random=ALL-UNNAMED</phoenix-surefire.jdk17.flags> <phoenix-surefire.jdk17.tuning.flags></phoenix-surefire.jdk17.tuning.flags> <!-- This is needed for SystemExitRule to work correctly. This may mask related issues in dependencies --> <phoenix-surefire.jdk21.flags>-Djava.security.manager=allow</phoenix-surefire.jdk21.flags> <!-- Surefire argLine defaults for Linux + JDK8 --> <argLine>${phoenix-surefire.argLine} ${phoenix-surefire.jdk8.tuning.flags} @{jacocoArgLine}</argLine> <!-- Set default encoding so multi-byte tests work correctly on the Mac --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- JaCoCo thresholds which we can override in each sub-module if required --> <jacoco.instruction.coverage.percentage>0.700</jacoco.instruction.coverage.percentage> <jacoco.branch.coverage.percentage>0.600</jacoco.branch.coverage.percentage> <protobuf.plugin.version>0.6.1</protobuf.plugin.version> <!-- PHOENIX-6806 - Default protoc architecture to the detected one, but allow for profile overrides --> <protoc.arch>${os.detected.classifier}</protoc.arch> <!-- Keeping the version in sync with hbase javax.el version --> <glassfish.el.version>3.0.1-b08</glassfish.el.version> <shaded.package>org.apache.phoenix.shaded</shaded.package> <hbase.shaded.package>org.apache.hadoop.hbase.shaded</hbase.shaded.package> </properties> <build> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>${os.maven.version}</version> </extension> </extensions> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.antlr</groupId> <artifactId>antlr3-maven-plugin</artifactId> <version>${maven-antlr-eclipse-plugin.version}</version> </plugin> <plugin> <groupId>com.github.searls</groupId> <artifactId>jasmine-maven-plugin</artifactId> <version>${jasmine-maven-plugin.version}</version> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${spotbugs-maven-plugin.version}</version> <dependencies> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs</artifactId> <version>${spotbugs.version}</version> </dependency> </dependencies> <configuration> <effort>Max</effort> <maxHeap>2048</maxHeap> <excludeFilterFile>${top.dir}/src/main/config/spotbugs/spotbugs-exclude.xml</excludeFilterFile> </configuration> </plugin> <!--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>${lifecycle-mapping.version}</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.antlr</groupId> <artifactId>antlr3-maven-plugin</artifactId> <versionRange>[3.5,)</versionRange> <goals> <goal>antlr</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>${maven-eclipse-plugin.version}</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <!-- Avoid defining exclusions in pluginManagement as they are global. We already inherit some from the ASF parent pom. --> </plugin> <!-- We put slow-running tests into src/it and run them during the integration-test phase using the failsafe plugin. This way developers can run unit tests conveniently from the IDE or via "mvn package" from the command line without triggering time consuming integration tests. --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${maven-build-helper-plugin.version}</version> <executions> <execution> <id>add-test-source</id> <phase>validate</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>${basedir}/src/it/java</source> </sources> </configuration> </execution> <execution> <id>add-test-resource</id> <phase>validate</phase> <goals> <goal>add-test-resource</goal> </goals> <configuration> <resources> <resource> <directory>${basedir}/src/it/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <!-- Common settings for all executions --> <configuration> <encoding>UTF-8</encoding> <forkCount>${numForkedIT}</forkCount> <runOrder>alphabetical</runOrder> <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile> <forkedProcessExitTimeoutInSeconds>180</forkedProcessExitTimeoutInSeconds> <shutdown>exit</shutdown> <testSourceDirectory>${basedir}/src/it/java</testSourceDirectory> <trimStackTrace>false</trimStackTrace> <!-- https://www.orpiske.net/2021/04/test-woes-with-maven-failsafe-3-0-0-m5 --> <useModulePath>false</useModulePath> <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/> <systemPropertyVariables> <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir> </systemPropertyVariables> </configuration> <executions> <execution> <id>ParallelStatsEnabledTest</id> <configuration> <skip>${skipParallelStatsEnabledTests}</skip> <reuseForks>true</reuseForks> <groups>org.apache.phoenix.end2end.ParallelStatsEnabledTest</groups> </configuration> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> <execution> <id>ParallelStatsDisabledTest</id> <configuration> <reuseForks>true</reuseForks> <skip>${skipParallelStatsDisabledTests}</skip> <groups>org.apache.phoenix.end2end.ParallelStatsDisabledTest</groups> </configuration> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> <execution> <id>NeedTheirOwnClusterTests</id> <configuration> <reuseForks>false</reuseForks> <skip>${skipNeedsOwnMiniClusterTests}</skip> <groups>org.apache.phoenix.end2end.NeedsOwnMiniClusterTest</groups> </configuration> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <configuration> <ignoredUnusedDeclaredDependencies> <ignoredUnusedDeclaredDependency> org.apache.omid:* </ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency> org.apache.hbase:hbase-testing-util </ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency> org.apache.logging.log4j:log4j-api </ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency> org.apache.logging.log4j:log4j-core </ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency> org.apache.logging.log4j:log4j-slf4j-impl </ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency> org.apache.logging.log4j:log4j-1.2-api </ignoredUnusedDeclaredDependency> </ignoredUnusedDeclaredDependencies> <ignoredUsedUndeclaredDependencies> <ignoredUsedUndeclaredDependency> <!-- couldn't figure out what's the deal with this --> dnsjava:dnsjava </ignoredUsedUndeclaredDependency> <ignoredUsedUndeclaredDependency> <!-- These change too frequently, so we just rely on the hbase transitive deps --> org.apache.hbase.thirdparty:* </ignoredUsedUndeclaredDependency> <ignoredUsedUndeclaredDependency> <!-- We only need this because the Hadoop Metrics API leak. By not declaring the dependency, we can pick up the CVE fixed version from Hadoop without having to also declare a dependency on commons-text dependency (which we do not use directly at all)--> org.apache.commons:commons-configuration2 </ignoredUsedUndeclaredDependency> </ignoredUsedUndeclaredDependencies> </configuration> <executions> <execution> <id>create-mrapp-generated-classpath</id> <phase>generate-test-resources</phase> <goals> <goal>build-classpath</goal> </goals> <configuration> <outputFile>${project.build.directory}/classes/mrapp-generated-classpath </outputFile> </configuration> </execution> <execution> <id>enforce-dependencies</id> <goals> <goal>analyze-only</goal> </goals> <configuration> <failOnWarning>true</failOnWarning> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${maven-shade-plugin.version}</version> </plugin> <plugin> <!-- Allows us to get the apache-ds bundle artifacts --> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${maven-bundle-plugin.version}</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec-maven-plugin.version}</version> </plugin> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>${protobuf.plugin.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <dependencies> <dependency> <groupId>de.skuzzle.enforcer</groupId> <artifactId>restrict-imports-enforcer-rule</artifactId> <version>${restrict-imports.enforcer.version}</version> </dependency> </dependencies> <executions> <execution> <id>banned-illegal-imports</id> <phase>process-sources</phase> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <RestrictImports> <includeTestCode>true</includeTestCode> <reason>Use SLF4j for logging</reason> <bannedImports> <bannedImport>org.apache.commons.logging.Log</bannedImport> <bannedImport>org.apache.commons.logging.LogFactory</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <includeTestCode>true</includeTestCode> <reason>Use shaded version in phoenix-thirdparty</reason> <bannedImports> <bannedImport>com.google.common.**</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <includeTestCode>true</includeTestCode> <reason>Use shaded version in phoenix-thirdparty</reason> <bannedImports> <bannedImport>org.apache.commons.cli.**</bannedImport> <bannedImport>org.apache.hbase.thirdparty.org.apache.commons.cli.**</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <includeTestCode>true</includeTestCode> <reason>Use commons lang 3</reason> <bannedImports> <bannedImport>org.apache.commons.lang.**</bannedImport> </bannedImports> </RestrictImports> <RestrictImports> <includeTestCode>true</includeTestCode> <reason>Use edu.umd.cs.findbugs.annotations</reason> <bannedImports> <bannedImport>com.sun.istack.**</bannedImport> </bannedImports> </RestrictImports> </rules> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>${maven-checkstyle-plugin.version}</version> <configuration> <configLocation>${top.dir}/src/main/config/checkstyle/checker.xml</configLocation> <suppressionsLocation>${top.dir}/src/main/config/checkstyle/suppressions.xml</suppressionsLocation> <consoleOutput>true</consoleOutput> <headerLocation>${top.dir}/src/main/config/checkstyle/header.txt</headerLocation> <failOnViolation><!--true-->false</failOnViolation> <includeTestSourceDirectory><!--true-->false</includeTestSourceDirectory> </configuration> <executions> <execution> <id>validate</id> <phase>validate</phase> <configuration> <skip>true</skip> </configuration> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <phase>prepare-package</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <quiet>true</quiet> <links> <link>https://hbase.apache.org/apidocs/</link> </links> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <!-- TODO turn back on javadocs - disabled now for testing --> <!-- <goal>jar</goal> --> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkCount>${numForkedUT}</forkCount> <reuseForks>true</reuseForks> <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile> <shutdown>exit</shutdown> <trimStackTrace>false</trimStackTrace> <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/> <systemPropertyVariables> <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir> </systemPropertyVariables> </configuration> </plugin> <!-- All projects create a test jar --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <executions> <execution> <phase>prepare-package </phase> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <configuration> <excludes> <!-- Header on changelog isn't normal --> <exclude>CHANGES</exclude> <!-- create-release scripts --> <exclude>dev/create-release/README.txt</exclude> <exclude>dev/create-release/vote.tmpl</exclude> <!-- IDE configuration --> <exclude>dev/phoenix.importorder</exclude> <!-- Release L&N --> <exclude>dev/release_files/LICENSE</exclude> <exclude>dev/release_files/NOTICE</exclude> <!-- Exclude data files for examples --> <exclude>docs/*.csv</exclude> <exclude>examples/*.csv</exclude> <!-- Exclude SQL files from rat. Sqlline 1.1.9 doesn't work with comments on the first line of a file. --> <exclude>examples/*.sql</exclude> <!-- precommit? --> <exclude>**/patchprocess/**</exclude> <!-- Argparse is bundled to work around system Python version issues, compatibile with ALv2 --> <exclude>bin/argparse-1.4.0/argparse.py</exclude> <!-- tmp files --> <exclude>dev/work/**</exclude> <exclude>dev/artifacts/**</exclude> </excludes> </configuration> </plugin> <plugin> <!-- Allows us to get the apache-ds bundle artifacts --> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <inherited>true</inherited> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <!-- Intra-project dependencies --> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core-client</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core-server</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-embedded-hbase-2.4</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-embedded-hbase-2.5.0</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-embedded-hbase-2.5</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-embedded-hbase-2.6</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-lite-hbase-2.4</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-lite-hbase-2.5.0</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-lite-hbase-2.5</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-client-lite-hbase-2.6</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-server-hbase-2.4</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-server-hbase-2.5.0</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-server-hbase-2.5</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-server-hbase-2.6</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-mapreduce-byo-shaded-hbase-hbase-2.4</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-mapreduce-byo-shaded-hbase-hbase-2.5.0</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-mapreduce-byo-shaded-hbase-hbase-2.5</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-mapreduce-byo-shaded-hbase-hbase-2.6</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-pherf</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-tracing-webapp</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix.thirdparty</groupId> <artifactId>phoenix-shaded-guava</artifactId> <version>${phoenix.thirdparty.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-hbase-compat-2.4.1</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-hbase-compat-2.5.0</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-hbase-compat-2.5.4</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-hbase-compat-2.6.0</artifactId> <version>${project.version}</version> </dependency> <!-- Intra-project test dependencies --> <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>phoenix-core</artifactId> <version>${project.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> <!-- Hadoop Dependencies --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>org.apache.htrace</groupId> <artifactId>htrace-core4</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> <exclusion> <!-- See HADOOP-18991 --> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <type>test-jar</type> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>org.apache.htrace</groupId> <artifactId>htrace-core4</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> <exclusion> <!-- See HADOOP-18991 --> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-common</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-api</artifactId> <version>${hadoop.version}</version> </dependency> <!-- These are referenced indirectly --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-distcp</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> <exclusions> <exclusion> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> </exclusion> <exclusion> <groupId>net.minidev</groupId> <artifactId>accessors-smart</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-client</artifactId> <version>${hadoop.version}</version> <exclusions> <exclusion> <groupId>org.jline</groupId> <artifactId>jline</artifactId> </exclusion> </exclusions> </dependency> <!-- Only for shading in phoenix-server - remove ? --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-annotations</artifactId> <version>${hadoop.version}</version> </dependency> <!-- Hadoop test Dependencies --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-minicluster</artifactId> <version>${hadoop.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-minikdc</artifactId> <version>${hadoop.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <type>test-jar</type> <classifier>tests</classifier> <version>${hadoop.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.apache.htrace</groupId> <artifactId>htrace-core4</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <!-- These are to fix Hadoop minicluster dependency issues --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-app</artifactId> <version>${hadoop.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-jobclient</artifactId> <version>${hadoop.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <!-- HBase dependencies --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-annotations</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-protocol</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-protocol-shaded</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-common</artifactId> <version>${hbase.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-metrics-api</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-metrics</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-endpoint</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>${hbase.version}</version> <exclusions> <exclusion> <groupId>xom</groupId> <artifactId>xom</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-mapreduce</artifactId> <version>${hbase.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-replication</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-hadoop-compat</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-hadoop2-compat</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-zookeeper</artifactId> <version>${hbase.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <!-- HBase test dependencies --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-it</artifactId> <version>${hbase.version}</version> <type>test-jar</type> <scope>test</scope> <exclusions> <exclusion> <groupId>org.jruby</groupId> <artifactId>jruby-complete</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-common</artifactId> <version>${hbase.version}</version> <type>test-jar</type> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>${hbase.version}</version> <type>test-jar</type> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <!-- Transaction dependencies --> <!-- Omid --> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-hbase-common</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-hbase-client</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-hbase-coprocessor</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-tso-server</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> <exclusion> <groupId>commons-daemon</groupId> <artifactId>commons-daemon</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-tso-server</artifactId> <version>${omid.version}</version> <type>test-jar</type> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> <exclusion> <groupId>commons-daemon</groupId> <artifactId>commons-daemon</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-timestamp-storage</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-hbase-commit-table</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-transaction-client</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-commit-table</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-common</artifactId> <version>${omid.version}</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.omid</groupId> <artifactId>omid-codahale-metrics</artifactId> <version>${omid.version}</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${curator.version}</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>${curator.version}</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>${curator.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-testing-util</artifactId> <version>${hbase.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <!-- Other dependencies --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>${zookeeper.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper-jute</artifactId> <version>${zookeeper.version}</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> <version>${antlr.version}</version> </dependency> <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>${guice.version}</version> </dependency> <dependency> <groupId>com.github.stephenc.findbugs</groupId> <artifactId>findbugs-annotations</artifactId> <version>${findbugs-annotations.version}</version> </dependency> <dependency> <groupId>com.github.stephenc.jcip</groupId> <artifactId>jcip-annotations</artifactId> <version>${jcip-annotations.version}</version> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${jsr305.version}</version> </dependency> <dependency> <groupId>org.iq80.snappy</groupId> <artifactId>snappy</artifactId> <version>${snappy.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson</groupId> <artifactId>jackson-bom</artifactId> <version>${jackson-bom.version}</version> <scope>import</scope> <type>pom</type> </dependency> <!-- We don't depend on netty directly, but we need this to avoid pulling in different 4.1.x versions of netty modules from the transitive dependencies (ZK via Omid and ZK via Curator) --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${netty-bom.version}</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${protobuf-java.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.apache.htrace</groupId> <artifactId>htrace-core</artifactId> <version>${htrace.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${commons-codec.version}</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>${collections.version}</version> </dependency> <!-- Update transitive dependency to a one without CVEs --> <dependency> <groupId>com.fasterxml.woodstox</groupId> <artifactId>woodstox-core</artifactId> <version>5.4.0</version> </dependency> <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro</artifactId> <version>1.11.4</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>${commons-csv.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>${commons-compress.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <dependency> <groupId>org.apache.phoenix.thirdparty</groupId> <artifactId>phoenix-shaded-commons-cli</artifactId> <version>${phoenix.thirdparty.version}</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${jodatime.version}</version> </dependency> <dependency> <groupId>com.clearspring.analytics</groupId> <artifactId>stream</artifactId> <version>${stream.version}</version> </dependency> <dependency> <groupId>com.ibm.icu</groupId> <artifactId>icu4j</artifactId> <version>${icu4j.version}</version> </dependency> <dependency> <groupId>com.ibm.icu</groupId> <artifactId>icu4j-localespi</artifactId> <version>${icu4j.version}</version> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>${disruptor.version}</version> </dependency> <dependency> <groupId>org.jruby.joni</groupId> <artifactId>joni</artifactId> <version>${joni.version}</version> </dependency> <dependency> <groupId>org.jruby.jcodings</groupId> <artifactId>jcodings</artifactId> <version>${jcodings.version}</version> </dependency> <dependency> <groupId>org.hdrhistogram</groupId> <artifactId>HdrHistogram</artifactId> <version>${hdrhistogram.version}</version> </dependency> <!-- Other test dependencies --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-bom</artifactId> <version>${mockito.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Runtime dependencies --> <dependency> <groupId>ch.qos.reload4j</groupId> <artifactId>reload4j</artifactId> <version>${reload4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>sqlline</groupId> <artifactId>sqlline</artifactId> <version>${sqlline.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.el</artifactId> <version>${glassfish.el.version}</version> </dependency> </dependencies> </dependencyManagement> <profiles> <profile> <id>shade-and-assembly</id> <activation> <property> <name>!PhoenixPatchProcess</name> </property> </activation> <modules> <module>phoenix-client-parent</module> <module>phoenix-client-parent/phoenix-client-embedded</module> <module>phoenix-client-parent/phoenix-client-lite</module> <module>phoenix-server</module> <module>phoenix-mapreduce-byo-shaded-hbase</module> <module>phoenix-assembly</module> </modules> </profile> <!-- this profile should be activated for release builds --> <profile> <id>release</id> <build> <plugins> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- See BUILDING.md for profile selection--> <!-- The dependencies should be defined only in phoenix-core ,but maven doesn't seem to support that --> <profile> <!-- must be identical to phoenix-hbase-compat-2.5.4 profile --> <!-- This WILL work with the public HBase artifacts --> <id>phoenix-hbase-compat-2.5.4-default</id> <activation> <property> <name>!hbase.profile</name> </property> </activation> <properties> <hbase.profile>2.5</hbase.profile> <hbase.compat.version>2.5.4</hbase.compat.version> <hbase.version>${hbase-2.5.runtime.version}</hbase.version> </properties> </profile> <profile> <!-- PHOENIX-5993 This won't work with the public HBase artifacts --> <id>phoenix-hbase-compat-2.4.1</id> <activation> <property> <name>hbase.profile</name> <value>2.4</value> </property> </activation> <properties> <hbase.profile>2.4</hbase.profile> <hbase.compat.version>2.4.1</hbase.compat.version> <hadoop.version>3.1.4</hadoop.version> <hbase.version>${hbase-2.4.runtime.version}</hbase.version> </properties> </profile> <profile> <!-- This WILL work with the public -hadoop3 artifacts --> <id>phoenix-hbase-compat-2.5.4</id> <activation> <property> <name>hbase.profile</name> <value>2.5</value> </property> </activation> <properties> <hbase.profile>2.5</hbase.profile> <hbase.compat.version>2.5.4</hbase.compat.version> <hbase.version>${hbase-2.5.runtime.version}</hbase.version> </properties> </profile> <profile> <!-- This WILL work with the public -hadoop3 artifacts --> <id>phoenix-hbase-compat-2.5.0</id> <activation> <property> <name>hbase.profile</name> <value>2.5.0</value> </property> </activation> <properties> <hbase.profile>2.5.0</hbase.profile> <hbase.compat.version>2.5.0</hbase.compat.version> <hbase.version>${hbase-2.5.0.runtime.version}</hbase.version> </properties> </profile> <profile> <!-- This WILL work with the public -hadoop3 artifacts --> <id>phoenix-hbase-compat-2.6.0</id> <activation> <property> <name>hbase.profile</name> <value>2.6</value> </property> </activation> <properties> <hbase.profile>2.6</hbase.profile> <hbase.compat.version>2.6.0</hbase.compat.version> <hbase.version>${hbase-2.6.runtime.version}</hbase.version> </properties> </profile> <profile> <id>owasp-dependency-check</id> <activation> <property> <name>owasp-check</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>${maven-owasp-plugin.version}</version> <configuration> <skipProvidedScope>true</skipProvidedScope> <skipRuntimeScope>true</skipRuntimeScope> <skipSystemScope>true</skipSystemScope> </configuration> <executions> <execution> <goals> <goal>aggregate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>codecoverage</id> <activation> <property> <name>!skip.code-coverage</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco-maven-plugin.version}</version> <executions> <execution> <id>prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <propertyName>jacocoArgLine</propertyName> </configuration> </execution> <execution> <id>report</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> </execution> <execution> <id>check</id> <phase>verify</phase> <goals> <goal>check</goal> </goals> <configuration> <rules> <rule> <element>BUNDLE</element> <limits> <limit> <counter>INSTRUCTION</counter> <value>COVEREDRATIO</value> <minimum>${jacoco.instruction.coverage.percentage}</minimum> </limit> <limit> <counter>BRANCH</counter> <value>COVEREDRATIO</value> <minimum>${jacoco.branch.coverage.percentage}</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- this profile runs the Jacoco code coverage analysis --> <profile> <id>coverage</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <!-- SONAR properties --> <sonar.projectBaseDir>.</sonar.projectBaseDir> <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> <sonar.coverage.jacoco.xmlReportPaths> ${sonar.projectBaseDir}/phoenix-assembly/target/code-coverage/jacoco-reports/jacoco.xml </sonar.coverage.jacoco.xmlReportPaths> <!-- JACOCO properties --> <main.basedir>${project.basedir}</main.basedir> <codeCoverageReportRootDir>${main.basedir}/phoenix-assembly/target/code-coverage</codeCoverageReportRootDir> <jacocoDestFile>${codeCoverageReportRootDir}/jacoco.exec</jacocoDestFile> <jacocoReportDir>${codeCoverageReportRootDir}/jacoco-reports</jacocoReportDir> </properties> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco-maven-plugin.version}</version> <executions> <execution> <id>prepare-agent</id> <phase>initialize</phase> <goals> <goal>prepare-agent</goal> </goals> <configuration> <propertyName>jacocoArgLine</propertyName> </configuration> </execution> <execution> <id>report</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>${sonar-maven-plugin.version}</version> </plugin> </plugins> </build> </profile> <profile> <id>spotbugs-site</id> <activation> <property> <name>!spotbugs.site</name> </property> </activation> <build> <plugins> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <configuration> <spotbugsXmlOutput>true</spotbugsXmlOutput> <xmlOutput>true</xmlOutput> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>linux-aarch64</id> <activation> <os> <family>linux</family> <arch>aarch64</arch> </os> </activation> <properties> <!-- PHOENIX-6475 Use custom protoc for Linux ARM64 --> <protobuf.group>org.openlabtesting.protobuf</protobuf.group> <protoc.version>2.5.0.2</protoc.version> </properties> </profile> <profile> <!-- PHOENIX-6806 Use Mac x64 version of protoc for Apple Silicon (aarch64) Macs --> <id>osx-aarch64</id> <activation> <os> <family>mac</family> <arch>aarch64</arch> </os> </activation> <properties> <protoc.arch>osx-x86_64</protoc.arch> </properties> </profile> <profile> <id>build-with-jdk8</id> <activation> <jdk>[1.8,11)</jdk> </activation> </profile> <!-- See PHOENIX-6997 when building with with Java9+ --> <profile> <id>build-with-jdk11</id> <activation> <jdk>[11,17)</jdk> </activation> <properties> <argLine>${phoenix-surefire.jdk11.flags} ${phoenix-surefire.jdk11.tuning.flags} ${phoenix-surefire.argLine} @{jacocoArgLine}</argLine> </properties> </profile> <profile> <id>build-with-jdk17</id> <activation> <jdk>[17,21)</jdk> </activation> <properties> <argLine>${phoenix-surefire.jdk11.flags} ${phoenix-surefire.jdk17.flags} ${phoenix-surefire.jdk17.tuning.flags} ${phoenix-surefire.argLine} @{jacocoArgLine}</argLine> </properties> </profile> <profile> <id>build-with-jdk21</id> <activation> <jdk>[21,)</jdk> </activation> <properties> <argLine>${phoenix-surefire.jdk11.flags} ${phoenix-surefire.jdk17.flags} ${phoenix-surefire.jdk21.flags} ${phoenix-surefire.jdk17.tuning.flags} ${phoenix-surefire.argLine} @{jacocoArgLine}</argLine> </properties> </profile> </profiles> <reporting> <plugins> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>${maven-owasp-plugin.version}</version> <configuration> <skipProvidedScope>true</skipProvidedScope> <skipRuntimeScope>true</skipRuntimeScope> <skipSystemScope>true</skipSystemScope> </configuration> <reportSets> <reportSet> <reports> <report>aggregate</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <reportSets> <reportSet> <reports> <report>report</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> </plugin> </plugins> </reporting> </project>