blob: 072749ce7e012f93b217e65da7059a9bc2805fc5 [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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>23</version>
</parent>
<groupId>org.apache.cassandra</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.18.0</version>
<packaging>pom</packaging>
<name>Apache Cassandra Java Driver</name>
<url>https://github.com/datastax/java-driver</url>
<inceptionYear>2017</inceptionYear>
<modules>
<module>core</module>
<module>core-shaded</module>
<module>query-builder</module>
<module>mapper-runtime</module>
<module>mapper-processor</module>
<module>metrics/micrometer</module>
<module>metrics/microprofile</module>
<module>test-infra</module>
<module>integration-tests</module>
<module>osgi-tests</module>
<module>distribution-source</module>
<module>distribution</module>
<module>distribution-tests</module>
<module>examples</module>
<module>bom</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<config.version>1.4.1</config.version>
<!-- when changing version also update version in LICENSE_binary -->
<hdrhistogram.version>2.1.12</hdrhistogram.version>
<metrics.version>4.1.18</metrics.version>
<netty.version>4.1.94.Final</netty.version>
<esri.version>1.2.1</esri.version>
<!--
When upgrading TinkerPop please upgrade the version matrix in
manual/core/integration/README.md
-->
<tinkerpop.version>3.5.6</tinkerpop.version>
<!-- when changing version also update version in LICENSE_binary -->
<slf4j.version>1.7.26</slf4j.version>
<!-- when changing version also update version in LICENSE_binary -->
<reactive-streams.version>1.0.3</reactive-streams.version>
<json.version>20230227</json.version>
<jackson.version>2.13.4</jackson.version>
<jackson-databind.version>2.13.4.2</jackson-databind.version>
<!-- optional dependencies -->
<snappy.version>1.1.10.1</snappy.version>
<lz4.version>1.7.1</lz4.version>
<!-- test dependencies -->
<assertj.version>3.19.0</assertj.version>
<commons-exec.version>1.3</commons-exec.version>
<junit.version>4.13.2</junit.version>
<logback.version>1.2.3</logback.version>
<osgi.version>6.0.0</osgi.version>
<felix.version>7.0.1</felix.version>
<pax-exam.version>4.13.4</pax-exam.version>
<pax-url.version>2.6.4</pax-url.version>
<simulacron.version>0.11.0</simulacron.version>
<jsr353-api.version>1.1.4</jsr353-api.version>
<jersey.version>2.31</jersey.version>
<hk2.version>2.5.0</hk2.version>
<jax-rs.version>2.1.1</jax-rs.version>
<jsr353-ri.version>1.1.4</jsr353-ri.version>
<rxjava.version>2.2.2</rxjava.version>
<awaitility.version>4.0.3</awaitility.version>
<apacheds.version>2.0.0-M19</apacheds.version>
<surefire.version>3.0.0</surefire.version>
<graalapi.version>22.0.0.2</graalapi.version>
<skipTests>false</skipTests>
<skipUnitTests>${skipTests}</skipUnitTests>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>java-driver-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>${netty.version}</version>
</dependency>
<dependency>
<!-- Only for integration tests, use the shaded JAR for production code -->
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>${config.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>${snappy.version}</version>
</dependency>
<dependency>
<groupId>org.lz4</groupId>
<artifactId>lz4-java</artifactId>
<version>${lz4.version}</version>
</dependency>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-posix</artifactId>
<!-- when changing version also update jnr-* and asm versions in LICENSE_binary -->
<version>3.1.15</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>${hdrhistogram.version}</version>
</dependency>
<dependency>
<groupId>com.esri.geometry</groupId>
<artifactId>esri-geometry-api</artifactId>
<version>${esri.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-core</artifactId>
<version>${tinkerpop.version}</version>
<exclusions>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
<exclusion>
<groupId>com.carrotsearch</groupId>
<artifactId>hppc</artifactId>
</exclusion>
<exclusion>
<groupId>com.jcabi</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>net.objecthunter</groupId>
<artifactId>exp4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>tinkergraph-gremlin</artifactId>
<version>${tinkerpop.version}</version>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams</artifactId>
<version>${reactive-streams.version}</version>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams-tck</artifactId>
<version>${reactive-streams.version}</version>
</dependency>
<dependency>
<groupId>com.github.stephenc.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>1.0-1</version>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>3.1.12</version>
</dependency>
<dependency>
<groupId>com.squareup</groupId>
<artifactId>javapoet</artifactId>
<version>1.13.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>com.tngtech.java</groupId>
<artifactId>junit-dataprovider</artifactId>
<version>1.13.1</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.28.2</version>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>${rxjava.version}</version>
</dependency>
<dependency>
<groupId>com.datastax.oss.simulacron</groupId>
<artifactId>simulacron-native-server</artifactId>
<version>${simulacron.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>${commons-exec.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>${osgi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>${felix.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-forked</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-mvn</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-wrap</artifactId>
<version>${pax-url.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-reference</artifactId>
<version>${pax-url.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.tinybundles</groupId>
<artifactId>tinybundles</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>${jsr353-ri.version}</version>
</dependency>
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>${jsr353-api.version}</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jax-rs.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jdk-http</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-api</artifactId>
<version>${hk2.version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</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-databind</artifactId>
<version>${jackson-databind.version}</version>
</dependency>
<dependency>
<groupId>com.google.testing.compile</groupId>
<artifactId>compile-testing</artifactId>
<version>0.19</version>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-core</artifactId>
<version>${apacheds.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-protocol-kerberos</artifactId>
<version>${apacheds.version}</version>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-interceptor-kerberos</artifactId>
<version>${apacheds.version}</version>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-protocol-ldap</artifactId>
<version>${apacheds.version}</version>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-ldif-partition</artifactId>
<version>${apacheds.version}</version>
</dependency>
<dependency>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-jdbm-partition</artifactId>
<version>${apacheds.version}</version>
</dependency>
<dependency>
<groupId>org.apache.directory.api</groupId>
<artifactId>api-ldap-codec-standalone</artifactId>
<version>1.0.0-M26</version>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>2.25.0</version>
</dependency>
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>${graalapi.version}</version>
</dependency>
<dependency>
<groupId>org.graalvm.nativeimage</groupId>
<artifactId>svm</artifactId>
<version>${graalapi.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>org.eclipse.microprofile.metrics</groupId>
<artifactId>microprofile-metrics-api</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>io.smallrye</groupId>
<artifactId>smallrye-metrics</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-bom</artifactId>
<version>2020.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.projectreactor.tools</groupId>
<artifactId>blockhound</artifactId>
<version>1.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>io.projectreactor.tools</groupId>
<artifactId>blockhound-junit-platform</artifactId>
<version>1.0.8.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>com.coveo</groupId>
<artifactId>fmt-maven-plugin</artifactId>
<version>2.9</version>
</plugin>
<plugin>
<groupId>au.com.acegi</groupId>
<artifactId>xml-format-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.3</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<!-- See console.scala in the submodules -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<scalaVersion>2.11</scalaVersion>
<args>
<arg>-i</arg>
<arg>console.scala</arg>
</args>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.1</version>
</plugin>
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<version>0.10.5</version>
<configuration>
<outputNonIdentifyingDifferenceInfo>false</outputNonIdentifyingDifferenceInfo>
<versionFormat>\d+\.\d+\.\d+</versionFormat>
<analysisConfiguration>
<revapi.ignore>
<item>
<!-- We don't consider this a problem -->
<code>java.class.externalClassExposedInAPI</code>
</item>
</revapi.ignore>
</analysisConfiguration>
<oldArtifacts>
<!-- The previous release used DataStax groupId, remove this after the next release -->
<artifact>com.datastax.oss:${project.artifactId}:RELEASE</artifact>
</oldArtifacts>
</configuration>
<dependencies>
<dependency>
<groupId>org.revapi</groupId>
<artifactId>revapi-java</artifactId>
<version>0.22.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.2.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<source>1.8</source>
<target>1.8</target>
<compilerArgs combine.children="override">
<compilerArg>-Xep:FutureReturnValueIgnored:OFF</compilerArg>
<compilerArg>-Xep:PreferJavaTimeOverload:OFF</compilerArg>
<compilerArg>-Xep:AnnotateFormatMethod:OFF</compilerArg>
<compilerArg>-Xep:WildcardImport:WARN</compilerArg>
<compilerArg>-XepExcludedPaths:.*/target/(?:generated-sources|generated-test-sources)/.*</compilerArg>
</compilerArgs>
<showWarnings>true</showWarnings>
<failOnWarning>true</failOnWarning>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.3.4</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.coveo</groupId>
<artifactId>fmt-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>au.com.acegi</groupId>
<artifactId>xml-format-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xml-check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>.idea/**</exclude>
<exclude>**/target/**</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/.flattened-pom.xml</exclude>
<exclude>docs/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<inlineHeader><![CDATA[
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.]]></inlineHeader>
<includes>
<include>src/**/*.java</include>
<include>src/**/*.xml</include>
<include>src/**/*.properties</include>
<include>**/pom.xml</include>
</includes>
<excludes>
<exclude>src/**/native-image.properties</exclude>
<exclude>**/src/main/config/ide/**</exclude>
</excludes>
<mapping>
<java>SLASHSTAR_STYLE</java>
<properties>SCRIPT_STYLE</properties>
</mapping>
<strictCheck>true</strictCheck>
</configuration>
<executions>
<execution>
<id>check-license</id>
<phase>initialize</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<logback.configurationFile>${project.basedir}/src/test/resources/logback-test.xml</logback.configurationFile>
</systemPropertyVariables>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
</properties>
<skip>${skipUnitTests}</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<logback.configurationFile>${project.basedir}/src/test/resources/logback-test.xml</logback.configurationFile>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
<skipLocalStaging>true</skipLocalStaging>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<excludes>
<exclude>LICENSE_binary</exclude>
<exclude>NOTICE_binary.txt</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<verbose>false</verbose>
<quiet>true</quiet>
<doclint>all,-missing</doclint>
<excludePackageNames>com.datastax.*.driver.internal*</excludePackageNames>
<tags>
<tag>
<name>apiNote</name>
<placement>a</placement>
<head>API note:</head>
</tag>
<!--
For custom `leaks-private-api` tag (apparently dash separators are not handled
correctly)
-->
<tag>
<name>leaks</name>
<placement>X</placement>
</tag>
</tags>
</configuration>
<executions>
<execution>
<!-- Check that our "official" API (api.* packages) does not leak unwanted types -->
<id>check-api-leaks</id>
<goals>
<goal>javadoc</goal>
</goals>
<phase>process-classes</phase>
<configuration>
<doclet>com.datastax.oss.doclet.ApiPlumber</doclet>
<docletArtifact>
<groupId>com.datastax.oss</groupId>
<artifactId>api-plumber-doclet</artifactId>
<version>1.0.0</version>
</docletArtifact>
<additionalJOptions>
<!-- API types do not leak internal types -->
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.datastax.oss.driver.internal</additionalparam>
<additionalparam>com.datastax.dse.driver.internal</additionalparam>
<!-- Shaded dependencies (Guava, Netty, etc.) -->
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.datastax.oss.driver.shaded</additionalparam>
<!--
Typesafe config: implementation detail, can be excluded if the user wrote a custom
DriverConfig implementation.
-->
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.typesafe.config</additionalparam>
<!--
DropWizard metrics: can be excluded if metrics are disabled, or the user plugged
another framework.
-->
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.codahale.metrics</additionalparam>
<!--
HDR Histogram: implementation detail of Timer metrics, can be excluded if they are
all disabled.
-->
<additionalparam>-preventleak</additionalparam>
<additionalparam>org.HdrHistogram</additionalparam>
<!-- Netty: implementation detail, only tweakable via internal classes. -->
<additionalparam>-preventleak</additionalparam>
<additionalparam>io.netty</additionalparam>
<!-- JNR: can be excluded, the driver will fallback to non-native alternatives -->
<additionalparam>-preventleak</additionalparam>
<additionalparam>jnr</additionalparam>
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.kenai.constantine</additionalparam>
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.kenai.jffi</additionalparam>
<additionalparam>-preventleak</additionalparam>
<additionalparam>com.kenai.jnr</additionalparam>
<!-- Compression libraries: optional dependencies -->
<additionalparam>-preventleak</additionalparam>
<additionalparam>net.jpountz</additionalparam>
<additionalparam>-preventleak</additionalparam>
<additionalparam>org.xerial.snappy</additionalparam>
</additionalJOptions>
<useStandardDocletOptions>false</useStandardDocletOptions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagNameFormat>@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
<!-- Our integration tests are too long to run during a release, we run them in CI -->
<arguments>-DskipITs</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Version>${project.version}</Bundle-Version>
<_include>-osgi.bnd</_include>
</instructions>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>bundle</supportedProjectType>
<supportedProjectType>pom</supportedProjectType>
</supportedProjectTypes>
</configuration>
</plugin>
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<configuration>
<analysisConfigurationFiles>
<!-- Present at the root of each module that doesn't skip this goal -->
<analysisConfigurationFile>revapi.json</analysisConfigurationFile>
</analysisConfigurationFiles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.7.0</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Speeds up `mvn install` when testing something locally -->
<id>fast</id>
<properties>
<license.skip>true</license.skip>
<fmt.skip>true</fmt.skip>
<xml-format.skip>true</xml-format.skip>
<skipTests>true</skipTests>
<jacoco.skip>true</jacoco.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<maven.source.skip>true</maven.source.skip>
<revapi.skip>true</revapi.skip>
</properties>
</profile>
<!-- Use $JAVA_HOME as the default JDK to run surefire/failsafe to maintain portability -->
<profile>
<id>test-jdk-environment</id>
<activation>
<property>
<name>!testJavaHome</name>
</property>
</activation>
<properties>
<testing.jvm>${env.JAVA_HOME}</testing.jvm>
</properties>
</profile>
<!-- set -DtestJavaHome=/path/to/jdk/home to use a different JDK for surefire/failsafe -->
<profile>
<id>test-jdk-specified</id>
<activation>
<property>
<name>testJavaHome</name>
</property>
</activation>
<properties>
<testing.jvm>${testJavaHome}</testing.jvm>
</properties>
</profile>
<profile>
<!-- workarounds for running tests with JDK1.8 -->
<id>test-jdk-8</id>
<activation>
<jdk>[8,)</jdk>
</activation>
</profile>
<profile>
<!-- workarounds for running tests with JDK11 -->
<id>test-jdk-11</id>
<activation>
<jdk>[11,)</jdk>
</activation>
</profile>
<profile>
<!-- workarounds for running tests with JDK17 -->
<id>test-jdk-17</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<properties>
<!-- for DriverBlockHoundIntegrationIT when using JDK 13+, see https://github.com/reactor/BlockHound/issues/33 -->
<blockhound.argline>-XX:+AllowRedefinitionToAddDeleteMethods</blockhound.argline>
<!-- allow deep reflection for mockito when using JDK 17+, see https://stackoverflow.com/questions/70993863/mockito-can-not-mock-random-in-java-17 -->
<mockitoopens.argline>--add-opens java.base/jdk.internal.util.random=ALL-UNNAMED</mockitoopens.argline>
</properties>
</profile>
</profiles>
<distributionManagement>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<licenses>
<license>
<name>Apache 2</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>Apache License Version 2.0</comments>
</license>
</licenses>
<scm>
<connection>scm:git:git@github.com:datastax/java-driver.git</connection>
<developerConnection>scm:git:git@github.com:datastax/java-driver.git</developerConnection>
<url>https://github.com/datastax/java-driver</url>
<tag>4.18.0</tag>
</scm>
<developers>
<developer>
<name>Various</name>
<organization>DataStax</organization>
</developer>
</developers>
</project>