Changelog

1.9.0

  • [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.

1.8.2

  • [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.

1.8.1

Merged from OSS 3.x:

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

1.8.0

  • [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.

1.7.0

  • [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.

1.6.9

Merged from 1.2.x:

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

1.6.8

  • [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.

1.6.7

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

1.6.6

Merged from OSS 3.x:

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

1.6.5

  • [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.

1.6.4

Merged from 1.5.x:

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

1.6.3

  • [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 2.7.9.2 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.

1.6.2

  • [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.

1.6.1

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

1.6.0

  • [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.

1.5.1

Merged from DSE 1.2.x:

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

1.5.0

  • [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 2.7.9.2 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.

1.4.0

  • [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.

1.3.0

  • [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.

1.2.7

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

1.2.6

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

1.2.5

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

1.2.4

  • [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.

1.2.3

  • [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.

1.2.2

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

1.2.1

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

1.2.0

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

1.2.0-rc3

  • [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.

1.2.0-rc2

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

1.2.0-rc1

  • [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.

1.2.0-eap5

  • [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+.

1.2.0-eap4

  • [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.

1.2.0-eap3

  • [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.

1.2.0-eap2

  • [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

1.1.1-beta1

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

1.1.0

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

1.0.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.

1.0.0-eap5

  • [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.

1.0.0-eap4

  • [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.

1.0.0-eap3

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

1.0.0-eap2

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

1.0.0-eap1

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