blob: 7752699f50dbd4d97a8f4b2b50dc5b1ae120086c [file] [log] [blame]
<?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</groupId>
<artifactId>apache</artifactId>
<version>21</version>
</parent>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-parent</artifactId>
<packaging>pom</packaging>
<version>1.15.0-SNAPSHOT</version>
<name>Apache Calcite Avatica Project</name>
<description>Avatica is a JDBC driver framework which is a part of Apache Calcite</description>
<url>https://calcite.apache.org/avatica</url>
<inceptionYear>2012</inceptionYear>
<organization>
<name>The Apache Software Foundation</name>
<url>https://www.apache.org</url>
</organization>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<mailingLists>
<mailingList>
<name>Apache Calcite developers list</name>
<subscribe>dev-subscribe@calcite.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@calcite.apache.org</unsubscribe>
<post>dev@calcite.apache.org</post>
<archive>https://lists.apache.org/list.html?dev@calcite.apache.org</archive>
</mailingList>
</mailingLists>
<properties>
<!-- Ensure that source and target version are overridden from base ASF POM.
This is also used by forbiddenapis to ensure correct signatures are loaded. -->
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<top.dir>${project.basedir}</top.dir>
<avatica.release.version>${project.version}</avatica.release.version>
<version.major>1</version.major>
<version.minor>15</version.minor>
<!-- This list is in alphabetical order. -->
<apache-rat-plugin.version>0.13</apache-rat-plugin.version>
<asm.version>7.1</asm.version>
<bouncycastle.version>1.60</bouncycastle.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<!-- Needed for JDK 10 javadoc for [LANG-1365] -->
<commons-lang3.version>3.8.1</commons-lang3.version>
<docker-maven-plugin.version>1.2.0</docker-maven-plugin.version>
<dropwizard-metrics.version>4.0.5</dropwizard-metrics.version>
<forbiddenapis.version>2.6</forbiddenapis.version>
<error_prone_core.version>2.3.3</error_prone_core.version>
<!-- We support guava versions as old as 14.0.1 (the version used by Hive)
but prefer more recent versions. -->
<guava.version>14.0.1</guava.version>
<h2.version>1.4.197</h2.version>
<hamcrest.version>1.3</hamcrest.version>
<hsqldb.version>2.4.1</hsqldb.version>
<httpclient.version>4.5.6</httpclient.version>
<httpcore.version>4.4.10</httpcore.version>
<hydromatic-toolbox.version>0.3</hydromatic-toolbox.version>
<jackson.version>2.9.8</jackson.version>
<!-- Default to html4 for JDK 8 but html5 on jdk9+ -->
<javadoc-additionalOptions />
<javadoc-link>https://docs.oracle.com/javase/8/docs/api/</javadoc-link>
<jcip-annotations.version>1.0-1</jcip-annotations.version>
<jcommander.version>1.72</jcommander.version>
<jetty.version>9.4.15.v20190215</jetty.version>
<junit.version>4.12</junit.version>
<kerby.version>1.1.1</kerby.version>
<maven-assembly-plugin.version>3.1.1</maven-assembly-plugin.version>
<maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
<maven-scm-api.version>1.10.0</maven-scm-api.version>
<maven-scm-provider.version>1.10.0</maven-scm-provider.version>
<!-- ASF 21 provides 3.1.1 but need 3.2.0 due to MSHADE-289 -->
<maven-shade-plugin.version>3.2.1</maven-shade-plugin.version>
<mockito.version>2.23.4</mockito.version>
<os-maven-plugin.version>1.6.1</os-maven-plugin.version>
<owasp-dependency-check.version>4.0.2</owasp-dependency-check.version>
<protobuf.version>3.6.1</protobuf.version>
<protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
<scott-data-hsqldb.version>0.1</scott-data-hsqldb.version>
<servlet.version>4.0.1</servlet.version>
<slf4j.version>1.7.25</slf4j.version>
<spotbugs.version>3.1.11</spotbugs.version>
<spotbugs-maven-plugin.version>3.1.10</spotbugs-maven-plugin.version>
</properties>
<issueManagement>
<system>Jira</system>
<url>https://issues.apache.org/jira/browse/CALCITE</url>
</issueManagement>
<ciManagement>
<system>Apache Jenkins</system>
<url>https://builds.apache.org/job/Calcite-Avatica-Master/</url>
</ciManagement>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/calcite-avatica.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/calcite-avatica.git</developerConnection>
<url>https://github.com/apache/calcite-avatica</url>
<tag>HEAD</tag>
</scm>
<modules>
<module>core</module>
<module>docker</module>
<module>metrics</module>
<module>metrics-dropwizardmetrics</module>
<module>noop-driver</module>
<module>server</module>
<module>tck</module>
<module>standalone-server</module>
<module>shaded/core</module>
</modules>
<!-- No dependencies here. Declare dependency VERSIONS in
dependencyManagement, below, and each dependency in the module that uses
it. -->
<dependencies />
<dependencyManagement>
<dependencies>
<!-- Sorted by groupId, artifactId; avatica dependencies first. -->
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-metrics</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-noop-driver</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-tck</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-standalone-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.calcite.avatica</groupId>
<artifactId>avatica-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<!-- Now third-party dependencies, sorted by groupId and artifactId. -->
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>${jcommander.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.github.stephenc.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>${jcip-annotations.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>${protobuf.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>scott-data-hsqldb</artifactId>
<version>${scott-data-hsqldb.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kerby</groupId>
<artifactId>kerb-client</artifactId>
<version>${kerby.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kerby</groupId>
<artifactId>kerb-core</artifactId>
<version>${kerby.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kerby</groupId>
<artifactId>kerb-simplekdc</artifactId>
<version>${kerby.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpcore.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${os-maven-plugin.version}</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>de.thetaphi</groupId>
<artifactId>forbiddenapis</artifactId>
<configuration>
<!-- if the used Java version is too new, don't fail, just do nothing: -->
<failOnUnsupportedJava>false</failOnUnsupportedJava>
<bundledSignatures>
<!--
This will automatically choose the right
signatures based on 'maven.compiler.target':
-->
<bundledSignature>jdk-unsafe</bundledSignature>
<bundledSignature>jdk-deprecated</bundledSignature>
<!-- disallow undocumented classes like sun.misc.Unsafe: -->
<bundledSignature>jdk-non-portable</bundledSignature>
</bundledSignatures>
<signaturesFiles>
<signaturesFile>${top.dir}/src/main/config/forbidden-apis/signatures.txt</signaturesFile>
</signaturesFiles>
<excludes>
<exclude>**/org/apache/calcite/avatica/tck/Unsafe.class</exclude>
<exclude>**/org/apache/calcite/avatica/util/Unsafe.class</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>testCheck</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${apache-rat-plugin.version}</version>
<configuration>
<excludes>
<!-- Do not exclude site/target; it should not exist
in any sandbox from which you are making a
release. Also, do not exclude site/.sass-cache. -->
<!-- Files generated by Jekyll. -->
<exclude>site/_includes/anchor_links.html</exclude>
<exclude>site/_includes/docs_contents.html</exclude>
<exclude>site/_includes/docs_contents_mobile.html</exclude>
<exclude>site/_includes/docs_option.html</exclude>
<exclude>site/_includes/docs_ul.html</exclude>
<exclude>site/_includes/footer.html</exclude>
<exclude>site/_includes/header.html</exclude>
<exclude>site/_includes/news_contents.html</exclude>
<exclude>site/_includes/news_contents_mobile.html</exclude>
<exclude>site/_includes/news_item.html</exclude>
<exclude>site/_includes/primary-nav-items.html</exclude>
<exclude>site/_includes/section_nav.html</exclude>
<exclude>site/_includes/top.html</exclude>
<exclude>site/_layouts/default.html</exclude>
<exclude>site/_layouts/docs.html</exclude>
<exclude>site/_layouts/external.html</exclude>
<exclude>site/_layouts/news.html</exclude>
<exclude>site/_layouts/news_item.html</exclude>
<exclude>site/_layouts/page.html</exclude>
<exclude>site/_sass/**</exclude>
<exclude>site/css/screen.scss</exclude>
<exclude>site/fonts/**</exclude>
<exclude>site/js/**</exclude>
<!-- Images -->
<exclude>site/img/*.png</exclude>
<exclude>site/favicon.ico</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
<goal>test-jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- If you are looking to change source/target,
change the maven.compiler.{source,target} property -->
<configuration>
<compilerArgs>
<arg>-Xlint:deprecation</arg>
</compilerArgs>
<failOnWarning>true</failOnWarning>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<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</failOnViolation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>toolbox</artifactId>
<version>${hydromatic-toolbox.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- checkstyle requires Guava 19 -->
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<!-- This is the configuration used by "mvn javadoc:javadoc". It is
configured strict, so that it shows errors such as broken links in
javadoc on private methods. The configuration for "mvn site" is
under "reporting", and is more lenient. -->
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalOptions>${javadoc-additionalOptions}</additionalOptions>
<links>
<link>${javadoc-link}</link>
</links>
<show>private</show>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<!-- Override apache parent POM's definition of release
plugin. If we don't specify gitexe version, git doesn't
commit during release process. -->
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>${maven-scm-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>${maven-scm-provider.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- Sorted by groupId, artifactId. -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>de.thetaphi</groupId>
<artifactId>forbiddenapis</artifactId>
<version>${forbiddenapis.version}</version>
</plugin>
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>[1.8,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>failsafe-integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<threadCount>6</threadCount>
<parallel>both</parallel>
<!-- work around https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911925 -->
<argLine>-Xmx1024m -Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
</configuration>
</execution>
<execution>
<id>failsafe-verify</id>
<goals>
<goal>verify</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- work around https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911925 -->
<argLine>-Xmx1536m -XX:MaxPermSize=256m -Duser.timezone=${user.timezone} -Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<versionRange>[2.12.1,)</versionRange>
<goals>
<goal>check</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${owasp-dependency-check.version}</version>
</plugin>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${protobuf-maven-plugin.version}</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
<protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
<outputDirectory>${basedir}/src/main/java/</outputDirectory>
<clearOutputDirectory>false</clearOutputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<threshold>High</threshold>
<failOnError>true</failOnError>
<excludeFilterFile>${top.dir}/src/main/config/spotbugs/spotbugs-filter.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>${spotbugs.version}</version>
</dependency>
<!-- Upgrade ASM to 7.1 to support JDK 13. Remove when spotbugs upgrades -->
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links>
<link>https://docs.oracle.com/javase/8/docs/api/</link>
</links>
<notimestamp>true</notimestamp>
<windowtitle>Apache Calcite Avatica API</windowtitle>
</configuration>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
</plugin>
</plugins>
</reporting>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<profiles>
<profile>
<!-- This profile adds/overrides few features of the 'apache-release'
profile in the parent pom. -->
<id>apache-release</id>
<build>
<plugins>
<!-- Apache-RAT checks for files without headers.
If run on a messy developer's sandbox, it will fail.
This serves as a reminder to only build a release in a clean
sandbox! -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Override the parent assembly execution to customize the assembly
descriptor and final name. -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>none</phase>
</execution>
<execution>
<id>source-release-assembly-avatica</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>${top.dir}/src/main/config/assemblies/source-assembly.xml</descriptor>
</descriptors>
<finalName>apache-calcite-avatica-${project.version}-src</finalName>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>root-resources</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<resourceBundles>
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<executions>
<execution>
<id>source-release-checksum</id>
<goals>
<goal>artifacts</goal>
</goals>
</execution>
</executions>
<configuration>
<algorithms>
<algorithm>SHA-512</algorithm>
</algorithms>
<csvSummary>false</csvSummary>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java9+</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<javadoc-additionalOptions>-html5</javadoc-additionalOptions>
<javadoc-link>https://docs.oracle.com/javase/9/docs/api/</javadoc-link>
</properties>
</profile>
<profile>
<!-- Extra checks that are disabled in the regular build, enabled for
releases and on demand. -->
<id>pedantic</id>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFiles>
<suppressionFile>${top.dir}/src/main/config/dependency-check/suppressions.xml</suppressionFile>
</suppressionFiles>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- This profile requires JDK 9+. There is no way to enforce that currently.
https://errorprone.info/docs/installation has details why JDK 8 is not supported -->
<id>ErrorProne</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<compilerArgs>
<arg>-Xlint:deprecation</arg>
<arg>-XDcompilePolicy=simple</arg>
<arg>-Xplugin:ErrorProne</arg>
</compilerArgs>
<failOnWarning>true</failOnWarning>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${error_prone_core.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>