2.4.0 => use Datastax Java Driver for Apache Cassandra® 4.4.0 instead

As of the 4.4.0 release of the Datastax Java Driver for Apache Cassandra® (OSS Driver), the Datastax Enterprise Java Driver (DSE driver) functionality has been merged into this single, Datastax driver. Please refer to the blog post for more information on this change.

We won’t publish new DSE driver versions beyond 2.3.x.


Depends on OSS driver 4.3.0.

  • [documentation] JAVA-2468: Publish javadocs for DSE mapper runtime classes
  • [improvement] JAVA-2514: Honor legacy system property dse.sasl.protocol in GssApi auth provider
  • [documentation] JAVA-2482: Clarify backpressure propagation between client and server
  • [documentation] JAVA-2437: Fix reactive examples showcasing application-level retries
  • [improvement] JAVA-2459: Improve extensibility of existing load balancing policies
  • [improvement] JAVA-2480: Upgrade Jackson to 2.10.0
  • [improvement] JAVA-2407: Improve handling of logback configuration files in IDEs
  • [bug] JAVA-2481: Don’t propagate errors from InsightsClient
  • [bug] JAVA-2433: Handle undefined local DC in InsightsClient
  • [bug] JAVA-2507: Default timestamp in GraphStatementBuilderBase to Long.MIN_VALUE
  • [bug] JAVA-2493: Fix DseUpdateIT test
  • [improvement] JAVA-2398: Improve support for optional dependencies in OSGi
  • [bug] JAVA-2411: Fix DseSessionBuilderBase type parameter hierarchy


Depends on OSS driver 4.2.2.


Depends on OSS driver 4.2.1.

  • [documentation] JAVA-2453: Document expected types on DseDriverOption


Depends on OSS driver 4.2.0.

  • [bug] JAVA-2354: Fix missing dependencies in shaded JAR
  • [improvement] JAVA-2391: Provide base classes for custom DSE auth providers
  • [improvement] JAVA-2392: Introduce a parent DSE session builder class
  • [new feature] JAVA-2296: Add reactive execution support to the DSE mapper
  • [bug] JAVA-2387: ReactiveResultSet secondary publishers may block if subscribed to too early
  • [improvement] JAVA-2315: Improve extensibility of session builder
  • [improvement] JAVA-2370: Remove auto-service plugin from mapper processor


Depends on OSS driver 4.1.0.

  • [improvement] JAVA-2316: Reduce log level when Insights events fail to be sent
  • [bug] JAVA-2309: Pass log prefix when invoking the request tracker from DSE handlers


Depends on OSS driver 4.1.0.

  • [documentation] JAVA-2213: Add 2.x docs for DSE Driver Authentication
  • [new feature]: JAVA-2227: Add DSE object mapper
  • [bug] JAVA-2304: Avoid direct calls to ByteBuffer.array()
  • [documentation] JAVA-2220: Emphasize that query builder is now a separate artifact in root README
  • [new feature] JAVA-2092: Implement client startup events
  • [new feature] JAVA-2095: Implement client status events


Depends on OSS driver 4.0.1.

  • [new feature] JAVA-2201: Expose a public API for programmatic config
  • [new feature] JAVA-2205: Expose public factory methods for alternative config loaders
  • [improvement] JAVA-2197: Skip deployment of integration tests to Maven central


