| <?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> |
| <parent> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix</artifactId> |
| <version>4.16.0</version> |
| </parent> |
| <artifactId>phoenix-core</artifactId> |
| <name>Phoenix Core</name> |
| <description>Core Phoenix codebase</description> |
| |
| <properties> |
| <top.dir>${project.basedir}/..</top.dir> |
| </properties> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>${maven-enforcer-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>check-hbase-compatibility</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <evaluateBeanshell> |
| <condition> |
| <!-- Add check for any know incompatibilies in the below code --> |
| import java.util.regex.Pattern; |
| import java.lang.Integer; |
| |
| versionPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)[^.]*$"); |
| versionMatcher = versionPattern.matcher("${hbase.version}"); |
| versionMatcher.find(); |
| |
| hbaseMajor = Integer.parseInt(versionMatcher.group(1)); |
| hbaseMinor = Integer.parseInt(versionMatcher.group(2)); |
| hbasePatch = Integer.parseInt(versionMatcher.group(3)); |
| |
| hbaseMajor == 1 && ( |
| ("${hbase.compat.version}".equals("1.5.0") |
| && (hbaseMinor == 5 || hbaseMinor == 6)) |
| || ("${hbase.compat.version}".equals("1.4.0") |
| && hbaseMinor == 4) |
| || ("${hbase.compat.version}".equals("1.3.0") |
| && hbaseMinor == 3) |
| ) |
| </condition> |
| </evaluateBeanshell> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${antlr-output.dir}</source> |
| <source>${antlr-input.dir}</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Compile the antlr sources --> |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr3-maven-plugin</artifactId> |
| <version>3.5.2</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>antlr</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <outputDirectory>${antlr-output.dir}/org/apache/phoenix/parse</outputDirectory> |
| </configuration> |
| </plugin> |
| <!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running |
| tests (this is needed for upstream projects whose tests need this jar simply for |
| compilation) --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>prepare-package |
| </phase> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| <configuration> |
| <archive> |
| <manifest> |
| <mainClass>org.apache.phoenix.util.GeneratePerformanceData</mainClass> |
| </manifest> |
| </archive> |
| </configuration> |
| </execution> |
| </executions> |
| <configuration> |
| <!-- Exclude these 2 packages, because their dependency _binary_ files |
| include the sources, and Maven 2.2 appears to add them to the sources to compile, |
| weird --> |
| <excludes> |
| <exclude>org/apache/jute/**</exclude> |
| <exclude>org/apache/zookeeper/**</exclude> |
| <exclude>**/*.jsp</exclude> |
| <exclude>log4j.properties</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <!-- Setup eclipse --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-eclipse-plugin</artifactId> |
| <configuration> |
| <buildcommands> |
| <buildcommand>org.jamon.project.templateBuilder</buildcommand> |
| <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand> |
| </buildcommands> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <!-- generates the file that will be used by the sandbox script in the dev env --> |
| <id>create-phoenix-generated-classpath</id> |
| <goals> |
| <goal>build-classpath</goal> |
| </goals> |
| <configuration> |
| <outputFile>${project.build.directory}/cached_classpath.txt</outputFile> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <excludes> |
| <exclude>src/main/java/org/apache/phoenix/coprocessor/generated/*.java</exclude> |
| <exclude>src/main/resources/META-INF/services/java.sql.Driver</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>compile-protoc</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <configuration> |
| <protocArtifact>com.google.protobuf:protoc:${protobuf-java.version}:exe:${os.detected.classifier} |
| </protocArtifact> |
| <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot> |
| <clearOutputDirectory>false</clearOutputDirectory> |
| <checkStaleness>true</checkStaleness> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <dependencies> |
| <!-- HBase compat dependency --> |
| <dependency> |
| <groupId>org.apache.phoenix</groupId> |
| <artifactId>phoenix-hbase-compat-${hbase.compat.version}</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.omid</groupId> |
| <artifactId>omid-hbase-client-hbase1.x</artifactId> |
| <version>${omid.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.omid</groupId> |
| <artifactId>omid-hbase-coprocessor-hbase1.x</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.omid</groupId> |
| <artifactId>omid-tso-server-hbase1.x</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-client</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-recipes</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.omid</groupId> |
| <artifactId>omid-tso-server-hbase1.x</artifactId> |
| <type>test-jar</type> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-client</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-recipes</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- Transaction dependencies --> |
| <dependency> |
| <groupId>org.apache.tephra</groupId> |
| <artifactId>tephra-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.tephra</groupId> |
| <artifactId>tephra-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.tephra</groupId> |
| <artifactId>tephra-core</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.tephra</groupId> |
| <artifactId>tephra-hbase-compat-1.4</artifactId> |
| </dependency> |
| |
| <!-- Make sure we have all the antlr dependencies --> |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr-runtime</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| </dependency> |
| <!-- JSR-305 and jcip-annotations --> |
| <dependency> |
| <groupId>com.github.stephenc.findbugs</groupId> |
| <artifactId>findbugs-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.github.stephenc.jcip</groupId> |
| <artifactId>jcip-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-all</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.iq80.snappy</groupId> |
| <artifactId>snappy</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.github.stephenc.high-scale-lib</groupId> |
| <artifactId>high-scale-lib</artifactId> |
| <version>1.1.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.yammer.metrics</groupId> |
| <artifactId>metrics-core</artifactId> |
| <version>2.1.2</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.htrace</groupId> |
| <artifactId>htrace-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-cli</groupId> |
| <artifactId>commons-cli</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-collections</groupId> |
| <artifactId>commons-collections</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-csv</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.findbugs</groupId> |
| <artifactId>jsr305</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-testing-util</artifactId> |
| <scope>test</scope> |
| <optional>true</optional> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-it</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-common</artifactId> |
| <scope>test</scope> |
| <type>test-jar</type> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-protocol</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-client</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-server</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>xom</groupId> |
| <artifactId>xom</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-server</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop-compat</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop-compat</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop2-compat</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-hadoop2-compat</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-mapreduce-client-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-minicluster</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-minikdc</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.jruby.joni</groupId> |
| <artifactId>joni</artifactId> |
| <version>${joni.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.clearspring.analytics</groupId> |
| <artifactId>stream</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.salesforce.i18n</groupId> |
| <artifactId>i18n-util</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.lmax</groupId> |
| <artifactId>disruptor</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| <version>${curator.version}</version> |
| </dependency> |
| </dependencies> |
| |
| <profiles> |
| <!-- See the parent pom for profile selection --> |
| <profile> |
| <id>phoenix-hbase-compat-1.5.0-default</id> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics</artifactId> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-1.5.0</id> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics</artifactId> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-1.4.0</id> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-metrics</artifactId> |
| </dependency> |
| </dependencies> |
| </profile> |
| <profile> |
| <id>phoenix-hbase-compat-1.3.0</id> |
| </profile> |
| </profiles> |
| </project> |