Releases: typedb/typedb-driver
TypeDB Client Java 2.8.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.8.0</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
- Cluster client throws if the cluster is completely down
Cluster client throws an exception only if the cluster is completely down, instead of if any one server is down.
Code Refactors
- Query iterator only throws exeption once
We revert previous changes from #368 and #364, which made query queues and iterators throw the same error idempotently if there was one. However, this goes counter to standard usages of iterators and queues, which are not meant to behave idempotently (each item is only returned once, and if they have an error they should no longer be used).
Other Improvements
-
Bump VERSION to 2.8.0 and dependencies to latest
-
@vaticle_typedb_common version updated
-
TypeDB Cluster artifact updated
-
Bazel Cache is disabled temporarily until SSL is fixed
-
Bump @vaticle_dependencies
-
Bump @vaticle_typeql_lang_java
-
Bump @vaticle_typeql_lang_java
-
Bump @typeql_lang_java
TypeDB Client Java 2.6.2
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.6.2</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
- Don't delete response collectors in a transaction
We no longer delete response collectors in a transaction after receiving a response to a "single" request, or receiving a "DONE" message in a stream. This fixes a possible error when loading 50+ answers in one query and then performing a second query.
Code Refactors
- Store error on transaction stream
We store any exceptions received against the transaction stream (as well as query streams) in order to propagate the error to any future transaction operations, not just open query streams.
Other Improvements
TypeDB Client Java 2.6.1
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.6.1</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
Code Refactors
- Propagate exceptions throughout transactions
We align with Client NodeJS version 2.6.1 (mostly the work in typedb/typedb-driver-nodejs#197), which implements a better error propagation mechanism: when an exception occurs, we store it against all the transaction's active transmit queues to retrieve whenever the user tries to perform an operation in the transaction anywhere, ensuring the user always sees the originating error.
Other Improvements
-
Use TypeDB 2.6.1 for tests
-
Upgrade @vaticle_dependencies
-
reenable cluster tests
TypeDB Client Java 2.6.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.6.0</version>
</dependency>
</dependencies>
New Features
- Implement and test transaction timeouts
We implement options for transaction timeout configuration (typedb/typedb#6487). We also add BDD implementation for new steps required to test transaction timeout and configuring transaction options.
Bugs Fixed
Code Refactors
Other Improvements
-
remove cluster tests that are failing to enable release
-
use tag dependencies and update VERSION to 2.6.0
-
Upgrade grpc to 1.43.0 and netty to 4.1.61.Final
We silence false-positive grpc stream errors by upgrading grpc and netty. This propagages work started by typedb/typedb-dependencies#339.
-
rename errors() to drainErrors()
-
add REFACTOR issue template
-
Update build jobs to use Ubuntu 21.04
-
Fixed constructor signature
-
Simplify TypeDBCredential and remove errorprone
-
Fixed when to close connection when failed to establish
-
Close connection when failed to establish
-
Temporary patch to throw exception upon opening a client, if not successful
-
Dissolve //api/connection up to //api
-
Update @vaticle_dependencies
-
Update @vaticle_dependencies and the release notes creation script
TypeDB Client Java 2.5.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.5.0</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
- Implement missed token renewal step in Cluster client
We have fixed the bug where some RPC methods in Cluster client does not perform token renewal step.
Code Refactors
-
Refactor client creation methods
We've refactored client creation methods, minimising unnecessary boilerplate. -
Refactor user token renewal mechanism
We've refactored the user token renewal mechanism so that it no longer awkwardly sits within theresilientCall
function.
Other Improvements
TypeDB Client Java 2.4.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.4.0</version>
</dependency>
</dependencies>
New Features
- User token mechanism for faster authentication
Authenticating a user by verifying their password introduces a significant overhead, which comes from the fact that the password is hashed with cryptographic hash function. In effect, opening a new session or transaction becomes much slower.
We've now improved the speed of user-authentication by introducing a mechanism for verifying user credential with cheap "user token" rather than password.
Additionally we've also performed some refactors that has greatly increased the clarityCoreClient
,ClusterClient
and the related classes.
Bugs Fixed
-
Use ZoneOffset.UTC instead of ZoneId.of("Z")
ZoneId.of("Z") is forbidden in Java 16, so we've replaced it with ZoneOffset.UTC. -
Fix error doing concurrent reads on Java 14-16
Java 14, 15 and 16 all have a bug whereLinkedBlockingQueue.take
can throw anIllegalMonitorStateException
if you concurrently take from manyLinkedBlockingQueue
(see: #351 )
Although this bug is fixed in Java 18, we need an effective workaround in order to support Java 14-16, so we have changedResponseCollector
to be backed by aLinkedTransferQueue
instead, inflicting a small performance penalty.
Code Refactors
-
ClusterServerClient owns ClusterServerStub
We've made TypeDB Cluster client'sClusterServerClient
ownClusterServerStub
instance. This is consistent with TypeDB Client implementation whereTypeDBClientImpl
ownsTypeDBStub
. -
Make FailsafeTask an inner class of ClusterClient
We've madeFailsafeTask
instances an inner class ofClusterClient
.FailSafeTask
makes use and updates the internal state ofClusterClient
in the event of failover, and therefore are tightly coupled by design. -
Simplify the "database get" function of the TypeDB Cluster Client
We've removed an unnecessary nested failover logic in order to make the logic easier to follow.
Other Improvements
- Describe how to disable debug logging in README
A common complaint when usingtypedb-client-java
is the large number of Netty and gRPC logs. They are actually easy to disable, but only if you know how. So we added brief instructions to the README.
TypeDB Client Java 2.3.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.3.0</version>
</dependency>
</dependencies>
New Features
-
Introduce query APIs to accept native TypeQL strings
We can now query the TypeDB server with plain strings, rather than requiring the TypeQL query objects as parameters. -
Verify updated password in BDD
We're adding a verification for connecting using a new password after it has been updated. -
Update user's password
We've added support for updating user's password in TypeDB Cluster.
Bugs Fixed
Code Refactors
Other Improvements
TypeDB Client Java 2.1.1
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.1.1</version>
</dependency>
</dependencies>
New Features
-
implement User management BDD for cluster
We implement the new User and User Management behaviour tests, for cluster. -
Add authentication and user management support for Cluster Client
We have added two features to TypeDB Cluster Client: authentication and user management.
The authentication feature will allow a client to supply the correct username and password when connecting.
The user management feature will allow a client to create and delete users.
Bugs Fixed
Code Refactors
- Refactor the package structure related to Core and Cluster implementation
We rename the//rpc
package to//connection
for consistency. The package is responsible for managing database, users, session and transaction.
Other Improvements
TypeDB Client Java 2.1.0
Documentation: http://docs.vaticle.com/docs/client-api/java
Distribution
Available through https://repo.vaticle.com
<repositories>
<repository>
<id>repo.vaticle.com</id>
<url>https://repo.vaticle.com/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>com.vaticle.typedb</groupid>
<artifactid>typedb-client</artifactid>
<version>2.1.0</version>
</dependency>
</dependencies>
New Features
Bugs Fixed
- Fix possible NullPointer errors when connecting to Cluster
We fixed a few possible sources ofNullPointerException
which would be thrown while trying to print other errors when constructing a Cluster client or during Cluster operations.
Code Refactors
- Make TypeDB Cluster client require TypeDBCredential
Make TypeDB Cluster client requireTypeDBCredential
.
Other Improvements
-
Update TypeDB Cluster artifact
We've updated TypeDB Cluster artifact. References have been updated, from Grakn Cluster to TypeDB Cluster. -
Update usage of rules_antlr
Eliminate possible inconsistencies by loading ANTLR version from a constant -
Upgrade @rules_antlr usage
Update usage of@rules_antlr
to match latest@vaticle_dependencies
Grakn Client Java 2.0.1
Documentation: http://dev.docs.grakn.ai/docs/client-api/java
Distribution
Available through https://repo.grakn.ai
<repositories>
<repository>
<id>repo.grakn.ai</id>
<url>https://repo.grakn.ai/repository/maven/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupid>io.grakn.client</groupid>
<artifactid>grakn-client</artifactid>
<version>2.0.1</version>
</dependency>
</dependencies>
New Features
- Encode request IDs as bytes and make isInferred a Local Thing method
Previously the ID of a transaction request was stored as a string, which is an inefficient representation of a UUID. We've changed it to bytes.
Also,isInferred
is now a Local method onThing
.
Bugs Fixed
Code Refactors
Other Improvements
- Update Maven snippet in README and specify Java 11
We updated the Maven snippet in README and specified Java 11 as a requirement for compilation from source.
Please refer to full release notes of 2.0.0-alpha to see the changes contained in 2.0.0.