Depends on OSS driver 4.0.0.

  • [documentation] JAVA-2188: Document DSE load balancing policy
  • [improvement] JAVA-2192: Don’t return generic types with wildcards
  • [bug] JAVA-2166: Use programmatic local datacenter in DSE LBP
  • [improvement] JAVA-2018: Check backward compatibility with Revapi
  • [improvement] JAVA-2190: Use @CheckReturnValue in DSE-specific types
  • [bug] JAVA-2185: Handle DOWN nodes in DseLoadBalancingPolicy.init
  • [documentation] JAVA-2068: Add documentation for the reactive request processor
  • [improvement] JAVA-2156: Don’t have ContinuousReactiveSession extend ReactiveSession


  • [improvement] JAVA-2152: Drop “Dsl” suffix from query builder main classes
  • [bug] JAVA-2087: Reactive execution of CAS request throws IllegalStateException
  • [improvement] JAVA-2133: Revisit function and aggregate statements in SchemaBuilderDsl
  • [improvement] JAVA-2130: Create DseQueryBuilderDsl
  • [improvement] JAVA-2121: Expose query metadata in reactive result sets
  • [improvement] JAVA-2067: Publish javadocs JAR for the shaded module
  • [new feature] JAVA-1993: Consider supporting sets in GraphNode


  • [new feature] JAVA-2065: Support virtual tables (aka system views)
  • [new feature] JAVA-1703: Reactive request processor
  • [bug] JAVA-2019: Allow config file loading from system properties
  • [new feature] JAVA-1997: Generate distribution tarball


  • [improvement] JAVA-1985: Revisit auth provider options to follow existing conventions
  • [new feature] JAVA-1705: Add graph request processor
  • [improvement] JAVA-1984: Remove pre-fetching from ContinuousResultSet API
  • [new feature] JAVA-1699: Create default load balancing policy for DSE driver 2
  • [new feature] JAVA-1959: Support proxy authentication
  • [improvement] JAVA-1962: Expose DseSession.DSE_DRIVER_COORDINATES and log driver version on first use
  • [bug] JAVA-1831: Revisit configuration inheritance
  • [new feature] JAVA-1954: Honor Node targeting for continuous queries
  • [improvement] JAVA-1957: Revisit GeoTypes API
  • [new feature] JAVA-1932: Add DSE-specific options to Startup message
  • [new feature] JAVA-1704: Add continuous paging processor
  • [new feature] JAVA-1782: Add DETERMINISTIC and MONOTONIC Clauses for Function and Aggregate
  • [new feature] JAVA-1882: Create DateRange type
  • [improvement] JAVA-1804: Use concurrency annotations
  • [improvement] JAVA-1915: Expose DSE-specific subtypes for schema metadata
  • [improvement] JAVA-1766: Revisit nullability
  • [improvement] JAVA-1787: Use standalone shaded Guava artifact
  • [new feature] JAVA-1702: Add DSE authenticators
  • [new feature] JAVA-1696: Plug in DSE-specific protocol versions
  • [improvement] JAVA-1697: Expose DSE-specific node properties
  • [improvement] JAVA-1701: Create GeoTypes
  • [improvement] JAVA-1708: Add support for org.apache.cassandra.location.EverywhereStrategy
  • [improvement] JAVA-1707: Run java-driver-integration-tests with integration tests
  • [new feature] JAVA-1698: Create reference.conf
  • [new feature] JAVA-1700: Create custom RequestProcessorRegistry
  • [new feature] JAVA-1695: Create cluster and session wrappers


  • [bug] JAVA-2511: DsePlainTextAuthenticator should support SNI endpoints.

Merged from OSS 3.x:

  • [new feature] JAVA-2356: Support for DataStax Cloud API.
  • [improvement] JAVA-2483: Allow to provide secure bundle via URL.
  • [improvement] JAVA-2499: Allow to read the secure bundle from an InputStream.
  • [improvement] JAVA-2457: Detect CaaS and change default consistency.
  • [improvement] JAVA-2485: Add errors for Cloud misconfiguration.
  • [documentation] JAVA-2504: Migrate Cloud “getting started” page to driver manual.
  • [improvement] JAVA-2516: Enable hostname validation with Cloud
  • [bug] JAVA-2515: NEW_NODE and REMOVED_NODE events should trigger ADDED and REMOVED.


  • [bug] JAVA-2285: Add missing DseCluster.Builder overrides.
  • [new feature] JAVA-2091: Implement client startup events.
  • [new feature] JAVA-2094: Implement client status events.
  • [improvement] JAVA-2317: Reduce log level when Insights events fail to be sent.

Merged from OSS 3.x:

  • [bug] JAVA-2193: Fix flaky tests in WarningsTest.
  • [bug] JAVA-2249: Stop stripping trailing zeros in ByteOrderedTokens.
  • [bug] JAVA-1492: Don’t immediately reuse busy connections for another request.
  • [bug] JAVA-2198: Handle UDTs with names that clash with collection types.
  • [bug] JAVA-2204: Avoid memory leak when client holds onto a stale TableMetadata instance.


