diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 00000000000..a0859c3da6c --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,34 @@ +name: "CI Docs" + +on: + push: + branches: + - latest + tags: + - '**' +jobs: + release: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + persist-credentials: false + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: Set up Doxygen + run: sudo apt-get install doxygen + - name: Build Sphinx docs + run: | + export PATH=$PATH:~/.local/bin + cd docs + make multiversion + - name: Deploy + run : ./docs/_utils/deploy.sh + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LATEST_VERSION: latest diff --git a/.gitignore b/.gitignore index 7cf0248307f..b631491efeb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,10 @@ testing/ .settings .classpath .project -doc -docs +docs/_build +docs/_source +html +latex notes .DS_Store diff --git a/README-dev.rst b/README-dev.rst new file mode 100644 index 00000000000..666b760dd47 --- /dev/null +++ b/README-dev.rst @@ -0,0 +1,36 @@ +Building the Docs +================= + +*Note*: The docs build instructions have been tested with Sphinx 2.4.4 and Fedora 32. + +To build and preview the docs locally, you will need to install the following software: + +- `Git `_ +- `Python 3.7 `_ +- `pip `_ +- `doxygen `_ + +Run the following command to build the docs. + +.. code:: console + + cd docs + make preview + +Once the command completes processing, open http://127.0.0.1:5500/ with your preferred browser. + +Building multiple documentation versions +======================================== + +Build Sphinx docs for all the versions defined in ``docs/conf.py``. + +The multiverson command does not build doxygen docs. + +``` +cd docs +make multiversion +``` + +Then, open ``docs/_build/dirhtml//index.html`` with your preferred browser. + +**NOTE:** If you only can see docs generated for the master branch, try to run ``git fetch --tags`` to download the latest tags from remote. diff --git a/changelog/README.md b/changelog/README.md index 45cefceff26..2fc74c44480 100644 --- a/changelog/README.md +++ b/changelog/README.md @@ -5,17 +5,17 @@ 3.x versions get published. --> -## 3.10.1 +### 3.10.1 - [bug] JAVA-2857: Fix NPE when built statements without parameters are logged at TRACE level. - [bug] JAVA-2843: Successfully parse DSE table schema in OSS driver. -## 3.10.0 +### 3.10.0 - [improvement] JAVA-2676: Don't reschedule flusher after empty runs - [new feature] JAVA-2772: Support new protocol v5 message format -## 3.9.0 +### 3.9.0 - [bug] JAVA-2627: Avoid logging error message including stack trace in request handler. - [new feature] JAVA-2706: Add now_in_seconds to protocol v5 query messages. @@ -23,7 +23,7 @@ - [improvement] JAVA-2702: Transient Replication Support for Cassandra® 4.0 -## 3.8.0 +### 3.8.0 - [new feature] JAVA-2356: Support for DataStax Cloud API. - [improvement] JAVA-2483: Allow to provide secure bundle via URL. @@ -45,1622 +45,1621 @@ ### 3.7.1 -- [bug] JAVA-2174: Metadata.needsQuote should accept empty strings. -- [bug] JAVA-2193: Fix flaky tests in WarningsTest. +- ``[bug]`` JAVA-2174: Metadata.needsQuote should accept empty strings. ### 3.7.0 -- [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-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. ### 3.6.0 -- [improvement] JAVA-1394: Add request-queue-depth metric. -- [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. +- ``[improvement]`` JAVA-1394: Add request-queue-depth metric. +- ``[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 3.5.x: -- [bug] JAVA-1872: Retain table's views when processing table update. +- ``[bug]`` JAVA-1872: Retain table's views when processing table update. ### 3.5.0 -- [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. -- [bug] JAVA-1797: Use jnr-ffi version required by jnr-posix. +- ``[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. +- ``[bug]`` JAVA-1797: Use jnr-ffi version required by jnr-posix. ### 3.4.0 -- [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. -- [improvement] JAVA-1675: Remove dates from copyright headers. +- ``[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. +- ``[improvement]`` JAVA-1675: Remove dates from copyright headers. Merged from 3.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. -- [bug] JAVA-1613: Fix broken shaded Netty detection in NettyUtil. -- [bug] JAVA-1666: Fix keyspace export when a UDT has case-sensitive field names. -- [improvement] JAVA-1196: Include hash of result set metadata in prepared statement id. -- [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-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. +- ``[bug]`` JAVA-1613: Fix broken shaded Netty detection in NettyUtil. +- ``[bug]`` JAVA-1666: Fix keyspace export when a UDT has case-sensitive field names. +- ``[improvement]`` JAVA-1196: Include hash of result set metadata in prepared statement id. +- ``[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. ### 3.3.2 -- [bug] JAVA-1666: Fix keyspace export when a UDT has case-sensitive field names. -- [improvement] JAVA-1196: Include hash of result set metadata in prepared statement id. -- [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-1666: Fix keyspace export when a UDT has case-sensitive field names. +- ``[improvement]`` JAVA-1196: Include hash of result set metadata in prepared statement id. +- ``[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. ### 3.3.1 -- [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. -- [bug] JAVA-1613: Fix broken shaded Netty detection in NettyUtil. +- ``[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. +- ``[bug]`` JAVA-1613: Fix broken shaded Netty detection in NettyUtil. ### 3.3.0 -- [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. -- [improvement] JAVA-1428: Upgrade logback and jackson dependencies. -- [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-1460: Add speculative execution number to ExecutionInfo -- [improvement] JAVA-1431: Improve error handling during pool initialization. +- ``[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. +- ``[improvement]`` JAVA-1428: Upgrade logback and jackson dependencies. +- ``[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-1460: Add speculative execution number to ExecutionInfo +- ``[improvement]`` JAVA-1431: Improve error handling during pool initialization. ### 3.2.0 -- [new feature] JAVA-1347: Add support for duration type. -- [new feature] JAVA-1248: Implement "beta" flag for native protocol v5. -- [new feature] JAVA-1362: Send query options flags as [int] for Protocol V5+. -- [new feature] JAVA-1364: Enable creation of SSLHandler with remote address information. -- [improvement] JAVA-1367: Make protocol negotiation more resilient. -- [bug] JAVA-1397: Handle duration as native datatype in protocol v5+. -- [improvement] JAVA-1308: CodecRegistry performance improvements. -- [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-1415: Correctly report if a UDT column is frozen. -- [bug] JAVA-1418: Make Guava version detection more reliable. -- [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-1424: Handle new WRITE_FAILURE and READ_FAILURE format in v5 protocol. +- ``[new feature]`` JAVA-1347: Add support for duration type. +- ``[new feature]`` JAVA-1248: Implement "beta" flag for native protocol v5. +- ``[new feature]`` JAVA-1362: Send query options flags as ``[int]`` for Protocol V5+. +- ``[new feature]`` JAVA-1364: Enable creation of SSLHandler with remote address information. +- ``[improvement]`` JAVA-1367: Make protocol negotiation more resilient. +- ``[bug]`` JAVA-1397: Handle duration as native datatype in protocol v5+. +- ``[improvement]`` JAVA-1308: CodecRegistry performance improvements. +- ``[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-1415: Correctly report if a UDT column is frozen. +- ``[bug]`` JAVA-1418: Make Guava version detection more reliable. +- ``[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-1424: Handle new WRITE_FAILURE and READ_FAILURE format in v5 protocol. Merged from 3.1.x branch: -- [bug] JAVA-1371: Reintroduce connection pool timeout. -- [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. -- [bug] JAVA-1404: Fix min token handling in TokenRange.contains. -- [bug] JAVA-1429: Prevent heartbeats until connection is fully initialized. +- ``[bug]`` JAVA-1371: Reintroduce connection pool timeout. +- ``[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. +- ``[bug]`` JAVA-1404: Fix min token handling in TokenRange.contains. +- ``[bug]`` JAVA-1429: Prevent heartbeats until connection is fully initialized. ### 3.1.4 Merged from 3.0.x branch: -- [bug] JAVA-1371: Reintroduce connection pool timeout. -- [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. +- ``[bug]`` JAVA-1371: Reintroduce connection pool timeout. +- ``[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. ### 3.1.3 Merged from 3.0.x branch: -- [bug] JAVA-1330: Add un/register for SchemaChangeListener in DelegatingCluster -- [bug] JAVA-1351: Include Custom Payload in Request.copy. -- [bug] JAVA-1346: Reset heartbeat only on client reads (not writes). -- [improvement] JAVA-866: Support tuple notation in QueryBuilder.eq/in. +- ``[bug]`` JAVA-1330: Add un/register for SchemaChangeListener in DelegatingCluster +- ``[bug]`` JAVA-1351: Include Custom Payload in Request.copy. +- ``[bug]`` JAVA-1346: Reset heartbeat only on client reads (not writes). +- ``[improvement]`` JAVA-866: Support tuple notation in QueryBuilder.eq/in. ### 3.1.2 -- [bug] JAVA-1321: Wrong OSGi dependency version for Guava. +- ``[bug]`` JAVA-1321: Wrong OSGi dependency version for Guava. Merged from 3.0.x branch: -- [bug] JAVA-1312: QueryBuilder modifies selected columns when manually selected. -- [improvement] JAVA-1303: Add missing BoundStatement.setRoutingKey(ByteBuffer...) -- [improvement] JAVA-262: Make internal executors customizable +- ``[bug]`` JAVA-1312: QueryBuilder modifies selected columns when manually selected. +- ``[improvement]`` JAVA-1303: Add missing BoundStatement.setRoutingKey(ByteBuffer...) +- ``[improvement]`` JAVA-262: Make internal executors customizable ### 3.1.1 -- [bug] JAVA-1284: ClockFactory should check system property before attempting to load Native class. -- [bug] JAVA-1255: Allow nested UDTs to be used in Mapper. -- [bug] JAVA-1279: Mapper should exclude Groovy's "metaClass" property when looking for mapped properties +- ``[bug]`` JAVA-1284: ClockFactory should check system property before attempting to load Native class. +- ``[bug]`` JAVA-1255: Allow nested UDTs to be used in Mapper. +- ``[bug]`` JAVA-1279: Mapper should exclude Groovy's "metaClass" property when looking for mapped properties Merged from 3.0.x branch: -- [improvement] JAVA-1246: Driver swallows the real exception in a few cases -- [improvement] JAVA-1261: Throw error when attempting to page in I/O thread. -- [bug] JAVA-1258: Regression: Mapper cannot map a materialized view after JAVA-1126. -- [bug] JAVA-1101: Batch and BatchStatement should consider inner statements to determine query idempotence -- [improvement] JAVA-1262: Use ParseUtils for quoting & unquoting. -- [improvement] JAVA-1275: Use Netty's default thread factory -- [bug] JAVA-1285: QueryBuilder routing key auto-discovery should handle case-sensitive column names. -- [bug] JAVA-1283: Don't cache failed query preparations in the mapper. -- [improvement] JAVA-1277: Expose AbstractSession.checkNotInEventLoop. -- [bug] JAVA-1272: BuiltStatement not able to print its query string if it contains mapped UDTs. -- [bug] JAVA-1292: 'Adjusted frame length' error breaks driver's ability to read data. -- [improvement] JAVA-1293: Make DecoderForStreamIdSize.MAX_FRAME_LENGTH configurable. -- [improvement] JAVA-1053: Add a metric for authentication errors -- [improvement] JAVA-1263: Eliminate unnecessary memory copies in FrameCompressor implementations. -- [improvement] JAVA-893: Make connection pool non-blocking +- ``[improvement]`` JAVA-1246: Driver swallows the real exception in a few cases +- ``[improvement]`` JAVA-1261: Throw error when attempting to page in I/O thread. +- ``[bug]`` JAVA-1258: Regression: Mapper cannot map a materialized view after JAVA-1126. +- ``[bug]`` JAVA-1101: Batch and BatchStatement should consider inner statements to determine query idempotence +- ``[improvement]`` JAVA-1262: Use ParseUtils for quoting & unquoting. +- ``[improvement]`` JAVA-1275: Use Netty's default thread factory +- ``[bug]`` JAVA-1285: QueryBuilder routing key auto-discovery should handle case-sensitive column names. +- ``[bug]`` JAVA-1283: Don't cache failed query preparations in the mapper. +- ``[improvement]`` JAVA-1277: Expose AbstractSession.checkNotInEventLoop. +- ``[bug]`` JAVA-1272: BuiltStatement not able to print its query string if it contains mapped UDTs. +- ``[bug]`` JAVA-1292: 'Adjusted frame length' error breaks driver's ability to read data. +- ``[improvement]`` JAVA-1293: Make DecoderForStreamIdSize.MAX_FRAME_LENGTH configurable. +- ``[improvement]`` JAVA-1053: Add a metric for authentication errors +- ``[improvement]`` JAVA-1263: Eliminate unnecessary memory copies in FrameCompressor implementations. +- ``[improvement]`` JAVA-893: Make connection pool non-blocking ### 3.1.0 -- [new feature] JAVA-1153: Add PER PARTITION LIMIT to Select QueryBuilder. -- [improvement] JAVA-743: Add JSON support to QueryBuilder. -- [improvement] JAVA-1233: Update HdrHistogram to 2.1.9. -- [improvement] JAVA-1233: Update Snappy to 1.1.2.6. -- [bug] JAVA-1161: Preserve full time zone info in ZonedDateTimeCodec and DateTimeCodec. -- [new feature] JAVA-1157: Allow asynchronous paging of Mapper Result. -- [improvement] JAVA-1212: Don't retry non-idempotent statements by default. -- [improvement] JAVA-1192: Make EventDebouncer settings updatable at runtime. -- [new feature] JAVA-541: Add polymorphism support to object mapper. -- [new feature] JAVA-636: Allow @Column annotations on getters/setters as well as fields. -- [new feature] JAVA-984: Allow non-void setters in object mapping. -- [new feature] JAVA-1055: Add ErrorAware load balancing policy. +- ``[new feature]`` JAVA-1153: Add PER PARTITION LIMIT to Select QueryBuilder. +- ``[improvement]`` JAVA-743: Add JSON support to QueryBuilder. +- ``[improvement]`` JAVA-1233: Update HdrHistogram to 2.1.9. +- ``[improvement]`` JAVA-1233: Update Snappy to 1.1.2.6. +- ``[bug]`` JAVA-1161: Preserve full time zone info in ZonedDateTimeCodec and DateTimeCodec. +- ``[new feature]`` JAVA-1157: Allow asynchronous paging of Mapper Result. +- ``[improvement]`` JAVA-1212: Don't retry non-idempotent statements by default. +- ``[improvement]`` JAVA-1192: Make EventDebouncer settings updatable at runtime. +- ``[new feature]`` JAVA-541: Add polymorphism support to object mapper. +- ``[new feature]`` JAVA-636: Allow @Column annotations on getters/setters as well as fields. +- ``[new feature]`` JAVA-984: Allow non-void setters in object mapping. +- ``[new feature]`` JAVA-1055: Add ErrorAware load balancing policy. Merged from 3.0.x branch: -- [bug] JAVA-1179: Request objects should be copied when executed. -- [improvement] JAVA-1182: Throw error when synchronous call made on I/O thread. -- [bug] JAVA-1184: Unwrap StatementWrappers when extracting column definitions. -- [bug] JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. -- [improvement] JAVA-1040: SimpleStatement parameters support in QueryLogger. -- [improvement] JAVA-1151: Fail fast if HdrHistogram is not in the classpath. -- [improvement] JAVA-1154: Allow individual Statement to cancel the read timeout. -- [bug] JAVA-1074: Fix documentation around default timestamp generator. -- [improvement] JAVA-1109: Document SSLOptions changes in upgrade guide. -- [improvement] JAVA-1065: Add method to create token from partition key values. -- [improvement] JAVA-1136: Enable JDK signature check in module driver-extras. -- [improvement] JAVA-866: Support tuple notation in QueryBuilder.eq/in. -- [bug] JAVA-1140: Use same connection to check for schema agreement after a DDL query. -- [improvement] JAVA-1113: Support Cassandra 3.4 LIKE operator in QueryBuilder. -- [improvement] JAVA-1086: Support Cassandra 3.2 CAST function in QueryBuilder. -- [bug] JAVA-1095: Check protocol version for custom payload before sending the query. -- [improvement] JAVA-1133: Add OSGi headers to cassandra-driver-extras. -- [bug] JAVA-1137: Incorrect string returned by DataType.asFunctionParameterString() for collections and tuples. -- [bug] JAVA-1046: (Dynamic)CompositeTypes need to be parsed as string literal, not blob. -- [improvement] JAVA-1164: Clarify documentation on Host.listenAddress and broadcastAddress. -- [improvement] JAVA-1171: Add Host method to determine if DSE Graph is enabled. -- [improvement] JAVA-1069: Bootstrap driver-examples module. -- [documentation] JAVA-1150: Add example and FAQ entry about ByteBuffer/BLOB. -- [improvement] JAVA-1011: Expose PoolingOptions default values. -- [improvement] JAVA-630: Don't process DOWN events for nodes that have active connections. -- [improvement] JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. -- [improvement] JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. -- [bug] JAVA-1068: Unwrap StatementWrappers when hashing the paging state. -- [improvement] JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. -- [improvement] JAVA-879: Mapper.map() accepts mapper-generated and user queries. -- [bug] JAVA-1100: Exception when connecting with shaded java driver in OSGI -- [bug] JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. -- [bug] JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. -- [improvement] JAVA-923: Position idempotent flag on object mapper queries. -- [bug] JAVA-1070: The Mapper should not prepare queries synchronously. -- [new feature] JAVA-982: Introduce new method ConsistencyLevel.isSerial(). -- [bug] JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. -- [improvement] JAVA-852: Ignore peers with null entries during discovery. -- [bug] JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. -- [bug] JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. -- [bug] JAVA-1072: Ensure defunct connections are properly evicted from the pool. -- [bug] JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). +- ``[bug]`` JAVA-1179: Request objects should be copied when executed. +- ``[improvement]`` JAVA-1182: Throw error when synchronous call made on I/O thread. +- ``[bug]`` JAVA-1184: Unwrap StatementWrappers when extracting column definitions. +- ``[bug]`` JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. +- ``[improvement]`` JAVA-1040: SimpleStatement parameters support in QueryLogger. +- ``[improvement]`` JAVA-1151: Fail fast if HdrHistogram is not in the classpath. +- ``[improvement]`` JAVA-1154: Allow individual Statement to cancel the read timeout. +- ``[bug]`` JAVA-1074: Fix documentation around default timestamp generator. +- ``[improvement]`` JAVA-1109: Document SSLOptions changes in upgrade guide. +- ``[improvement]`` JAVA-1065: Add method to create token from partition key values. +- ``[improvement]`` JAVA-1136: Enable JDK signature check in module driver-extras. +- ``[improvement]`` JAVA-866: Support tuple notation in QueryBuilder.eq/in. +- ``[bug]`` JAVA-1140: Use same connection to check for schema agreement after a DDL query. +- ``[improvement]`` JAVA-1113: Support Cassandra 3.4 LIKE operator in QueryBuilder. +- ``[improvement]`` JAVA-1086: Support Cassandra 3.2 CAST function in QueryBuilder. +- ``[bug]`` JAVA-1095: Check protocol version for custom payload before sending the query. +- ``[improvement]`` JAVA-1133: Add OSGi headers to cassandra-driver-extras. +- ``[bug]`` JAVA-1137: Incorrect string returned by DataType.asFunctionParameterString() for collections and tuples. +- ``[bug]`` JAVA-1046: (Dynamic)CompositeTypes need to be parsed as string literal, not blob. +- ``[improvement]`` JAVA-1164: Clarify documentation on Host.listenAddress and broadcastAddress. +- ``[improvement]`` JAVA-1171: Add Host method to determine if DSE Graph is enabled. +- ``[improvement]`` JAVA-1069: Bootstrap driver-examples module. +- ``[documentation]`` JAVA-1150: Add example and FAQ entry about ByteBuffer/BLOB. +- ``[improvement]`` JAVA-1011: Expose PoolingOptions default values. +- ``[improvement]`` JAVA-630: Don't process DOWN events for nodes that have active connections. +- ``[improvement]`` JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. +- ``[improvement]`` JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. +- ``[bug]`` JAVA-1068: Unwrap StatementWrappers when hashing the paging state. +- ``[improvement]`` JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. +- ``[improvement]`` JAVA-879: Mapper.map() accepts mapper-generated and user queries. +- ``[bug]`` JAVA-1100: Exception when connecting with shaded java driver in OSGI +- ``[bug]`` JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. +- ``[bug]`` JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. +- ``[improvement]`` JAVA-923: Position idempotent flag on object mapper queries. +- ``[bug]`` JAVA-1070: The Mapper should not prepare queries synchronously. +- ``[new feature]`` JAVA-982: Introduce new method ConsistencyLevel.isSerial(). +- ``[bug]`` JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. +- ``[improvement]`` JAVA-852: Ignore peers with null entries during discovery. +- ``[bug]`` JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. +- ``[bug]`` JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. +- ``[bug]`` JAVA-1072: Ensure defunct connections are properly evicted from the pool. +- ``[bug]`` JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). Merged from 2.1 branch: -- [improvement] JAVA-1038: Fetch node info by rpc_address if its broadcast_address is not in system.peers. -- [improvement] JAVA-888: Add cluster-wide percentile tracker. -- [improvement] JAVA-963: Automatically register PercentileTracker from components that use it. -- [new feature] JAVA-1019: SchemaBuilder support for CREATE/ALTER/DROP KEYSPACE. -- [bug] JAVA-727: Allow monotonic timestamp generators to drift in the future + use microsecond precision when possible. -- [improvement] JAVA-444: Add Java process information to UUIDs.makeNode() hash. +- ``[improvement]`` JAVA-1038: Fetch node info by rpc_address if its broadcast_address is not in system.peers. +- ``[improvement]`` JAVA-888: Add cluster-wide percentile tracker. +- ``[improvement]`` JAVA-963: Automatically register PercentileTracker from components that use it. +- ``[new feature]`` JAVA-1019: SchemaBuilder support for CREATE/ALTER/DROP KEYSPACE. +- ``[bug]`` JAVA-727: Allow monotonic timestamp generators to drift in the future + use microsecond precision when possible. +- ``[improvement]`` JAVA-444: Add Java process information to UUIDs.makeNode() hash. ### 3.0.7 -- [bug] JAVA-1371: Reintroduce connection pool timeout. -- [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. +- ``[bug]`` JAVA-1371: Reintroduce connection pool timeout. +- ``[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. ### 3.0.6 -- [bug] JAVA-1330: Add un/register for SchemaChangeListener in DelegatingCluster -- [bug] JAVA-1351: Include Custom Payload in Request.copy. -- [bug] JAVA-1346: Reset heartbeat only on client reads (not writes). -- [improvement] JAVA-866: Support tuple notation in QueryBuilder.eq/in. +- ``[bug]`` JAVA-1330: Add un/register for SchemaChangeListener in DelegatingCluster +- ``[bug]`` JAVA-1351: Include Custom Payload in Request.copy. +- ``[bug]`` JAVA-1346: Reset heartbeat only on client reads (not writes). +- ``[improvement]`` JAVA-866: Support tuple notation in QueryBuilder.eq/in. ### 3.0.5 -- [bug] JAVA-1312: QueryBuilder modifies selected columns when manually selected. -- [improvement] JAVA-1303: Add missing BoundStatement.setRoutingKey(ByteBuffer...) -- [improvement] JAVA-262: Make internal executors customizable -- [bug] JAVA-1320: prevent unnecessary task creation on empty pool +- ``[bug]`` JAVA-1312: QueryBuilder modifies selected columns when manually selected. +- ``[improvement]`` JAVA-1303: Add missing BoundStatement.setRoutingKey(ByteBuffer...) +- ``[improvement]`` JAVA-262: Make internal executors customizable +- ``[bug]`` JAVA-1320: prevent unnecessary task creation on empty pool ### 3.0.4 -- [improvement] JAVA-1246: Driver swallows the real exception in a few cases -- [improvement] JAVA-1261: Throw error when attempting to page in I/O thread. -- [bug] JAVA-1258: Regression: Mapper cannot map a materialized view after JAVA-1126. -- [bug] JAVA-1101: Batch and BatchStatement should consider inner statements to determine query idempotence -- [improvement] JAVA-1262: Use ParseUtils for quoting & unquoting. -- [improvement] JAVA-1275: Use Netty's default thread factory -- [bug] JAVA-1285: QueryBuilder routing key auto-discovery should handle case-sensitive column names. -- [bug] JAVA-1283: Don't cache failed query preparations in the mapper. -- [improvement] JAVA-1277: Expose AbstractSession.checkNotInEventLoop. -- [bug] JAVA-1272: BuiltStatement not able to print its query string if it contains mapped UDTs. -- [bug] JAVA-1292: 'Adjusted frame length' error breaks driver's ability to read data. -- [improvement] JAVA-1293: Make DecoderForStreamIdSize.MAX_FRAME_LENGTH configurable. -- [improvement] JAVA-1053: Add a metric for authentication errors -- [improvement] JAVA-1263: Eliminate unnecessary memory copies in FrameCompressor implementations. -- [improvement] JAVA-893: Make connection pool non-blocking +- ``[improvement]`` JAVA-1246: Driver swallows the real exception in a few cases +- ``[improvement]`` JAVA-1261: Throw error when attempting to page in I/O thread. +- ``[bug]`` JAVA-1258: Regression: Mapper cannot map a materialized view after JAVA-1126. +- ``[bug]`` JAVA-1101: Batch and BatchStatement should consider inner statements to determine query idempotence +- ``[improvement]`` JAVA-1262: Use ParseUtils for quoting & unquoting. +- ``[improvement]`` JAVA-1275: Use Netty's default thread factory +- ``[bug]`` JAVA-1285: QueryBuilder routing key auto-discovery should handle case-sensitive column names. +- ``[bug]`` JAVA-1283: Don't cache failed query preparations in the mapper. +- ``[improvement]`` JAVA-1277: Expose AbstractSession.checkNotInEventLoop. +- ``[bug]`` JAVA-1272: BuiltStatement not able to print its query string if it contains mapped UDTs. +- ``[bug]`` JAVA-1292: 'Adjusted frame length' error breaks driver's ability to read data. +- ``[improvement]`` JAVA-1293: Make DecoderForStreamIdSize.MAX_FRAME_LENGTH configurable. +- ``[improvement]`` JAVA-1053: Add a metric for authentication errors +- ``[improvement]`` JAVA-1263: Eliminate unnecessary memory copies in FrameCompressor implementations. +- ``[improvement]`` JAVA-893: Make connection pool non-blocking ### 3.0.3 -- [improvement] JAVA-1147: Upgrade Netty to 4.0.37. -- [bug] JAVA-1213: Allow updates and inserts to BLOB column using read-only ByteBuffer. -- [bug] JAVA-1209: ProtocolOptions.getProtocolVersion() should return null instead of throwing NPE if Cluster has not +- ``[improvement]`` JAVA-1147: Upgrade Netty to 4.0.37. +- ``[bug]`` JAVA-1213: Allow updates and inserts to BLOB column using read-only ByteBuffer. +- ``[bug]`` JAVA-1209: ProtocolOptions.getProtocolVersion() should return null instead of throwing NPE if Cluster has not been init'd. -- [improvement] JAVA-1204: Update documentation to indicate tcnative version requirement. -- [bug] JAVA-1186: Fix duplicated hosts in DCAwarePolicy warn message. -- [bug] JAVA-1187: Fix warning message when local CL used with RoundRobinPolicy. -- [improvement] JAVA-1175: Warn if DCAwarePolicy configuration is inconsistent. -- [bug] JAVA-1139: ConnectionException.getMessage() throws NPE if address is null. -- [bug] JAVA-1202: Handle null rpc_address when checking schema agreement. -- [improvement] JAVA-1198: Document that BoundStatement is not thread-safe. -- [improvement] JAVA-1200: Upgrade LZ4 to 1.3.0. -- [bug] JAVA-1232: Fix NPE in IdempotenceAwareRetryPolicy.isIdempotent. -- [improvement] JAVA-1227: Document "SELECT *" issue with prepared statement. -- [bug] JAVA-1160: Fix NPE in VersionNumber.getPreReleaseLabels(). -- [improvement] JAVA-1126: Handle schema changes in Mapper. -- [bug] JAVA-1193: Refresh token and replica metadata synchronously when schema is altered. -- [bug] JAVA-1120: Skip schema refresh debouncer when checking for agreement as a result of schema change made by client. -- [improvement] JAVA-1242: Fix driver-core dependency in driver-stress -- [improvement] JAVA-1235: Move the query to the end of "re-preparing .." log message as a key value. +- ``[improvement]`` JAVA-1204: Update documentation to indicate tcnative version requirement. +- ``[bug]`` JAVA-1186: Fix duplicated hosts in DCAwarePolicy warn message. +- ``[bug]`` JAVA-1187: Fix warning message when local CL used with RoundRobinPolicy. +- ``[improvement]`` JAVA-1175: Warn if DCAwarePolicy configuration is inconsistent. +- ``[bug]`` JAVA-1139: ConnectionException.getMessage() throws NPE if address is null. +- ``[bug]`` JAVA-1202: Handle null rpc_address when checking schema agreement. +- ``[improvement]`` JAVA-1198: Document that BoundStatement is not thread-safe. +- ``[improvement]`` JAVA-1200: Upgrade LZ4 to 1.3.0. +- ``[bug]`` JAVA-1232: Fix NPE in IdempotenceAwareRetryPolicy.isIdempotent. +- ``[improvement]`` JAVA-1227: Document "SELECT *" issue with prepared statement. +- ``[bug]`` JAVA-1160: Fix NPE in VersionNumber.getPreReleaseLabels(). +- ``[improvement]`` JAVA-1126: Handle schema changes in Mapper. +- ``[bug]`` JAVA-1193: Refresh token and replica metadata synchronously when schema is altered. +- ``[bug]`` JAVA-1120: Skip schema refresh debouncer when checking for agreement as a result of schema change made by client. +- ``[improvement]`` JAVA-1242: Fix driver-core dependency in driver-stress +- ``[improvement]`` JAVA-1235: Move the query to the end of "re-preparing .." log message as a key value. ### 3.0.2 Merged from 2.1 branch: -- [bug] JAVA-1179: Request objects should be copied when executed. -- [improvement] JAVA-1182: Throw error when synchronous call made on I/O thread. -- [bug] JAVA-1184: Unwrap StatementWrappers when extracting column definitions. +- ``[bug]`` JAVA-1179: Request objects should be copied when executed. +- ``[improvement]`` JAVA-1182: Throw error when synchronous call made on I/O thread. +- ``[bug]`` JAVA-1184: Unwrap StatementWrappers when extracting column definitions. ### 3.0.1 -- [bug] JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. -- [improvement] JAVA-1040: SimpleStatement parameters support in QueryLogger. -- [improvement] JAVA-1151: Fail fast if HdrHistogram is not in the classpath. -- [improvement] JAVA-1154: Allow individual Statement to cancel the read timeout. -- [bug] JAVA-1074: Fix documentation around default timestamp generator. -- [improvement] JAVA-1109: Document SSLOptions changes in upgrade guide. -- [improvement] JAVA-1065: Add method to create token from partition key values. -- [improvement] JAVA-1136: Enable JDK signature check in module driver-extras. -- [improvement] JAVA-866: Support tuple notation in QueryBuilder.eq/in. -- [bug] JAVA-1140: Use same connection to check for schema agreement after a DDL query. -- [improvement] JAVA-1113: Support Cassandra 3.4 LIKE operator in QueryBuilder. -- [improvement] JAVA-1086: Support Cassandra 3.2 CAST function in QueryBuilder. -- [bug] JAVA-1095: Check protocol version for custom payload before sending the query. -- [improvement] JAVA-1133: Add OSGi headers to cassandra-driver-extras. -- [bug] JAVA-1137: Incorrect string returned by DataType.asFunctionParameterString() for collections and tuples. -- [bug] JAVA-1046: (Dynamic)CompositeTypes need to be parsed as string literal, not blob. -- [improvement] JAVA-1164: Clarify documentation on Host.listenAddress and broadcastAddress. -- [improvement] JAVA-1171: Add Host method to determine if DSE Graph is enabled. -- [improvement] JAVA-1069: Bootstrap driver-examples module. -- [documentation] JAVA-1150: Add example and FAQ entry about ByteBuffer/BLOB. +- ``[bug]`` JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. +- ``[improvement]`` JAVA-1040: SimpleStatement parameters support in QueryLogger. +- ``[improvement]`` JAVA-1151: Fail fast if HdrHistogram is not in the classpath. +- ``[improvement]`` JAVA-1154: Allow individual Statement to cancel the read timeout. +- ``[bug]`` JAVA-1074: Fix documentation around default timestamp generator. +- ``[improvement]`` JAVA-1109: Document SSLOptions changes in upgrade guide. +- ``[improvement]`` JAVA-1065: Add method to create token from partition key values. +- ``[improvement]`` JAVA-1136: Enable JDK signature check in module driver-extras. +- ``[improvement]`` JAVA-866: Support tuple notation in QueryBuilder.eq/in. +- ``[bug]`` JAVA-1140: Use same connection to check for schema agreement after a DDL query. +- ``[improvement]`` JAVA-1113: Support Cassandra 3.4 LIKE operator in QueryBuilder. +- ``[improvement]`` JAVA-1086: Support Cassandra 3.2 CAST function in QueryBuilder. +- ``[bug]`` JAVA-1095: Check protocol version for custom payload before sending the query. +- ``[improvement]`` JAVA-1133: Add OSGi headers to cassandra-driver-extras. +- ``[bug]`` JAVA-1137: Incorrect string returned by DataType.asFunctionParameterString() for collections and tuples. +- ``[bug]`` JAVA-1046: (Dynamic)CompositeTypes need to be parsed as string literal, not blob. +- ``[improvement]`` JAVA-1164: Clarify documentation on Host.listenAddress and broadcastAddress. +- ``[improvement]`` JAVA-1171: Add Host method to determine if DSE Graph is enabled. +- ``[improvement]`` JAVA-1069: Bootstrap driver-examples module. +- ``[documentation]`` JAVA-1150: Add example and FAQ entry about ByteBuffer/BLOB. Merged from 2.1 branch: -- [improvement] JAVA-1011: Expose PoolingOptions default values. -- [improvement] JAVA-630: Don't process DOWN events for nodes that have active connections. -- [improvement] JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. -- [improvement] JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. -- [bug] JAVA-1068: Unwrap StatementWrappers when hashing the paging state. -- [improvement] JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. -- [improvement] JAVA-879: Mapper.map() accepts mapper-generated and user queries. -- [bug] JAVA-1100: Exception when connecting with shaded java driver in OSGI -- [bug] JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. -- [bug] JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. -- [improvement] JAVA-923: Position idempotent flag on object mapper queries. -- [bug] JAVA-1070: The Mapper should not prepare queries synchronously. -- [new feature] JAVA-982: Introduce new method ConsistencyLevel.isSerial(). -- [bug] JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. -- [improvement] JAVA-852: Ignore peers with null entries during discovery. -- [bug] JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. -- [bug] JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. -- [bug] JAVA-1072: Ensure defunct connections are properly evicted from the pool. -- [bug] JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). +- ``[improvement]`` JAVA-1011: Expose PoolingOptions default values. +- ``[improvement]`` JAVA-630: Don't process DOWN events for nodes that have active connections. +- ``[improvement]`` JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. +- ``[improvement]`` JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. +- ``[bug]`` JAVA-1068: Unwrap StatementWrappers when hashing the paging state. +- ``[improvement]`` JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. +- ``[improvement]`` JAVA-879: Mapper.map() accepts mapper-generated and user queries. +- ``[bug]`` JAVA-1100: Exception when connecting with shaded java driver in OSGI +- ``[bug]`` JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. +- ``[bug]`` JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. +- ``[improvement]`` JAVA-923: Position idempotent flag on object mapper queries. +- ``[bug]`` JAVA-1070: The Mapper should not prepare queries synchronously. +- ``[new feature]`` JAVA-982: Introduce new method ConsistencyLevel.isSerial(). +- ``[bug]`` JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. +- ``[improvement]`` JAVA-852: Ignore peers with null entries during discovery. +- ``[bug]`` JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. +- ``[bug]`` JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. +- ``[bug]`` JAVA-1072: Ensure defunct connections are properly evicted from the pool. +- ``[bug]`` JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). ### 3.0.0 -- [bug] JAVA-1034: fix metadata parser for collections of custom types. -- [improvement] JAVA-1035: Expose host broadcast_address and listen_address if available. -- [new feature] JAVA-1037: Allow named parameters in simple statements. -- [improvement] JAVA-1033: Allow per-statement read timeout. -- [improvement] JAVA-1042: Include DSE version and workload in Host data. +- ``[bug]`` JAVA-1034: fix metadata parser for collections of custom types. +- ``[improvement]`` JAVA-1035: Expose host broadcast_address and listen_address if available. +- ``[new feature]`` JAVA-1037: Allow named parameters in simple statements. +- ``[improvement]`` JAVA-1033: Allow per-statement read timeout. +- ``[improvement]`` JAVA-1042: Include DSE version and workload in Host data. Merged from 2.1 branch: -- [improvement] JAVA-1030: Log token to replica map computation times. -- [bug] JAVA-1039: Minor bugs in Event Debouncer. +- ``[improvement]`` JAVA-1030: Log token to replica map computation times. +- ``[bug]`` JAVA-1039: Minor bugs in Event Debouncer. ### 3.0.0-rc1 -- [bug] JAVA-890: fix mapper for case-sensitive UDT. +- ``[bug]`` JAVA-890: fix mapper for case-sensitive UDT. ### 3.0.0-beta1 -- [bug] JAVA-993: Support for "custom" types after CASSANDRA-10365. -- [bug] JAVA-999: Handle unset parameters in QueryLogger. -- [bug] JAVA-998: SchemaChangeListener not invoked for Functions or Aggregates having UDT arguments. -- [bug] JAVA-1009: use CL ONE to compute query plan when reconnecting +- ``[bug]`` JAVA-993: Support for "custom" types after CASSANDRA-10365. +- ``[bug]`` JAVA-999: Handle unset parameters in QueryLogger. +- ``[bug]`` JAVA-998: SchemaChangeListener not invoked for Functions or Aggregates having UDT arguments. +- ``[bug]`` JAVA-1009: use CL ONE to compute query plan when reconnecting control connection. -- [improvement] JAVA-1003: Change default consistency level to LOCAL_ONE (amends JAVA-926). -- [improvement] JAVA-863: Idempotence propagation in prepared statements. -- [improvement] JAVA-996: Make CodecRegistry available to ProtocolDecoder. -- [bug] JAVA-819: Driver shouldn't retry on client timeout if statement is not idempotent. -- [improvement] JAVA-1007: Make SimpleStatement and QueryBuilder "detached" again. +- ``[improvement]`` JAVA-1003: Change default consistency level to LOCAL_ONE (amends JAVA-926). +- ``[improvement]`` JAVA-863: Idempotence propagation in prepared statements. +- ``[improvement]`` JAVA-996: Make CodecRegistry available to ProtocolDecoder. +- ``[bug]`` JAVA-819: Driver shouldn't retry on client timeout if statement is not idempotent. +- ``[improvement]`` JAVA-1007: Make SimpleStatement and QueryBuilder "detached" again. Merged from 2.1 branch: -- [improvement] JAVA-989: Include keyspace name when invalid replication found when generating token map. -- [improvement] JAVA-664: Reduce heap consumption for TokenMap. -- [bug] JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. +- ``[improvement]`` JAVA-989: Include keyspace name when invalid replication found when generating token map. +- ``[improvement]`` JAVA-664: Reduce heap consumption for TokenMap. +- ``[bug]`` JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. ### 3.0.0-alpha5 -- [improvement] JAVA-958: Make TableOrView.Order visible. -- [improvement] JAVA-968: Update metrics to the latest version. -- [improvement] JAVA-965: Improve error handling for when a non-type 1 UUID is given to bind() on a timeuuid column. -- [improvement] JAVA-885: Pass the authenticator name from the server to the auth provider. -- [improvement] JAVA-961: Raise an exception when an older version of guava (<16.01) is found. -- [bug] JAVA-972: TypeCodec.parse() implementations should be case insensitive when checking for keyword NULL. -- [bug] JAVA-971: Make type codecs invariant. -- [bug] JAVA-986: Update documentation links to reference 3.0. -- [improvement] JAVA-841: Refactor SSLOptions API. -- [improvement] JAVA-948: Don't limit cipher suites by default. -- [improvement] JAVA-917: Document SSL configuration. -- [improvement] JAVA-936: Adapt schema metadata parsing logic to new storage format of CQL types in C* 3.0. -- [new feature] JAVA-846: Provide custom codecs library as an extra module. -- [new feature] JAVA-742: Codec Support for JSON. -- [new feature] JAVA-606: Codec support for Java 8. -- [new feature] JAVA-565: Codec support for Java arrays. -- [new feature] JAVA-605: Codec support for Java enums. -- [bug] JAVA-884: Fix UDT mapper to process fields in the correct order. +- ``[improvement]`` JAVA-958: Make TableOrView.Order visible. +- ``[improvement]`` JAVA-968: Update metrics to the latest version. +- ``[improvement]`` JAVA-965: Improve error handling for when a non-type 1 UUID is given to bind() on a timeuuid column. +- ``[improvement]`` JAVA-885: Pass the authenticator name from the server to the auth provider. +- ``[improvement]`` JAVA-961: Raise an exception when an older version of guava (<16.01) is found. +- ``[bug]`` JAVA-972: TypeCodec.parse() implementations should be case insensitive when checking for keyword NULL. +- ``[bug]`` JAVA-971: Make type codecs invariant. +- ``[bug]`` JAVA-986: Update documentation links to reference 3.0. +- ``[improvement]`` JAVA-841: Refactor SSLOptions API. +- ``[improvement]`` JAVA-948: Don't limit cipher suites by default. +- ``[improvement]`` JAVA-917: Document SSL configuration. +- ``[improvement]`` JAVA-936: Adapt schema metadata parsing logic to new storage format of CQL types in C* 3.0. +- ``[new feature]`` JAVA-846: Provide custom codecs library as an extra module. +- ``[new feature]`` JAVA-742: Codec Support for JSON. +- ``[new feature]`` JAVA-606: Codec support for Java 8. +- ``[new feature]`` JAVA-565: Codec support for Java arrays. +- ``[new feature]`` JAVA-605: Codec support for Java enums. +- ``[bug]`` JAVA-884: Fix UDT mapper to process fields in the correct order. Merged from 2.1 branch: -- [bug] JAVA-854: avoid early return in Cluster.init when a node doesn't support the protocol version. -- [bug] JAVA-978: Fix quoting issue that caused Mapper.getTableMetadata() to return null. -- [improvement] JAVA-920: Downgrade "error creating pool" message to WARN. -- [bug] JAVA-954: Don't trigger reconnection before initialization complete. -- [improvement] JAVA-914: Avoid rejected tasks at shutdown. -- [improvement] JAVA-921: Add SimpleStatement.getValuesCount(). -- [bug] JAVA-901: Move call to connection.release() out of cancelHandler. -- [bug] JAVA-960: Avoid race in control connection shutdown. -- [bug] JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. -- [bug] JAVA-966: Count uninitialized connections in conviction policy. -- [improvement] JAVA-917: Document SSL configuration. -- [improvement] JAVA-652: Add DCAwareRoundRobinPolicy builder. -- [improvement] JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. -- [bug] JAVA-988: Metadata.handleId should handle escaped double quotes. -- [bug] JAVA-983: QueryBuilder cannot handle collections containing function calls. +- ``[bug]`` JAVA-854: avoid early return in Cluster.init when a node doesn't support the protocol version. +- ``[bug]`` JAVA-978: Fix quoting issue that caused Mapper.getTableMetadata() to return null. +- ``[improvement]`` JAVA-920: Downgrade "error creating pool" message to WARN. +- ``[bug]`` JAVA-954: Don't trigger reconnection before initialization complete. +- ``[improvement]`` JAVA-914: Avoid rejected tasks at shutdown. +- ``[improvement]`` JAVA-921: Add SimpleStatement.getValuesCount(). +- ``[bug]`` JAVA-901: Move call to connection.release() out of cancelHandler. +- ``[bug]`` JAVA-960: Avoid race in control connection shutdown. +- ``[bug]`` JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. +- ``[bug]`` JAVA-966: Count uninitialized connections in conviction policy. +- ``[improvement]`` JAVA-917: Document SSL configuration. +- ``[improvement]`` JAVA-652: Add DCAwareRoundRobinPolicy builder. +- ``[improvement]`` JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. +- ``[bug]`` JAVA-988: Metadata.handleId should handle escaped double quotes. +- ``[bug]`` JAVA-983: QueryBuilder cannot handle collections containing function calls. ### 3.0.0-alpha4 -- [improvement] JAVA-926: Change default consistency level to LOCAL_QUORUM. -- [bug] JAVA-942: Fix implementation of UserType.hashCode(). -- [improvement] JAVA-877: Don't delay UP/ADDED notifications if protocol version = V4. -- [improvement] JAVA-938: Parse 'extensions' column in table metadata. -- [bug] JAVA-900: Fix Configuration builder to allow disabled metrics. -- [new feature] JAVA-902: Prepare API for async query trace. -- [new feature] JAVA-930: Add BoundStatement#unset. -- [bug] JAVA-946: Make table metadata options class visible. -- [bug] JAVA-939: Add crcCheckChance to TableOptionsMetadata#equals/hashCode. -- [bug] JAVA-922: Make TypeCodec return mutable collections. -- [improvement] JAVA-932: Limit visibility of codec internals. -- [improvement] JAVA-934: Warn if a custom codec collides with an existing one. -- [improvement] JAVA-940: Allow typed getters/setters to target any CQL type. -- [bug] JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. -- [bug] JAVA-953: Fix MaterializedViewMetadata when base table name is case sensitive. +- ``[improvement]`` JAVA-926: Change default consistency level to LOCAL_QUORUM. +- ``[bug]`` JAVA-942: Fix implementation of UserType.hashCode(). +- ``[improvement]`` JAVA-877: Don't delay UP/ADDED notifications if protocol version = V4. +- ``[improvement]`` JAVA-938: Parse 'extensions' column in table metadata. +- ``[bug]`` JAVA-900: Fix Configuration builder to allow disabled metrics. +- ``[new feature]`` JAVA-902: Prepare API for async query trace. +- ``[new feature]`` JAVA-930: Add BoundStatement#unset. +- ``[bug]`` JAVA-946: Make table metadata options class visible. +- ``[bug]`` JAVA-939: Add crcCheckChance to TableOptionsMetadata#equals/hashCode. +- ``[bug]`` JAVA-922: Make TypeCodec return mutable collections. +- ``[improvement]`` JAVA-932: Limit visibility of codec internals. +- ``[improvement]`` JAVA-934: Warn if a custom codec collides with an existing one. +- ``[improvement]`` JAVA-940: Allow typed getters/setters to target any CQL type. +- ``[bug]`` JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. +- ``[bug]`` JAVA-953: Fix MaterializedViewMetadata when base table name is case sensitive. ### 3.0.0-alpha3 -- [new feature] JAVA-571: Support new system tables in C* 3.0. -- [improvement] JAVA-919: Move crc_check_chance out of compressions options. +- ``[new feature]`` JAVA-571: Support new system tables in C* 3.0. +- ``[improvement]`` JAVA-919: Move crc_check_chance out of compressions options. Merged from 2.0 branch: -- [improvement] JAVA-718: Log streamid at the trace level on sending request and receiving response. -- [bug] JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. -- [improvement] JAVA-710: Suppress unnecessary warning at shutdown. -- [improvement] #340: Allow DNS name with multiple A-records as contact point. -- [bug] JAVA-794: Allow tracing across multiple result pages. -- [bug] JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. -- [bug] JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. -- [bug] JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. -- [bug] JAVA-688: Prevent QueryBuilder from trying to serialize raw string. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-702: Warn when ReplicationStrategy encounters invalid +- ``[improvement]`` JAVA-718: Log streamid at the trace level on sending request and receiving response. +- ``[bug]`` JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. +- ``[improvement]`` JAVA-710: Suppress unnecessary warning at shutdown. +- ``[improvement]`` #340: Allow DNS name with multiple A-records as contact point. +- ``[bug]`` JAVA-794: Allow tracing across multiple result pages. +- ``[bug]`` JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. +- ``[bug]`` JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. +- ``[bug]`` JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. +- ``[bug]`` JAVA-688: Prevent QueryBuilder from trying to serialize raw string. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-702: Warn when ReplicationStrategy encounters invalid replication factors. -- [improvement] JAVA-662: Add PoolingOptions method to set both core and max +- ``[improvement]`` JAVA-662: Add PoolingOptions method to set both core and max connections. -- [improvement] JAVA-766: Do not include epoll JAR in binary distribution. -- [improvement] JAVA-726: Optimize internal copies of Request objects. -- [bug] JAVA-815: Preserve tracing across retries. -- [improvement] JAVA-709: New RetryDecision.tryNextHost(). -- [bug] JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. -- [improvement] JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. -- [improvement] JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. -- [improvement] JAVA-618: Randomize contact points list to prevent hotspots. -- [improvement] JAVA-720: Surface the coordinator used on query failure. -- [bug] JAVA-792: Handle contact points removed during init. -- [improvement] JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. -- [new feature] JAVA-151: Make it possible to register for SchemaChange Events. -- [improvement] JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. -- [improvement] JAVA-797: Provide an option to prepare statements only on one node. -- [improvement] JAVA-658: Provide an option to not re-prepare all statements in onUp. -- [improvement] JAVA-853: Customizable creation of netty timer. -- [bug] JAVA-859: Avoid quadratic ring processing with invalid replication factors. -- [improvement] JAVA-657: Debounce control connection queries. -- [bug] JAVA-784: LoadBalancingPolicy.distance() called before init(). -- [new feature] JAVA-828: Make driver-side metadata optional. -- [improvement] JAVA-544: Allow hosts to remain partially up. -- [improvement] JAVA-821, JAVA-822: Remove internal blocking calls and expose async session +- ``[improvement]`` JAVA-766: Do not include epoll JAR in binary distribution. +- ``[improvement]`` JAVA-726: Optimize internal copies of Request objects. +- ``[bug]`` JAVA-815: Preserve tracing across retries. +- ``[improvement]`` JAVA-709: New RetryDecision.tryNextHost(). +- ``[bug]`` JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. +- ``[improvement]`` JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. +- ``[improvement]`` JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. +- ``[improvement]`` JAVA-618: Randomize contact points list to prevent hotspots. +- ``[improvement]`` JAVA-720: Surface the coordinator used on query failure. +- ``[bug]`` JAVA-792: Handle contact points removed during init. +- ``[improvement]`` JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. +- ``[new feature]`` JAVA-151: Make it possible to register for SchemaChange Events. +- ``[improvement]`` JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. +- ``[improvement]`` JAVA-797: Provide an option to prepare statements only on one node. +- ``[improvement]`` JAVA-658: Provide an option to not re-prepare all statements in onUp. +- ``[improvement]`` JAVA-853: Customizable creation of netty timer. +- ``[bug]`` JAVA-859: Avoid quadratic ring processing with invalid replication factors. +- ``[improvement]`` JAVA-657: Debounce control connection queries. +- ``[bug]`` JAVA-784: LoadBalancingPolicy.distance() called before init(). +- ``[new feature]`` JAVA-828: Make driver-side metadata optional. +- ``[improvement]`` JAVA-544: Allow hosts to remain partially up. +- ``[improvement]`` JAVA-821, JAVA-822: Remove internal blocking calls and expose async session creation. -- [improvement] JAVA-725: Use parallel calls when re-preparing statement on other +- ``[improvement]`` JAVA-725: Use parallel calls when re-preparing statement on other hosts. -- [bug] JAVA-629: Don't use connection timeout for unrelated internal queries. -- [bug] JAVA-892: Fix NPE in speculative executions when metrics disabled. +- ``[bug]`` JAVA-629: Don't use connection timeout for unrelated internal queries. +- ``[bug]`` JAVA-892: Fix NPE in speculative executions when metrics disabled. ### 3.0.0-alpha2 -- [new feature] JAVA-875, JAVA-882: Move secondary index metadata out of column definitions. +- ``[new feature]`` JAVA-875, JAVA-882: Move secondary index metadata out of column definitions. Merged from 2.2 branch: -- [bug] JAVA-847: Propagate CodecRegistry to nested UDTs. -- [improvement] JAVA-848: Ability to store a default, shareable CodecRegistry +- ``[bug]`` JAVA-847: Propagate CodecRegistry to nested UDTs. +- ``[improvement]`` JAVA-848: Ability to store a default, shareable CodecRegistry instance. -- [bug] JAVA-880: Treat empty ByteBuffers as empty values in TupleCodec and +- ``[bug]`` JAVA-880: Treat empty ByteBuffers as empty values in TupleCodec and UDTCodec. ### 3.0.0-alpha1 -- [new feature] JAVA-876: Support new system tables in C* 3.0.0-alpha1. +- ``[new feature]`` JAVA-876: Support new system tables in C* 3.0.0-alpha1. Merged from 2.2 branch: -- [improvement] JAVA-810: Rename DateWithoutTime to LocalDate. -- [bug] JAVA-816: DateCodec does not format values correctly. -- [bug] JAVA-817: TimeCodec does not format values correctly. -- [bug] JAVA-818: TypeCodec.getDataTypeFor() does not handle LocalDate instances. -- [improvement] JAVA-836: Make ResultSet#fetchMoreResult return a - ListenableFuture. -- [improvement] JAVA-843: Disable frozen checks in mapper. -- [improvement] JAVA-721: Allow user to register custom type codecs. -- [improvement] JAVA-722: Support custom type codecs in mapper. +- ``[improvement]`` JAVA-810: Rename DateWithoutTime to LocalDate. +- ``[bug]`` JAVA-816: DateCodec does not format values correctly. +- ``[bug]`` JAVA-817: TimeCodec does not format values correctly. +- ``[bug]`` JAVA-818: TypeCodec.getDataTypeFor() does not handle LocalDate instances. +- ``[improvement]`` JAVA-836: Make ResultSet#fetchMoreResult return a + ``ListenableFuture``. +- ``[improvement]`` JAVA-843: Disable frozen checks in mapper. +- ``[improvement]`` JAVA-721: Allow user to register custom type codecs. +- ``[improvement]`` JAVA-722: Support custom type codecs in mapper. ### 2.2.0-rc3 -- [bug] JAVA-847: Propagate CodecRegistry to nested UDTs. -- [improvement] JAVA-848: Ability to store a default, shareable CodecRegistry +- ``[bug]`` JAVA-847: Propagate CodecRegistry to nested UDTs. +- ``[improvement]`` JAVA-848: Ability to store a default, shareable CodecRegistry instance. -- [bug] JAVA-880: Treat empty ByteBuffers as empty values in TupleCodec and +- ``[bug]`` JAVA-880: Treat empty ByteBuffers as empty values in TupleCodec and UDTCodec. ### 2.2.0-rc2 -- [improvement] JAVA-810: Rename DateWithoutTime to LocalDate. -- [bug] JAVA-816: DateCodec does not format values correctly. -- [bug] JAVA-817: TimeCodec does not format values correctly. -- [bug] JAVA-818: TypeCodec.getDataTypeFor() does not handle LocalDate instances. -- [improvement] JAVA-836: Make ResultSet#fetchMoreResult return a - ListenableFuture. -- [improvement] JAVA-843: Disable frozen checks in mapper. -- [improvement] JAVA-721: Allow user to register custom type codecs. -- [improvement] JAVA-722: Support custom type codecs in mapper. +- ``[improvement]`` JAVA-810: Rename DateWithoutTime to LocalDate. +- ``[bug]`` JAVA-816: DateCodec does not format values correctly. +- ``[bug]`` JAVA-817: TimeCodec does not format values correctly. +- ``[bug]`` JAVA-818: TypeCodec.getDataTypeFor() does not handle LocalDate instances. +- ``[improvement]`` JAVA-836: Make ResultSet#fetchMoreResult return a + ``ListenableFuture``. +- ``[improvement]`` JAVA-843: Disable frozen checks in mapper. +- ``[improvement]`` JAVA-721: Allow user to register custom type codecs. +- ``[improvement]`` JAVA-722: Support custom type codecs in mapper. Merged from 2.1 branch: -- [bug] JAVA-834: Special case check for 'null' string in index_options column. -- [improvement] JAVA-835: Allow accessor methods with less parameters in case +- ``[bug]`` JAVA-834: Special case check for 'null' string in index_options column. +- ``[improvement]`` JAVA-835: Allow accessor methods with less parameters in case named bind markers are repeated. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-715: Make NativeColumnType a top-level class. -- [improvement] JAVA-700: Expose ProtocolVersion#toInt. -- [bug] JAVA-542: Handle void return types in accessors. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-713: HashMap throws an OOM Exception when logging level is set to TRACE. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-732: Expose KEYS and FULL indexing options in IndexMetadata. -- [improvement] JAVA-589: Allow @Enumerated in Accessor method parameters. -- [improvement] JAVA-554: Allow access to table metadata from Mapper. -- [improvement] JAVA-661: Provide a way to map computed fields. -- [improvement] JAVA-824: Ignore missing columns in mapper. -- [bug] JAVA-724: Preserve default timestamp for retries and speculative executions. -- [improvement] JAVA-738: Use same pool implementation for protocol v2 and v3. -- [improvement] JAVA-677: Support CONTAINS / CONTAINS KEY in QueryBuilder. -- [improvement] JAVA-477/JAVA-540: Add USING options in mapper for delete and save +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-715: Make NativeColumnType a top-level class. +- ``[improvement]`` JAVA-700: Expose ProtocolVersion#toInt. +- ``[bug]`` JAVA-542: Handle void return types in accessors. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-713: HashMap throws an OOM Exception when logging level is set to TRACE. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-732: Expose KEYS and FULL indexing options in IndexMetadata. +- ``[improvement]`` JAVA-589: Allow @Enumerated in Accessor method parameters. +- ``[improvement]`` JAVA-554: Allow access to table metadata from Mapper. +- ``[improvement]`` JAVA-661: Provide a way to map computed fields. +- ``[improvement]`` JAVA-824: Ignore missing columns in mapper. +- ``[bug]`` JAVA-724: Preserve default timestamp for retries and speculative executions. +- ``[improvement]`` JAVA-738: Use same pool implementation for protocol v2 and v3. +- ``[improvement]`` JAVA-677: Support CONTAINS / CONTAINS KEY in QueryBuilder. +- ``[improvement]`` JAVA-477/JAVA-540: Add USING options in mapper for delete and save operations. -- [improvement] JAVA-473: Add mapper option to configure whether to save null fields. +- ``[improvement]`` JAVA-473: Add mapper option to configure whether to save null fields. Merged from 2.0 branch: -- [bug] JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. -- [bug] JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. -- [bug] JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. -- [bug] JAVA-688: Prevent QueryBuilder from trying to serialize raw string. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-702: Warn when ReplicationStrategy encounters invalid +- ``[bug]`` JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. +- ``[bug]`` JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. +- ``[bug]`` JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. +- ``[bug]`` JAVA-688: Prevent QueryBuilder from trying to serialize raw string. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-702: Warn when ReplicationStrategy encounters invalid replication factors. -- [improvement] JAVA-662: Add PoolingOptions method to set both core and max +- ``[improvement]`` JAVA-662: Add PoolingOptions method to set both core and max connections. -- [improvement] JAVA-766: Do not include epoll JAR in binary distribution. -- [improvement] JAVA-726: Optimize internal copies of Request objects. -- [bug] JAVA-815: Preserve tracing across retries. -- [improvement] JAVA-709: New RetryDecision.tryNextHost(). -- [bug] JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. +- ``[improvement]`` JAVA-766: Do not include epoll JAR in binary distribution. +- ``[improvement]`` JAVA-726: Optimize internal copies of Request objects. +- ``[bug]`` JAVA-815: Preserve tracing across retries. +- ``[improvement]`` JAVA-709: New RetryDecision.tryNextHost(). +- ``[bug]`` JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. ### 2.2.0-rc1 -- [new feature] JAVA-783: Protocol V4 enum support. -- [new feature] JAVA-776: Use PK columns in protocol v4 PREPARED response. -- [new feature] JAVA-777: Distinguish NULL and UNSET values. -- [new feature] JAVA-779: Add k/v payload for 3rd party usage. -- [new feature] JAVA-780: Expose server-side warnings on ExecutionInfo. -- [new feature] JAVA-749: Expose new read/write failure exceptions. -- [new feature] JAVA-747: Expose function and aggregate metadata. -- [new feature] JAVA-778: Add new client exception for CQL function failure. -- [improvement] JAVA-700: Expose ProtocolVersion#toInt. -- [new feature] JAVA-404: Support new C* 2.2 CQL date and time types. +- ``[new feature]`` JAVA-783: Protocol V4 enum support. +- ``[new feature]`` JAVA-776: Use PK columns in protocol v4 PREPARED response. +- ``[new feature]`` JAVA-777: Distinguish NULL and UNSET values. +- ``[new feature]`` JAVA-779: Add k/v payload for 3rd party usage. +- ``[new feature]`` JAVA-780: Expose server-side warnings on ExecutionInfo. +- ``[new feature]`` JAVA-749: Expose new read/write failure exceptions. +- ``[new feature]`` JAVA-747: Expose function and aggregate metadata. +- ``[new feature]`` JAVA-778: Add new client exception for CQL function failure. +- ``[improvement]`` JAVA-700: Expose ProtocolVersion#toInt. +- ``[new feature]`` JAVA-404: Support new C* 2.2 CQL date and time types. Merged from 2.1 branch: -- [improvement] JAVA-782: Unify "Target" enum for schema elements. +- ``[improvement]`` JAVA-782: Unify "Target" enum for schema elements. ### 2.1.10.2 Merged from 2.0 branch: -- [bug] JAVA-1179: Request objects should be copied when executed. -- [improvement] JAVA-1182: Throw error when synchronous call made on I/O thread. -- [bug] JAVA-1184: Unwrap StatementWrappers when extracting column definitions. +- ``[bug]`` JAVA-1179: Request objects should be copied when executed. +- ``[improvement]`` JAVA-1182: Throw error when synchronous call made on I/O thread. +- ``[bug]`` JAVA-1184: Unwrap StatementWrappers when extracting column definitions. ### 2.1.10.1 -- [bug] JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). -- [bug] JAVA-1156: Fix NPE at TableMetadata.equals(). +- ``[bug]`` JAVA-1152: Fix NPE at ControlConnection.refreshNodeListAndTokenMap(). +- ``[bug]`` JAVA-1156: Fix NPE at TableMetadata.equals(). ### 2.1.10 -- [bug] JAVA-988: Metadata.handleId should handle escaped double quotes. -- [bug] JAVA-983: QueryBuilder cannot handle collections containing function calls. -- [improvement] JAVA-863: Idempotence propagation in PreparedStatements. -- [bug] JAVA-937: TypeCodec static initializers not always correctly executed. -- [improvement] JAVA-989: Include keyspace name when invalid replication found when generating token map. -- [improvement] JAVA-664: Reduce heap consumption for TokenMap. -- [improvement] JAVA-1030: Log token to replica map computation times. -- [bug] JAVA-1039: Minor bugs in Event Debouncer. -- [improvement] JAVA-843: Disable frozen checks in mapper. -- [improvement] JAVA-833: Improve message when a nested type can't be serialized. -- [improvement] JAVA-1011: Expose PoolingOptions default values. -- [improvement] JAVA-630: Don't process DOWN events for nodes that have active connections. -- [improvement] JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. -- [improvement] JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. -- [improvement] JAVA-1038: Fetch node info by rpc_address if its broadcast_address is not in system.peers. -- [improvement] JAVA-974: Validate accessor parameter types against bound statement. -- [bug] JAVA-1068: Unwrap StatementWrappers when hashing the paging state. -- [bug] JAVA-831: Mapper can't load an entity where the PK is a UDT. -- [improvement] JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. -- [improvement] JAVA-879: Mapper.map() accepts mapper-generated and user queries. -- [bug] JAVA-1100: Exception when connecting with shaded java driver in OSGI -- [bug] JAVA-819: Expose more errors in RetryPolicy + provide idempotent-aware wrapper. -- [improvement] JAVA-1040: SimpleStatement parameters support in QueryLogger. -- [bug] JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. -- [improvement] JAVA-888: Add cluster-wide percentile tracker. -- [improvement] JAVA-963: Automatically register PercentileTracker from components that use it. -- [bug] JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. -- [improvement] JAVA-923: Position idempotent flag on object mapper queries. -- [new feature] JAVA-1019: SchemaBuilder support for CREATE/ALTER/DROP KEYSPACE. -- [bug] JAVA-1070: The Mapper should not prepare queries synchronously. -- [new feature] JAVA-982: Introduce new method ConsistencyLevel.isSerial(). -- [bug] JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. -- [bug] JAVA-727: Allow monotonic timestamp generators to drift in the future + use microsecond precision when possible. -- [improvement] JAVA-444: Add Java process information to UUIDs.makeNode() hash. -- [improvement] JAVA-977: Preserve original cause when BuiltStatement value can't be serialized. -- [bug] JAVA-1094: Backport TypeCodec parse and format fixes from 3.0. -- [improvement] JAVA-852: Ignore peers with null entries during discovery. -- [bug] JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. -- [bug] JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. -- [bug] JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. +- ``[bug]`` JAVA-988: Metadata.handleId should handle escaped double quotes. +- ``[bug]`` JAVA-983: QueryBuilder cannot handle collections containing function calls. +- ``[improvement]`` JAVA-863: Idempotence propagation in PreparedStatements. +- ``[bug]`` JAVA-937: TypeCodec static initializers not always correctly executed. +- ``[improvement]`` JAVA-989: Include keyspace name when invalid replication found when generating token map. +- ``[improvement]`` JAVA-664: Reduce heap consumption for TokenMap. +- ``[improvement]`` JAVA-1030: Log token to replica map computation times. +- ``[bug]`` JAVA-1039: Minor bugs in Event Debouncer. +- ``[improvement]`` JAVA-843: Disable frozen checks in mapper. +- ``[improvement]`` JAVA-833: Improve message when a nested type can't be serialized. +- ``[improvement]`` JAVA-1011: Expose PoolingOptions default values. +- ``[improvement]`` JAVA-630: Don't process DOWN events for nodes that have active connections. +- ``[improvement]`` JAVA-851: Improve UUIDs javadoc with regard to user-provided timestamps. +- ``[improvement]`` JAVA-979: Update javadoc for RegularStatement toString() and getQueryString() to indicate that consistency level and other parameters are not maintained in the query string. +- ``[improvement]`` JAVA-1038: Fetch node info by rpc_address if its broadcast_address is not in system.peers. +- ``[improvement]`` JAVA-974: Validate accessor parameter types against bound statement. +- ``[bug]`` JAVA-1068: Unwrap StatementWrappers when hashing the paging state. +- ``[bug]`` JAVA-831: Mapper can't load an entity where the PK is a UDT. +- ``[improvement]`` JAVA-1021: Improve error message when connect() is called with an invalid keyspace name. +- ``[improvement]`` JAVA-879: Mapper.map() accepts mapper-generated and user queries. +- ``[bug]`` JAVA-1100: Exception when connecting with shaded java driver in OSGI +- ``[bug]`` JAVA-819: Expose more errors in RetryPolicy + provide idempotent-aware wrapper. +- ``[improvement]`` JAVA-1040: SimpleStatement parameters support in QueryLogger. +- ``[bug]`` JAVA-1064: getTable create statement doesn't properly handle quotes in primary key. +- ``[improvement]`` JAVA-888: Add cluster-wide percentile tracker. +- ``[improvement]`` JAVA-963: Automatically register PercentileTracker from components that use it. +- ``[bug]`` JAVA-1089: Set LWT made from BuiltStatements to non-idempotent. +- ``[improvement]`` JAVA-923: Position idempotent flag on object mapper queries. +- ``[new feature]`` JAVA-1019: SchemaBuilder support for CREATE/ALTER/DROP KEYSPACE. +- ``[bug]`` JAVA-1070: The Mapper should not prepare queries synchronously. +- ``[new feature]`` JAVA-982: Introduce new method ConsistencyLevel.isSerial(). +- ``[bug]`` JAVA-764: Retry with the normal consistency level (not the serial one) when a write times out on the Paxos phase. +- ``[bug]`` JAVA-727: Allow monotonic timestamp generators to drift in the future + use microsecond precision when possible. +- ``[improvement]`` JAVA-444: Add Java process information to UUIDs.makeNode() hash. +- ``[improvement]`` JAVA-977: Preserve original cause when BuiltStatement value can't be serialized. +- ``[bug]`` JAVA-1094: Backport TypeCodec parse and format fixes from 3.0. +- ``[improvement]`` JAVA-852: Ignore peers with null entries during discovery. +- ``[bug]`` JAVA-1132: Executing bound statement with no variables results in exception with protocol v1. +- ``[bug]`` JAVA-1005: DowngradingConsistencyRetryPolicy does not work with EACH_QUORUM when 1 DC is down. +- ``[bug]`` JAVA-1002: Avoid deadlock when re-preparing a statement on other hosts. Merged from 2.0 branch: -- [bug] JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. -- [improvement] JAVA-805: Document that metrics are null until Cluster is initialized. -- [bug] JAVA-1072: Ensure defunct connections are properly evicted from the pool. +- ``[bug]`` JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. +- ``[improvement]`` JAVA-805: Document that metrics are null until Cluster is initialized. +- ``[bug]`` JAVA-1072: Ensure defunct connections are properly evicted from the pool. ### 2.1.9 -- [bug] JAVA-942: Fix implementation of UserType.hashCode(). -- [bug] JAVA-854: avoid early return in Cluster.init when a node doesn't support the protocol version. -- [bug] JAVA-978: Fix quoting issue that caused Mapper.getTableMetadata() to return null. +- ``[bug]`` JAVA-942: Fix implementation of UserType.hashCode(). +- ``[bug]`` JAVA-854: avoid early return in Cluster.init when a node doesn't support the protocol version. +- ``[bug]`` JAVA-978: Fix quoting issue that caused Mapper.getTableMetadata() to return null. Merged from 2.0 branch: -- [bug] JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. -- [improvement] JAVA-920: Downgrade "error creating pool" message to WARN. -- [bug] JAVA-954: Don't trigger reconnection before initialization complete. -- [improvement] JAVA-914: Avoid rejected tasks at shutdown. -- [improvement] JAVA-921: Add SimpleStatement.getValuesCount(). -- [bug] JAVA-901: Move call to connection.release() out of cancelHandler. -- [bug] JAVA-960: Avoid race in control connection shutdown. -- [bug] JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. -- [bug] JAVA-966: Count uninitialized connections in conviction policy. -- [improvement] JAVA-917: Document SSL configuration. -- [improvement] JAVA-652: Add DCAwareRoundRobinPolicy builder. -- [improvement] JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. +- ``[bug]`` JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. +- ``[improvement]`` JAVA-920: Downgrade "error creating pool" message to WARN. +- ``[bug]`` JAVA-954: Don't trigger reconnection before initialization complete. +- ``[improvement]`` JAVA-914: Avoid rejected tasks at shutdown. +- ``[improvement]`` JAVA-921: Add SimpleStatement.getValuesCount(). +- ``[bug]`` JAVA-901: Move call to connection.release() out of cancelHandler. +- ``[bug]`` JAVA-960: Avoid race in control connection shutdown. +- ``[bug]`` JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. +- ``[bug]`` JAVA-966: Count uninitialized connections in conviction policy. +- ``[improvement]`` JAVA-917: Document SSL configuration. +- ``[improvement]`` JAVA-652: Add DCAwareRoundRobinPolicy builder. +- ``[improvement]`` JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. ### 2.1.8 Merged from 2.0 branch: -- [improvement] JAVA-718: Log streamid at the trace level on sending request and receiving response. - -- [bug] JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. -- [improvement] JAVA-710: Suppress unnecessary warning at shutdown. -- [improvement] #340: Allow DNS name with multiple A-records as contact point. -- [bug] JAVA-794: Allow tracing across multiple result pages. -- [bug] JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. -- [bug] JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. -- [bug] JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. -- [bug] JAVA-688: Prevent QueryBuilder from trying to serialize raw string. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-702: Warn when ReplicationStrategy encounters invalid +- ``[improvement]`` JAVA-718: Log streamid at the trace level on sending request and receiving response. + +- ``[bug]`` JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. +- ``[improvement]`` JAVA-710: Suppress unnecessary warning at shutdown. +- ``[improvement]`` #340: Allow DNS name with multiple A-records as contact point. +- ``[bug]`` JAVA-794: Allow tracing across multiple result pages. +- ``[bug]`` JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. +- ``[bug]`` JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. +- ``[bug]`` JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. +- ``[bug]`` JAVA-688: Prevent QueryBuilder from trying to serialize raw string. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-702: Warn when ReplicationStrategy encounters invalid replication factors. -- [improvement] JAVA-662: Add PoolingOptions method to set both core and max +- ``[improvement]`` JAVA-662: Add PoolingOptions method to set both core and max connections. -- [improvement] JAVA-766: Do not include epoll JAR in binary distribution. -- [improvement] JAVA-726: Optimize internal copies of Request objects. -- [bug] JAVA-815: Preserve tracing across retries. -- [improvement] JAVA-709: New RetryDecision.tryNextHost(). -- [bug] JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. -- [improvement] JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. -- [improvement] JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. -- [improvement] JAVA-618: Randomize contact points list to prevent hotspots. -- [improvement] JAVA-720: Surface the coordinator used on query failure. -- [bug] JAVA-792: Handle contact points removed during init. -- [improvement] JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. -- [new feature] JAVA-151: Make it possible to register for SchemaChange Events. -- [improvement] JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. -- [improvement] JAVA-797: Provide an option to prepare statements only on one node. -- [improvement] JAVA-658: Provide an option to not re-prepare all statements in onUp. -- [improvement] JAVA-853: Customizable creation of netty timer. -- [bug] JAVA-859: Avoid quadratic ring processing with invalid replication factors. -- [improvement] JAVA-657: Debounce control connection queries. -- [bug] JAVA-784: LoadBalancingPolicy.distance() called before init(). -- [new feature] JAVA-828: Make driver-side metadata optional. -- [improvement] JAVA-544: Allow hosts to remain partially up. -- [improvement] JAVA-821, JAVA-822: Remove internal blocking calls and expose async session +- ``[improvement]`` JAVA-766: Do not include epoll JAR in binary distribution. +- ``[improvement]`` JAVA-726: Optimize internal copies of Request objects. +- ``[bug]`` JAVA-815: Preserve tracing across retries. +- ``[improvement]`` JAVA-709: New RetryDecision.tryNextHost(). +- ``[bug]`` JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. +- ``[improvement]`` JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. +- ``[improvement]`` JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. +- ``[improvement]`` JAVA-618: Randomize contact points list to prevent hotspots. +- ``[improvement]`` JAVA-720: Surface the coordinator used on query failure. +- ``[bug]`` JAVA-792: Handle contact points removed during init. +- ``[improvement]`` JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. +- ``[new feature]`` JAVA-151: Make it possible to register for SchemaChange Events. +- ``[improvement]`` JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. +- ``[improvement]`` JAVA-797: Provide an option to prepare statements only on one node. +- ``[improvement]`` JAVA-658: Provide an option to not re-prepare all statements in onUp. +- ``[improvement]`` JAVA-853: Customizable creation of netty timer. +- ``[bug]`` JAVA-859: Avoid quadratic ring processing with invalid replication factors. +- ``[improvement]`` JAVA-657: Debounce control connection queries. +- ``[bug]`` JAVA-784: LoadBalancingPolicy.distance() called before init(). +- ``[new feature]`` JAVA-828: Make driver-side metadata optional. +- ``[improvement]`` JAVA-544: Allow hosts to remain partially up. +- ``[improvement]`` JAVA-821, JAVA-822: Remove internal blocking calls and expose async session creation. -- [improvement] JAVA-725: Use parallel calls when re-preparing statement on other +- ``[improvement]`` JAVA-725: Use parallel calls when re-preparing statement on other hosts. -- [bug] JAVA-629: Don't use connection timeout for unrelated internal queries. -- [bug] JAVA-892: Fix NPE in speculative executions when metrics disabled. +- ``[bug]`` JAVA-629: Don't use connection timeout for unrelated internal queries. +- ``[bug]`` JAVA-892: Fix NPE in speculative executions when metrics disabled. ### 2.1.7.1 -- [bug] JAVA-834: Special case check for 'null' string in index_options column. -- [improvement] JAVA-835: Allow accessor methods with less parameters in case +- ``[bug]`` JAVA-834: Special case check for 'null' string in index_options column. +- ``[improvement]`` JAVA-835: Allow accessor methods with less parameters in case named bind markers are repeated. ### 2.1.7 -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-715: Make NativeColumnType a top-level class. -- [improvement] JAVA-782: Unify "Target" enum for schema elements. -- [improvement] JAVA-700: Expose ProtocolVersion#toInt. -- [bug] JAVA-542: Handle void return types in accessors. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-713: HashMap throws an OOM Exception when logging level is set to TRACE. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-732: Expose KEYS and FULL indexing options in IndexMetadata. -- [improvement] JAVA-589: Allow @Enumerated in Accessor method parameters. -- [improvement] JAVA-554: Allow access to table metadata from Mapper. -- [improvement] JAVA-661: Provide a way to map computed fields. -- [improvement] JAVA-824: Ignore missing columns in mapper. -- [bug] JAVA-724: Preserve default timestamp for retries and speculative executions. -- [improvement] JAVA-738: Use same pool implementation for protocol v2 and v3. -- [improvement] JAVA-677: Support CONTAINS / CONTAINS KEY in QueryBuilder. -- [improvement] JAVA-477/JAVA-540: Add USING options in mapper for delete and save +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-715: Make NativeColumnType a top-level class. +- ``[improvement]`` JAVA-782: Unify "Target" enum for schema elements. +- ``[improvement]`` JAVA-700: Expose ProtocolVersion#toInt. +- ``[bug]`` JAVA-542: Handle void return types in accessors. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-713: HashMap throws an OOM Exception when logging level is set to TRACE. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-732: Expose KEYS and FULL indexing options in IndexMetadata. +- ``[improvement]`` JAVA-589: Allow @Enumerated in Accessor method parameters. +- ``[improvement]`` JAVA-554: Allow access to table metadata from Mapper. +- ``[improvement]`` JAVA-661: Provide a way to map computed fields. +- ``[improvement]`` JAVA-824: Ignore missing columns in mapper. +- ``[bug]`` JAVA-724: Preserve default timestamp for retries and speculative executions. +- ``[improvement]`` JAVA-738: Use same pool implementation for protocol v2 and v3. +- ``[improvement]`` JAVA-677: Support CONTAINS / CONTAINS KEY in QueryBuilder. +- ``[improvement]`` JAVA-477/JAVA-540: Add USING options in mapper for delete and save operations. -- [improvement] JAVA-473: Add mapper option to configure whether to save null fields. +- ``[improvement]`` JAVA-473: Add mapper option to configure whether to save null fields. Merged from 2.0 branch: -- [bug] JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. -- [bug] JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. -- [bug] JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. -- [bug] JAVA-688: Prevent QueryBuilder from trying to serialize raw string. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-702: Warn when ReplicationStrategy encounters invalid +- ``[bug]`` JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. +- ``[bug]`` JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. +- ``[bug]`` JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. +- ``[bug]`` JAVA-688: Prevent QueryBuilder from trying to serialize raw string. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-702: Warn when ReplicationStrategy encounters invalid replication factors. -- [improvement] JAVA-662: Add PoolingOptions method to set both core and max +- ``[improvement]`` JAVA-662: Add PoolingOptions method to set both core and max connections. -- [improvement] JAVA-766: Do not include epoll JAR in binary distribution. -- [improvement] JAVA-726: Optimize internal copies of Request objects. -- [bug] JAVA-815: Preserve tracing across retries. -- [improvement] JAVA-709: New RetryDecision.tryNextHost(). -- [bug] JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. +- ``[improvement]`` JAVA-766: Do not include epoll JAR in binary distribution. +- ``[improvement]`` JAVA-726: Optimize internal copies of Request objects. +- ``[bug]`` JAVA-815: Preserve tracing across retries. +- ``[improvement]`` JAVA-709: New RetryDecision.tryNextHost(). +- ``[bug]`` JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. ### 2.1.6 Merged from 2.0 branch: -- [new feature] JAVA-584: Add getObject to BoundStatement and Row. -- [improvement] JAVA-419: Improve connection pool resizing algorithm. -- [bug] JAVA-599: Fix race condition between pool expansion and shutdown. -- [improvement] JAVA-622: Upgrade Netty to 4.0.27. -- [improvement] JAVA-562: Coalesce frames before flushing them to the connection. -- [improvement] JAVA-583: Rename threads to indicate that they are for the driver. -- [new feature] JAVA-550: Expose paging state. -- [new feature] JAVA-646: Slow Query Logger. -- [improvement] JAVA-698: Exclude some errors from measurements in LatencyAwarePolicy. -- [bug] JAVA-641: Fix issue when executing a PreparedStatement from another cluster. -- [improvement] JAVA-534: Log keyspace xxx does not exist at WARN level. -- [improvement] JAVA-619: Allow Cluster subclasses to delegate to another instance. -- [new feature] JAVA-669: Expose an API to check for schema agreement after a +- ``[new feature]`` JAVA-584: Add getObject to BoundStatement and Row. +- ``[improvement]`` JAVA-419: Improve connection pool resizing algorithm. +- ``[bug]`` JAVA-599: Fix race condition between pool expansion and shutdown. +- ``[improvement]`` JAVA-622: Upgrade Netty to 4.0.27. +- ``[improvement]`` JAVA-562: Coalesce frames before flushing them to the connection. +- ``[improvement]`` JAVA-583: Rename threads to indicate that they are for the driver. +- ``[new feature]`` JAVA-550: Expose paging state. +- ``[new feature]`` JAVA-646: Slow Query Logger. +- ``[improvement]`` JAVA-698: Exclude some errors from measurements in LatencyAwarePolicy. +- ``[bug]`` JAVA-641: Fix issue when executing a PreparedStatement from another cluster. +- ``[improvement]`` JAVA-534: Log keyspace xxx does not exist at WARN level. +- ``[improvement]`` JAVA-619: Allow Cluster subclasses to delegate to another instance. +- ``[new feature]`` JAVA-669: Expose an API to check for schema agreement after a schema-altering statement. -- [improvement] JAVA-692: Make connection and pool creation fully async. -- [improvement] JAVA-505: Optimize connection use after reconnection. -- [improvement] JAVA-617: Remove "suspected" mechanism. -- [improvement] reverts JAVA-425: Don't mark connection defunct on client timeout. -- [new feature] JAVA-561: Speculative query executions. -- [bug] JAVA-666: Release connection before completing the ResultSetFuture. -- [new feature BETA] JAVA-723: Percentile-based variant of query logger and speculative +- ``[improvement]`` JAVA-692: Make connection and pool creation fully async. +- ``[improvement]`` JAVA-505: Optimize connection use after reconnection. +- ``[improvement]`` JAVA-617: Remove "suspected" mechanism. +- ``[improvement]`` reverts JAVA-425: Don't mark connection defunct on client timeout. +- ``[new feature]`` JAVA-561: Speculative query executions. +- ``[bug]`` JAVA-666: Release connection before completing the ResultSetFuture. +- ``[new feature BETA]`` JAVA-723: Percentile-based variant of query logger and speculative executions. -- [bug] JAVA-734: Fix buffer leaks when compression is enabled. -- [improvement] JAVA-756: Use Netty's pooled ByteBufAllocator by default. -- [improvement] JAVA-759: Expose "unsafe" paging state API. -- [bug] JAVA-768: Prevent race during pool initialization. +- ``[bug]`` JAVA-734: Fix buffer leaks when compression is enabled. +- ``[improvement]`` JAVA-756: Use Netty's pooled ByteBufAllocator by default. +- ``[improvement]`` JAVA-759: Expose "unsafe" paging state API. +- ``[bug]`` JAVA-768: Prevent race during pool initialization. ### 2.1.5 -- [bug] JAVA-575: Authorize Null parameter in Accessor method. -- [improvement] JAVA-570: Support C* 2.1.3's nested collections. -- [bug] JAVA-612: Fix checks on mapped collection types. -- [bug] JAVA-672: Fix QueryBuilder.putAll() when the collection contains UDTs. +- ``[bug]`` JAVA-575: Authorize Null parameter in Accessor method. +- ``[improvement]`` JAVA-570: Support C* 2.1.3's nested collections. +- ``[bug]`` JAVA-612: Fix checks on mapped collection types. +- ``[bug]`` JAVA-672: Fix QueryBuilder.putAll() when the collection contains UDTs. Merged from 2.0 branch: -- [new feature] JAVA-518: Add AddressTranslater for EC2 multi-region deployment. -- [improvement] JAVA-533: Add connection heartbeat. -- [improvement] JAVA-568: Reduce level of logs on missing rpc_address. -- [improvement] JAVA-312, JAVA-681: Expose node token and range information. -- [bug] JAVA-595: Fix cluster name mismatch check at startup. -- [bug] JAVA-620: Fix guava dependency when using OSGI. -- [bug] JAVA-678: Fix handling of DROP events when ks name is case-sensitive. -- [improvement] JAVA-631: Use List instead of List in QueryBuilder API. -- [improvement] JAVA-654: Exclude Netty POM from META-INF in shaded JAR. -- [bug] JAVA-655: Quote single quotes contained in table comments in asCQLQuery method. -- [bug] JAVA-684: Empty TokenRange returned in a one token cluster. -- [improvement] JAVA-687: Expose TokenRange#contains. -- [bug] JAVA-614: Prevent race between cancellation and query completion. -- [bug] JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if +- ``[new feature]`` JAVA-518: Add AddressTranslater for EC2 multi-region deployment. +- ``[improvement]`` JAVA-533: Add connection heartbeat. +- ``[improvement]`` JAVA-568: Reduce level of logs on missing rpc_address. +- ``[improvement]`` JAVA-312, JAVA-681: Expose node token and range information. +- ``[bug]`` JAVA-595: Fix cluster name mismatch check at startup. +- ``[bug]`` JAVA-620: Fix guava dependency when using OSGI. +- ``[bug]`` JAVA-678: Fix handling of DROP events when ks name is case-sensitive. +- ``[improvement]`` JAVA-631: Use ``List`` instead of ``List`` in QueryBuilder API. +- ``[improvement]`` JAVA-654: Exclude Netty POM from META-INF in shaded JAR. +- ``[bug]`` JAVA-655: Quote single quotes contained in table comments in asCQLQuery method. +- ``[bug]`` JAVA-684: Empty TokenRange returned in a one token cluster. +- ``[improvement]`` JAVA-687: Expose TokenRange#contains. +- ``[bug]`` JAVA-614: Prevent race between cancellation and query completion. +- ``[bug]`` JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if streamId was already released and reused. -- [bug] JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. -- [bug] JAVA-613: Fix unwanted LBP notifications when a contact host is down. -- [bug] JAVA-651: Fix edge cases where a connection was released twice. -- [bug] JAVA-653: Fix edge cases in query cancellation. +- ``[bug]`` JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. +- ``[bug]`` JAVA-613: Fix unwanted LBP notifications when a contact host is down. +- ``[bug]`` JAVA-651: Fix edge cases where a connection was released twice. +- ``[bug]`` JAVA-653: Fix edge cases in query cancellation. ### 2.1.4 Merged from 2.0 branch: -- [improvement] JAVA-538: Shade Netty dependency. -- [improvement] JAVA-543: Target schema refreshes more precisely. -- [bug] JAVA-546: Don't check rpc_address for control host. -- [improvement] JAVA-409: Improve message of NoHostAvailableException. -- [bug] JAVA-556: Rework connection reaper to avoid deadlock. -- [bug] JAVA-557: Avoid deadlock when multiple connections to the same host get write +- ``[improvement]`` JAVA-538: Shade Netty dependency. +- ``[improvement]`` JAVA-543: Target schema refreshes more precisely. +- ``[bug]`` JAVA-546: Don't check rpc_address for control host. +- ``[improvement]`` JAVA-409: Improve message of NoHostAvailableException. +- ``[bug]`` JAVA-556: Rework connection reaper to avoid deadlock. +- ``[bug]`` JAVA-557: Avoid deadlock when multiple connections to the same host get write errors. -- [improvement] JAVA-504: Make shuffle=true the default for TokenAwarePolicy. -- [bug] JAVA-577: Fix bug when SUSPECT reconnection succeeds, but one of the pooled +- ``[improvement]`` JAVA-504: Make shuffle=true the default for TokenAwarePolicy. +- ``[bug]`` JAVA-577: Fix bug when SUSPECT reconnection succeeds, but one of the pooled connections fails while bringing the node back up. -- [bug] JAVA-419: JAVA-587: Prevent faulty control connection from ignoring reconnecting hosts. +- ``[bug]`` JAVA-419: JAVA-587: Prevent faulty control connection from ignoring reconnecting hosts. - temporarily revert "Add idle timeout to the connection pool". -- [bug] JAVA-593: Ensure updateCreatedPools does not add pools for suspected hosts. -- [bug] JAVA-594: Ensure state change notifications for a given host are handled serially. -- [bug] JAVA-597: Ensure control connection reconnects when control host is removed. +- ``[bug]`` JAVA-593: Ensure updateCreatedPools does not add pools for suspected hosts. +- ``[bug]`` JAVA-594: Ensure state change notifications for a given host are handled serially. +- ``[bug]`` JAVA-597: Ensure control connection reconnects when control host is removed. ### 2.1.3 -- [bug] JAVA-510: Ignore static fields in mapper. -- [bug] JAVA-509: Fix UDT parsing at init when using the default protocol version. -- [bug] JAVA-495: Fix toString, equals and hashCode on accessor proxies. -- [bug] JAVA-528: Allow empty name on Column and Field annotations. +- ``[bug]`` JAVA-510: Ignore static fields in mapper. +- ``[bug]`` JAVA-509: Fix UDT parsing at init when using the default protocol version. +- ``[bug]`` JAVA-495: Fix toString, equals and hashCode on accessor proxies. +- ``[bug]`` JAVA-528: Allow empty name on Column and Field annotations. Merged from 2.0 branch: -- [bug] JAVA-497: Ensure control connection does not trigger concurrent reconnects. -- [improvement] JAVA-472: Keep trying to reconnect on authentication errors. -- [improvement] JAVA-463: Expose close method on load balancing policy. -- [improvement] JAVA-459: Allow load balancing policy to trigger refresh for a single host. -- [bug] JAVA-493: Expose an API to cancel reconnection attempts. -- [bug] JAVA-503: Fix NPE when a connection fails during pool construction. -- [improvement] JAVA-423: Log datacenter name in DCAware policy's init when it is explicitly provided. -- [improvement] JAVA-504: Shuffle the replicas in TokenAwarePolicy.newQueryPlan. -- [improvement] JAVA-507: Make schema agreement wait tuneable. -- [improvement] JAVA-494: Document how to inject the driver metrics into another registry. -- [improvement] JAVA-419: Add idle timeout to the connection pool. -- [bug] JAVA-516: LatencyAwarePolicy does not shutdown executor on invocation of close. -- [improvement] JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with +- ``[bug]`` JAVA-497: Ensure control connection does not trigger concurrent reconnects. +- ``[improvement]`` JAVA-472: Keep trying to reconnect on authentication errors. +- ``[improvement]`` JAVA-463: Expose close method on load balancing policy. +- ``[improvement]`` JAVA-459: Allow load balancing policy to trigger refresh for a single host. +- ``[bug]`` JAVA-493: Expose an API to cancel reconnection attempts. +- ``[bug]`` JAVA-503: Fix NPE when a connection fails during pool construction. +- ``[improvement]`` JAVA-423: Log datacenter name in DCAware policy's init when it is explicitly provided. +- ``[improvement]`` JAVA-504: Shuffle the replicas in TokenAwarePolicy.newQueryPlan. +- ``[improvement]`` JAVA-507: Make schema agreement wait tuneable. +- ``[improvement]`` JAVA-494: Document how to inject the driver metrics into another registry. +- ``[improvement]`` JAVA-419: Add idle timeout to the connection pool. +- ``[bug]`` JAVA-516: LatencyAwarePolicy does not shutdown executor on invocation of close. +- ``[improvement]`` JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with an explicit but null or empty local datacenter. -- [bug] JAVA-511: Fix check for local contact points in DCAware policy's init. -- [improvement] JAVA-457: Make timeout on saturated pool customizable. -- [improvement] JAVA-521: Downgrade Guava to 14.0.1. -- [bug] JAVA-526: Fix token awareness for case-sensitive keyspaces and tables. -- [bug] JAVA-515: Check maximum number of values passed to SimpleStatement. -- [improvement] JAVA-532: Expose the driver version through the API. -- [improvement] JAVA-522: Optimize session initialization when some hosts are not +- ``[bug]`` JAVA-511: Fix check for local contact points in DCAware policy's init. +- ``[improvement]`` JAVA-457: Make timeout on saturated pool customizable. +- ``[improvement]`` JAVA-521: Downgrade Guava to 14.0.1. +- ``[bug]`` JAVA-526: Fix token awareness for case-sensitive keyspaces and tables. +- ``[bug]`` JAVA-515: Check maximum number of values passed to SimpleStatement. +- ``[improvement]`` JAVA-532: Expose the driver version through the API. +- ``[improvement]`` JAVA-522: Optimize session initialization when some hosts are not responsive. ### 2.1.2 -- [improvement] JAVA-361, JAVA-364, JAVA-467: Support for native protocol v3. -- [bug] JAVA-454: Fix UDT fields of type inet in QueryBuilder. -- [bug] JAVA-455: Exclude transient fields from Frozen checks. -- [bug] JAVA-453: Fix handling of null collections in mapper. -- [improvement] JAVA-452: Make implicit column names case-insensitive in mapper. -- [bug] JAVA-433: Fix named bind markers in QueryBuilder. -- [bug] JAVA-458: Fix handling of BigInteger in object mapper. -- [bug] JAVA-465: Ignore synthetic fields in mapper. -- [improvement] JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with +- ``[improvement]`` JAVA-361, JAVA-364, JAVA-467: Support for native protocol v3. +- ``[bug]`` JAVA-454: Fix UDT fields of type inet in QueryBuilder. +- ``[bug]`` JAVA-455: Exclude transient fields from Frozen checks. +- ``[bug]`` JAVA-453: Fix handling of null collections in mapper. +- ``[improvement]`` JAVA-452: Make implicit column names case-insensitive in mapper. +- ``[bug]`` JAVA-433: Fix named bind markers in QueryBuilder. +- ``[bug]`` JAVA-458: Fix handling of BigInteger in object mapper. +- ``[bug]`` JAVA-465: Ignore synthetic fields in mapper. +- ``[improvement]`` JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with an explicit but null or empty local datacenter. -- [improvement] JAVA-469: Add backwards-compatible DataType.serialize methods. -- [bug] JAVA-487: Handle null enum fields in object mapper. -- [bug] JAVA-499: Handle null UDT fields in object mapper. +- ``[improvement]`` JAVA-469: Add backwards-compatible DataType.serialize methods. +- ``[bug]`` JAVA-487: Handle null enum fields in object mapper. +- ``[bug]`` JAVA-499: Handle null UDT fields in object mapper. Merged from 2.0 branch: -- [bug] JAVA-449: Handle null pool in PooledConnection.release. -- [improvement] JAVA-425: Defunct connection on request timeout. -- [improvement] JAVA-426: Try next host when we get a SERVER_ERROR. -- [bug] JAVA-449, JAVA-460, JAVA-471: Handle race between query timeout and completion. -- [bug] JAVA-496: Fix DCAwareRoundRobinPolicy datacenter auto-discovery. +- ``[bug]`` JAVA-449: Handle null pool in PooledConnection.release. +- ``[improvement]`` JAVA-425: Defunct connection on request timeout. +- ``[improvement]`` JAVA-426: Try next host when we get a SERVER_ERROR. +- ``[bug]`` JAVA-449, JAVA-460, JAVA-471: Handle race between query timeout and completion. +- ``[bug]`` JAVA-496: Fix DCAwareRoundRobinPolicy datacenter auto-discovery. ### 2.1.1 -- [new] JAVA-441: Support for new "frozen" keyword. +- ``[new]`` JAVA-441: Support for new "frozen" keyword. Merged from 2.0 branch: -- [bug] JAVA-397: Check cluster name when connecting to a new node. -- [bug] JAVA-326: Add missing CAS delete support in QueryBuilder. -- [bug] JAVA-363: Add collection and data length checks during serialization. -- [improvement] JAVA-329: Surface number of retries in metrics. -- [bug] JAVA-428: Do not use a host when no rpc_address found for it. -- [improvement] JAVA-358: Add ResultSet.wasApplied() for conditional queries. -- [bug] JAVA-349: Fix negative HostConnectionPool open count. -- [improvement] JAVA-436: Log more connection details at trace and debug levels. -- [bug] JAVA-445: Fix cluster shutdown. +- ``[bug]`` JAVA-397: Check cluster name when connecting to a new node. +- ``[bug]`` JAVA-326: Add missing CAS delete support in QueryBuilder. +- ``[bug]`` JAVA-363: Add collection and data length checks during serialization. +- ``[improvement]`` JAVA-329: Surface number of retries in metrics. +- ``[bug]`` JAVA-428: Do not use a host when no rpc_address found for it. +- ``[improvement]`` JAVA-358: Add ResultSet.wasApplied() for conditional queries. +- ``[bug]`` JAVA-349: Fix negative HostConnectionPool open count. +- ``[improvement]`` JAVA-436: Log more connection details at trace and debug levels. +- ``[bug]`` JAVA-445: Fix cluster shutdown. ### 2.1.0 -- [bug] JAVA-408: ClusteringColumn annotation not working with specified ordering. -- [improvement] JAVA-410: Fail BoundStatement if null values are not set explicitly. -- [bug] JAVA-416: Handle UDT and tuples in BuiltStatement.toString. +- ``[bug]`` JAVA-408: ClusteringColumn annotation not working with specified ordering. +- ``[improvement]`` JAVA-410: Fail BoundStatement if null values are not set explicitly. +- ``[bug]`` JAVA-416: Handle UDT and tuples in BuiltStatement.toString. Merged from 2.0 branch: -- [bug] JAVA-407: Release connections on ResultSetFuture#cancel. -- [bug] JAVA-393: Fix handling of SimpleStatement with values in query builder +- ``[bug]`` JAVA-407: Release connections on ResultSetFuture#cancel. +- ``[bug]`` JAVA-393: Fix handling of SimpleStatement with values in query builder batches. -- [bug] JAVA-417: Ensure pool is properly closed in onDown. -- [bug] JAVA-415: Fix tokenMap initialization at startup. -- [bug] JAVA-418: Avoid deadlock on close. +- ``[bug]`` JAVA-417: Ensure pool is properly closed in onDown. +- ``[bug]`` JAVA-415: Fix tokenMap initialization at startup. +- ``[bug]`` JAVA-418: Avoid deadlock on close. ### 2.1.0-rc1 Merged from 2.0 branch: -- [bug] JAVA-394: Ensure defunct connections are completely closed. -- [bug] JAVA-342, JAVA-390: Fix memory and resource leak on closed Sessions. +- ``[bug]`` JAVA-394: Ensure defunct connections are completely closed. +- ``[bug]`` JAVA-342, JAVA-390: Fix memory and resource leak on closed Sessions. ### 2.1.0-beta1 -- [new] Support for User Defined Types and tuples -- [new] Simple object mapper +- ``[new]`` Support for User Defined Types and tuples +- ``[new]`` Simple object mapper Merged from 2.0 branch: everything up to 2.0.3 (included), and the following. -- [improvement] JAVA-204: Better handling of dead connections. -- [bug] JAVA-373: Fix potential NPE in ControlConnection. -- [bug] JAVA-291: Throws NPE when passed null for a contact point. -- [bug] JAVA-315: Avoid LoadBalancingPolicy onDown+onUp at startup. -- [bug] JAVA-343: Avoid classloader leak in Tomcat. -- [bug] JAVA-387: Avoid deadlock in onAdd/onUp. -- [bug] JAVA-377, JAVA-391: Make metadata parsing more lenient. +- ``[improvement]`` JAVA-204: Better handling of dead connections. +- ``[bug]`` JAVA-373: Fix potential NPE in ControlConnection. +- ``[bug]`` JAVA-291: Throws NPE when passed null for a contact point. +- ``[bug]`` JAVA-315: Avoid LoadBalancingPolicy onDown+onUp at startup. +- ``[bug]`` JAVA-343: Avoid classloader leak in Tomcat. +- ``[bug]`` JAVA-387: Avoid deadlock in onAdd/onUp. +- ``[bug]`` JAVA-377, JAVA-391: Make metadata parsing more lenient. ### 2.0.12.2 -- [bug] JAVA-1179: Request objects should be copied when executed. -- [improvement] JAVA-1182: Throw error when synchronous call made on I/O thread. -- [bug] JAVA-1184: Unwrap StatementWrappers when extracting column definitions. +- ``[bug]`` JAVA-1179: Request objects should be copied when executed. +- ``[improvement]`` JAVA-1182: Throw error when synchronous call made on I/O thread. +- ``[bug]`` JAVA-1184: Unwrap StatementWrappers when extracting column definitions. ### 2.0.12.1 -- [bug] JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. -- [improvement] JAVA-805: Document that metrics are null until Cluster is initialized. -- [bug] JAVA-1072: Ensure defunct connections are properly evicted from the pool. +- ``[bug]`` JAVA-994: Don't call on(Up|Down|Add|Remove) methods if Cluster is closed/closing. +- ``[improvement]`` JAVA-805: Document that metrics are null until Cluster is initialized. +- ``[bug]`` JAVA-1072: Ensure defunct connections are properly evicted from the pool. ### 2.0.12 -- [bug] JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. -- [improvement] JAVA-920: Downgrade "error creating pool" message to WARN. -- [bug] JAVA-954: Don't trigger reconnection before initialization complete. -- [improvement] JAVA-914: Avoid rejected tasks at shutdown. -- [improvement] JAVA-921: Add SimpleStatement.getValuesCount(). -- [bug] JAVA-901: Move call to connection.release() out of cancelHandler. -- [bug] JAVA-960: Avoid race in control connection shutdown. -- [bug] JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. -- [bug] JAVA-966: Count uninitialized connections in conviction policy. -- [improvement] JAVA-917: Document SSL configuration. -- [improvement] JAVA-652: Add DCAwareRoundRobinPolicy builder. -- [improvement] JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. +- ``[bug]`` JAVA-950: Fix Cluster.connect with a case-sensitive keyspace. +- ``[improvement]`` JAVA-920: Downgrade "error creating pool" message to WARN. +- ``[bug]`` JAVA-954: Don't trigger reconnection before initialization complete. +- ``[improvement]`` JAVA-914: Avoid rejected tasks at shutdown. +- ``[improvement]`` JAVA-921: Add SimpleStatement.getValuesCount(). +- ``[bug]`` JAVA-901: Move call to connection.release() out of cancelHandler. +- ``[bug]`` JAVA-960: Avoid race in control connection shutdown. +- ``[bug]`` JAVA-656: Fix NPE in ControlConnection.updateLocationInfo. +- ``[bug]`` JAVA-966: Count uninitialized connections in conviction policy. +- ``[improvement]`` JAVA-917: Document SSL configuration. +- ``[improvement]`` JAVA-652: Add DCAwareRoundRobinPolicy builder. +- ``[improvement]`` JAVA-808: Add generic filtering policy that can be used to exclude specific DCs. ### 2.0.11 -- [improvement] JAVA-718: Log streamid at the trace level on sending request and receiving response. -- [bug] JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. -- [improvement] JAVA-710: Suppress unnecessary warning at shutdown. -- [improvement] #340: Allow DNS name with multiple A-records as contact point. -- [bug] JAVA-794: Allow tracing across multiple result pages. -- [bug] JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. -- [bug] JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. -- [bug] JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. -- [bug] JAVA-688: Prevent QueryBuilder from trying to serialize raw string. -- [bug] JAVA-679: Support bind marker in QueryBuilder DELETE's list index. -- [improvement] JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. -- [improvement] JAVA-225: Create values() function for Insert builder using List. -- [improvement] JAVA-702: Warn when ReplicationStrategy encounters invalid +- ``[improvement]`` JAVA-718: Log streamid at the trace level on sending request and receiving response. +- ``[bug]`` JAVA-796: Fix SpeculativeExecutionPolicy.init() and close() are never called. +- ``[improvement]`` JAVA-710: Suppress unnecessary warning at shutdown. +- ``[improvement]`` #340: Allow DNS name with multiple A-records as contact point. +- ``[bug]`` JAVA-794: Allow tracing across multiple result pages. +- ``[bug]`` JAVA-737: DowngradingConsistencyRetryPolicy ignores write timeouts. +- ``[bug]`` JAVA-736: Forbid bind marker in QueryBuilder add/append/prepend. +- ``[bug]`` JAVA-712: Prevent QueryBuilder.quote() from applying duplicate double quotes. +- ``[bug]`` JAVA-688: Prevent QueryBuilder from trying to serialize raw string. +- ``[bug]`` JAVA-679: Support bind marker in QueryBuilder DELETE's list index. +- ``[improvement]`` JAVA-475: Improve QueryBuilder API for SELECT DISTINCT. +- ``[improvement]`` JAVA-225: Create values() function for Insert builder using List. +- ``[improvement]`` JAVA-702: Warn when ReplicationStrategy encounters invalid replication factors. -- [improvement] JAVA-662: Add PoolingOptions method to set both core and max +- ``[improvement]`` JAVA-662: Add PoolingOptions method to set both core and max connections. -- [improvement] JAVA-766: Do not include epoll JAR in binary distribution. -- [improvement] JAVA-726: Optimize internal copies of Request objects. -- [bug] JAVA-815: Preserve tracing across retries. -- [improvement] JAVA-709: New RetryDecision.tryNextHost(). -- [bug] JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. -- [improvement] JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. -- [improvement] JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. -- [improvement] JAVA-618: Randomize contact points list to prevent hotspots. -- [improvement] JAVA-720: Surface the coordinator used on query failure. -- [bug] JAVA-792: Handle contact points removed during init. -- [improvement] JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. -- [new feature] JAVA-151: Make it possible to register for SchemaChange Events. -- [improvement] JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. -- [improvement] JAVA-797: Provide an option to prepare statements only on one node. -- [improvement] JAVA-658: Provide an option to not re-prepare all statements in onUp. -- [improvement] JAVA-853: Customizable creation of netty timer. -- [bug] JAVA-859: Avoid quadratic ring processing with invalid replication factors. -- [improvement] JAVA-657: Debounce control connection queries. -- [bug] JAVA-784: LoadBalancingPolicy.distance() called before init(). -- [new feature] JAVA-828: Make driver-side metadata optional. -- [improvement] JAVA-544: Allow hosts to remain partially up. -- [improvement] JAVA-821, JAVA-822: Remove internal blocking calls and expose async session +- ``[improvement]`` JAVA-766: Do not include epoll JAR in binary distribution. +- ``[improvement]`` JAVA-726: Optimize internal copies of Request objects. +- ``[bug]`` JAVA-815: Preserve tracing across retries. +- ``[improvement]`` JAVA-709: New RetryDecision.tryNextHost(). +- ``[bug]`` JAVA-733: Handle function calls and raw strings as non-idempotent in QueryBuilder. +- ``[improvement]`` JAVA-765: Provide API to retrieve values of a Parameterized SimpleStatement. +- ``[improvement]`` JAVA-827: implement UPDATE .. IF EXISTS in QueryBuilder. +- ``[improvement]`` JAVA-618: Randomize contact points list to prevent hotspots. +- ``[improvement]`` JAVA-720: Surface the coordinator used on query failure. +- ``[bug]`` JAVA-792: Handle contact points removed during init. +- ``[improvement]`` JAVA-719: Allow PlainTextAuthProvider to change its credentials at runtime. +- ``[new feature]`` JAVA-151: Make it possible to register for SchemaChange Events. +- ``[improvement]`` JAVA-861: Downgrade "Asked to rebuild table" log from ERROR to INFO level. +- ``[improvement]`` JAVA-797: Provide an option to prepare statements only on one node. +- ``[improvement]`` JAVA-658: Provide an option to not re-prepare all statements in onUp. +- ``[improvement]`` JAVA-853: Customizable creation of netty timer. +- ``[bug]`` JAVA-859: Avoid quadratic ring processing with invalid replication factors. +- ``[improvement]`` JAVA-657: Debounce control connection queries. +- ``[bug]`` JAVA-784: LoadBalancingPolicy.distance() called before init(). +- ``[new feature]`` JAVA-828: Make driver-side metadata optional. +- ``[improvement]`` JAVA-544: Allow hosts to remain partially up. +- ``[improvement]`` JAVA-821, JAVA-822: Remove internal blocking calls and expose async session creation. -- [improvement] JAVA-725: Use parallel calls when re-preparing statement on other +- ``[improvement]`` JAVA-725: Use parallel calls when re-preparing statement on other hosts. -- [bug] JAVA-629: Don't use connection timeout for unrelated internal queries. -- [bug] JAVA-892: Fix NPE in speculative executions when metrics disabled. +- ``[bug]`` JAVA-629: Don't use connection timeout for unrelated internal queries. +- ``[bug]`` JAVA-892: Fix NPE in speculative executions when metrics disabled. Merged from 2.0.10_fixes branch: -- [improvement] JAVA-756: Use Netty's pooled ByteBufAllocator by default. -- [improvement] JAVA-759: Expose "unsafe" paging state API. -- [bug] JAVA-767: Fix getObject by name. -- [bug] JAVA-768: Prevent race during pool initialization. +- ``[improvement]`` JAVA-756: Use Netty's pooled ByteBufAllocator by default. +- ``[improvement]`` JAVA-759: Expose "unsafe" paging state API. +- ``[bug]`` JAVA-767: Fix getObject by name. +- ``[bug]`` JAVA-768: Prevent race during pool initialization. ### 2.0.10.1 -- [improvement] JAVA-756: Use Netty's pooled ByteBufAllocator by default. -- [improvement] JAVA-759: Expose "unsafe" paging state API. -- [bug] JAVA-767: Fix getObject by name. -- [bug] JAVA-768: Prevent race during pool initialization. +- ``[improvement]`` JAVA-756: Use Netty's pooled ByteBufAllocator by default. +- ``[improvement]`` JAVA-759: Expose "unsafe" paging state API. +- ``[bug]`` JAVA-767: Fix getObject by name. +- ``[bug]`` JAVA-768: Prevent race during pool initialization. ### 2.0.10 -- [new feature] JAVA-518: Add AddressTranslater for EC2 multi-region deployment. -- [improvement] JAVA-533: Add connection heartbeat. -- [improvement] JAVA-568: Reduce level of logs on missing rpc_address. -- [improvement] JAVA-312, JAVA-681: Expose node token and range information. -- [bug] JAVA-595: Fix cluster name mismatch check at startup. -- [bug] JAVA-620: Fix guava dependency when using OSGI. -- [bug] JAVA-678: Fix handling of DROP events when ks name is case-sensitive. -- [improvement] JAVA-631: Use List instead of List in QueryBuilder API. -- [improvement] JAVA-654: Exclude Netty POM from META-INF in shaded JAR. -- [bug] JAVA-655: Quote single quotes contained in table comments in asCQLQuery method. -- [bug] JAVA-684: Empty TokenRange returned in a one token cluster. -- [improvement] JAVA-687: Expose TokenRange#contains. -- [new feature] JAVA-547: Expose values of BoundStatement. -- [new feature] JAVA-584: Add getObject to BoundStatement and Row. -- [improvement] JAVA-419: Improve connection pool resizing algorithm. -- [bug] JAVA-599: Fix race condition between pool expansion and shutdown. -- [improvement] JAVA-622: Upgrade Netty to 4.0.27. -- [improvement] JAVA-562: Coalesce frames before flushing them to the connection. -- [improvement] JAVA-583: Rename threads to indicate that they are for the driver. -- [new feature] JAVA-550: Expose paging state. -- [new feature] JAVA-646: Slow Query Logger. -- [improvement] JAVA-698: Exclude some errors from measurements in LatencyAwarePolicy. -- [bug] JAVA-641: Fix issue when executing a PreparedStatement from another cluster. -- [improvement] JAVA-534: Log keyspace xxx does not exist at WARN level. -- [improvement] JAVA-619: Allow Cluster subclasses to delegate to another instance. -- [new feature] JAVA-669: Expose an API to check for schema agreement after a +- ``[new feature]`` JAVA-518: Add AddressTranslater for EC2 multi-region deployment. +- ``[improvement]`` JAVA-533: Add connection heartbeat. +- ``[improvement]`` JAVA-568: Reduce level of logs on missing rpc_address. +- ``[improvement]`` JAVA-312, JAVA-681: Expose node token and range information. +- ``[bug]`` JAVA-595: Fix cluster name mismatch check at startup. +- ``[bug]`` JAVA-620: Fix guava dependency when using OSGI. +- ``[bug]`` JAVA-678: Fix handling of DROP events when ks name is case-sensitive. +- ``[improvement]`` JAVA-631: Use ``List`` instead of ``List`` in QueryBuilder API. +- ``[improvement]`` JAVA-654: Exclude Netty POM from META-INF in shaded JAR. +- ``[bug]`` JAVA-655: Quote single quotes contained in table comments in asCQLQuery method. +- ``[bug]`` JAVA-684: Empty TokenRange returned in a one token cluster. +- ``[improvement]`` JAVA-687: Expose TokenRange#contains. +- ``[new feature]`` JAVA-547: Expose values of BoundStatement. +- ``[new feature]`` JAVA-584: Add getObject to BoundStatement and Row. +- ``[improvement]`` JAVA-419: Improve connection pool resizing algorithm. +- ``[bug]`` JAVA-599: Fix race condition between pool expansion and shutdown. +- ``[improvement]`` JAVA-622: Upgrade Netty to 4.0.27. +- ``[improvement]`` JAVA-562: Coalesce frames before flushing them to the connection. +- ``[improvement]`` JAVA-583: Rename threads to indicate that they are for the driver. +- ``[new feature]`` JAVA-550: Expose paging state. +- ``[new feature]`` JAVA-646: Slow Query Logger. +- ``[improvement]`` JAVA-698: Exclude some errors from measurements in LatencyAwarePolicy. +- ``[bug]`` JAVA-641: Fix issue when executing a PreparedStatement from another cluster. +- ``[improvement]`` JAVA-534: Log keyspace xxx does not exist at WARN level. +- ``[improvement]`` JAVA-619: Allow Cluster subclasses to delegate to another instance. +- ``[new feature]`` JAVA-669: Expose an API to check for schema agreement after a schema-altering statement. -- [improvement] JAVA-692: Make connection and pool creation fully async. -- [improvement] JAVA-505: Optimize connection use after reconnection. -- [improvement] JAVA-617: Remove "suspected" mechanism. -- [improvement] reverts JAVA-425: Don't mark connection defunct on client timeout. -- [new feature] JAVA-561: Speculative query executions. -- [bug] JAVA-666: Release connection before completing the ResultSetFuture. -- [new feature BETA] JAVA-723: Percentile-based variant of query logger and speculative +- ``[improvement]`` JAVA-692: Make connection and pool creation fully async. +- ``[improvement]`` JAVA-505: Optimize connection use after reconnection. +- ``[improvement]`` JAVA-617: Remove "suspected" mechanism. +- ``[improvement]`` reverts JAVA-425: Don't mark connection defunct on client timeout. +- ``[new feature]`` JAVA-561: Speculative query executions. +- ``[bug]`` JAVA-666: Release connection before completing the ResultSetFuture. +- ``[new feature BETA]`` JAVA-723: Percentile-based variant of query logger and speculative executions. -- [bug] JAVA-734: Fix buffer leaks when compression is enabled. +- ``[bug]`` JAVA-734: Fix buffer leaks when compression is enabled. Merged from 2.0.9_fixes branch: -- [bug] JAVA-614: Prevent race between cancellation and query completion. -- [bug] JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if +- ``[bug]`` JAVA-614: Prevent race between cancellation and query completion. +- ``[bug]`` JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if streamId was already released and reused. -- [bug] JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. -- [bug] JAVA-613: Fix unwanted LBP notifications when a contact host is down. -- [bug] JAVA-651: Fix edge cases where a connection was released twice. -- [bug] JAVA-653: Fix edge cases in query cancellation. +- ``[bug]`` JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. +- ``[bug]`` JAVA-613: Fix unwanted LBP notifications when a contact host is down. +- ``[bug]`` JAVA-651: Fix edge cases where a connection was released twice. +- ``[bug]`` JAVA-653: Fix edge cases in query cancellation. ### 2.0.9.2 -- [bug] JAVA-651: Fix edge cases where a connection was released twice. -- [bug] JAVA-653: Fix edge cases in query cancellation. +- ``[bug]`` JAVA-651: Fix edge cases where a connection was released twice. +- ``[bug]`` JAVA-653: Fix edge cases in query cancellation. ### 2.0.9.1 -- [bug] JAVA-614: Prevent race between cancellation and query completion. -- [bug] JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if +- ``[bug]`` JAVA-614: Prevent race between cancellation and query completion. +- ``[bug]`` JAVA-632: Prevent cancel and timeout from cancelling unrelated ResponseHandler if streamId was already released and reused. -- [bug] JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. -- [bug] JAVA-613: Fix unwanted LBP notifications when a contact host is down. +- ``[bug]`` JAVA-642: Fix issue when newly opened pool fails before we could mark the node UP. +- ``[bug]`` JAVA-613: Fix unwanted LBP notifications when a contact host is down. ### 2.0.9 -- [improvement] JAVA-538: Shade Netty dependency. -- [improvement] JAVA-543: Target schema refreshes more precisely. -- [bug] JAVA-546: Don't check rpc_address for control host. -- [improvement] JAVA-409: Improve message of NoHostAvailableException. -- [bug] JAVA-556: Rework connection reaper to avoid deadlock. -- [bug] JAVA-557: Avoid deadlock when multiple connections to the same host get write +- ``[improvement]`` JAVA-538: Shade Netty dependency. +- ``[improvement]`` JAVA-543: Target schema refreshes more precisely. +- ``[bug]`` JAVA-546: Don't check rpc_address for control host. +- ``[improvement]`` JAVA-409: Improve message of NoHostAvailableException. +- ``[bug]`` JAVA-556: Rework connection reaper to avoid deadlock. +- ``[bug]`` JAVA-557: Avoid deadlock when multiple connections to the same host get write errors. -- [improvement] JAVA-504: Make shuffle=true the default for TokenAwarePolicy. -- [bug] JAVA-577: Fix bug when SUSPECT reconnection succeeds, but one of the pooled +- ``[improvement]`` JAVA-504: Make shuffle=true the default for TokenAwarePolicy. +- ``[bug]`` JAVA-577: Fix bug when SUSPECT reconnection succeeds, but one of the pooled connections fails while bringing the node back up. -- [bug] JAVA-419: JAVA-587: Prevent faulty control connection from ignoring reconnecting hosts. +- ``[bug]`` JAVA-419: JAVA-587: Prevent faulty control connection from ignoring reconnecting hosts. - temporarily revert "Add idle timeout to the connection pool". -- [bug] JAVA-593: Ensure updateCreatedPools does not add pools for suspected hosts. -- [bug] JAVA-594: Ensure state change notifications for a given host are handled serially. -- [bug] JAVA-597: Ensure control connection reconnects when control host is removed. +- ``[bug]`` JAVA-593: Ensure updateCreatedPools does not add pools for suspected hosts. +- ``[bug]`` JAVA-594: Ensure state change notifications for a given host are handled serially. +- ``[bug]`` JAVA-597: Ensure control connection reconnects when control host is removed. ### 2.0.8 -- [bug] JAVA-526: Fix token awareness for case-sensitive keyspaces and tables. -- [bug] JAVA-515: Check maximum number of values passed to SimpleStatement. -- [improvement] JAVA-532: Expose the driver version through the API. -- [improvement] JAVA-522: Optimize session initialization when some hosts are not +- ``[bug]`` JAVA-526: Fix token awareness for case-sensitive keyspaces and tables. +- ``[bug]`` JAVA-515: Check maximum number of values passed to SimpleStatement. +- ``[improvement]`` JAVA-532: Expose the driver version through the API. +- ``[improvement]`` JAVA-522: Optimize session initialization when some hosts are not responsive. ### 2.0.7 -- [bug] JAVA-449: Handle null pool in PooledConnection.release. -- [improvement] JAVA-425: Defunct connection on request timeout. -- [improvement] JAVA-426: Try next host when we get a SERVER_ERROR. -- [bug] JAVA-449, JAVA-460, JAVA-471: Handle race between query timeout and completion. -- [bug] JAVA-496: Fix DCAwareRoundRobinPolicy datacenter auto-discovery. -- [bug] JAVA-497: Ensure control connection does not trigger concurrent reconnects. -- [improvement] JAVA-472: Keep trying to reconnect on authentication errors. -- [improvement] JAVA-463: Expose close method on load balancing policy. -- [improvement] JAVA-459: Allow load balancing policy to trigger refresh for a single host. -- [bug] JAVA-493: Expose an API to cancel reconnection attempts. -- [bug] JAVA-503: Fix NPE when a connection fails during pool construction. -- [improvement] JAVA-423: Log datacenter name in DCAware policy's init when it is explicitly provided. -- [improvement] JAVA-504: Shuffle the replicas in TokenAwarePolicy.newQueryPlan. -- [improvement] JAVA-507: Make schema agreement wait tuneable. -- [improvement] JAVA-494: Document how to inject the driver metrics into another registry. -- [improvement] JAVA-419: Add idle timeout to the connection pool. -- [bug] JAVA-516: LatencyAwarePolicy does not shutdown executor on invocation of close. -- [improvement] JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with +- ``[bug]`` JAVA-449: Handle null pool in PooledConnection.release. +- ``[improvement]`` JAVA-425: Defunct connection on request timeout. +- ``[improvement]`` JAVA-426: Try next host when we get a SERVER_ERROR. +- ``[bug]`` JAVA-449, JAVA-460, JAVA-471: Handle race between query timeout and completion. +- ``[bug]`` JAVA-496: Fix DCAwareRoundRobinPolicy datacenter auto-discovery. +- ``[bug]`` JAVA-497: Ensure control connection does not trigger concurrent reconnects. +- ``[improvement]`` JAVA-472: Keep trying to reconnect on authentication errors. +- ``[improvement]`` JAVA-463: Expose close method on load balancing policy. +- ``[improvement]`` JAVA-459: Allow load balancing policy to trigger refresh for a single host. +- ``[bug]`` JAVA-493: Expose an API to cancel reconnection attempts. +- ``[bug]`` JAVA-503: Fix NPE when a connection fails during pool construction. +- ``[improvement]`` JAVA-423: Log datacenter name in DCAware policy's init when it is explicitly provided. +- ``[improvement]`` JAVA-504: Shuffle the replicas in TokenAwarePolicy.newQueryPlan. +- ``[improvement]`` JAVA-507: Make schema agreement wait tuneable. +- ``[improvement]`` JAVA-494: Document how to inject the driver metrics into another registry. +- ``[improvement]`` JAVA-419: Add idle timeout to the connection pool. +- ``[bug]`` JAVA-516: LatencyAwarePolicy does not shutdown executor on invocation of close. +- ``[improvement]`` JAVA-451: Throw an exception when DCAwareRoundRobinPolicy is built with an explicit but null or empty local datacenter. -- [bug] JAVA-511: Fix check for local contact points in DCAware policy's init. -- [improvement] JAVA-457: Make timeout on saturated pool customizable. -- [improvement] JAVA-521: Downgrade Guava to 14.0.1. +- ``[bug]`` JAVA-511: Fix check for local contact points in DCAware policy's init. +- ``[improvement]`` JAVA-457: Make timeout on saturated pool customizable. +- ``[improvement]`` JAVA-521: Downgrade Guava to 14.0.1. ### 2.0.6 -- [bug] JAVA-397: Check cluster name when connecting to a new node. -- [bug] JAVA-326: Add missing CAS delete support in QueryBuilder. -- [bug] JAVA-363: Add collection and data length checks during serialization. -- [improvement] JAVA-329: Surface number of retries in metrics. -- [bug] JAVA-428: Do not use a host when no rpc_address found for it. -- [improvement] JAVA-358: Add ResultSet.wasApplied() for conditional queries. -- [bug] JAVA-349: Fix negative HostConnectionPool open count. -- [improvement] JAVA-436: Log more connection details at trace and debug levels. -- [bug] JAVA-445: Fix cluster shutdown. -- [improvement] JAVA-439: Expose child policy in chainable load balancing policies. +- ``[bug]`` JAVA-397: Check cluster name when connecting to a new node. +- ``[bug]`` JAVA-326: Add missing CAS delete support in QueryBuilder. +- ``[bug]`` JAVA-363: Add collection and data length checks during serialization. +- ``[improvement]`` JAVA-329: Surface number of retries in metrics. +- ``[bug]`` JAVA-428: Do not use a host when no rpc_address found for it. +- ``[improvement]`` JAVA-358: Add ResultSet.wasApplied() for conditional queries. +- ``[bug]`` JAVA-349: Fix negative HostConnectionPool open count. +- ``[improvement]`` JAVA-436: Log more connection details at trace and debug levels. +- ``[bug]`` JAVA-445: Fix cluster shutdown. +- ``[improvement]`` JAVA-439: Expose child policy in chainable load balancing policies. ### 2.0.5 -- [bug] JAVA-407: Release connections on ResultSetFuture#cancel. -- [bug] JAVA-393: Fix handling of SimpleStatement with values in query builder +- ``[bug]`` JAVA-407: Release connections on ResultSetFuture#cancel. +- ``[bug]`` JAVA-393: Fix handling of SimpleStatement with values in query builder batches. -- [bug] JAVA-417: Ensure pool is properly closed in onDown. -- [bug] JAVA-415: Fix tokenMap initialization at startup. -- [bug] JAVA-418: Avoid deadlock on close. +- ``[bug]`` JAVA-417: Ensure pool is properly closed in onDown. +- ``[bug]`` JAVA-415: Fix tokenMap initialization at startup. +- ``[bug]`` JAVA-418: Avoid deadlock on close. ### 2.0.4 -- [improvement] JAVA-204: Better handling of dead connections. -- [bug] JAVA-373: Fix potential NPE in ControlConnection. -- [bug] JAVA-291: Throws NPE when passed null for a contact point. -- [bug] JAVA-315: Avoid LoadBalancingPolicy onDown+onUp at startup. -- [bug] JAVA-343: Avoid classloader leak in Tomcat. -- [bug] JAVA-387: Avoid deadlock in onAdd/onUp. -- [bug] JAVA-377, JAVA-391: Make metadata parsing more lenient. -- [bug] JAVA-394: Ensure defunct connections are completely closed. -- [bug] JAVA-342, JAVA-390: Fix memory and resource leak on closed Sessions. +- ``[improvement]`` JAVA-204: Better handling of dead connections. +- ``[bug]`` JAVA-373: Fix potential NPE in ControlConnection. +- ``[bug]`` JAVA-291: Throws NPE when passed null for a contact point. +- ``[bug]`` JAVA-315: Avoid LoadBalancingPolicy onDown+onUp at startup. +- ``[bug]`` JAVA-343: Avoid classloader leak in Tomcat. +- ``[bug]`` JAVA-387: Avoid deadlock in onAdd/onUp. +- ``[bug]`` JAVA-377, JAVA-391: Make metadata parsing more lenient. +- ``[bug]`` JAVA-394: Ensure defunct connections are completely closed. +- ``[bug]`` JAVA-342, JAVA-390: Fix memory and resource leak on closed Sessions. ### 2.0.3 -- [new] The new AbsractSession makes mocking of Session easier. -- [new] JAVA-309: Allow to trigger a refresh of connected hosts. -- [new] JAVA-265: New Session#getState method allows to grab information on +- ``[new]`` The new AbsractSession makes mocking of Session easier. +- ``[new]`` JAVA-309: Allow to trigger a refresh of connected hosts. +- ``[new]`` JAVA-265: New Session#getState method allows to grab information on which nodes a session is connected to. -- [new] JAVA-327: Add QueryBuilder syntax for tuples in where clauses (syntax +- ``[new]`` JAVA-327: Add QueryBuilder syntax for tuples in where clauses (syntax introduced in Cassandra 2.0.6). -- [improvement] JAVA-359: Properly validate arguments of PoolingOptions methods. -- [bug] JAVA-368: Fix bogus rejection of BigInteger in 'execute with values'. -- [bug] JAVA-367: Signal connection failure sooner to avoid missing them. -- [bug] JAVA-337: Throw UnsupportedOperationException for protocol batch +- ``[improvement]`` JAVA-359: Properly validate arguments of PoolingOptions methods. +- ``[bug]`` JAVA-368: Fix bogus rejection of BigInteger in 'execute with values'. +- ``[bug]`` JAVA-367: Signal connection failure sooner to avoid missing them. +- ``[bug]`` JAVA-337: Throw UnsupportedOperationException for protocol batch setSerialCL. Merged from 1.0 branch: -- [bug] JAVA-325: Fix periodic reconnection to down hosts. +- ``[bug]`` JAVA-325: Fix periodic reconnection to down hosts. ### 2.0.2 -- [api] The type of the map key returned by NoHostAvailable#getErrors has changed from +- ``[api]`` The type of the map key returned by NoHostAvailable#getErrors has changed from InetAddress to InetSocketAddress. Same for Initializer#getContactPoints return and for AuthProvider#newAuthenticator. -- [api] JAVA-296: The default load balacing policy is now DCAwareRoundRobinPolicy, and the local +- ``[api]`` JAVA-296: The default load balacing policy is now DCAwareRoundRobinPolicy, and the local datacenter is automatically picked based on the first connected node. Furthermore, the TokenAwarePolicy is also used by default. -- [new] JAVA-145: New optional AddressTranslater. -- [bug] JAVA-321: Don't remove quotes on keyspace in the query builder. -- [bug] JAVA-320: Fix potential NPE while cluster undergo schema changes. -- [bug] JAVA-319: Fix thread-safety of page fetching. -- [bug] JAVA-318: Fix potential NPE using fetchMoreResults. +- ``[new]`` JAVA-145: New optional AddressTranslater. +- ``[bug]`` JAVA-321: Don't remove quotes on keyspace in the query builder. +- ``[bug]`` JAVA-320: Fix potential NPE while cluster undergo schema changes. +- ``[bug]`` JAVA-319: Fix thread-safety of page fetching. +- ``[bug]`` JAVA-318: Fix potential NPE using fetchMoreResults. Merged from 1.0 branch: -- [new] JAVA-179: Expose the name of the partitioner in use in the cluster metadata. -- [new] Add new WhiteListPolicy to limit the nodes connected to a particular list. -- [improvement] JAVA-289: Do not hop DC for LOCAL_* CL in DCAwareRoundRobinPolicy. -- [bug] JAVA-313: Revert back to longs for dates in the query builder. -- [bug] JAVA-314: Don't reconnect to nodes ignored by the load balancing policy. +- ``[new]`` JAVA-179: Expose the name of the partitioner in use in the cluster metadata. +- ``[new]`` Add new WhiteListPolicy to limit the nodes connected to a particular list. +- ``[improvement]`` JAVA-289: Do not hop DC for LOCAL_* CL in DCAwareRoundRobinPolicy. +- ``[bug]`` JAVA-313: Revert back to longs for dates in the query builder. +- ``[bug]`` JAVA-314: Don't reconnect to nodes ignored by the load balancing policy. ### 2.0.1 -- [improvement] JAVA-278: Handle the static columns introduced in Cassandra 2.0.6. -- [improvement] JAVA-208: Add Cluster#newSession method to create Session without connecting +- ``[improvement]`` JAVA-278: Handle the static columns introduced in Cassandra 2.0.6. +- ``[improvement]`` JAVA-208: Add Cluster#newSession method to create Session without connecting right away. -- [bug] JAVA-279: Add missing iso8601 patterns for parsing dates. -- [bug] Properly parse BytesType as the blob type. -- [bug] JAVA-280: Potential NPE when parsing schema of pre-CQL tables of C* 1.2 nodes. +- ``[bug]`` JAVA-279: Add missing iso8601 patterns for parsing dates. +- ``[bug]`` Properly parse BytesType as the blob type. +- ``[bug]`` JAVA-280: Potential NPE when parsing schema of pre-CQL tables of C* 1.2 nodes. Merged from 1.0 branch: -- [bug] JAVA-275: LatencyAwarePolicy.Builder#withScale doesn't set the scale. -- [new] JAVA-114: Add methods to check if a Cluster/Session instance has been closed already. +- ``[bug]`` JAVA-275: LatencyAwarePolicy.Builder#withScale doesn't set the scale. +- ``[new]`` JAVA-114: Add methods to check if a Cluster/Session instance has been closed already. ### 2.0.0 -- [api] JAVA-269: Case sensitive identifier by default in Metadata. -- [bug] JAVA-274: Fix potential NPE in Cluster#connect. +- ``[api]`` JAVA-269: Case sensitive identifier by default in Metadata. +- ``[bug]`` JAVA-274: Fix potential NPE in Cluster#connect. Merged from 1.0 branch: -- [bug] JAVA-263: Always return the PreparedStatement object that is cache internally. -- [bug] JAVA-261: Fix race when multiple connect are done in parallel. -- [bug] JAVA-270: Don't connect at all to nodes that are ignored by the load balancing +- ``[bug]`` JAVA-263: Always return the PreparedStatement object that is cache internally. +- ``[bug]`` JAVA-261: Fix race when multiple connect are done in parallel. +- ``[bug]`` JAVA-270: Don't connect at all to nodes that are ignored by the load balancing policy. ### 2.0.0-rc3 -- [improvement] The protocol version 1 is now supported (features only supported by the +- ``[improvement]`` The protocol version 1 is now supported (features only supported by the version 2 of the protocol throw UnsupportedFeatureException). -- [improvement] JAVA-195: Make most main objects interface to facilitate testing/mocking. -- [improvement] Adds new getStatements and clear methods to BatchStatement. -- [api] JAVA-247: Renamed shutdown to closeAsync and ShutdownFuture to CloseFuture. Clustering +- ``[improvement]`` JAVA-195: Make most main objects interface to facilitate testing/mocking. +- ``[improvement]`` Adds new getStatements and clear methods to BatchStatement. +- ``[api]`` JAVA-247: Renamed shutdown to closeAsync and ShutdownFuture to CloseFuture. Clustering and Session also now implement Closeable. -- [bug] JAVA-232: Fix potential thread leaks when shutting down Metrics. -- [bug] JAVA-231: Fix potential NPE in HostConnectionPool. -- [bug] JAVA-244: Avoid NPE when node is in an unconfigured DC. -- [bug] JAVA-258: Don't block for scheduled reconnections on Cluster#close. +- ``[bug]`` JAVA-232: Fix potential thread leaks when shutting down Metrics. +- ``[bug]`` JAVA-231: Fix potential NPE in HostConnectionPool. +- ``[bug]`` JAVA-244: Avoid NPE when node is in an unconfigured DC. +- ``[bug]`` JAVA-258: Don't block for scheduled reconnections on Cluster#close. Merged from 1.0 branch: -- [new] JAVA-224: Added Session#prepareAsync calls. -- [new] JAVA-249: Added Cluster#getLoggedKeyspace. -- [improvement] Avoid preparing a statement multiple time per host with multiple sessions. -- [bug] JAVA-255: Make sure connections are returned to the right pools. -- [bug] JAVA-264: Use date string in query build to work-around CASSANDRA-6718. +- ``[new]`` JAVA-224: Added Session#prepareAsync calls. +- ``[new]`` JAVA-249: Added Cluster#getLoggedKeyspace. +- ``[improvement]`` Avoid preparing a statement multiple time per host with multiple sessions. +- ``[bug]`` JAVA-255: Make sure connections are returned to the right pools. +- ``[bug]`` JAVA-264: Use date string in query build to work-around CASSANDRA-6718. ### 2.0.0-rc2 -- [new] JAVA-207: Add LOCAL_ONE consistency level support (requires using C* 2.0.2+). -- [bug] JAVA-219: Fix parsing of counter types. -- [bug] JAVA-218: Fix missing whitespace for IN clause in the query builder. -- [bug] JAVA-221: Fix replicas computation for token aware balancing. +- ``[new]`` JAVA-207: Add LOCAL_ONE consistency level support (requires using C* 2.0.2+). +- ``[bug]`` JAVA-219: Fix parsing of counter types. +- ``[bug]`` JAVA-218: Fix missing whitespace for IN clause in the query builder. +- ``[bug]`` JAVA-221: Fix replicas computation for token aware balancing. Merged from 1.0 branch: -- [bug] JAVA-213: Fix regression from JAVA-201. -- [improvement] New getter to obtain a snapshot of the scores maintained by +- ``[bug]`` JAVA-213: Fix regression from JAVA-201. +- ``[improvement]`` New getter to obtain a snapshot of the scores maintained by LatencyAwarePolicy. ### 2.0.0-rc1 -- [new] JAVA-199: Mark compression dependencies optional in maven. -- [api] Renamed TableMetadata#getClusteringKey to TableMetadata#getClusteringColumns. +- ``[new]`` JAVA-199: Mark compression dependencies optional in maven. +- ``[api]`` Renamed TableMetadata#getClusteringKey to TableMetadata#getClusteringColumns. Merged from 1.0 branch: -- [new] JAVA-142: OSGi bundle. -- [improvement] JAVA-205: Make collections returned by Row immutable. -- [improvement] JAVA-203: Limit internal thread pool size. -- [bug] JAVA-201: Don't retain unused PreparedStatement in memory. -- [bug] Add missing clustering order info in TableMetadata -- [bug] JAVA-196: Allow bind markers for collections in the query builder. +- ``[new]`` JAVA-142: OSGi bundle. +- ``[improvement]`` JAVA-205: Make collections returned by Row immutable. +- ``[improvement]`` JAVA-203: Limit internal thread pool size. +- ``[bug]`` JAVA-201: Don't retain unused PreparedStatement in memory. +- ``[bug]`` Add missing clustering order info in TableMetadata +- ``[bug]`` JAVA-196: Allow bind markers for collections in the query builder. ### 2.0.0-beta2 -- [api] BoundStatement#setX(String, X) methods now set all values (if there is +- ``[api]`` BoundStatement#setX(String, X) methods now set all values (if there is more than one) having the provided name, not just the first occurence. -- [api] The Authenticator interface now has a onAuthenticationSuccess method that +- ``[api]`` The Authenticator interface now has a onAuthenticationSuccess method that allows to handle the potential last token sent by the server. -- [new] The query builder don't serialize large values to strings anymore by +- ``[new]`` The query builder don't serialize large values to strings anymore by default by making use the new ability to send values alongside the query string. -- [new] JAVA-140: The query builder has been updated for new CQL features. -- [bug] Fix exception when a conditional write timeout C* side. -- [bug] JAVA-182: Ensure connection is created when Cluster metadata are asked for. -- [bug] JAVA-187: Fix potential NPE during authentication. +- ``[new]`` JAVA-140: The query builder has been updated for new CQL features. +- ``[bug]`` Fix exception when a conditional write timeout C* side. +- ``[bug]`` JAVA-182: Ensure connection is created when Cluster metadata are asked for. +- ``[bug]`` JAVA-187: Fix potential NPE during authentication. ### 2.0.0-beta1 -- [api] The 2.0 version is an API-breaking upgrade of the driver. While most +- ``[api]`` The 2.0 version is an API-breaking upgrade of the driver. While most of the breaking changes are minor, there are too numerous to be listed here and you are encouraged to look at the Upgrade_guide_to_2.0 file that describe those changes in details. -- [new] LZ4 compression is supported for the protocol. -- [new] JAVA-39: The driver does not depend on cassandra-all anymore. -- [new] New BatchStatement class allows to execute batch other statements. -- [new] Large ResultSet are now paged (incrementally fetched) by default. -- [new] SimpleStatement support values for bind-variables, to allow +- ``[new]`` LZ4 compression is supported for the protocol. +- ``[new]`` JAVA-39: The driver does not depend on cassandra-all anymore. +- ``[new]`` New BatchStatement class allows to execute batch other statements. +- ``[new]`` Large ResultSet are now paged (incrementally fetched) by default. +- ``[new]`` SimpleStatement support values for bind-variables, to allow prepare+execute behavior with one roundtrip. -- [new] Query parameters defaults (Consistency level, page size, ...) can be +- ``[new]`` Query parameters defaults (Consistency level, page size, ...) can be configured globally. -- [new] New Cassandra 2.0 SERIAL and LOCAL_SERIAL consistency levels are +- ``[new]`` New Cassandra 2.0 SERIAL and LOCAL_SERIAL consistency levels are supported. -- [new] JAVA-116: Cluster#shutdown now waits for ongoing queries to complete by default. -- [new] Generic authentication through SASL is now exposed. -- [bug] JAVA-88: TokenAwarePolicy now takes all replica into account, instead of only the +- ``[new]`` JAVA-116: Cluster#shutdown now waits for ongoing queries to complete by default. +- ``[new]`` Generic authentication through SASL is now exposed. +- ``[bug]`` JAVA-88: TokenAwarePolicy now takes all replica into account, instead of only the first one. ### 1.0.5 -- [new] JAVA-142: OSGi bundle. -- [new] JAVA-207: Add support for ConsistencyLevel.LOCAL_ONE; note that this +- ``[new]`` JAVA-142: OSGi bundle. +- ``[new]`` JAVA-207: Add support for ConsistencyLevel.LOCAL_ONE; note that this require Cassandra 1.2.12+. -- [improvement] JAVA-205: Make collections returned by Row immutable. -- [improvement] JAVA-203: Limit internal thread pool size. -- [improvement] New getter to obtain a snapshot of the scores maintained by +- ``[improvement]`` JAVA-205: Make collections returned by Row immutable. +- ``[improvement]`` JAVA-203: Limit internal thread pool size. +- ``[improvement]`` New getter to obtain a snapshot of the scores maintained by LatencyAwarePolicy. -- [improvement] JAVA-222: Avoid synchronization when getting codec for collection +- ``[improvement]`` JAVA-222: Avoid synchronization when getting codec for collection types. -- [bug] JAVA-201, JAVA-213: Don't retain unused PreparedStatement in memory. -- [bug] Add missing clustering order info in TableMetadata -- [bug] JAVA-196: Allow bind markers for collections in the query builder. +- ``[bug]`` JAVA-201, JAVA-213: Don't retain unused PreparedStatement in memory. +- ``[bug]`` Add missing clustering order info in TableMetadata +- ``[bug]`` JAVA-196: Allow bind markers for collections in the query builder. ### 1.0.4 -- [api] JAVA-163: The Cluster.Builder#poolingOptions and Cluster.Builder#socketOptions +- ``[api]`` JAVA-163: The Cluster.Builder#poolingOptions and Cluster.Builder#socketOptions are now deprecated. They are replaced by the new withPoolingOptions and withSocketOptions methods. -- [new] JAVA-129: A new LatencyAwarePolicy wrapping policy has been added, allowing to +- ``[new]`` JAVA-129: A new LatencyAwarePolicy wrapping policy has been added, allowing to add latency awareness to a wrapped load balancing policy. -- [new] JAVA-161: Cluster.Builder#deferInitialization: Allow defering cluster initialization. -- [new] JAVA-117: Add truncate statement in query builder. -- [new] JAVA-106: Support empty IN in the query builder. -- [bug] JAVA-166: Fix spurious "No current pool set; this should not happen" error +- ``[new]`` JAVA-161: Cluster.Builder#deferInitialization: Allow defering cluster initialization. +- ``[new]`` JAVA-117: Add truncate statement in query builder. +- ``[new]`` JAVA-106: Support empty IN in the query builder. +- ``[bug]`` JAVA-166: Fix spurious "No current pool set; this should not happen" error message. -- [bug] JAVA-184: Fix potential overflow in RoundRobinPolicy and correctly errors if +- ``[bug]`` JAVA-184: Fix potential overflow in RoundRobinPolicy and correctly errors if a balancing policy throws. -- [bug] Don't release Stream ID for timeouted queries (unless we do get back +- ``[bug]`` Don't release Stream ID for timeouted queries (unless we do get back the response) -- [bug] Correctly escape identifiers and use fully qualified table names when +- ``[bug]`` Correctly escape identifiers and use fully qualified table names when exporting schema as string. ### 1.0.3 -- [api] The query builder now correctly throw an exception when given a value +- ``[api]`` The query builder now correctly throw an exception when given a value of a type it doesn't know about. -- [new] SocketOptions#setReadTimeout allows to set a timeout on how long we +- ``[new]`` SocketOptions#setReadTimeout allows to set a timeout on how long we wait for the answer of one node. See the javadoc for more details. -- [new] New Session#prepare method that takes a Statement. -- [bug] JAVA-143: Always take per-query CL, tracing, etc. into account for QueryBuilder +- ``[new]`` New Session#prepare method that takes a Statement. +- ``[bug]`` JAVA-143: Always take per-query CL, tracing, etc. into account for QueryBuilder statements. -- [bug] Temporary fixup for TimestampType when talking to C* 2.0 nodes. +- ``[bug]`` Temporary fixup for TimestampType when talking to C* 2.0 nodes. ### 1.0.2 -- [api] Host#getMonitor and all Host.HealthMonitor methods have been +- ``[api]`` Host#getMonitor and all Host.HealthMonitor methods have been deprecated. The new Host#isUp method is now prefered to the method in the monitor and you should now register Host.StateListener against the Cluster object directly (registering against a host HealthMonitor was much more limited anyway). -- [new] JAVA-92: New serialize/deserialize methods in DataType to serialize/deserialize +- ``[new]`` JAVA-92: New serialize/deserialize methods in DataType to serialize/deserialize values to/from bytes. -- [new] JAVA-128: New getIndexOf() method in ColumnDefinitions to find the index of +- ``[new]`` JAVA-128: New getIndexOf() method in ColumnDefinitions to find the index of a given column name. -- [bug] JAVA-131: Fix a bug when thread could get blocked while setting the current +- ``[bug]`` JAVA-131: Fix a bug when thread could get blocked while setting the current keyspace. -- [bug] JAVA-136: Quote inet addresses in the query builder since CQL3 requires it. +- ``[bug]`` JAVA-136: Quote inet addresses in the query builder since CQL3 requires it. ### 1.0.1 -- [api] JAVA-100: Function call handling in the query builder has been modified in a +- ``[api]`` JAVA-100: Function call handling in the query builder has been modified in a backward incompatible way. Function calls are not parsed from string values anymore as this wasn't safe. Instead the new 'fcall' method should be used. -- [api] Some typos in method names in PoolingOptions have been fixed in a +- ``[api]`` Some typos in method names in PoolingOptions have been fixed in a backward incompatible way before the API get widespread. -- [bug] JAVA-123: Don't destroy composite partition key with BoundStatement and +- ``[bug]`` JAVA-123: Don't destroy composite partition key with BoundStatement and TokenAwarePolicy. -- [new] null values support in the query builder. -- [new] JAVA-5: SSL support (requires C* >= 1.2.1). -- [new] JAVA-113: Allow generating unlogged batch in the query builder. -- [improvement] Better error message when no host are available. -- [improvement] Improves performance of the stress example application been. +- ``[new]`` null values support in the query builder. +- ``[new]`` JAVA-5: SSL support (requires C* >= 1.2.1). +- ``[new]`` JAVA-113: Allow generating unlogged batch in the query builder. +- ``[improvement]`` Better error message when no host are available. +- ``[improvement]`` Improves performance of the stress example application been. ### 1.0.0 -- [api] The AuthInfoProvider has be (temporarily) removed. Instead, the +- ``[api]`` The AuthInfoProvider has be (temporarily) removed. Instead, the Cluster builder has a new withCredentials() method to provide a username and password for use with Cassandra's PasswordAuthenticator. Custom authenticator will be re-introduced in a future version but are not supported at the moment. -- [api] The isMetricsEnabled() method in Configuration has been replaced by +- ``[api]`` The isMetricsEnabled() method in Configuration has been replaced by getMetricsOptions(). An option to disabled JMX reporting (on by default) has been added. -- [bug] JAVA-91: Don't make default load balancing policy a static singleton since it +- ``[bug]`` JAVA-91: Don't make default load balancing policy a static singleton since it is stateful. ### 1.0.0-RC1 -- [new] JAVA-79: Null values are now supported in BoundStatement (but you will need at +- ``[new]`` JAVA-79: Null values are now supported in BoundStatement (but you will need at least Cassandra 1.2.3 for it to work). The API of BoundStatement has been slightly changed so that not binding a variable is not an error anymore, the variable is simply considered null by default. The isReady() method has been removed. -- [improvement] JAVA-75: The Cluster/Session shutdown methods now properly block until +- ``[improvement]`` JAVA-75: The Cluster/Session shutdown methods now properly block until the shutdown is complete. A version with at timeout has been added. -- [bug] JAVA-44: Fix use of CQL3 functions in the query builder. -- [bug] JAVA-77: Fix case where multiple schema changes too quickly wouldn't work +- ``[bug]`` JAVA-44: Fix use of CQL3 functions in the query builder. +- ``[bug]`` JAVA-77: Fix case where multiple schema changes too quickly wouldn't work (only triggered when 0.0.0.0 was used for the rpc_address on the Cassandra nodes). -- [bug] JAVA-72: Fix IllegalStateException thrown due to a reconnection made on an I/O +- ``[bug]`` JAVA-72: Fix IllegalStateException thrown due to a reconnection made on an I/O thread. -- [bug] JAVA-82: Correctly reports errors during authentication phase. +- ``[bug]`` JAVA-82: Correctly reports errors during authentication phase. ### 1.0.0-beta2 -- [new] JAVA-51, JAVA-60, JAVA-58: Support blob constants, BigInteger, BigDecimal and counter batches in +- ``[new]`` JAVA-51, JAVA-60, JAVA-58: Support blob constants, BigInteger, BigDecimal and counter batches in the query builder. -- [new] JAVA-61: Basic support for custom CQL3 types. -- [new] JAVA-65: Add "execution infos" for a result set (this also move the query +- ``[new]`` JAVA-61: Basic support for custom CQL3 types. +- ``[new]`` JAVA-65: Add "execution infos" for a result set (this also move the query trace in the new ExecutionInfos object, so users of beta1 will have to update). -- [bug] JAVA-62: Fix failover bug in DCAwareRoundRobinPolicy. -- [bug] JAVA-66: Fix use of bind markers for routing keys in the query builder. +- ``[bug]`` JAVA-62: Fix failover bug in DCAwareRoundRobinPolicy. +- ``[bug]`` JAVA-66: Fix use of bind markers for routing keys in the query builder. ### 1.0.0-beta1 diff --git a/docs.yaml b/docs.yaml deleted file mode 100644 index b38b86397d7..00000000000 --- a/docs.yaml +++ /dev/null @@ -1,67 +0,0 @@ -title: Java Driver for Apache Cassandra -summary: High performance Java client for Apache Cassandra -homepage: http://datastax.github.io/java-driver/ -theme: datastax -sections: - - title: Manual - prefix: /manual - sources: - - type: markdown - files: 'manual/**/*.md' - # The 'manual' section was called 'features' in older releases. Leave both - # definitions and Documentor will pick up whichever exists and ignore the - # other. - - title: Features - prefix: /features - sources: - - type: markdown - files: 'features/**/*.md' - - title: Changelog - prefix: /changelog - sources: - - type: markdown - files: 'changelog/**/*.md' - - title: Upgrading - prefix: /upgrade_guide - sources: - - type: markdown - files: 'upgrade_guide/**/*.md' - - title: FAQ - prefix: /faq - sources: - - type: markdown - files: 'faq/**/*.md' -links: - - title: Code - href: https://github.com/datastax/java-driver/ - - title: Docs - href: http://docs.datastax.com/en/developer/java-driver/ - - title: Issues - href: https://datastax-oss.atlassian.net/browse/JAVA/ - - title: Mailing List - href: https://groups.google.com/a/lists.datastax.com/forum/#!forum/java-driver-user - - title: Releases - href: http://downloads.datastax.com/java-driver/ -api_docs: - 3.3: http://docs.datastax.com/en/drivers/java/3.3 - 4.0-alpha: http://docs.datastax.com/en/drivers/java/4.0 - 3.2: http://docs.datastax.com/en/drivers/java/3.2 - 3.1: http://docs.datastax.com/en/drivers/java/3.1 - 3.0: http://docs.datastax.com/en/drivers/java/3.0 - 2.1: http://docs.datastax.com/en/drivers/java/2.1 - 2.0: http://docs.datastax.com/en/drivers/java/2.0 -versions: - - name: '3.3' - ref: '3.3.0' - - name: '4.0-alpha' - ref: '9f0edeb' - - name: '3.2' - ref: '3.2_docfixes' - - name: '3.1' - ref: '3.1_docfixes' - - name: '3.0' - ref: '3.0_docfixes' - - name: '2.1' - ref: '2.1.10.3' - - name: '2.0' - ref: '2.0.12.3' diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000000..997841395b3 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,76 @@ +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = poetry run sphinx-build +PAPER = +BUILDDIR = _build +SOURCE_DIR = _source + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCE_DIR) +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: all +all: dirhtml + +.PHONY: pristine +pristine: clean + git clean -dfX + +.PHONY: setup +setup: + ./_utils/setup.sh + cp -Tr source $(SOURCE_DIR) + cd $(SOURCE_DIR) && find -name README.md -execdir mv '{}' index.md ';' +.PHONY: clean +clean: + rm -rf $(BUILDDIR)/* + rm -rf $(SOURCE_DIR)/* + +.PHONY: preview +preview: setup + cd .. && ./docs/_utils/doxygen.sh + poetry run sphinx-autobuild -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml --port 5500 + +.PHONY: dirhtml +dirhtml: setup + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +.PHONY: singlehtml +singlehtml: setup + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +.PHONY: epub +epub: setup + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +.PHONY: epub3 +epub3: setup + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 + @echo + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." + +.PHONY: dummy +dummy: setup + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy + @echo + @echo "Build finished. Dummy builder generates no files." + +.PHONY: linkcheck +linkcheck: setup + $(SPHINXBUILD) -b linkcheck . $(BUILDDIR)/linkcheck + +.PHONY: multiversion +multiversion: setup + poetry run ./_utils/multiversion.sh + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + diff --git a/docs/_utils/deploy.sh b/docs/_utils/deploy.sh new file mode 100755 index 00000000000..77321c192f2 --- /dev/null +++ b/docs/_utils/deploy.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Clone repo +git clone "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" --branch gh-pages --single-branch gh-pages +cp -r docs/_build/dirhtml/* gh-pages +# Redirections +./docs/_utils/redirect.sh > gh-pages/index.html +# Deploy +cd gh-pages +touch .nojekyll +git config --local user.email "action@scylladb.com" +git config --local user.name "GitHub Action" +git add . +git commit -m "Publish docs" || true +git push origin gh-pages --force diff --git a/docs/_utils/doxygen.sh b/docs/_utils/doxygen.sh new file mode 100755 index 00000000000..d739cf81997 --- /dev/null +++ b/docs/_utils/doxygen.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +OUTPUT_DIR="docs/_build/dirhtml/api" +if [[ "$SPHINX_MULTIVERSION_OUTPUTDIR" != "" ]]; then + OUTPUT_DIR="$SPHINX_MULTIVERSION_OUTPUTDIR/api" + echo "HTML_OUTPUT = $OUTPUT_DIR" >> doxyfile +fi +mkdir -p "$OUTPUT_DIR" +doxygen doxyfile diff --git a/docs/_utils/multiversion.sh b/docs/_utils/multiversion.sh new file mode 100755 index 00000000000..ae56ca3574e --- /dev/null +++ b/docs/_utils/multiversion.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +cd .. && sphinx-multiversion docs/source docs/_build/dirhtml \ + --pre-build './docs/_utils/doxygen.sh' \ + --pre-build "find docs/source -name README.md -execdir mv '{}' index.md ';'" diff --git a/docs/_utils/redirect.sh b/docs/_utils/redirect.sh new file mode 100755 index 00000000000..2721ca034fe --- /dev/null +++ b/docs/_utils/redirect.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +cat <<- _EOF_ + + + + Redirecting to Driver + + + + + +_EOF_ diff --git a/docs/_utils/redirections.yaml b/docs/_utils/redirections.yaml new file mode 100644 index 00000000000..36a73f25baa --- /dev/null +++ b/docs/_utils/redirections.yaml @@ -0,0 +1 @@ +api: /api/classes.html diff --git a/docs/_utils/setup.sh b/docs/_utils/setup.sh new file mode 100755 index 00000000000..5c08b967d2e --- /dev/null +++ b/docs/_utils/setup.sh @@ -0,0 +1,16 @@ +#! /bin/bash + +if pwd | egrep -q '\s'; then + echo "Working directory name contains one or more spaces." + exit 1 +fi + +which python3 || { echo "Failed to find python3. Try installing Python for your operative system: https://www.python.org/downloads/" && exit 1; } +# install pipx +which pipx || python3 -m pip install --user pipx +python3 -m pipx ensurepath + +# install poetry +which poetry || pipx install poetry +poetry --version || { echo "Failed to find or install poetry. Try installing it manually: https://python-poetry.org/docs/#installation" && exit 1; } +poetry install diff --git a/docs/poetry.lock b/docs/poetry.lock new file mode 100644 index 00000000000..6c2826388dd --- /dev/null +++ b/docs/poetry.lock @@ -0,0 +1,822 @@ +[[package]] +category = "main" +description = "A configurable sidebar-enabled Sphinx theme" +name = "alabaster" +optional = false +python-versions = "*" +version = "0.7.12" + +[[package]] +category = "main" +description = "An unobtrusive argparse wrapper with natural syntax" +name = "argh" +optional = false +python-versions = "*" +version = "0.26.2" + +[[package]] +category = "dev" +description = "Atomic file writes." +marker = "sys_platform == \"win32\"" +name = "atomicwrites" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.4.0" + +[[package]] +category = "dev" +description = "Classes Without Boilerplate" +name = "attrs" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "19.3.0" + +[package.extras] +azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"] +dev = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "pre-commit"] +docs = ["sphinx", "zope.interface"] +tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] + +[[package]] +category = "main" +description = "Internationalization utilities" +name = "babel" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "2.8.0" + +[package.dependencies] +pytz = ">=2015.7" + +[[package]] +category = "main" +description = "Python package for providing Mozilla's CA Bundle." +name = "certifi" +optional = false +python-versions = "*" +version = "2020.6.20" + +[[package]] +category = "main" +description = "Universal encoding detector for Python 2 and 3" +name = "chardet" +optional = false +python-versions = "*" +version = "3.0.4" + +[[package]] +category = "main" +description = "Cross-platform colored terminal text." +marker = "sys_platform == \"win32\"" +name = "colorama" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "0.4.3" + +[[package]] +category = "main" +description = "Python parser for the CommonMark Markdown spec" +name = "commonmark" +optional = false +python-versions = "*" +version = "0.9.1" + +[package.extras] +test = ["flake8 (3.7.8)", "hypothesis (3.55.3)"] + +[[package]] +category = "main" +description = "Docutils -- Python Documentation Utilities" +name = "docutils" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "0.16" + +[[package]] +category = "main" +description = "Internationalized Domain Names in Applications (IDNA)" +name = "idna" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "2.10" + +[[package]] +category = "main" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +name = "imagesize" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.2.0" + +[[package]] +category = "dev" +description = "Read metadata from Python packages" +marker = "python_version < \"3.8\"" +name = "importlib-metadata" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +version = "1.7.0" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "rst.linker"] +testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] + +[[package]] +category = "main" +description = "A very fast and expressive template engine." +name = "jinja2" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "2.11.2" + +[package.dependencies] +MarkupSafe = ">=0.23" + +[package.extras] +i18n = ["Babel (>=0.8)"] + +[[package]] +category = "main" +description = "Python LiveReload is an awesome tool for web developers" +name = "livereload" +optional = false +python-versions = "*" +version = "2.6.2" + +[package.dependencies] +six = "*" + +[package.dependencies.tornado] +python = ">=2.8" +version = "*" + +[[package]] +category = "main" +description = "Safely add untrusted strings to HTML/XML markup." +name = "markupsafe" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" +version = "1.1.1" + +[[package]] +category = "dev" +description = "More routines for operating on iterables, beyond itertools" +name = "more-itertools" +optional = false +python-versions = ">=3.5" +version = "8.4.0" + +[[package]] +category = "main" +description = "Core utilities for Python packages" +name = "packaging" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "20.4" + +[package.dependencies] +pyparsing = ">=2.0.2" +six = "*" + +[[package]] +category = "main" +description = "File system general utilities" +name = "pathtools" +optional = false +python-versions = "*" +version = "0.1.2" + +[[package]] +category = "dev" +description = "plugin and hook calling mechanisms for python" +name = "pluggy" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "0.13.1" + +[package.dependencies] +[package.dependencies.importlib-metadata] +python = "<3.8" +version = ">=0.12" + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +category = "main" +description = "Utility that helps with local TCP ports managment. It can find an unused TCP localhost port and remember the association." +name = "port-for" +optional = false +python-versions = "*" +version = "0.3.1" + +[[package]] +category = "dev" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +name = "py" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.9.0" + +[[package]] +category = "main" +description = "Pygments is a syntax highlighting package written in Python." +name = "pygments" +optional = false +python-versions = "*" +version = "2.2.0" + +[[package]] +category = "main" +description = "Python parsing module" +name = "pyparsing" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +version = "2.4.7" + +[[package]] +category = "dev" +description = "pytest: simple powerful testing with Python" +name = "pytest" +optional = false +python-versions = ">=3.5" +version = "5.4.3" + +[package.dependencies] +atomicwrites = ">=1.0" +attrs = ">=17.4.0" +colorama = "*" +more-itertools = ">=4.0.0" +packaging = "*" +pluggy = ">=0.12,<1.0" +py = ">=1.5.0" +wcwidth = "*" + +[package.dependencies.importlib-metadata] +python = "<3.8" +version = ">=0.12" + +[package.extras] +checkqa-mypy = ["mypy (v0.761)"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +category = "main" +description = "World timezone definitions, modern and historical" +name = "pytz" +optional = false +python-versions = "*" +version = "2020.1" + +[[package]] +category = "main" +description = "YAML parser and emitter for Python" +name = "pyyaml" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "5.3.1" + +[[package]] +category = "main" +description = "A docutils-compatibility bridge to CommonMark, enabling you to write CommonMark inside of Docutils & Sphinx projects." +name = "recommonmark" +optional = false +python-versions = "*" +version = "0.5.0" + +[package.dependencies] +commonmark = ">=0.7.3" +docutils = ">=0.11" +sphinx = ">=1.3.1" + +[[package]] +category = "main" +description = "Python HTTP for Humans." +name = "requests" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +version = "2.24.0" + +[package.dependencies] +certifi = ">=2017.4.17" +chardet = ">=3.0.2,<4" +idna = ">=2.5,<3" +urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" + +[package.extras] +security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] +socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"] + +[[package]] +category = "main" +description = "Python 2 and 3 compatibility utilities" +name = "six" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +version = "1.15.0" + +[[package]] +category = "main" +description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms." +name = "snowballstemmer" +optional = false +python-versions = "*" +version = "2.0.0" + +[[package]] +category = "main" +description = "Python documentation generator" +name = "sphinx" +optional = false +python-versions = ">=3.5" +version = "2.4.4" + +[package.dependencies] +Jinja2 = ">=2.3" +Pygments = ">=2.0" +alabaster = ">=0.7,<0.8" +babel = ">=1.3,<2.0 || >2.0" +colorama = ">=0.3.5" +docutils = ">=0.12" +imagesize = "*" +packaging = "*" +requests = ">=2.5.0" +setuptools = "*" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = "*" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = "*" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +test = ["pytest (<5.3.3)", "pytest-cov", "html5lib", "flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.761)", "docutils-stubs"] + +[[package]] +category = "main" +description = "Watch a Sphinx directory and rebuild the documentation when a change is detected. Also includes a livereload enabled web server." +name = "sphinx-autobuild" +optional = false +python-versions = "*" +version = "0.7.1" + +[package.dependencies] +PyYAML = ">=3.10" +argh = ">=0.24.1" +livereload = ">=2.3.0" +pathtools = ">=0.1.2" +port-for = "0.3.1" +tornado = ">=3.2" +watchdog = ">=0.7.1" + +[[package]] +category = "main" +description = "Add a copy button to each of your code cells." +name = "sphinx-copybutton" +optional = false +python-versions = "*" +version = "0.2.12" + +[package.dependencies] +sphinx = ">=1.8" + +[package.extras] +code_style = ["flake8 (>=3.7.0,<3.8.0)", "black", "pre-commit (1.17.0)"] + +[[package]] +category = "main" +description = "Add support for multiple versions to sphinx" +name = "sphinx-multiversion" +optional = false +python-versions = "*" +version = "0.2.3" + +[package.dependencies] +sphinx = ">=2.1" + +[[package]] +category = "main" +description = "Add support for multiple versions to sphinx" +name = "sphinx-multiversion-scylla" +optional = false +python-versions = "*" +version = "0.2.4" + +[package.dependencies] +sphinx = ">=2.1" + +[[package]] +category = "main" +description = "A Sphinx Theme for ScyllaDB projects documentation" +name = "sphinx-scylladb-theme" +optional = false +python-versions = ">=3.7,<4.0" +version = "0.1.9" + +[package.dependencies] +Sphinx = ">=2.4.4,<3.0.0" +pyyaml = ">=5.3,<6.0" +sphinx-copybutton = ">=0.2.8,<0.3.0" +sphinx-multiversion = "0.2.3" +sphinx-tabs = ">=1.1.13,<2.0.0" + +[[package]] +category = "main" +description = "Sitemap generator for Sphinx" +name = "sphinx-sitemap" +optional = false +python-versions = "*" +version = "2.1.0" + +[package.dependencies] +six = "*" +sphinx = ">=1.2" + +[[package]] +category = "main" +description = "Tab views for Sphinx" +name = "sphinx-tabs" +optional = false +python-versions = "*" +version = "1.1.13" + +[package.dependencies] +sphinx = ">=1.4" + +[[package]] +category = "main" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +name = "sphinxcontrib-applehelp" +optional = false +python-versions = ">=3.5" +version = "1.0.2" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +category = "main" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +name = "sphinxcontrib-devhelp" +optional = false +python-versions = ">=3.5" +version = "1.0.2" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +category = "main" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +name = "sphinxcontrib-htmlhelp" +optional = false +python-versions = ">=3.5" +version = "1.0.3" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +category = "main" +description = "A sphinx extension which renders display math in HTML via JavaScript" +name = "sphinxcontrib-jsmath" +optional = false +python-versions = ">=3.5" +version = "1.0.1" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +category = "main" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +name = "sphinxcontrib-qthelp" +optional = false +python-versions = ">=3.5" +version = "1.0.3" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +category = "main" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +name = "sphinxcontrib-serializinghtml" +optional = false +python-versions = ">=3.5" +version = "1.1.4" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +category = "main" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +name = "tornado" +optional = false +python-versions = ">= 3.5" +version = "6.0.4" + +[[package]] +category = "main" +description = "HTTP library with thread-safe connection pooling, file post, and more." +name = "urllib3" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" +version = "1.25.10" + +[package.extras] +brotli = ["brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"] +socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"] + +[[package]] +category = "main" +description = "Filesystem events monitoring" +name = "watchdog" +optional = false +python-versions = "*" +version = "0.10.3" + +[package.dependencies] +pathtools = ">=0.1.1" + +[package.extras] +watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"] + +[[package]] +category = "dev" +description = "Measures the displayed width of unicode strings in a terminal" +name = "wcwidth" +optional = false +python-versions = "*" +version = "0.2.5" + +[[package]] +category = "dev" +description = "Backport of pathlib-compatible object wrapper for zip files" +marker = "python_version < \"3.8\"" +name = "zipp" +optional = false +python-versions = ">=3.6" +version = "3.1.0" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] +testing = ["jaraco.itertools", "func-timeout"] + +[metadata] +content-hash = "cf1a2cd671a207948f537aa0b005efb04395998ac6ea7e1beb8e8430ea5b6d75" +python-versions = "^3.7" + +[metadata.files] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +argh = [ + {file = "argh-0.26.2-py2.py3-none-any.whl", hash = "sha256:a9b3aaa1904eeb78e32394cd46c6f37ac0fb4af6dc488daa58971bdc7d7fcaf3"}, + {file = "argh-0.26.2.tar.gz", hash = "sha256:e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] +attrs = [ + {file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"}, + {file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"}, +] +babel = [ + {file = "Babel-2.8.0-py2.py3-none-any.whl", hash = "sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"}, + {file = "Babel-2.8.0.tar.gz", hash = "sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38"}, +] +certifi = [ + {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"}, + {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"}, +] +chardet = [ + {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, + {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, +] +colorama = [ + {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, + {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, +] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +docutils = [ + {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, + {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, +] +idna = [ + {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, + {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, +] +imagesize = [ + {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, + {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, +] +importlib-metadata = [ + {file = "importlib_metadata-1.7.0-py2.py3-none-any.whl", hash = "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070"}, + {file = "importlib_metadata-1.7.0.tar.gz", hash = "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83"}, +] +jinja2 = [ + {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, + {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, +] +livereload = [ + {file = "livereload-2.6.2.tar.gz", hash = "sha256:d1eddcb5c5eb8d2ca1fa1f750e580da624c0f7fcb734aa5780dc81b7dcbd89be"}, +] +markupsafe = [ + {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, + {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, +] +more-itertools = [ + {file = "more-itertools-8.4.0.tar.gz", hash = "sha256:68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5"}, + {file = "more_itertools-8.4.0-py3-none-any.whl", hash = "sha256:b78134b2063dd214000685165d81c154522c3ee0a1c0d4d113c80361c234c5a2"}, +] +packaging = [ + {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, + {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, +] +pathtools = [ + {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +port-for = [ + {file = "port-for-0.3.1.tar.gz", hash = "sha256:b16a84bb29c2954db44c29be38b17c659c9c27e33918dec16b90d375cc596f1c"}, +] +py = [ + {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"}, + {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"}, +] +pygments = [ + {file = "Pygments-2.2.0-py2.py3-none-any.whl", hash = "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d"}, + {file = "Pygments-2.2.0.tar.gz", hash = "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc"}, +] +pyparsing = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] +pytest = [ + {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, + {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, +] +pytz = [ + {file = "pytz-2020.1-py2.py3-none-any.whl", hash = "sha256:a494d53b6d39c3c6e44c3bec237336e14305e4f29bbf800b599253057fbb79ed"}, + {file = "pytz-2020.1.tar.gz", hash = "sha256:c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048"}, +] +pyyaml = [ + {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"}, + {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"}, + {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"}, + {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"}, + {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"}, +] +recommonmark = [ + {file = "recommonmark-0.5.0-py2.py3-none-any.whl", hash = "sha256:c85228b9b7aea7157662520e74b4e8791c5eacd375332ec68381b52bf10165be"}, + {file = "recommonmark-0.5.0.tar.gz", hash = "sha256:a520b8d25071a51ae23a27cf6252f2fe387f51bdc913390d83b2b50617f5bb48"}, +] +requests = [ + {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"}, + {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"}, + {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, +] +sphinx = [ + {file = "Sphinx-2.4.4-py3-none-any.whl", hash = "sha256:fc312670b56cb54920d6cc2ced455a22a547910de10b3142276495ced49231cb"}, + {file = "Sphinx-2.4.4.tar.gz", hash = "sha256:b4c750d546ab6d7e05bdff6ac24db8ae3e8b8253a3569b754e445110a0a12b66"}, +] +sphinx-autobuild = [ + {file = "sphinx-autobuild-0.7.1.tar.gz", hash = "sha256:66388f81884666e3821edbe05dd53a0cfb68093873d17320d0610de8db28c74e"}, + {file = "sphinx_autobuild-0.7.1-py2-none-any.whl", hash = "sha256:e60aea0789cab02fa32ee63c7acae5ef41c06f1434d9fd0a74250a61f5994692"}, +] +sphinx-copybutton = [ + {file = "sphinx-copybutton-0.2.12.tar.gz", hash = "sha256:9492883786984b6179c92c07ab0410237b26efa826adfa792acfd17b91a63e5c"}, + {file = "sphinx_copybutton-0.2.12-py3-none-any.whl", hash = "sha256:517870030a931f313695705edbe14a8c30660829716100d3d24b379cf9257060"}, +] +sphinx-multiversion = [ + {file = "sphinx-multiversion-0.2.3.tar.gz", hash = "sha256:e46565ac2f703f3b55652f33c159c8059865f5d13dae7f0e8403e5afc2996f5f"}, + {file = "sphinx_multiversion-0.2.3-py3-none-any.whl", hash = "sha256:dc0f18449122e3e2a61245771bfdb7fa83df4f6adbf8eafea31f5b0cfccb5dbe"}, +] +sphinx-multiversion-scylla = [ + {file = "sphinx-multiversion-scylla-0.2.4.tar.gz", hash = "sha256:a44fced382c9efac454749cc3b113e971a1ad63a8901c0aebd1299d131b102b2"}, +] +sphinx-scylladb-theme = [ + {file = "sphinx-scylladb-theme-0.1.9.tar.gz", hash = "sha256:2a2abaccedb3e00e57f412e35afda042c4a5d9baa66c288feb82362d9889294b"}, + {file = "sphinx_scylladb_theme-0.1.9-py3-none-any.whl", hash = "sha256:50b3407bb1d2432f809ca48b7b20fdb124446c622584ddc04e8a390ce59f95b4"}, +] +sphinx-sitemap = [ + {file = "sphinx-sitemap-2.1.0.tar.gz", hash = "sha256:ba3576f38e8d1cabde483dabed2cc2b958af85ff97f2a4442f990b02e967d6a5"}, +] +sphinx-tabs = [ + {file = "sphinx-tabs-1.1.13.tar.gz", hash = "sha256:7ad881daa4d18799b254db4aa7feeb9d30256cbccf7d4f3de746d9fcc14e0196"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, + {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, + {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, +] +tornado = [ + {file = "tornado-6.0.4-cp35-cp35m-win32.whl", hash = "sha256:5217e601700f24e966ddab689f90b7ea4bd91ff3357c3600fa1045e26d68e55d"}, + {file = "tornado-6.0.4-cp35-cp35m-win_amd64.whl", hash = "sha256:c98232a3ac391f5faea6821b53db8db461157baa788f5d6222a193e9456e1740"}, + {file = "tornado-6.0.4-cp36-cp36m-win32.whl", hash = "sha256:5f6a07e62e799be5d2330e68d808c8ac41d4a259b9cea61da4101b83cb5dc673"}, + {file = "tornado-6.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c952975c8ba74f546ae6de2e226ab3cc3cc11ae47baf607459a6728585bb542a"}, + {file = "tornado-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:2c027eb2a393d964b22b5c154d1a23a5f8727db6fda837118a776b29e2b8ebc6"}, + {file = "tornado-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:5618f72e947533832cbc3dec54e1dffc1747a5cb17d1fd91577ed14fa0dc081b"}, + {file = "tornado-6.0.4-cp38-cp38-win32.whl", hash = "sha256:22aed82c2ea340c3771e3babc5ef220272f6fd06b5108a53b4976d0d722bcd52"}, + {file = "tornado-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:c58d56003daf1b616336781b26d184023ea4af13ae143d9dda65e31e534940b9"}, + {file = "tornado-6.0.4.tar.gz", hash = "sha256:0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc"}, +] +urllib3 = [ + {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"}, + {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"}, +] +watchdog = [ + {file = "watchdog-0.10.3.tar.gz", hash = "sha256:4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +zipp = [ + {file = "zipp-3.1.0-py3-none-any.whl", hash = "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b"}, + {file = "zipp-3.1.0.tar.gz", hash = "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"}, +] diff --git a/docs/pyproject.toml b/docs/pyproject.toml new file mode 100644 index 00000000000..469e0f4ad6f --- /dev/null +++ b/docs/pyproject.toml @@ -0,0 +1,23 @@ +[tool.poetry] +name = "java-driver" +version = "3.7.1" +description = "ScyllaDB Java Driver" +authors = ["Java Driver Contributors"] + +[tool.poetry.dependencies] +python = "^3.7" +pyyaml = "^5.3" +pygments = "2.2.0" +recommonmark = "0.5.0" +sphinx-scylladb-theme = "0.1.9" +sphinx-sitemap = "2.1.0" +sphinx-autobuild = "^0.7.1" +Sphinx = "2.4.4" +sphinx-multiversion-scylla = "^0.2.4" + +[tool.poetry.dev-dependencies] +pytest = "^5.2" + +[build-system] +requires = ["poetry>=0.12"] +build-backend = "poetry.masonry.api" diff --git a/docs/source/api.rst b/docs/source/api.rst new file mode 100644 index 00000000000..850fb13929f --- /dev/null +++ b/docs/source/api.rst @@ -0,0 +1,3 @@ +API Documentation +================= + diff --git a/docs/source/changelog b/docs/source/changelog new file mode 120000 index 00000000000..2281eaa6b7b --- /dev/null +++ b/docs/source/changelog @@ -0,0 +1 @@ +../../changelog/ \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000000..53e731f943e --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,291 @@ +# -*- coding: utf-8 -*- +# +# This is a Scylla Documentation build configuration file, created by +# sphinx-quickstart on Tue Jul 26 13:41:02 2016. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +import yaml +import re +from docutils import nodes +from sphinx.util import logging +from recommonmark.transform import AutoStructify +from recommonmark.parser import CommonMarkParser, splitext, urlparse + +logger = logging.getLogger(__name__) + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# sys.path.insert(0, os.path.abspath('../..')) + +# Generate a redirection HTML file +def write_html_redirect(redirect_to): + html = "" + return html + +# Read a YAML dictionary of redirections and generate an HTML file for each +redirects_file = "_utils/redirections.yaml" + +def create_redirects(app, docname): + redirects = redirects_file + if os.path.exists('docs'): + redirects = 'docs/' + redirects_file + if not os.path.exists(redirects): + return + with open(redirects, 'r') as yaml_file: + for from_path, redirect_to in yaml.full_load(yaml_file).items(): + target_path = app.outdir + '/' + from_path + if os.getenv("SPHINX_MULTIVERSION_NAME") is not None: + redirect_to = '/' + os.environ['SPHINX_MULTIVERSION_NAME'] + redirect_to + if not os.path.exists(target_path): + os.makedirs(target_path) + with open(os.path.join(target_path + '/index.html'), 'w') as t_file: + t_file.write(write_html_redirect(redirect_to)) + with open(os.path.join(target_path + '.html'), 'w') as t_file: + t_file.write(write_html_redirect(redirect_to)) + + +# -- General configuration ------------------------------------------------ + +# Add any Sphinx extension'¡' module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.todo', + 'sphinx.ext.mathjax', + 'sphinx.ext.githubpages', + 'sphinx.ext.extlinks', + 'sphinx.ext.autosectionlabel', + 'sphinx_scylladb_theme', + 'sphinx_multiversion', +] + +# Add Markdown support +source_suffix = { + '.rst': 'restructuredtext', + '.md': 'markdown', +} +autosectionlabel_prefix_document = True + +class CustomCommonMarkParser(CommonMarkParser): + + def visit_document(self, node): + pass + + def visit_link(self, mdnode): + # Override to avoid checking if relative links exists + ref_node = nodes.reference() + destination = mdnode.destination + _, ext = splitext(destination) + + url_check = urlparse(destination) + scheme_known = bool(url_check.scheme) + + if not scheme_known and ext.replace('.', '') in self.supported: + destination = destination.replace(ext, '') + ref_node['refuri'] = destination + ref_node.line = self._get_line(mdnode) + if mdnode.title: + ref_node['title'] = mdnode.title + next_node = ref_node + + self.current_node.append(next_node) + self.current_node = ref_node + +def setup(app): + app.add_source_parser(CustomCommonMarkParser) + app.add_config_value('recommonmark_config', { + 'enable_eval_rst': True, + 'enable_auto_toc_tree': False, + }, True) + app.add_transform(AutoStructify) + app.connect('build-finished', create_redirects) + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'Scylla Java Driver' +copyright = u'2012, ScyllaDB. All rights reserved.' +author = u'Scylla Project Contributors' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = u'3.7.1' +# The full version, including alpha/beta/rc tags. +release = u'3.7.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'lib', 'lib64','**/_common/*', 'README.md', '.git', '.github', '_utils', '_templates', 'rst_include'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_scylladb_theme' +# html_theme_path = ["../.."] + +html_style = '' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +html_theme_options = { + 'header_links': [ + ('Scylla Java Driver', 'https://scylladb.github.io/java-driver/'), + ('Scylla Cloud', 'https://docs.scylladb.com/scylla-cloud/'), + ('Scylla University', 'https://university.scylladb.com/'), + ('ScyllaDB Home', 'https://www.scylladb.com/')], + 'github_issues_repository': 'scylladb/java-driver', + 'show_sidebar_index': True, +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# +#html_extra_path = ['404.html'] + +# If not None, a 'Last updated on:' timestamp is inserted at every page +# bottom, using the given strftime format. +# The empty string is equivalent to '%b %d, %Y'. +# +html_last_updated_fmt = '%d %B %Y' + +# Custom sidebar templates, maps document names to template names. +# +html_sidebars = {'**': ['side-nav.html']} + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ScyllaDocumentationdoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'ScyllaDocumentation.tex', u'Scylla Documentation Documentation', + u'Scylla Project Contributors', 'manual'), +] + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'scylladocumentation', u'Scylla Documentation Documentation', + [author], 1) +] + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'ScyllaDocumentation', u'Scylla Documentation Documentation', + author, 'ScyllaDocumentation', 'One line description of project.', + 'Miscellaneous'), +] + +# -- Options for Epub output ---------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project +epub_author = author +epub_publisher = author +epub_copyright = copyright + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + +extlinks = { + 'manager': ('/operating-scylla/manager/%s/',''), + 'manager_lst': ('/operating-scylla/manager/2.0/%s/',''), + 'monitor': ('/operating-scylla/monitoring/%s/',''), + 'monitor_lst': ('/operating-scylla/monitoring/3.1/%s/','') +} + +# Adds version variables for monitoring and manager versions when used in inline text + +rst_epilog = """ +.. |mon_version| replace:: 3.1 +.. |man_version| replace:: 2.0 +.. |mon_root| replace:: :doc:`Scylla Monitoring Stack ` +""" + +# Custom lexer +from pygments.lexers.shell import BashLexer +from sphinx.highlighting import lexers + +class DitaaLexer(BashLexer): + pass +lexers['ditaa'] = DitaaLexer(startinline=True) + +# -- Options for multiversion -------------------------------------------- +# Whitelist pattern for tags (set to None to ignore all tags) +# Whitelist pattern for branches (set to None to ignore all branches) +smv_tag_whitelist = r'None' +smv_branch_whitelist = r"^latest$" +# Whitelist pattern for remotes (set to None to use local branches only) +smv_remote_whitelist = r"^origin$" +# Pattern for released versions +smv_released_pattern = r'^tags/.*$' +# Format for versioned output directories inside the build directory +smv_outputdir_format = '{ref.name}' diff --git a/docs/source/faq b/docs/source/faq new file mode 120000 index 00000000000..bec65510d7f --- /dev/null +++ b/docs/source/faq @@ -0,0 +1 @@ +../../faq/ \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000000..23c8e618702 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,100 @@ +Datastax Java Driver for Apache Cassandra® +========================================== + +A modern, `feature-rich`_ and highly tunable Java client library for +Apache Cassandra (2.1+) and using exclusively Cassandra's binary +protocol and Cassandra Query Language v3. Use the `DataStax Enterprise +Java driver `_ for better compatibility and support for +DataStax Enterprise. + +**Features:** + +- `Sync`_ and `Async`_ API +- `Simple`_, `Prepared`_, and `Batch`_ statements +- Asynchronous IO, parallel execution, request pipelining +- `Connection pooling`_ +- Auto node discovery +- Automatic reconnection +- Configurable `load balancing`_ and `retry policies`_ +- Works with any cluster size +- `Query builder`_ +- `Object mapper`_ + +The driver architecture is based on layers. At the bottom lies the +driver core. This core handles everything related to the connections to +a Cassandra cluster (for example, connection pool, discovering new +nodes, etc.) and exposes a simple, relatively low-level API on top of +which higher level layers can be built. + +The driver contains the following modules: + +- driver-core: the core layer. +- driver-mapping: the object mapper. +- driver-extras: optional features for the Java driver. +- driver-examples: example applications using the other modules which + are only meant for demonstration purposes. +- driver-tests: tests for the java-driver. + +**Useful links:** + +- JIRA (bug tracking): https://datastax-oss.atlassian.net/browse/JAVA +- MAILING LIST: + https://groups.google.com/a/lists.datastax.com/forum/#!forum/java-driver-user +- DATASTAX ACADEMY SLACK: #datastax-drivers on + https://academy.datastax.com/slack +- TWITTER: `@dsJavaDriver`_ tweets Java driver releases and important + announcements (low frequency). `@DataStaxEng`_ has more news + including other drivers, Cassandra, and DSE. +- DOCS: the `manual`_ has quick start material and technical details + about the driver and its features. +- API: http://www.datastax.com/drivers/java/3.7 +- GITHUB REPOSITORY: https://github.com/datastax/java-driver +- `changelog`_ +- `binary tarball`_ + +.. _feature-rich: manual +.. _Sync: manual +.. _Async: manual/async +.. _Simple: manual/statements/simple +.. _Prepared: manual/statements/prepared +.. _Batch: manual/statements/batch +.. _Connection pooling: manual/pooling +.. _load balancing: manual/load_balancing +.. _retry policies: manual/retries +.. _Query builder: manual/statements/built +.. _Object mapper: manual/object_mapper +.. _@dsJavaDriver: https://twitter.com/dsJavaDriver +.. _@DataStaxEng: https://twitter.com/datastaxeng +.. _manual: http://docs.datastax.com/en/developer/java-driver/3.7/manual/ +.. _changelog: changelog +.. _binary tarball: http://downloads.datastax.com/java-driver/cassandra-java-driver-3.7.1.tar.gz + + +License +------- + +Copyright 2012-2018, DataStax + +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. + +.. toctree:: + :hidden: + :glob: + + api + installation + manual/* + upgrade_guide/* + faq/* + changelog/* + diff --git a/docs/source/installation.md b/docs/source/installation.md new file mode 100644 index 00000000000..51f400b44c5 --- /dev/null +++ b/docs/source/installation.md @@ -0,0 +1,76 @@ +## Installation + +### Getting the driver + +The last release of the driver is available on Maven Central. You can install +it in your application using the following Maven dependency (_if +using DataStax Enterprise, install the [DataStax Enterprise Java driver][dse-driver] instead_): + +```xml + + com.scylladb + scylla-driver-core + 3.7.1-scylla-0-SNAPSHOT + +``` + +Note that the object mapper is published as a separate artifact: + +```xml + + com.scylladb + scylla-driver-mapping + 3.7.1-scylla-0-SNAPSHOT + +``` + +The 'extras' module is also published as a separate artifact: + +```xml + + com.scylladb + scylla-driver-extras + 3.7.1-scylla-0-SNAPSHOT + +``` + + +We also provide a [shaded JAR](manual/shaded_jar/) +to avoid the explicit dependency to Netty. + +If you can't use a dependency management tool, a +[binary tarball](http://downloads.datastax.com/java-driver/cassandra-java-driver-3.7.1.tar.gz) +is available for download. + +### Compatibility + +The Java client driver 3.7.1 ([branch 3.x](https://github.com/datastax/java-driver/tree/3.x)) is compatible with Apache +Cassandra 2.1, 2.2 and 3.0+ (see [this page](http://docs.datastax.com/en/developer/java-driver/latest/manual/native_protocol/) for +the most up-to-date compatibility information). + +UDT and tuple support is available only when using Apache Cassandra 2.1 or higher (see [CQL improvements in Cassandra 2.1](http://www.datastax.com/dev/blog/cql-in-2-1)). + +Other features are available only when using Apache Cassandra 2.0 or higher (e.g. result set paging, +[BatchStatement](https://github.com/datastax/java-driver/blob/3.x/driver-core/src/main/java/com/datastax/driver/core/BatchStatement.java), +[lightweight transactions](http://www.datastax.com/documentation/cql/3.1/cql/cql_using/use_ltweight_transaction_t.html) +-- see [What's new in Cassandra 2.0](http://www.datastax.com/documentation/cassandra/2.0/cassandra/features/features_key_c.html)). +Trying to use these with a cluster running Cassandra 1.2 will result in +an [UnsupportedFeatureException](https://github.com/datastax/java-driver/blob/3.x/driver-core/src/main/java/com/datastax/driver/core/exceptions/UnsupportedFeatureException.java) being thrown. + +The java driver supports Java JDK versions 6 and above. + +If using _DataStax Enterprise_, the [DataStax Enterprise Java driver][dse-driver] provides +more features and better compatibility. + +__Disclaimer__: Some _DataStax/DataStax Enterprise_ products might partially work on +big-endian systems, but _DataStax_ does not officially support these systems. + +### Upgrading from previous versions + +If you are upgrading from a previous version of the driver, be sure to have a look at +the [upgrade guide](upgrade_guide/). + +If you are upgrading to _DataStax Enterprise_, use the [DataStax Enterprise Java driver][dse-driver] for more +features and better compatibility. + +[dse-driver]: https://docs.datastax.com/en/developer/java-driver-dse/ diff --git a/docs/source/manual b/docs/source/manual new file mode 120000 index 00000000000..fb3a8517e30 --- /dev/null +++ b/docs/source/manual @@ -0,0 +1 @@ +../../manual/ \ No newline at end of file diff --git a/docs/source/upgrade_guide b/docs/source/upgrade_guide new file mode 120000 index 00000000000..a1b678e2fa5 --- /dev/null +++ b/docs/source/upgrade_guide @@ -0,0 +1 @@ +../../upgrade_guide/ \ No newline at end of file diff --git a/doxyfile b/doxyfile index 414bdbd7ec4..ea043740253 100644 --- a/doxyfile +++ b/doxyfile @@ -160,7 +160,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES -HTML_OUTPUT = html +HTML_OUTPUT = docs/_build/dirhtml/api HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = @@ -333,4 +333,4 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -DOT_CLEANUP = YES \ No newline at end of file +DOT_CLEANUP = YES diff --git a/faq/osgi/README.md b/faq/osgi/README.md index dd01626e2db..5b2d22af0ae 100644 --- a/faq/osgi/README.md +++ b/faq/osgi/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + ## Frequently Asked Questions - OSGi ### How to use the Java driver in an OSGi environment? diff --git a/manual/README.md b/manual/README.md index 1635e1219f4..49cda94a082 100644 --- a/manual/README.md +++ b/manual/README.md @@ -304,4 +304,39 @@ simply navigate to each sub-directory. [LatencyTracker]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/LatencyTracker.html [SchemaChangeListener]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/SchemaChangeListener.html [NoHostAvailableException]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/exceptions/NoHostAvailableException.html -[LocalDate]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/LocalDate.html \ No newline at end of file +[LocalDate]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/LocalDate.html + +```eval_rst +.. toctree:: + :hidden: + :glob: + + address_resolution/* + async/* + auth/* + cloud/* + compression/* + control_connection/* + custom_codecs/* + custom_payloads/* + idempotence/* + load_balancing/* + logging/* + metadata/* + metrics/* + native_protocol/* + object_mapper/* + osgi/* + paging/* + pooling/* + query_timestamps/* + reconnection/* + retries/* + shaded_jar/* + socket_options/* + speculative_execution/* + ssl/* + statements/* + tuples/* + udts/* +``` \ No newline at end of file diff --git a/manual/custom_codecs/extras/README.md b/manual/custom_codecs/extras/README.md index a8190d3235f..f89102e259c 100644 --- a/manual/custom_codecs/extras/README.md +++ b/manual/custom_codecs/extras/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + ## Optional codecs The driver's "extras" module provides additional [codec](../) implementations: these codecs are not required by core diff --git a/manual/object_mapper/.nav b/manual/object_mapper/.nav deleted file mode 100644 index 1aaac91ac9c..00000000000 --- a/manual/object_mapper/.nav +++ /dev/null @@ -1,3 +0,0 @@ -creating -using -custom_codecs \ No newline at end of file diff --git a/manual/object_mapper/README.md b/manual/object_mapper/README.md index 1875d4708bf..ffc8fb4b764 100644 --- a/manual/object_mapper/README.md +++ b/manual/object_mapper/README.md @@ -20,3 +20,13 @@ See the child pages for more information: * [definition of mapped classes](creating/) * [using the mapper](using/) * [using custom codecs](custom_codecs/) + +```eval_rst +.. toctree:: + :hidden: + :glob: + + creating/* + custom_codecs/* + using/* +``` diff --git a/manual/osgi/README.md b/manual/osgi/README.md index 36a91b7155d..42f9ba1693c 100644 --- a/manual/osgi/README.md +++ b/manual/osgi/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + # OSGi The driver is available as an [OSGi] bundle. More specifically, diff --git a/manual/statements/.nav b/manual/statements/.nav deleted file mode 100644 index 89273161ff0..00000000000 --- a/manual/statements/.nav +++ /dev/null @@ -1,4 +0,0 @@ -simple -prepared -built -batch \ No newline at end of file diff --git a/manual/statements/README.md b/manual/statements/README.md index 865818796d0..9a941c30128 100644 --- a/manual/statements/README.md +++ b/manual/statements/README.md @@ -40,3 +40,14 @@ wrap your statements in a custom [StatementWrapper] implementation. [SpeculativeExecutionPolicy]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/policies/SpeculativeExecutionPolicy.html [execute]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/Session.html#execute-com.datastax.driver.core.Statement- [executeAsync]: https://docs.datastax.com/en/drivers/java/3.10/com/datastax/driver/core/Session.html#executeAsync-com.datastax.driver.core.Statement- + +```eval_rst +.. toctree:: + :hidden: + :glob: + + simple/* + prepared/* + built/* + batch/* +``` diff --git a/upgrade_guide/README.md b/upgrade_guide/README.md index e85262ed847..081cb571c26 100644 --- a/upgrade_guide/README.md +++ b/upgrade_guide/README.md @@ -496,7 +496,7 @@ the impact on the public API has been kept as low as possible. version that takes an `int` (the exception being `RegularStatement`, described below). For new code, prefer the enum version. -#### Internal API Changes +#### 2.1.6 Internal API Changes 1. `RegularStatement.getValues` now takes the protocol version as a `ProtocolVersion` instead of an `int`. This is transparent for callers @@ -539,7 +539,7 @@ These features are only active when the native protocol v3 is in use. ### 2.1.1 -#### Internal API Changes +#### 2.1.1 Internal API Changes 1. The `ResultSet` interface has a new `wasApplied()` method. This will only affect clients that provide their own implementation of this interface. @@ -547,7 +547,7 @@ These features are only active when the native protocol v3 is in use. ### 2.1.0 -#### User API Changes +#### 2.1.0 User API Changes 1. The `getCaching` method of `TableMetadata#Options` now returns a `Map` to account for changes to Cassandra 2.1. Also, the @@ -564,7 +564,7 @@ These features are only active when the native protocol v3 is in use. set to `null`" behavior. -#### Internal API Changes +#### 2.1.0 Internal API Changes The changes listed in this section should normally not impact end users of the driver, but rather third-party frameworks and tools. @@ -826,3 +826,11 @@ exhaustive list of new features in 2.0. * the `ResultSet` object provides 2 methods to check the state of paging (`ResultSet#getAvailableWithoutFetching` and `ResultSet#isFullyFetched`) as well as a mean to force the pre-fetching of the next page (`ResultSet#fetchMoreResults`). + +```eval_rst +.. toctree:: + :hidden: + :glob: + + migrating_from_astyanax/* +``` \ No newline at end of file diff --git a/upgrade_guide/migrating_from_astyanax/.nav b/upgrade_guide/migrating_from_astyanax/.nav deleted file mode 100644 index 2267b910143..00000000000 --- a/upgrade_guide/migrating_from_astyanax/.nav +++ /dev/null @@ -1,3 +0,0 @@ -language_level_changes -configuration -queries_and_results \ No newline at end of file diff --git a/upgrade_guide/migrating_from_astyanax/README.md b/upgrade_guide/migrating_from_astyanax/README.md index 0b518322a28..c899252d63d 100644 --- a/upgrade_guide/migrating_from_astyanax/README.md +++ b/upgrade_guide/migrating_from_astyanax/README.md @@ -8,3 +8,13 @@ See the child pages for more information: * [Changes at the language level](language_level_changes/) * [Migrating Astyanax configurations to DataStax Java driver configurations](configuration/) * [Querying and retrieving results comparisons.](queries_and_results/) + +```eval_rst +.. toctree:: + :hidden: + :glob: + + configuration/* + language_level_changes/* + queries_and_results/* +``` \ No newline at end of file diff --git a/upgrade_guide/migrating_from_astyanax/configuration/README.md b/upgrade_guide/migrating_from_astyanax/configuration/README.md index c6629113d7f..b8abcc95bbd 100644 --- a/upgrade_guide/migrating_from_astyanax/configuration/README.md +++ b/upgrade_guide/migrating_from_astyanax/configuration/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + # Configuration ## How Configuring the Java driver works diff --git a/upgrade_guide/migrating_from_astyanax/language_level_changes/README.md b/upgrade_guide/migrating_from_astyanax/language_level_changes/README.md index 8116e82b566..0c6a7a91b2d 100644 --- a/upgrade_guide/migrating_from_astyanax/language_level_changes/README.md +++ b/upgrade_guide/migrating_from_astyanax/language_level_changes/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + # Language change : from Thrift to CQL The data model changes when using *CQL* (Cassandra Query Language). *CQL* is providing an abstraction of the low-level data stored in *Cassandra*, in diff --git a/upgrade_guide/migrating_from_astyanax/queries_and_results/README.md b/upgrade_guide/migrating_from_astyanax/queries_and_results/README.md index 3f14620bac7..ff9d7998476 100644 --- a/upgrade_guide/migrating_from_astyanax/queries_and_results/README.md +++ b/upgrade_guide/migrating_from_astyanax/queries_and_results/README.md @@ -1,3 +1,7 @@ +```eval_rst +:orphan: +``` + # Queries and Results There are many resources such as [this post][planetCCqlLink] or [this post][dsBlogCqlLink] to learn how to transform previous Thrift operations to CQL queries.