commit | 4c7133c72e136d23dbcea795e0041df764568931 | [log] [tgz] |
---|---|---|
author | Andy Tolbert <6889771+tolbertam@users.noreply.github.com> | Tue Jan 23 10:21:02 2024 -0600 |
committer | Bret McGuire <absurdfarce@users.noreply.github.com> | Thu Mar 21 18:14:47 2024 -0500 |
tree | dcc267b3e98007b6d1d9fd01a251a8ea16e1aac3 | |
parent | 7e2c6579af564be6d1b161ec4159ecf517c190b4 [diff] |
Replace uses of AttributeKey.newInstance The java driver uses netty channel attributes to decorate a connection's channel with the cluster name (returned from the system.local table) and the map from the OPTIONS response, both of which are obtained on connection initialization. There's an issue here that I wouldn't expect to see in practice in that the AttributeKey's used are created using AttributeKey.newInstance, which throws an exception if an AttributeKey of that name is defined anywhere else in evaluated code. This change attempts to resolve this issue by changing AttributeKey initialiation in DriverChannel from newInstance to valueOf, which avoids throwing an exception if an AttributeKey of the same name was previously instantiated. patch by Andy Tolbert; reviewed by Bret McGuire, Alexandre Dutra, Abe Ratnofsky for CASSANDRA-19290
:warning: The java-driver has recently been donated by Datastax to The Apache Software Foundation and the Apache Cassandra project. Bear with us as we move assets and coordinates.
If you're reading this on github.com, please note that this is the readme for the development version and that some features described here might not yet have been released. You can find the documentation for latest version through DataStax Docs or via the release tags, e.g. 4.17.0.
A modern, feature-rich and highly tunable Java client library for Apache Cassandra® (2.1+) and [DataStax Enterprise] (4.7+), and [DataStax Astra], using exclusively Cassandra's binary protocol and Cassandra Query Language (CQL) v3.
The driver artifacts are published in Maven central, under the group id com.datastax.oss; there are multiple modules, all prefixed with java-driver-
.
<dependency> <groupId>org.apache.cassandra</groupId> <artifactId>java-driver-core</artifactId> <version>${driver.version}</version> </dependency> <dependency> <groupId>org.apache.cassandra</groupId> <artifactId>java-driver-query-builder</artifactId> <version>${driver.version}</version> </dependency> <dependency> <groupId>org.apache.cassandra</groupId> <artifactId>java-driver-mapper-runtime</artifactId> <version>${driver.version}</version> </dependency>
Note that the query builder is now published as a separate artifact, you'll need to add the dependency if you plan to use it.
Refer to each module's manual for more details (core, query builder, mapper).
The driver is compatible with Apache Cassandra® 2.1 and higher, DataStax Enterprise 4.7 and higher, and DataStax Astra.
It requires Java 8 or higher.
Disclaimer: Some DataStax/DataStax Enterprise products might partially work on big-endian systems, but DataStax does not officially support these systems.
Java Driver 4 is not binary compatible with previous versions. However, most of the concepts remain unchanged, and the new API will look very familiar to 2.x and 3.x users.
See the upgrade guide for details.
See the Cassandra error handling done right blog for error handling with the Java Driver for Apache Cassandra™.
© The Apache Software Foundation
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.
Apache Cassandra, Apache, Tomcat, Lucene, Solr, Hadoop, Spark, TinkerPop, and Cassandra are trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries.
Binary artifacts of this product bundle Java Native Runtime libraries, which is available under the Eclipse Public License version 2.0.