Merged from OSS 3.x:

  • [bug] JAVA-2174: Metadata.needsQuote should accept empty strings.


  • [bug] JAVA-2120: Prevent race condition on Continuous Paging failures.
  • [documentation] JAVA-2051: Update Native Protocol documentation page to include new DSE versions.
  • [improvement] JAVA-1892: Update TinkerPop to 3.4.

Merged from OSS 3.x:

  • [improvement] JAVA-2025: Include exception message in Abstract*Codec.accepts(null).
  • [improvement] JAVA-1980: Use covariant return types in RemoteEndpointAwareJdkSSLOptions.Builder methods.
  • [documentation] JAVA-2062: Document frozen collection preference with Mapper.
  • [bug] JAVA-2071: Fix NPE in ArrayBackedRow.toString().
  • [bug] JAVA-2070: Call onRemove instead of onDown when rack and/or DC information changes for a host.
  • [improvement] JAVA-1256: Log parameters of BuiltStatement in QueryLogger.
  • [documentation] JAVA-2074: Document preference for LZ4 over Snappy.
  • [bug] JAVA-1612: Include netty-common jar in binary tarball.
  • [improvement] JAVA-2003: Simplify CBUtil internal API to improve performance.
  • [improvement] JAVA-2002: Reimplement TypeCodec.accepts to improve performance.
  • [documentation] JAVA-2041: Deprecate cross-DC failover in DCAwareRoundRobinPolicy.
  • [documentation] JAVA-1159: Document workaround for using tuple with udt field in Mapper.
  • [documentation] JAVA-1964: Complete remaining “Coming Soon” sections in docs.
  • [improvement] JAVA-1950: Log server side warnings returned from a query.
  • [improvement] JAVA-2123: Allow to use QueryBuilder for building queries against Materialized Views.
  • [bug] JAVA-2082: Avoid race condition during cluster close and schema refresh.


  • [improvement] JAVA-1933: Send client name, application name and version in STARTUP message.

Merged from OSS 3.x:

  • [improvement] JAVA-1394: Add request-queue-depth metric.
  • [bug] JAVA-1872: Retain table’s views when processing table update.
  • [improvement] JAVA-1857: Add Statement.setHost.
  • [bug] JAVA-1920: Use nanosecond precision in LocalTimeCodec#format().
  • [bug] JAVA-1794: Driver tries to create a connection array of size -1.
  • [new feature] JAVA-1899: Support virtual tables.
  • [bug] JAVA-1908: TableMetadata.asCQLQuery does not add table option ‘memtable_flush_period_in_ms’ in the generated query.
  • [bug] JAVA-1924: StatementWrapper setters should return the wrapping statement.
  • [new feature] JAVA-1532: Add Codec support for Java 8’s LocalDateTime and ZoneId.
  • [improvement] JAVA-1786: Use Google code formatter.
  • [bug] JAVA-1871: Change LOCAL_SERIAL.isDCLocal() to return true.
  • [documentation] JAVA-1902: Clarify unavailable & request error in DefaultRetryPolicy javadoc.
  • [new feature] JAVA-1903: Add WhiteListPolicy.ofHosts.
  • [bug] JAVA-1928: Fix GuavaCompatibility for Guava 26.
  • [bug] JAVA-1935: Add null check in QueryConsistencyException.getHost.
  • [improvement] JAVA-1771: Send driver name and version in STARTUP message.
  • [improvement] JAVA-1388: Add dynamic port discovery for system.peers_v2.
  • [documentation] JAVA-1810: Note which setters are not propagated to PreparedStatement.
  • [bug] JAVA-1944: Surface Read and WriteFailureException to RetryPolicy.
  • [bug] JAVA-1211: Fix NPE in cluster close when cluster init fails.
  • [bug] JAVA-1220: Fail fast on cluster init if previous init failed.
  • [bug] JAVA-1929: Preempt session execute queries if session was closed.

Merged from 1.6.x:

  • [bug] JAVA-1953: Allow Distance to be Serializable.


Merged from 1.2.x:

  • [bug] JAVA-1953: Allow Distance to be Serializable.


  • [bug] JAVA-1888: Don’t throw exception on prepare when keyspace set on Statement.

Merged from OSS 3.5.x:

  • [bug] JAVA-1872: Retain table’s views when processing table update.


  • [improvement] JAVA-1809: Update TinkerPop dependency to the latest 3.3 line (3.3.3).


