Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
432e107
CASSANDRA-19635: Run integration tests with C* 5.x
lukasz-antoniak May 16, 2024
811acb2
CASSANDRA-19635: Configure Jenkins to run integration tests with C* 5.x
lukasz-antoniak Jun 4, 2024
85bb406
update badge URL to org.apache.cassandra/java-driver-core
bschoening Jun 4, 2024
d0a1e44
Limit calls to Conversions.resolveExecutionProfile
chibenwa Jan 22, 2023
a17f7be
autolink JIRA tickets in commit messages
smiklosovic Aug 22, 2024
0962794
Don't return empty routing key when partition key is unbound
akhaku Nov 21, 2022
e6ae193
JAVA-3167: CompletableFutures.allSuccessful() may return never comple…
lukasz-antoniak Aug 16, 2024
5ee12ac
ninja-fix Various test fixes
Sep 3, 2024
9cfb4f6
Run integration tests with DSE 6.9.0
lukasz-antoniak Sep 5, 2024
c961012
JAVA-3117: Call CcmCustomRule#after if CcmCustomRule#before fails to …
hhughes Aug 23, 2023
77805f5
JAVA-3149: Support request cancellation in request throttler
lukasz-antoniak Sep 2, 2024
4fb5108
Fix C* 3.0 tests failing on Jenkins
lukasz-antoniak Jun 10, 2024
6d3ba47
Reduce lock held duration in ConcurrencyLimitingRequestThrottler
jasonk000 Aug 13, 2024
306bf37
Annotate BatchStatement, Statement, SimpleStatement methods with Chec…
akhaku Sep 30, 2022
8444c79
Remove "beta" support for Java17 from docs
Sep 16, 2024
a40e758
Fix uncaught exception during graceful channel shutdown
christianaistleitner Jun 6, 2024
eb57fd7
Build a public CI for Apache Cassandra Java Driver
SiyaoIsHiding Sep 18, 2024
72c729b
CASSANDRA-19932: Allow to define extensions while creating table
lukasz-antoniak Oct 3, 2024
8ebcd9f
Fix DefaultSslEngineFactory missing null check on close
aratno Oct 15, 2024
f98e343
Query builder support for NOT CQL syntax
absurdfarce Oct 2, 2024
dfe11a8
Fix CustomCcmRule to drop `CURRENT` flag no matter what
dkropachev Sep 14, 2024
7877837
JAVA-3051: Memory leak
SiyaoIsHiding Oct 30, 2024
a4175f3
Automate latest Cassandra versions when running CI
SiyaoIsHiding Oct 28, 2024
01c6151
Refactor integration tests to support multiple C* distributions. Test…
lukasz-antoniak Sep 8, 2024
e843786
Fix TableMetadata.describe() when containing a vector column
smiklosovic Oct 23, 2024
62cea5a
Move Apache Cassandra 5.x off of beta1 and remove some older Apache C…
absurdfarce Nov 6, 2024
a322ca2
Update link to Jira to be CASSJAVA
jeromatron Nov 27, 2024
7bc085b
Move DataStax shaded Guava module into Java driver
lukasz-antoniak Nov 6, 2024
7ca013f
JAVA-3057 Allow decoding a UDT that has more fields than expected
akhaku Apr 22, 2023
6a8674f
CASSJAVA-55 Remove setting "Host" header for metadata requests.
absurdfarce Nov 11, 2024
7689c5a
JAVA-3118: Add support for vector data type in Schema Builder, QueryB…
SiyaoIsHiding Jan 7, 2025
8c10099
Upgrade Guava to 33.3.1-jre
lukasz-antoniak Dec 23, 2024
75a269d
Do not always cleanup Guava shaded module before packaging
lukasz-antoniak Dec 30, 2024
01671d9
Revert "Do not always cleanup Guava shaded module before packaging"
lukasz-antoniak Jan 10, 2025
342e2dc
Conditionally compile shaded Guava module
lukasz-antoniak Jan 10, 2025
2e0c44c
JAVA-3143: Extend driver vector support to arbitrary subtypes and fix…
SiyaoIsHiding Jan 26, 2025
04d34a8
JAVA-3168 Copy node info for contact points on initial node refresh o…
jahstreet Jan 30, 2025
eac7b24
JAVA-3055: Prevent PreparedStatement cache to be polluted if a reques…
lucboutier Nov 3, 2023
64b3568
Expose a decorator for CqlPrepareAsyncProcessor cache rather than the…
absurdfarce Feb 3, 2025
94e73d9
ninja-fix Using shaded Guava classes for import in order to make OSGi…
absurdfarce Feb 5, 2025
610b91b
Changelog updates for 4.19.0
absurdfarce Feb 4, 2025
46444ea
[maven-release-plugin] prepare release 4.19.0
absurdfarce Feb 6, 2025
90612f6
[maven-release-plugin] prepare for next development iteration
absurdfarce Feb 6, 2025
3bb5b18
CASSJAVA-80: Support configuration to disable DNS reverse-lookups for…
aratno Feb 13, 2025
7982f41
ninja-fix Minor fix to CASSJAVA-80 change. Adding new entries to Def…
absurdfarce Mar 3, 2025
c0cae9b
CASSJAVA-90 Update native-protocol version
absurdfarce Mar 25, 2025
204dd09
CASSJAVA-40: Driver testing against Java 21
SiyaoIsHiding Mar 31, 2025
529d56e
Add support for Java21 builds to test runs (plus a few other small cl…
absurdfarce Mar 31, 2025
f42ab99
Upgrade Netty to 4.1.119
aratno Feb 10, 2025
c43efd4
ninja-fix Update revapi to key off of the artifact ID (and group ID)
absurdfarce Apr 9, 2025
0115cd6
Prevent long overflow in SNI address resolution
lukasz-antoniak Apr 11, 2025
7161d12
ninja-fix Revert docker image name (CASSJAVA-40)
SiyaoIsHiding Apr 24, 2025
d7e8297
Make guava an optional dependency of java-driver-guava-shaded
tolbertam Feb 6, 2025
eb54934
Bump Jackson version to la(te)st 2.13, 2.13.5
cowtowncoder Nov 16, 2024
53bb5c8
CASSJAVA-68 Improve DefaultCodecRegisry.CacheKey#hashCode() to elimin…
tatu-at-datastax Nov 16, 2024
c9facc3
ninja-fix Format fix for previous commit
SiyaoIsHiding May 6, 2025
bb9bb11
Add SubnetAddressTranslator to translate Cassandra node IPs from priv…
Jun 12, 2025
29d3531
Fix revapi surious complaints about optional dependencies
aratno May 20, 2025
f49e19b
ninja-fix: updating OS label in Jenkinsfile after upgrade to Focal fo…
absurdfarce Jul 7, 2025
17ebe60
ninja-fix: openjdk@1.17.0 instead of openjdk@17 for ASF CI
SiyaoIsHiding Jul 14, 2025
ddd6f03
Remove unnecessary locking in DefaultNettyOptions
jasonk000 Mar 17, 2025
f32069b
CASSJAVA-89 fix: support schema options that changed in Cassandra 5.0
Mar 21, 2025
7e21eb2
Eliminate lock in ConcurrencyLimitingRequestThrottler
jasonk000 Feb 3, 2025
69eebb9
Change groupId in README
isopov Jul 28, 2025
05e6717
manual: correct the codeblock directive
tchaikov Jul 12, 2024
ff2d7f2
CASSJAVA-92: Local DC provided for nodetool clientstats
lukasz-antoniak Apr 14, 2025
e2c7ad4
CASSJAVA-97: Let users inject an ID for each request and write to the…
SiyaoIsHiding Apr 15, 2025
104751c
Changelog entries for 4.19.1
absurdfarce Oct 14, 2025
77b2bae
[maven-release-plugin] prepare release 4.19.1
tolbertam Oct 14, 2025
f631081
[maven-release-plugin] prepare for next development iteration
tolbertam Oct 14, 2025
8f69c24
CASSJAVA-116: Retry or Speculative Execution with RequestIdGenerator …
SiyaoIsHiding Nov 10, 2025
19c60c0
Changelog updates for 4.19.2
absurdfarce Nov 13, 2025
30b05bd
[maven-release-plugin] prepare release 4.19.2
absurdfarce Nov 13, 2025
c42c300
Merge commit '30b05bd7991617b212b8089787fe9ca829d00154' of https://gi…
nikagra May 18, 2026
25c08fe
chore: bump version to 4.19.2.0-SNAPSHOT
nikagra May 18, 2026
bbc972c
fix: resolve merge conflicts from apache/cassandra-java-driver 4.19.2
nikagra May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,4 @@ Apache Cassandra, Apache, Tomcat, Lucene, Solr, Hadoop, Spark, TinkerPop, and Ca
trademarks of the [Apache Software Foundation](http://www.apache.org/) or its subsidiaries in
Canada, the United States and/or other countries.

Binary artifacts of this product bundle Java Native Runtime libraries, which is available under the Eclipse Public License version 2.0.
Binary artifacts of this product bundle Java Native Runtime libraries, which is available under the Eclipse Public License version 2.0.
20 changes: 10 additions & 10 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<parent>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</parent>
<artifactId>java-driver-bom</artifactId>
<packaging>pom</packaging>
Expand All @@ -38,47 +38,47 @@
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-core</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-core-shaded</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-mapper-processor</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-mapper-runtime</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-query-builder</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-guava-shaded</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-test-infra</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-metrics-micrometer</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-metrics-microprofile</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.scylladb</groupId>
Expand Down
22 changes: 22 additions & 0 deletions changelog/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@ under the License.

<!-- Note: contrary to 3.x, insert new entries *first* in their section -->

### 4.19.2

- [bug] CASSJAVA-116: Retry or Speculative Execution with RequestIdGenerator throws "Duplicate Key"

### 4.19.1

- [improvement] CASSJAVA-97: Let users inject an ID for each request and write to the custom payload
- [improvement] CASSJAVA-92: Add Local DC to driver connection info and provide visibility with nodetool clientstats
- [bug] PR 2025: Eliminate lock in ConcurrencyLimitingRequestThrottler
- [improvement] CASSJAVA-89: Fix deprecated table configs in Cassandra 5
- [improvement] PR 2028: Remove unnecessary locking in DefaultNettyOptions
- [improvement] CASSJAVA-102: Fix revapi spurious complaints about optional dependencies
- [improvement] PR 2013: Add SubnetAddressTranslator
- [improvement] CASSJAVA-68: Improve DefaultCodecRegistry.CacheKey#hashCode() to eliminate Object[] allocation
- [improvement] PR 1989: Bump Jackson version to la(te)st 2.13.x, 2.13.5
- [improvement] CASSJAVA-76: Make guava an optional dependency of java-driver-guava-shaded
- [bug] PR 2035: Prevent long overflow in SNI address resolution
- [improvement] CASSJAVA-77: 4.x: Upgrade Netty to 4.1.119
- [improvement] CASSJAVA-40: Driver testing against Java 21
- [improvement] CASSJAVA-90: Update native-protocol
- [improvement] CASSJAVA-80: Support configuration to disable DNS reverse-lookups for SAN validation

### 4.19.0

- [bug] JAVA-3055: Prevent PreparedStatement cache to be polluted if a request is cancelled.
Expand Down
2 changes: 1 addition & 1 deletion core-shaded/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<parent>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</parent>
<artifactId>java-driver-core-shaded</artifactId>
<name>Java driver for Scylla and Apache Cassandra(R) - core with shaded deps</name>
Expand Down
2 changes: 1 addition & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<parent>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-parent</artifactId>
<version>4.19.0.10-SNAPSHOT</version>
<version>4.19.2.0-SNAPSHOT</version>
</parent>
<artifactId>java-driver-core</artifactId>
<packaging>bundle</packaging>
Expand Down
30 changes: 28 additions & 2 deletions core/revapi.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// Configures Revapi (https://revapi.org/getting-started.html) to check API compatibility between
// successive driver versions.
{
"revapi": {
"java": {
Expand Down Expand Up @@ -7383,6 +7381,34 @@
"old": "method <T extends java.lang.Number> com.datastax.oss.driver.api.core.type.reflect.GenericType<com.datastax.oss.driver.api.core.data.CqlVector<T>> com.datastax.oss.driver.api.core.type.reflect.GenericType<T>::vectorOf(java.lang.Class<T>)",
"new": "method <T> com.datastax.oss.driver.api.core.type.reflect.GenericType<com.datastax.oss.driver.api.core.data.CqlVector<T>> com.datastax.oss.driver.api.core.type.reflect.GenericType<T>::vectorOf(java.lang.Class<T>)",
"justification": "JAVA-3143: Extend driver vector support to arbitrary subtypes and fix handling of variable length types (OSS C* 5.0)"
},
{
"code": "java.class.nonPublicPartOfAPI",
"old": "class com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverExecutionProfile.Base",
"justification": "CASSJAVA-102: Fix spurious complaints about optional dependencies"
},
{
"code": "java.class.nonPublicPartOfAPI",
"old": "class com.fasterxml.jackson.databind.type.TypeParser.MyTokenizer",
"justification": "CASSJAVA-102: Fix spurious complaints about optional dependencies"
},
{
"code": "java.class.nonPublicPartOfAPI",
"old": "class org.apache.tinkerpop.shaded.jackson.databind.type.TypeParser.MyTokenizer",
"justification": "CASSJAVA-102: Fix spurious complaints about optional dependencies"
},
{
"code": "java.class.externalClassExposedInAPI",
"justification": "CASSJAVA-102: Migrate revapi config into dedicated config files, ported from pom.xml"
},
{
"code": "java.method.varargOverloadsOnlyDifferInVarargParameter",
"justification": "CASSJAVA-102: Migrate revapi config into dedicated config files, ported from pom.xml"
},
{
"code": "java.method.addedToInterface",
"new": "method java.util.Optional<com.datastax.oss.driver.api.core.tracker.RequestIdGenerator> com.datastax.oss.driver.api.core.context.DriverContext::getRequestIdGenerator()",
"justification": "CASSJAVA-97: Let users inject an ID for each request and write to the custom payload"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1119,7 +1119,61 @@ public enum DefaultDriverOption implements DriverOption {
*
* <p>Value type: boolean
*/
CLIENT_ROUTES_SHARD_AWARENESS_ENABLED("advanced.client-routes.shard-awarness-enabled");
CLIENT_ROUTES_SHARD_AWARENESS_ENABLED("advanced.client-routes.shard-awarness-enabled"),

/**
* Whether or not to do a DNS reverse-lookup of provided server addresses for SAN addresses.
*
* <p>Value-type: boolean
*/
SSL_ALLOW_DNS_REVERSE_LOOKUP_SAN("advanced.ssl-engine-factory.allow-dns-reverse-lookup-san"),
/**
* The class of session-wide component that generates request IDs.
*
* <p>Value-type: {@link String}
*/
REQUEST_ID_GENERATOR_CLASS("advanced.request-id.generator.class"),
/**
* An address to always translate all node addresses to that same proxy hostname no matter what IP
* address a node has, but still using its native transport port.
*
* <p>Value-Type: {@link String}
*/
ADDRESS_TRANSLATOR_ADVERTISED_HOSTNAME("advanced.address-translator.advertised-hostname"),
/**
* A map of Cassandra node subnets (CIDR notations) to target addresses, for example (note quoted
* keys):
*
* <pre>
* advanced.address-translator.subnet-addresses {
* "100.64.0.0/15" = "cassandra.datacenter1.com:9042"
* "100.66.0.0/15" = "cassandra.datacenter2.com:9042"
* # IPv6 example:
* # "::ffff:6440:0/111" = "cassandra.datacenter1.com:9042"
* # "::ffff:6442:0/111" = "cassandra.datacenter2.com:9042"
* }
* </pre>
*
* Note: subnets must be represented as prefix blocks, see {@code
* inet.ipaddr.Address#isPrefixBlock()}.
*
* <p>Value type: {@link java.util.Map Map}&#60;{@link String},{@link String}&#62;
*/
ADDRESS_TRANSLATOR_SUBNET_ADDRESSES("advanced.address-translator.subnet-addresses"),
/**
* A default address to fallback to if Cassandra node IP isn't contained in any of the configured
* subnets.
*
* <p>Value-Type: {@link String}
*/
ADDRESS_TRANSLATOR_DEFAULT_ADDRESS("advanced.address-translator.default-address"),
/**
* Whether to resolve the addresses on initialization (if true) or on each node (re-)connection
* (if false). Defaults to false.
*
* <p>Value-Type: boolean
*/
ADDRESS_TRANSLATOR_RESOLVE_ADDRESSES("advanced.address-translator.resolve-addresses");

private final String path;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,10 @@ public String toString() {
*/
public static final TypedDriverOption<Boolean> SSL_HOSTNAME_VALIDATION =
new TypedDriverOption<>(DefaultDriverOption.SSL_HOSTNAME_VALIDATION, GenericType.BOOLEAN);

public static final TypedDriverOption<Boolean> SSL_ALLOW_DNS_REVERSE_LOOKUP_SAN =
new TypedDriverOption<>(
DefaultDriverOption.SSL_ALLOW_DNS_REVERSE_LOOKUP_SAN, GenericType.BOOLEAN);
/** The location of the keystore file. */
public static final TypedDriverOption<String> SSL_KEYSTORE_PATH =
new TypedDriverOption<>(DefaultDriverOption.SSL_KEYSTORE_PATH, GenericType.STRING);
Expand Down Expand Up @@ -296,6 +300,10 @@ public String toString() {
new TypedDriverOption<>(
DefaultDriverOption.REQUEST_TRACKER_CLASSES, GenericType.listOf(String.class));

/** The class of a session-wide component that generates request IDs. */
public static final TypedDriverOption<String> REQUEST_ID_GENERATOR_CLASS =
new TypedDriverOption<>(DefaultDriverOption.REQUEST_ID_GENERATOR_CLASS, GenericType.STRING);

/** Whether to log successful requests. */
public static final TypedDriverOption<Boolean> REQUEST_LOGGER_SUCCESS_ENABLED =
new TypedDriverOption<>(
Expand Down Expand Up @@ -923,6 +931,20 @@ public String toString() {
DefaultDriverOption.LOAD_BALANCING_DC_FAILOVER_ALLOW_FOR_LOCAL_CONSISTENCY_LEVELS,
GenericType.BOOLEAN);

public static final TypedDriverOption<String> ADDRESS_TRANSLATOR_ADVERTISED_HOSTNAME =
new TypedDriverOption<>(
DefaultDriverOption.ADDRESS_TRANSLATOR_ADVERTISED_HOSTNAME, GenericType.STRING);
public static final TypedDriverOption<Map<String, String>> ADDRESS_TRANSLATOR_SUBNET_ADDRESSES =
new TypedDriverOption<>(
DefaultDriverOption.ADDRESS_TRANSLATOR_SUBNET_ADDRESSES,
GenericType.mapOf(GenericType.STRING, GenericType.STRING));
public static final TypedDriverOption<String> ADDRESS_TRANSLATOR_DEFAULT_ADDRESS =
new TypedDriverOption<>(
DefaultDriverOption.ADDRESS_TRANSLATOR_DEFAULT_ADDRESS, GenericType.STRING);
public static final TypedDriverOption<Boolean> ADDRESS_TRANSLATOR_RESOLVE_ADDRESSES =
new TypedDriverOption<>(
DefaultDriverOption.ADDRESS_TRANSLATOR_RESOLVE_ADDRESSES, GenericType.BOOLEAN);

/**
* Ordered preference list of remote dcs optionally supplied for automatic failover and included
* in query plan. This feature is enabled only when max-nodes-per-remote-dc is greater than 0.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import com.datastax.oss.driver.api.core.specex.SpeculativeExecutionPolicy;
import com.datastax.oss.driver.api.core.ssl.SslEngineFactory;
import com.datastax.oss.driver.api.core.time.TimestampGenerator;
import com.datastax.oss.driver.api.core.tracker.RequestIdGenerator;
import com.datastax.oss.driver.api.core.tracker.RequestTracker;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.util.Map;
Expand Down Expand Up @@ -139,6 +140,10 @@ default SpeculativeExecutionPolicy getSpeculativeExecutionPolicy(@NonNull String
@NonNull
RequestTracker getRequestTracker();

/** @return The driver's request ID generator; never {@code null}. */
@NonNull
Optional<RequestIdGenerator> getRequestIdGenerator();

/** @return The driver's request throttler; never {@code null}. */
@NonNull
RequestThrottler getRequestThrottler();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.datastax.oss.driver.api.core.tracker.RequestTracker;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.Nullable;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;
import java.util.Queue;
Expand Down Expand Up @@ -76,6 +77,12 @@ default Optional<RequestTracker> getRequestTracker() {
*/
void init(@NonNull Map<UUID, Node> nodes, @NonNull DistanceReporter distanceReporter);

/** Returns map containing details that impact C* node connectivity. */
@NonNull
default Map<String, ?> getStartupConfiguration() {
return Collections.emptyMap();
}

/**
* Returns the coordinators to use for a new query.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.datastax.oss.driver.api.core.metadata.NodeStateListener;
import com.datastax.oss.driver.api.core.metadata.schema.SchemaChangeListener;
import com.datastax.oss.driver.api.core.ssl.SslEngineFactory;
import com.datastax.oss.driver.api.core.tracker.RequestIdGenerator;
import com.datastax.oss.driver.api.core.tracker.RequestTracker;
import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
import com.datastax.oss.driver.api.core.type.codec.registry.MutableCodecRegistry;
Expand Down Expand Up @@ -60,6 +61,7 @@ public static Builder builder() {
private final NodeStateListener nodeStateListener;
private final SchemaChangeListener schemaChangeListener;
private final RequestTracker requestTracker;
private final RequestIdGenerator requestIdGenerator;
private final Map<String, String> localDatacenters;
private final Map<String, Predicate<Node>> nodeFilters;
private final Map<String, NodeDistanceEvaluator> nodeDistanceEvaluators;
Expand All @@ -79,6 +81,7 @@ private ProgrammaticArguments(
@Nullable NodeStateListener nodeStateListener,
@Nullable SchemaChangeListener schemaChangeListener,
@Nullable RequestTracker requestTracker,
@Nullable RequestIdGenerator requestIdGenerator,
@NonNull Map<String, String> localDatacenters,
@NonNull Map<String, Predicate<Node>> nodeFilters,
@NonNull Map<String, NodeDistanceEvaluator> nodeDistanceEvaluators,
Expand All @@ -97,6 +100,7 @@ private ProgrammaticArguments(
this.nodeStateListener = nodeStateListener;
this.schemaChangeListener = schemaChangeListener;
this.requestTracker = requestTracker;
this.requestIdGenerator = requestIdGenerator;
this.localDatacenters = localDatacenters;
this.nodeFilters = nodeFilters;
this.nodeDistanceEvaluators = nodeDistanceEvaluators;
Expand Down Expand Up @@ -132,6 +136,11 @@ public RequestTracker getRequestTracker() {
return requestTracker;
}

@Nullable
public RequestIdGenerator getRequestIdGenerator() {
return requestIdGenerator;
}

@NonNull
public Map<String, String> getLocalDatacenters() {
return localDatacenters;
Expand Down Expand Up @@ -205,6 +214,7 @@ public static class Builder {
private NodeStateListener nodeStateListener;
private SchemaChangeListener schemaChangeListener;
private RequestTracker requestTracker;
private RequestIdGenerator requestIdGenerator;
private ImmutableMap.Builder<String, String> localDatacentersBuilder = ImmutableMap.builder();
private final ImmutableMap.Builder<String, Predicate<Node>> nodeFiltersBuilder =
ImmutableMap.builder();
Expand Down Expand Up @@ -304,6 +314,12 @@ public Builder addRequestTracker(@NonNull RequestTracker requestTracker) {
return this;
}

@NonNull
public Builder withRequestIdGenerator(@Nullable RequestIdGenerator requestIdGenerator) {
this.requestIdGenerator = requestIdGenerator;
return this;
}

@NonNull
public Builder withLocalDatacenter(
@NonNull String profileName, @NonNull String localDatacenter) {
Expand Down Expand Up @@ -433,6 +449,7 @@ public ProgrammaticArguments build() {
nodeStateListener,
schemaChangeListener,
requestTracker,
requestIdGenerator,
localDatacentersBuilder.build(),
nodeFiltersBuilder.build(),
nodeDistanceEvaluatorsBuilder.build(),
Expand Down
Loading
Loading