Skip to content

Releases: typedb/typedb-driver

TypeDB Client Java 2.8.0

22 Mar 12:41
Compare
Choose a tag to compare

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

27 Jan 13:06
7216628
Compare
Choose a tag to compare

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

21 Jan 11:24
43afc0b
Compare
Choose a tag to compare

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

22 Dec 13:59
Compare
Choose a tag to compare

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

13 Oct 10:24
4f8f56b
Compare
Choose a tag to compare

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 the resilientCall function.

Other Improvements

TypeDB Client Java 2.4.0

17 Sep 11:16
f174064
Compare
Choose a tag to compare

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 clarity CoreClient, 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 where LinkedBlockingQueue.take can throw an IllegalMonitorStateException if you concurrently take from many LinkedBlockingQueue (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 changed ResponseCollector to be backed by a LinkedTransferQueue instead, inflicting a small performance penalty.

Code Refactors

  • ClusterServerClient owns ClusterServerStub
    We've made TypeDB Cluster client's ClusterServerClient own ClusterServerStub instance. This is consistent with TypeDB Client implementation where TypeDBClientImpl owns TypeDBStub.

  • Make FailsafeTask an inner class of ClusterClient
    We've made FailsafeTask instances an inner class of ClusterClient. FailSafeTask makes use and updates the internal state of ClusterClient 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 using typedb-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

26 Jul 17:02
Compare
Choose a tag to compare

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

06 Jun 10:35
be41715
Compare
Choose a tag to compare

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

20 May 15:24
Compare
Choose a tag to compare

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 of NullPointerException 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 require TypeDBCredential.

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

13 Apr 19:07
c390933
Compare
Choose a tag to compare

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 on Thing.

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.