Merged from OSS 3.x:

  • [bug] JAVA-1797: Use jnr-ffi version required by jnr-posix.


  • [bug] JAVA-1757: Fix race condition in MultiResponseRequestHandler.
  • [new feature] JAVA-1781: Add DETERMINISTIC and MONOTONIC clauses for Function and Aggregate.
  • [improvement] JAVA-1783: Include artifact pom files in tarball distribution.

Merged from OSS 3.x:

  • [improvement] JAVA-1448: TokenAwarePolicy should respect child policy ordering.
  • [bug] JAVA-1751: Include defaultTimestamp length in encodedSize for protocol version >= 3.
  • [bug] JAVA-1770: Fix message size when using Custom Payload.
  • [documentation] JAVA-1760: Add metrics documentation.
  • [improvement] JAVA-1765: Update dependencies to latest patch versions.
  • [improvement] JAVA-1752: Deprecate DowngradingConsistencyRetryPolicy.
  • [improvement] JAVA-1735: Log driver version on first use.
  • [documentation] JAVA-1380: Add FAQ entry for errors arising from incompatibilities.
  • [improvement] JAVA-1748: Support IS NOT NULL and != in query builder.
  • [documentation] JAVA-1740: Mention C*2.2/3.0 incompatibilities in paging state manual.
  • [improvement] JAVA-1725: Add a getNodeCount method to CCMAccess for easier automation.
  • [new feature] JAVA-708: Add means to measure request sizes.
  • [documentation] JAVA-1788: Add example for enabling host name verification to SSL docs.
  • [improvement] JAVA-1791: Revert “JAVA-1677: Warn if auth is configured on the client but not the server.”
  • [bug] JAVA-1789: Account for flags in Prepare encodedSize.


Merged from 1.5.x:

  • [bug] JAVA-1744: Fix SearchPredicate phrase and tokenize bugs.
  • [improvement] JAVA-1749: Make SASL properties configurable in DseGSSAPIAuthProvider.


  • [new feature] JAVA-1718: Add NodeSync table option to SchemaBuilder.
  • [improvement] JAVA-1724: Fix regressions from JAVA-1692 for 1.6.

Merged from 1.5.x:

  • [bug] JAVA-1692: Fix regressions from JAVA-1329.
  • [improvement] JAVA-1671: Remove unnecessary test on prepared statement metadata.
  • [bug] JAVA-1694: Upgrade to jackson-databind to address CVE-2015-15095.
  • [documentation] JAVA-1685: Clarify recommendation on preparing SELECT *.
  • [improvement] JAVA-1679: Improve error message on batch log write timeout.
  • [improvement] JAVA-1672: Remove schema agreement check when repreparing on up.
  • [improvement] JAVA-1677: Warn if auth is configured on the client but not the server.
  • [new feature] JAVA-1651: Add NO_COMPACT startup option.
  • [improvement] JAVA-1683: Add metrics to track writes to nodes.
  • [new feature] JAVA-1229: Allow specifying the keyspace for individual queries.
  • [improvement] JAVA-1682: Provide a way to record latencies for cancelled speculative executions.
  • [improvement] JAVA-1717: Add metrics to latency-aware policy.


  • [bug] JAVA-1666: Fix keyspace export when a UDT has case-sensitive field names.
  • [improvement] JAVA-1670: Support user-provided JMX ports for CCMBridge.
  • [improvement] JAVA-1661: Avoid String.toLowerCase if possible in Metadata.
  • [improvement] JAVA-1659: Expose low-level flusher tuning options.
  • [improvement] JAVA-1660: Support netty-transport-native-epoll in OSGi container.


  • [bug] JAVA-1663: Fix prepared conditional updates.


  • [new feature] JAVA-1610: Add DSE_V2 protocol.
  • [new feature] JAVA-1580: Support new ‘nodesync’ option.
  • [documentation] JAVA-1479: Update README.
  • [new feature] JAVA-1311: Create a fluent way of batching updates to graph.
  • [new feature] JAVA-1603: Send keyspace option per-query.
  • [documentation] JAVA-1549: Clarify API docs for .fromGeoJson() geometry types.
  • [improvement] JAVA-1196: Include hash of result set metadata in prepared statement id.
  • [improvement] JAVA-1644: Use DsePlainTextAuthProvider for DseCluster.withCredentials.
  • [bug] JAVA-1653: Always use metadata from first ROWS response for Continuous Paging.
  • [improvement] JAVA-1620: Expose ports and server_id in Host metadata.

