java-driver-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.datastax.oss</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.17.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright DataStax, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project 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>
<groupId>com.datastax.oss</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.17.0</version>
<packaging>pom</packaging>
<name>DataStax Java driver for Apache Cassandra(R)</name>
<description>A driver for Apache Cassandra(R) 2.1+ that works exclusively with the Cassandra Query Language version 3 (CQL3) and Cassandra's native protocol versions 3 and above.</description>
<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</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>
<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>
<slf4j.version>1.7.26</slf4j.version>
<reactive-streams.version>1.0.3</reactive-streams.version>
<json.version>20230227</json.version>
<jackson.version>2.13.2</jackson.version>
<jackson-databind.version>2.13.2.2</jackson-databind.version>
<legacy-jackson.version>1.9.12</legacy-jackson.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>6.0.3</felix.version>
<pax-exam.version>4.13.4</pax-exam.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>2.22.2</surefire.version>
<graalapi.version>22.0.0.2</graalapi.version>
<skipTests>false</skipTests>
<skipUnitTests>${skipTests}</skipUnitTests>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.datastax.oss</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>
<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>2.6.3</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-reference</artifactId>
<version>2.6.2</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>
</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>-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[
Copyright DataStax, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.]]></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>
</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>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<header><![CDATA[<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TWSQ28');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TWSQ28"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->]]></header>
<additionalOptions>
<additionalOption>--allow-script-in-comments</additionalOption>
</additionalOptions>
</configuration>
</execution>
<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>
</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.17.0</tag>
</scm>
<developers>
<developer>
<name>Various</name>
<organization>DataStax</organization>
</developer>
</developers>
</project>