All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- custom serde not always used
- split
GraphDocumentReadOptions
fromDocumentReadOptions
(breaking change) - added
ArangoCollection#getResponsibleShard(Object)
- added support for Analyzers
- added support for Stream Transactions
- added support for named indices
- added support for TTL indices
- added minReplicationAttribute for collections and graphs
- decoupled communication ExecutorService from client threads
ArangoDBException
responseCode- error handling in
ArangoCollectionAsyncImpl.getDocument
andArangoCollectionAsyncImpl.documentExists
- asynchronous methods never throw synchronous
ArangoDBException
- tests assertions
- catch errors in negative tests
- velocypack-module-jdk8 v1.1.0
5.0.7 - 2019-19-07
- properly all load all configuration defaults
- added acquireHostListInterval configuration parameter
5.0.6 - 2019-18-06
- host handling (issue #241)
- logging extended hostresolver
- add arangodb.httpCookieSpec
- added smartJoinAttribute and shardingStrategy collection attributes
- requests are now storing header information
- faster test code execution
5.0.4 - 2019-18-01
- fixed bug with multi document operations when using parameter
silent
(issue #241)
5.0.3 - 2018-11-12
- adaption to changed ArangoSearch API
5.0.2 - 2018-11-09
- added
ArangoGraphAsync#drop(boolean dropCollections)
5.0.1 - 2018-09-25
- fixed
ArangoCursor#next
when performing a dirty read - fixed connection stickiness
5.0.0 - 2018-09-18
-
added dirty read support (reading from followers)
- added option
AqlQueryOptions#allowDirtyRead
forArangoDatabaseAsync#query
. - added option
DocumentReadOptions#allowDirtyRead
forArangoCollectionAsync#getDocument
- added option
DocumentReadOptions#allowDirtyRead
forArangoCollectionAsync#getDocuments
- added option
DocumentReadOptions#allowDirtyRead
forArangoVertexCollectionAsync#getVertex
- added option
DocumentReadOptions#allowDirtyRead
forArangoEdgeCollectionAsync#getEdge
- added option
-
changed the internal connection pool and host management. There now exists a connection pool for every configured host. This changes the behavior of
ArangoDBAsync.Builder#maxConnections
which now allows to configure the maximal number of connection per host and not overall. -
changed
IndexEntity#selectivityEstimate
fromInteger
toDouble
-
upgraded dependency velocypack 1.4.1
-
added support for generic types
Serialize the class name in a field _class when necessary. Field name can be configured through VPack.Builder#typeKey(String)
-
4.7.2 - 2018-09-03
- made
AqlQueryOptions
serializable
- applied arangosearch API changes for ArangoDB 3.4.0
- fixed
ArangoCursorAsync#close()
: check hasNext before close (issue #223)
4.7.0 - 2018-08-02
- added View support
- added
ArangoDatabaseAsync#view(String): ArangoViewAsync
- added
ArangoDatabaseAsync#getViews(): CompletableFuture<Collection<ViewEntity>>
- added
ArangoViewAsync
- added
- added arangosearch support
- added
ArangoDatabaseAsync#arangoSearch(String): ArangoSearchAsync
- added
ArangoSearchAsync
- added
- added
ArangoCursorAsync#first()
- added
java.util.stream.Stream
like methods forArangoCursor
- added
ArangoCursorAsync#foreach(Consumer)
- added
ArangoCursorAsync#map(Function)
- added
ArangoCursorAsync#filter(Predicate)
- added
ArangoCursorAsync#anyMatch(Predicate)
- added
ArangoCursorAsync#allMatch(Predicate)
- added
ArangoCursorAsync#noneMatch(Predicate)
- added
ArangoCursorAsync#collectInto(Collection)
- added
- upgraded dependency velocypack 1.3.0
VPackDeserializationContext#deserialize(VPackSlice, Class)
toVPackDeserializationContext#deserialize(VPackSlice, java.lang.reflect.Type)
4.6.1 - 2018-07-12
- added convenience method
ArangoDatabase#query(String, Class)
- added convenience method
ArangoDatabase#query(String, Map<String, Object>, Class)
- added convenience method
ArangoDatabase#query(String, AqlQueryOptions, Class)
- fixed missing
ArangoDBAsync.util() : ArangoSerialization
- fixed missing
ArangoDatabaseAsync.util() : ArangoSerialization
- fixed missing
ArangoCollectionAsync.util() : ArangoSerialization
- fixed missing
ArangoGraphAsync.util() : ArangoSerialization
- fixed missing
ArangoVertexCollectionAsync.util() : ArangoSerialization
- fixed missing
ArangoEdgeCollectionAsync.util() : ArangoSerialization
4.6.0 - 2018-07-02
- added convenience methods for arbitrary requests
- added
ArangoDatabaseAsync.route(String...)
- added
- added
DocumentCreateOptions#silent(Boolean)
- added
DocumentReplaceOptions#silent(Boolean)
- added
DocumentUpdateOptions#silent(Boolean)
- added
DocumentDeleteOptions#silent(Boolean)
- added support for exclusive write operations
- added
TransactionOptions#exclusiveCollections(String[])
- added
- removed unnecessary deserializer for internal
_id
field
4.5.2 - 2018-06-25
- added support for custom serializer
- added
ArangoDBAsync#Builder#serializer(ArangoSerialization)
- added
4.5.1 - 2018-06-21
- fixed
exists()
method inArangoDatabaseAsync
,ArangoCollectionAsync
,ArangoGraphAsync
: check for ArangoDB error num - fixed
ArangoDBAsync#aquireHostList(true)
with authentication
4.5.0 - 2018-06-11
- added replace-insert support:
DocumentCreateOptions#overwrite(Boolean)
- added support for satellite collections:
CollectionCreateOptions#satellite(Boolean)
- added
AqlQueryOptions#stream(boolean)
for Streaming AQL Cursors - added
ArangoDatabaseAsync#create()
- added
ArangoCollectionAsync#create()
- added
ArangoCollectionAsync#create(CollectionCreateOptions)
- added
ArangoGraphAsync#create(Collection<EdgeDefinition>)
- added
ArangoGraphAsync#create(Collection<EdgeDefinition>, GraphCreateOptions)
- added return type for
ArangoDatabaseAsync#deleteAqlFunction()
- added field
AqlFunctionEntity#isDeterministic
- upgraded dependency velocypack 1.2.0
- replaced dependency json-simple with jackson
- extracted interfaces for ArangoDB API
- removed deprecated
ArangoDBAsync#Builder#host(String)
- removed deprecated
ArangoDBAsync#Builder#port(Integer)
- removed deprecated
ArangoCollectionAsync#create[IndexType]Index()
- removed deprecated
ArangoDatabaseAsync#updateUserDefaultCollectionAccess()
- removed deprecated
ArangoDBAsync#updateUserDefaultDatabaseAccess()
- removed deprecated
ArangoDBAsync#updateUserDefaultCollectionAccess()
- removed several deprecated APIs
- fixed
aquireHostList
bug when using active failover
4.4.1 - 2018-06-04
- fixed concurrency bug in VST when using connectionTtl
4.4.0 - 2018-04-19
- changed dependency com.arangodb:velocypack to 1.1.0
- fixed DateUtil does incorrect conversion of UTC time
- serialize
BigInteger
/BigDecimal
asString
- fixed reconnecting after ArangoDB restarts
- fixed
ArangoCollectionAsync#updateDocuments()
ignoringDocumentUpdateOptions#serializeNull
4.3.7 - 2018-04-17
- fixed property loading
- fixed compatibility for ArangoDatabase.getAqlFunctions() for ArangoDB 3.4
4.3.6 - 2018-04-16
- added
ArangoDBAsync#Builder#maxConnectionTtl(Integer)
4.3.4 - 2018-03-21
- made
ErrorEntity
serializable
- fixed serialization of bind parameter with null values
- fixed VelocyStream multi-thread authentication bug
- fixed load balancing cursor stickiness bug
4.3.3 - 2018-02-01
- added
CollectionCreateOptions#distributeShardsLike(String)
- added
AqlQueryOptions#memoryLimit(Long)
- added
AqlQueryOptions#failOnWarning(Boolean)
- added
AqlQueryOptions#maxTransactionSize(Long)
- added
AqlQueryOptions#maxWarningCount(Long)
- added
AqlQueryOptions#intermediateCommitCount(Long)
- added
AqlQueryOptions#intermediateCommitSize(Long)
- added
AqlQueryOptions#satelliteSyncWait(Double)
- added
AqlQueryOptions#skipInaccessibleCollections(Boolean)
- added
TransactionOptions#maxTransactionSize(Long)
- added
TransactionOptions#intermediateCommitCount(Long)
- added
TransactionOptions#intermediateCommitSize(Long)
- added
QueryEntity#getBindVars(): Map<String, Object>
- added
QueryEntity#getState(): QueryExecutionState
- fixed inconsistency of
ArangoCollectionAsync#getDocument()
variants
4.3.2 - 2017-11-30
- fixed redirect header (uppercase)
4.3.1 - 2017-11-27
- fixed default Json parsing, include null values
- fixed Json parsing of negative long
4.3.0 - 2017-11-23
- added load balancing (
ArangoDBAsync#Builder#loadBalancingStrategy()
) - added automatic acquiring of hosts for load balancing or as fallback (
ArangoDBAsync#Builder#acquireHostList()
)
4.2.7 - 2017-11-03
- added
ArangoGraphAsync.exists()
- fixed de-/serialization of negative int values
4.2.5 - 2017-10-16
- added
ArangoCollectionAsync#exists()
- added
ArangoDatabaseAsync#exists()
- added
BaseDocument#setId(String)
- added
GraphCreateOptions#replicationFactor(Integer)
ArangoDBAsync#shutdown()
now closes all connections
4.2.4 - 2017-09-04
- added properties validation
arangodb.host
- added
ArangoCollectionAsync#ensure<IndexType>Index()
- deprecated
ArangoCollectionAsync#create<IndexType>Index()
- fixed
ArangoDatabaseAsync#transaction()
: ignore null result - fixed
ArangoCollectionAsync#updateDocument()
- fixed
ArangoVertexCollectionAsync#updateVertex()
- fixed
ArangoEdgeCollectionAsync#updateEdge()
4.2.3 - 2017-07-31
- added
ArangoDatabaseAsync#getPermissions(String)
- added
ArangoCollectionAsync#getPermissions(String)
- added
ArangoDBAsync#grantDefaultDatabaseAccess(String, Permissions)
- added
ArangoDBAsync#grantDefaultCollectionAccess(String, Permissions)
- added
ArangoDatabaseAsync#grantDefaultCollectionAccess(String, Permissions)
- fixed
DateUtil
(thread-safe)
4.2.2 - 2017-07-20
- added
ArangoDatabaseAsync#grantAccess(String, Permissions)
- added
ArangoCollectionAsync#grantAccess(String, Permissions)
- added
ArangoDatabaseAsync#resetAccess(String)
- added
ArangoCollectionAsync#resetAccess(String)
- added
ArangoDBAsync#updateUserDefaultDatabaseAccess(String, Permissions)
- added
ArangoDBAsync#updateUserDefaultCollectionAccess(String, Permissions)
- added
ArangoDatabaseAsync#updateUserDefaultCollectionAccess(String, Permissions)
- added
ArangoCollectionAsync#getDocuments(Collection<String>, Class)
- added connection/handshake retry on same host
- added deduplicate field for hash/skiplist index
4.2.1 - 2017-06-20
- fixed deserializing of internal field
_id
4.2.0 - 2017-06-14
- added
ArangoDBVersion#getLicense()
- added
ArangoDB#getRole()
- added
ArangoDBException#getException()
- updated velocypack-module-jdk8
- added support for deserializing null values into
Optional#empty()
- added support for deserializing null values into
OptionalDouble#empty()
- added support for deserializing null values into
OptionalInt#empty()
- added support for deserializing null values into
OptionalLong#empty()
- added support for deserializing null values into
4.1.12 - 2017-04-21
- added
ArangoDatabaseAsync#cursor()
- optimized
ArangoDBAsync.Builder
for better multi thread support
4.1.11 - 2017-03-24
- added convenience methods (
ArangoDatabaseAsync#arango()
,ArangoCollectionAsync#db()
,ArangoGraphAsync#db()
) - added convenience methods (
ArangoCollectionAsync#getIndex(String)
,ArangoCollectionAsync#deleteIndex(key)
) - added connection pooling
- added extension point for VelocyPack serialization (
ArangoDBAsync#registerModule()
) - added dependency java-velocypack-module-jdk8
- added support for replacing build-in VelocyPack serializer/deserializer
- added
ArangoDatabaseAsync#getVersion()
,ArangoDatabaseAsync#getAccessibleDatabases()
- extracted VelocyPack implementation to https://github.com/arangodb/java-velocypack
- fixed exception handling in Connection
4.1.10 - 2017-02-22
- added support for multiple hosts as fallbacks
- added support serializing collections with null elements
- added support serializing non-generic classes that extend collections
- added support serializing/deserializing byte and Byte
- added default value "root" for user
- changed velocystream message sending to async
- changed return value of getVertex/getEdge to null if not exists
- fixed serialization of additionalFields for objects and maps
- fixed VPack parsing (arrays of specific length)
4.1.9 - 2017-02-10
- added missing IndexType.edge
- fixed URI encoding
4.1.8 - 2017-02-03
- added byte[] de-/serialization from/to VPack.string (Base64)
- added ArangoCollection.drop(isSystem)
- improved ArangoDBException with responseCode, errorNum, errorMessage
- changed java.util.Date serialization from VPack.date to VPack.string (ISO 8601)
- changed java.sql.Date serialization from VPack.date to VPack.string (ISO 8601)
- changed java.sql.Timestamp serialization from VPack.date to VPack.string (ISO 8601)
- changed java.java.time.Instant serialization from VPack.date to VPack.string (ISO 8601)
- changed java.java.time.LocalDate serialization from VPack.date to VPack.string (ISO 8601)
- changed java.java.time.LocalDateTime serialization from VPack.date to VPack.string (ISO 8601)
- changed ArangoCollection.deleteDocuments() to work with keys and documents
- fixed URL encoding bug
- fixed update/replaceDocumets with Json
4.1.7 - 2017-01-26
- fixed importDocuments, insertDocuments to work with raw Jsons
4.1.6 - 2017-01-18
- added serializer support for enclosing types
4.1.5 - 2017-01-12
- added configuration for custom annotations within VPack de-/serialization
- added support of transient modifier within VPack de-/serialization
- fixed VPack String serialization (UTF-8 encoding)
- fixed VPack parsing of fields of type Object
- fixed VPack serializing of array with null values
4.1.4 - 2016-12-19
- added VPack serializer/de-serializer for java.util.UUID
- fixed VPack parsing
4.1.3 - 2016-11-22
- added bulk import API
- fixed error while serializing long values with VPackBuilder
4.1.2 - 2016-11-10
- added VelocyPack UTC_DATE parsing to Json String (ISO 8601)
- added configuration methods for VPackParser in ArangoDBAsync.Builder
- added VPackJsonSerializer for VPackParser
- fixed GraphEntity for ArangoDatabase.getGraphs() (field name is null)
4.1.1 - 2016-11-09
- added missing replicationFactor in CollectionCreateOptions
- added missing replicationFactor in CollectionPropertiesEntity
- added option serializeNull in DocumentUpdateOptions
- changed json parsing of VelocyPack types not known in json
- fixed VelocyPack bug with non-ASCII characters
- added VeloyPack serialization support for java.time.Instant, LocalDate, LocalDateTime
- added ArangoUtil for manually de-/serialization
- changed VelocyStream communication (send protocol header)