Merged from OSS 3.x:

  • [bug] JAVA-1555: Include VIEW and CDC in WriteType.
  • [bug] JAVA-1599: exportAsString improvements (sort, format, clustering order)
  • [improvement] JAVA-1587: Deterministic ordering of columns used in Mapper#saveQuery
  • [improvement] JAVA-1500: Add a metric to report number of in-flight requests.
  • [bug] JAVA-1438: QueryBuilder check for empty orderings.
  • [improvement] JAVA-1490: Allow zero delay for speculative executions.
  • [documentation] JAVA-1607: Add FAQ entry for netty-transport-native-epoll.
  • [bug] JAVA-1630: Fix Metadata.addIfAbsent.
  • [improvement] JAVA-1619: Update QueryBuilder methods to support Iterable input.
  • [improvement] JAVA-1527: Expose host_id and schema_version on Host metadata.
  • [new feature] JAVA-1377: Add support for TWCS in SchemaBuilder.
  • [improvement] JAVA-1631: Publish a sources jar for driver-core-tests.
  • [improvement] JAVA-1632: Add a withIpPrefix(String) method to CCMBridge.Builder.
  • [bug] JAVA-1639: VersionNumber does not fullfill equals/hashcode contract.


Merged from DSE 1.2.x:

  • [bug] JAVA-1744: Fix SearchPredicate phrase and tokenize bugs.
  • [improvement] JAVA-1749: Make SASL properties configurable in DseGSSAPIAuthProvider.


  • [improvement] JAVA-1675: Remove dates from copyright headers.
  • [bug] JAVA-1692: Fix regressions from JAVA-1329.

Merged from OSS 3.x:

  • [improvement] JAVA-1671: Remove unnecessary test on prepared statement metadata.
  • [bug] JAVA-1694: Upgrade to jackson-databind to address CVE-2015-15095.
  • [documentation] JAVA-1685: Clarify recommendation on preparing SELECT *.
  • [improvement] JAVA-1679: Improve error message on batch log write timeout.
  • [improvement] JAVA-1672: Remove schema agreement check when repreparing on up.
  • [improvement] JAVA-1677: Warn if auth is configured on the client but not the server.
  • [new feature] JAVA-1651: Add NO_COMPACT startup option.
  • [improvement] JAVA-1683: Add metrics to track writes to nodes.
  • [new feature] JAVA-1229: Allow specifying the keyspace for individual queries.
  • [improvement] JAVA-1682: Provide a way to record latencies for cancelled speculative executions.
  • [improvement] JAVA-1717: Add metrics to latency-aware policy.


  • [documentation] JAVA-1543: Update Contributing guide for DSE driver.
  • [bug] JAVA-1578: Cannot connect without credentials to a DSE cluster with transitional mode set to normal.
  • [improvement] JAVA-1467: Handle bulked results in Graph.
  • [bug] JAVA-1540: DefaultVertex toString() prints DefaultElement.
  • [improvement] JAVA-1476: Improve GraphSON2 ser/de performance.
  • [bug] JAVA-1512: Mapper.checkNotInEventLoop does not work with DseSession.
  • [bug] JAVA-1472: Creating more than one DseCluster in single process produces WARNs in logs.
  • [new feature] JAVA-1475: Allow users to implement DSLs with GLVs.

Merged from OSS 3.x:

  • [documentation] JAVA-1550: FAQ Entry for BusyPoolException.


  • [new feature] JAVA-1329: Use “graph-results” payload option for the GraphSON format.
  • [improvement] JAVA-1460: Add speculative execution number to ExecutionInfo.
  • [bug] JAVA-1428: Update non-required dependencies that have security vulnerabilities.
  • [bug] JAVA-1425: Upgrade to Jackson 2.8.8.
  • [improvement] JAVA-1454: Handle async Tinkerpop traversal natively with the Driver.

Merged from OSS 3.x:

  • [bug] JAVA-1469: Update LoggingRetryPolicy to deal with SLF4J-353.
  • [improvement] JAVA-1203: Upgrade Metrics to allow usage in OSGi.
  • [bug] JAVA-1407: KeyspaceMetadata exportAsString should export user types in topological sort order.
  • [bug] JAVA-1455: Mapper support using unset for null values.
  • [bug] JAVA-1464: Allow custom codecs with non public constructors in @Param.
  • [bug] JAVA-1470: Querying multiple pages overrides WrappedStatement.
  • [documentation] JAVA-1463: Revisit speculative execution docs.
  • [documentation] JAVA-1466: Revisit timestamp docs.
  • [documentation] JAVA-1445: Clarify how nodes are penalized in LatencyAwarePolicy docs.
  • [improvement] JAVA-1446: Support ‘DEFAULT UNSET’ in Query Builder JSON Insert.
  • [improvement] JAVA-1443: Add groupBy method to Select statement.
  • [improvement] JAVA-1458: Check thread in mapper sync methods.
  • [improvement] JAVA-1488: Upgrade Netty to 4.0.47.Final.
  • [improvement] JAVA-1431: Improve error handling during pool initialization.
  • [bug] JAVA-1613: Fix broken shaded Netty detection in NettyUtil.


  • [bug] JAVA-1953: Allow Distance to be Serializable.


  • [bug] JAVA-1744: Fix SearchPredicate phrase and tokenize bugs.
  • [improvement] JAVA-1749: Make SASL properties configurable in DseGSSAPIAuthProvider.


  • [bug] JAVA-1730: Reset connection auto-read on cancel or completion of Continuous Paging request.


  • [bug] JAVA-1447: Avoid NPE when checking GraphNode type.
  • [documentation] JAVA-1451: Apache TinkerPop client integration doc updates.
  • [improvement] JAVA-1452: Provide external links to Apache TinkerPop in javadoc.
  • [improvement] JAVA-1453: Change call to TinkerIoRegistry#instance() to the backward compatible one.
  • [improvement] JAVA-1427: DseGSSAPIAuthProvider should provide method for existing Subject.
  • [documentation] JAVA-1331: “g not defined” graph error topic in FAQ.
  • [bug] JAVA-1432: Check null results in Row-to-TinkerPop/GraphSON2 function.


  • [bug] JAVA-1433: Remove infinite recursion in Graph elements toString().

Merged from OSS 3.x:

  • [new feature] JAVA-1174: Add ifNotExists option to mapper.
  • [improvement] JAVA-1414: Optimize Metadata.escapeId and Metadata.handleId.
  • [improvement] JAVA-1310: Make mapper’s ignored properties configurable.
  • [improvement] JAVA-1316: Add strategy for resolving properties into CQL names.
  • [bug] JAVA-1429: Prevent heartbeats until connection is fully initialized.


  • [improvement] Add integration tests for graph predicates.
  • [improvement] Add code examples for proxy auth and graph.


  • [bug] JAVA-1424: Handle new WRITE_FAILURE and READ_FAILURE format in DSE v1 protocol.


  • [bug] JAVA-1421: Use Optimal string alignment distance algorithm for fuzzy predicates.


  • [improvement] JAVA-1416: Use haversine distance in Geo predicates.

Merged from OSS 3.x:

  • [bug] JAVA-1415: Correctly report if a UDT column is frozen.
  • [bug] JAVA-1418: Make Guava version detection more reliable.


  • revert JAVA-1241 (go back to Netty 4.0)


  • [bug] JAVA-1406: Handle unprepared error in continuous paging.
  • [improvement] JAVA-1409: Upgrade to tinkerpop 3.2.4.

Merged from OSS 3.x:

  • [new feature] JAVA-1364: Enable creation of SSLHandler with remote address information.
  • [improvement] JAVA-1308: CodecRegistry performance improvements.
  • [improvement] JAVA-1241: Upgrade Netty to 4.1.x.
  • [improvement] JAVA-1287: Add CDC to TableOptionsMetadata and Schema Builder.
  • [improvement] JAVA-1392: Reduce lock contention in RPTokenFactory.
  • [improvement] JAVA-1328: Provide compatibility with Guava 20.
  • [improvement] JAVA-1247: Disable idempotence warnings.
  • [improvement] JAVA-1286: Support setting and retrieving udt fields in QueryBuilder.
  • [bug] JAVA-1404: Fix min token handling in TokenRange.contains.


  • [bug] JAVA-1390: Preserve original error when a continuous paging query times out on the client.
  • [improvement] JAVA-1391: Fail if batch children use proxy auth.
  • [improvement] JAVA-1319: Add support for DSE DateRangeType.

Merged from OSS 3.1.x:

  • [bug] JAVA-1313: Copy SerialConsistencyLevel to PreparedStatement.
  • [documentation] JAVA-1334: Clarify documentation of method addContactPoints.
  • [improvement] JAVA-1357: Document that getReplicas only returns replicas of the last token in range.

Cherry-picked from OSS 3.x:

  • [new feature] JAVA-1362: Send query options flags as [int] for Protocol V5+.
  • [bug] JAVA-1397: Handle duration as native datatype in protocol v5+.


  • [bug] JAVA-1374: Reintroduce Geo.inside(V).
  • [improvement] JAVA-1372: Expose routing token instead of range.
  • [new feature] JAVA-1381: Add Units to Geo.inside() predicates.
  • [improvement] JAVA-1375: Improve error management for continuous queries
  • [bug] JAVA-1383: Add java-dse-graph and dependencies to tarball.

Merged from OSS 3.1.x:

  • [bug] JAVA-1371: Reintroduce connection pool timeout.
  • [bug] JAVA-1346: Reset heartbeat only on client reads (not writes).
  • [improvement] JAVA-866: Support tuple notation in QueryBuilder.eq/in.

Cherry-picked from OSS 3.x:

  • [new feature] JAVA-1248: Implement “beta” flag for native protocol v5.
  • [improvement] JAVA-1367: Make protocol negotiation more resilient.


  • [new feature] JAVA-1347: Add support for duration type.
  • [bug] JAVA-1358: Add getCenter/getRadius to Distance.
  • [improvement] JAVA-1354: Expose workload set from DSE node metadata.
  • [new feature] JAVA-1343: Add Time() and Date() types for Graph.
  • [new feature] JAVA-1338: Add new fuzzy/tokenFuzzy and phrase predicates in Graph.


  • [improvement] JAVA-1335: Show Row-Level Access Control in DSE CQL metadata.
  • [bug] JAVA-1330: Add un/register for SchemaChangeListener in DelegatingCluster
  • [bug] JAVA-1351: Include Custom Payload in Request.copy.
  • [improvement] JAVA-1264: Provide support for ProxyAuthentication.
  • [bug] JAVA-1341: Handle null row in GraphSON 2.0 results


  • [improvement] JAVA-1250: Provide a Fluent API for DSE Graph.


  • [improvement] JAVA-1251: Update to depend on cassandra-driver-core 3.1.0.


  • [improvement] JAVA-1222: Add GraphStatement.setIdempotent.
  • [improvement] JAVA-1225: Log warnings about the new retry policy behavior.
  • [bug] JAVA-1230: Force Well-Known Binary encoding to little-endian.


  • [bug] JAVA-1183: Change default traversal source to ‘g’.
  • [improvement] JAVA-1081: Vertex Properties don’t handle multiple cardinality / rich properties.
  • [improvement] JAVA-1146: Graph module serde improvements.
  • [improvement] JAVA-1125: Improvements to Path class.
  • [improvement] JAVA-1066: Enable per-GraphStatement and GraphOptions socket timeouts.


  • [new feature] JAVA-1098: Route graph analytics queries to the Spark master.
  • [bug] JAVA-1076: Handle WKT ‘EMPTY’ keyword in Geospatial types.
  • [improvement] JAVA-1106: Remove Circle type.
  • [improvement] JAVA-1129: Don’t expose graph alias in user API.
  • [improvement] JAVA-1104: Expose methods to set CLs and Timestamp on GraphStatement.


  • [new feature] JAVA-1107: add Geometry#contains().


  • [new feature] JAVA-1080: Expose automatic inference of GraphResult.


  • [new feature] JAVA-1022: Geospatial types.
  • [new feature] JAVA-864: Initial graph integration.
  • [improvement] JAVA-1024: Allow overriding of default JAAS login configuration.