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.
- allow construct ArangoConfigProperties from
java.util.Properties
(DE-976) - made BaseDocument and BaseEdgeDocument serializable (#596)
- improved deserialization of
RawBytes
andRawJson
(#592, DE-969) - added support to Jakarta JSON-P data types (#593, DE-968)
- fixed ArangoSearch
PrimarySort
serialization
- added missing collection options (#590, DE-961)
- improved serde performances (#588, DE-959)
- support all AQL query options in
ArangoDatabase.explainAqlQuery()
(#589, ES-2266)
- tolerate error responses with text content-type (#587, DE-960)
- improved serialization and deserialization of
RawBytes
andRawJson
(#586)
- added new method
ArangoDatabase.explainAqlQuery()
, supporting arbitrary JSON-like response data - deprecated
ArangoDatabase.explainQuery()
- added support to HTTP proxies (#584, DE-930)
- udpated Jackson to version
2.18
(#581, DE-877) - added missing statistics to
CursorStats
(#580, DE-876) - fixed type of
AqlExecutionExplainEntity.warnings
(#579, DE-886)
- updated
velocypack
to version3.1.0
- updated
jackson-dataformat-velocypack
to version4.4.0
- added
SHADED
flag inPackageVersion
class (#576) - added
serdeProviderClass
configuration property (#575, DE-837) - added
skipFastLockRound
parameter to StreamTransactionOptions (#574, DE-832) - added support to reset log levels (#573, DE-831)
- added
legacy
option toGeoJSONAnalyzerProperties
(#572, DE-736) - support resuming AQL cursor in transaction (#571, DE-592)
- fíxed
HostHandler
concurrency (DE-663) - fíxed
ConnectionPoolImpl
concurrency (#570, DE-536)
- added property
ignoreRevs
to DocumentDeleteOptions (#567, DE-844)
- fixed deserialization of responses with no content (#560)
- added configuration option to set Vert.x instance (#558, DE-535)
- added overloaded variant of
ArangoSerde#deserialize()
acceptingRequestContext
parameter (#555, #554, DE-771) - updated
jackson-dataformat-velocypack
to version4.3.0
- fixed support to Jackson 2.17
- fixed native image build for GraalVM 22
- added support to external versioning (ArangoDB 3.12, #547)
- added support to
wildcard
analyzer (ArangoDB 3.12, #546) - added support to
multi_delimiter
analyzer (ArangoDB 3.12, #545) - added support to multi dimensional indexes (ArangoDB 3.12, #544)
- added support to WAND optimization (ArangoDB 3.12, #543)
- added support to content compression (ArangoDB 3.12, #535)
- fixed ALPN with H2 (DE-792, #551)
- tolerate SPI ServiceConfigurationError (DE-793, #552)
- added support to Jackson 2.17
- changed default TTL to 30 seconds for HTTP connections (DE-794, #553)
- fixed inclusion of transitive dependency on
com.tngtech.archunit:archunit-junit5
- updated Vert.x to version 4.5 (#532)
- automatically configure Jackson stream constraints (DE-762, #537)
- fixed closing AQL cursor twice (#533)
- added new methods to remove graph definitions and vertex collections, to align the naming with the documentation (DE-729)
- added support to Jackson 2.16 (DE-735)
- deprecated ArangoDB.Builder.asyncExecutor() (DE-726)
- retry requests on response code 503 (DE-55, #530)
- changed
ArangoCursor#close()
andArangoCursorAsync#close()
to be idempotent (DE-727, #528) - changed default Jackson dependencies versions to 2.16 (DE-735)
- fixed exception handling on sending HTTP requests
- fixed management of hosts marked for deletion (DE-723, #384)
- fixed VST resilience (#529, DE-725)
- fixed failover with round-robin load balancing (DE-724)
- fixed init cause of
ArangoDBException
- changed types of documents and errors in
com.arangodb.entity.MultiDocumentEntity
tojava.util.List
- added asynchronous API, accessible via
ArangoDB.async()
(DE-496, #523) - added configuration option to specify the asynchronous downstream executor via
ArangoDB.Builder#asyncExecutor(Executor)
(DE-697) - added missing asynchronous API to ensure parity with synchronous API
- changed behavior for acquiring the host list to be asynchronous (#521)
- changed internal communication to be asynchronous
- fixed swallowed exceptions in
ArangoCollection.getDocument()
,ArangoCollection#documentExists()
,ArangoCollection#exists()
,ArangoEdgeCollection.getEdge()
andArangoVertexCollection#getVertex()
- fixed
ArangoCursorAsync
API to be fully asynchronous (#433, #520) - fixed interference of Jackson annotations with other Jackson instances (DE-636, #513)
- fixed nested properties deserialization in
BaseDocument
(#517)
- added support to Jackson 2.15
- changed default Jackson dependencies versions to 2.15
- updated transitive dependencies versions
- addeded
peakMemoryUsage
attribute to running and slow queries (ArangoDB 3.11, #507) - added support for retriable batch results (ArangoDB 3.11, #505)
- added support for ArangoSearch WAND optimization (ArangoDB 3.11, #503)
- added support for cloneable AqlQueryOptions (#510)
- added support for
geo_s2
analyzer (#501) - added support for serverId query parameter for
/_admin/log/level
(#498) - added support for peakMemoryUsage and executionTime explain stats (#496)
- added support for Index cache refilling (#494)
- added support for ArangoSearch column cache (#492)
7.0.0 - 2023-04-20
Detailed changes documentation is available here.
- added
ArangoDB.Builder.loadProperties(ArangoConfigProperties)
to register custom configuration suppliers - added
ArangoConfigProperties.fromFile()
to load properties from local files - added support to
HTTP/2
communication protocol - added optional transitive dependency on
io.vertx:vertx-web-client
(can be excluded if using VST only) - added transitive dependency on Jackson Core, Databind and Annotations
- added wrapper class for raw JSON content (
RawJson
) - added wrapper class for content already encoded as byte array (
RawBytes
) - added support for Jackson types (
JsonNode
,ArrayNode
,ObjectNode
, ...) - added support for Jackson annotations in data types
- added new user data custom serializer API based on
ArangoSerde
- added new user data custom serializer implementation based on Jackson (
JacksonSerde
), supporting bothJSON
andVPACK
- added methods and parameters targets to meta binding annotations
- added overloaded methods for CRUD operations allowing specifying the return type
- added API to support CRUD operations from raw data (
RawBytes
andRawJson
) containing multiple documents - added
BaseDocument#removeAttribute(String)
andBaseEdgeDocument#removeAttribute(String)
- added request id to
ArangoDBException
- shaded version of the driver (
com.arangodb:arangodb-java-driver-shaded
) - added
ArangoEdgeCollection.drop()
andArangoVertexCollection.drop(VertexCollectionDropOptions)
- removed
--allow-incomplete-classpath
from native image configuration (#397) - ability to control whether
null
values are included in the serialization (#389) - added support to
DocumentCreateOptions#keepNull
(#374) - allow specifying the return type on insertDocuments (#373)
- credentials logging (#410)
- fixed
ArangoCollection.rename()
andArangoView.rename()
thread safety
- configuration properties from local files are not loaded automatically anymore
ArangoDB.execute()
accepts now target deserialization typeRequest<T>
andResponse<T>
support now generic body type- removed default host configuration (
127.0.0.1:8529
) - changed http client library to Vert.x WebClient
- changed default communication protocol from
VST
toHTTP/2
- changed default content-type format from
VPACK
toJSON
- changed internal serialization, now based on Jackson API
VPACK
support is now provided byJacksonSerde
including the optional dependencycom.arangodb:jackson-dataformat-velocypack
(VPACK
dataformat backend for Jackson)- data objects passed as arguments to API methods are treated as immutable and the related metadata fields are not updated in place anymore (updated metadata can be found in the returned object)
- changed some API signatures which were using unnecessary generics from
ArangoCollection
,ArangoVertexCollection
andArangoEdgeCollection
- changed
ArangoCursor#getStats()
return type - replication factor is now represented by a new interface (
ReplicationFactor
) with implementations:NumericReplicationFactor
andSatelliteReplicationFactor
- all data definition classes are now
final
(packagescom.arangodb.entity
andcom.arangodb.model
) BaseDocument
andBaseEdgeDocument
are nowfinal
BaseDocument#getProperties()
andBaseEdgeDocument#getProperties()
return now an unmodifiable mapBaseDocument
andBaseEdgeDocument
are not serializable anymore (using Java serialization)- removed
throws ArangoDBException
from API method signatures (unchecked exception) - removed passwords from debug level requests logs (#410)
- JPMS: explicit automatic module name
- updated
ArangoGraph.replaceEdgeDefinition()
- CRUD methods to insert and replace multiple documents have now covariant argument types
- changed order of arguments in
ArangoDatabase.query()
overloads ArangoCollection.rename()
andArangoView.rename()
do not change the collection or view name of the API class instance
- removed user data custom serializer API based on
ArangoSerialization
(in favor ofArangoSerde
) - removed user data custom serializer implementation
ArangoJack
(in favor ofJacksonSerde
) - removed support for interpreting raw strings as JSON (in favor of
RawJson
) - removed support of data type
VPackSlice
(in favor of Jackson types:JsonNode
,ArrayNode
,ObjectNode
, ...) - removed client APIs already deprecated in Java Driver version
6
- removed deprecated server APIs:
MMFiles
related APIsArangoDatabase.executeTraversal()
ArangoDB.getLogs()
minReplicationFactor
in collections and graphsoverwrite
flag inDocumentCreateOptions
hash
andskipList
indexes
- removed
ArangoCursorInitializer
- removed Asynchronous API (
com.arangodb.async
) - removed
ArangoDatabase.getDocument()
- removed automatic type inference in CRUD methods operating on multiple documents
- removed
DbName
in favor of plain strings
6.23.0 - 2023-04-20
- deprecated
DbName
in favor of plain strings
6.22.0 - 2023-04-18
- added support to
forceOneShardAttributeValue
query parameter (DE-541)
6.21.0 - 2023-03-07
- added
x-arango-driver
header (DE-479)
6.20.0 - 2022-11-29
- ArangoSearch cache (#472)
- support for
enterprise-hex-smart-vertex
shardingStrategy - deprecated
com.arangodb.Function
6.19.0 - 2022-10-04
- added support for
search-alias
views (ArangoDB 3.10 #461) - added support for nested search (ArangoDB 3.10, #460)
- added support for
classification
,nearest_neighbors
andminhash
search analyzers (ArangoDB 3.10, #458) - added support for inverted indexes (ArangoDB 3.10, #457)
- added support for cluster dirty reads (ArangoDB 3.10, #455)
- added support for index stored values (ArangoDB 3.10)
- added support for geo index legacy polygons (ArangoDB 3.10)
- added support for getting query optimizer rules (ArangoDB 3.10)
- added support for enhanced cursor stats (ArangoDB 3.10)
- added support for computed values (ArangoDB 3.10)
- added support for index cache (ArangoDB 3.10)
- deprecated fulltext indexes (ArangoDB 3.10, #454)
- fixed
ConsolidationPolicy
API - deprecated MMFiles collection attributes (#442)
- deprecated for removal
ArangoCursorInitializer
andGraphDocumentReadOptions#isCatchException()
- documented thead safe classes (#445)
6.18.0 - 2022-06-07
- deprecated usage of deprecated server API (#440)
- introduced new field entity annotations:
@Id
,@Key
,@Rev
,@From
,@To
(#439) - deprecated VPack serialization in favor of Jackson API
- added
deduplicate
option inPersistentIndex
(#437)
6.17.0 - 2022-05-17
- updated dependencies
- fixed IndexOutOfBoundsException in RoundRobinHostHandler (#435)
- warn on json request payload size too big (#434)
- fixed various serialization bugs in native image (#425)
6.16.1 - 2022-02-23
- fixed retry behavior of HTTP connections in case of timeout exceptions (#429)
- fixed NPE when serializing ArangoSearch properties (#427)
6.16.0 - 2022-01-27
- deprecated hash and skiplist indexes (#424)
- fixed active failover concurrency bug (#423)
- added support for overload metrics (ArangoDB 3.9, #419)
- added support for Segmentation and Collation ArangoSearch analyzers (ArangoDB 3.9, #418)
- added support for ZKD indexes (ArangoDB 3.9, #417)
- added
all
log topic (ArangoDB 3.9, #416) - added support for Hybrid SmartGraphs (ArangoDB 3.9, #415)
- added support for database unicode names, added
DbName
class to represent database names in public API parameters to ease unicode names normalization (ArangoDB 3.9, #405)
6.15.0 - 2021-12-29
- JWT authentication (#421)
- fixed swallowing connection exceptions (#420)
- fixed
stopwords
analyzer (#414) - set max retries for active failover redirects (#412)
- fixed deserializing
null
value as String (#411)
6.14.0 - 2021-10-01
- fixed issues with non-English locales (#407)
- implemented support for
GET /_admin/server/id
- fixed
acquireHostListInterval
javadoc, interval in milliseconds - fixed NPE in
CursorEntity.extra
andCursorEntity.Extras.stats
6.13.0 - 2021-08-25
- added support for
fillBlockCache
in AQL query options (ArangoDB v3.8.1) - fixed exceptions handling during shutdown (#400)
- added native image configuration for HTTP communication
- updated native image reflection configuration
6.12.3 - 2021-06-24
- fixed host handler failures count (#DEVSUP-805, #398)
6.12.2 - 2021-06-17
- added missing enum value
QueryExecutionState.KILLED
(#391) - fixed
acquireHostList
to loadBalancer or hostname alias (#385)
WARNING: The implementation of Stopwords analyzer is not final in ArangoDB 3.8.0, so using it might result in unpredictable behavior. This will be fixed in ArangoDB 3.8.1 and will have a different API. Any usage of the current Java driver API related to it is therefore discouraged.
6.12.1 - 2021-04-28
- fixed request timeout in async driver (#ES-837)
6.12.0 - 2021-04-28
- added support for modifying collection schema
6.11.1 - 2021-04-23
- velocypack v2.5.3
6.11.0 - 2021-04-21
- added support for getting db log entries via
GET /_admin/log/entries
(ArangoDB v3.8) - added support for index estimates (ArangoDB v3.8)
- added support for ArangoSearch
AQL
,Pipeline
,Stopwords
,GeoJSON
,GeoPoint
analyzers (ArangoDB v3.8) - fixed active failover behavior for the asynchronous driver (#381)
- deprecated
ArangoIterable
methods in favour of Java 8 Stream equivalents (#382)
6.10.0 - 2021-03-27
- closing VST connection after 3 consecutive keepAlive failures (#ES-837)
6.9.1 - 2021-03-23
- fixed
acquireHostList
in asynchronous driver (#377) - fixed exception swallowing in
ArangoDatabaseAsync#exists
- fixed performance issue when consuming big AQL cursor batches in stream mode (arangodb/arangodb#13476)
6.9.0 - 2021-02-04
-
added
com.arangodb.mapping.ArangoJack
to replacecom.arangodb.jackson.dataformat.velocypack.VelocyJack
(fromcom.arangodb:jackson-dataformat-velocypack
) -
fixed removing removed coordinators from the hostlist (#347)
6.8.2 - 2021-01-25
- fixed closing connection on failed authentication (#ES-772)
6.8.1 - 2020-12-22
- fixed ignoring internal endpoints in acquireHostList (#DEVSUP-673)
6.8.0 - 2020-12-10
- added configurable VST keep-alive
6.7.5 - 2020-09-22
- allow customizing httpRequestRetryHandler
6.7.4 - 2020-09-03
- fixed path escaping in
ArangoDatabase.route()
- added ssl hostname verifier to ArangoDB builder
6.7.3 - 2020-08-14
- added
users
field toDBCreateOptions
- velocypack v2.4.1
6.7.2 - 2020-07-29
- velocypack v2.4.0
6.7.1 - 2020-07-07
- fixed VST communication adding
accept
andcontent-type
headers to every message - fixed missing classes in GraalVM native image reflection configuration
6.7.0 - 2020-07-01
- added support of schema validation (ArangoDB v3.7)
- added support of
overwriteMode
on document creation, to allowinsert-ignore
,insert-replace
andinsert-update
(ArangoDB v3.7) - added support of
mergeObjects
for insert document withoverwriteMode: update
(ArangoDB v3.7) - added support of
storedValues
inArangoSearchProperties
(ArangoDB v3.7) - added support of
primarySortCompression
inArangoSearchProperties
(ArangoDB v3.7) - added support of
DisjointSmartGraphs
andSatelliteGraphs
(ArangoDB v3.7) - added support of
SatelliteGraphs
support (ArangoDB v3.7) - allow specifying return type on document update
- added
peakMemoryUsage
to aql statistics
- added support of
DisjointSmartGraphs
andSatelliteGraphs
(ArangoDB v3.7) - added support of
storedValues
inArangoSearchProperties
(ArangoDB v3.7) - added support of
primarySortCompression
inArangoSearchProperties
(ArangoDB v3.7) - added support of
overwriteMode
on document creation, to allowinsert-ignore
,insert-replace
andinsert-update
(ArangoDB v3.7) - added support of
mergeObjects
for insert document withoverwriteMode: update
(ArangoDB v3.7) - velocypack v2.3.1
6.6.3 - 2020-05-06
- velocypack v2.3.1
6.6.2 - 2020-04-07
- bugfix VelocyJack deserialization
- bugfix
allowImplicit
parameter in stream transactions
- added
overwriteMode
parameter to support insert-update (ArangoDB v3.7) - satellite graphs support (ArangoDB v3.7)
- schema validation (ArangoDB v3.7)
- added
peakMemoryUsage
to aql statistics
6.6.1 - 2020-03-18
- GraalVM Native Image support
- fixed acquire host list (ArangoDB v3.7)
6.6.0 - 2020-02-03
- typed ArangoSearch analyzers
- updated dependecies
- bugfix asynchronous shutdown
6.5.0 - 2019-12-23
- createDatabase with options (replicationFactor, minReplicationFactor, sharding) (ArangoDB v3.6)
- extended DatabaseEntity with replicationFactor, minReplicationFactor, sharding (ArangoDB v3.6)
- timeout option for AQL queries (ArangoDB v3.6)
- enhancedNgramAnalyzer and enhancedTextAnalyzer (ArangoDB v3.6)
- velocypack v2.1.0
6.4.1 - 2019-10-23
- jackson v2.9.10
6.4.0 - 2019-10-09
- Stream Transactions support for graph APIs
catchExceptions
option in asyncgetEdge
andgetVertex
6.3.0 - 2019-09-16
- support for keyType uuid & padded
- bugfix AqlExecutionExplainEntity indexes
- bugfix reconnection after more than 3 failures
6.2.0 - 2019-09-05
- merged async driver
- bugfix method chaining in IndexOptions
6.1.0 - 2019-08-29
- updated maven dependencies
- custom serde not always used
documentExists()
andgetDocument
behaviour on non existingtransactionId
6.0.0 - 2019-08-20
- 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
5.0.7 - 2019-07-19
- properly all load all configuration defaults
- added acquireHostListInterval configuration parameter
5.0.6 - 2019-05-24
- requests are now storing header information
- faster test code execution
5.0.5 - 2019-05-24
- host handling (issue #241)
- logging extended hostresolver
- add arangodb.httpCookieSpec
- added smartJoinAttribute and shardingStrategy collection attributes
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
ArangoGraph#drop(boolean dropCollections)
- changed
ArangoDB#timeout
to also set the request timeout when using VelocyStream (issue #230)
- fixed compatibility of
ArangoCursor#filter
with Java 6 - fixed replace-insert with
DocumentCreateOptions#overwrite(Boolean)
forArangoCollection#insertDocuments
- removed unused dependency
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
forArangoDatabase#query
. - added option
DocumentReadOptions#allowDirtyRead
forArangoCollection#getDocument
- added option
DocumentReadOptions#allowDirtyRead
forArangoCollection#getDocuments
- added option
DocumentReadOptions#allowDirtyRead
forArangoVertexCollection#getVertex
- added option
DocumentReadOptions#allowDirtyRead
forArangoEdgeCollection#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
ArangoDB.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.3 - 2018-09-03
- made
AqlQueryOptions#Options
serializable
4.7.2 - 2018-09-03
- made
AqlQueryOptions
serializable
4.7.1 - 2018-09-03
- applied arangosearch API changes for ArangoDB 3.4.0
- fixed
ArangoCursor#close()
: check hasNext before close (issue #223)
4.7.0 - 2018-08-02
- added View support
- added
ArangoDatabase#view(String): ArangoView
- added
ArangoDatabase#getViews(): Collection<ViewEntity>
- added
ArangoView
- added
- added arangosearch support
- added
ArangoDatabase#arangoSearch(String): ArangoSearch
- added
ArangoSearch
- added
- added
ArangoCursor#first()
- added
java.util.stream.Stream
like methods forArangoCursor
- added
ArangoCursor#foreach(Consumer)
- added
ArangoCursor#map(Function)
- added
ArangoCursor#filter(Predicate)
- added
ArangoCursor#anyMatch(Predicate)
- added
ArangoCursor#allMatch(Predicate)
- added
ArangoCursor#noneMatch(Predicate)
- added
ArangoCursor#collectInto(Collection)
- added
- added interface
Entity
for entities incom.arangodb.entity
- 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
ArangoCollection#rename(String)
Change field
name
inArangoCollection
after rename so that future requests through the instance will be made with the new collection name. -
fixed missing
ArangoDatabase.util() : ArangoSerialization
-
fixed missing
ArangoCollection.util() : ArangoSerialization
-
fixed missing
ArangoGraph.util() : ArangoSerialization
-
fixed missing
ArangoVertexCollection.util() : ArangoSerialization
-
fixed missing
ArangoEdgeCollection.util() : ArangoSerialization
4.6.0 - 2018-07-02
- added convenience methods for arbitrary requests
- added
ArangoDatabase.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 (issue #190)
- added
TransactionOptions#exclusiveCollections(String[])
- added
- removed unnecessary deserializer for internal
_id
field
- fixed serializing of documents/edges: use custom serializer
4.5.2 - 2018-06-25
- added support for custom serializer
- added
ArangoDB.Builder#serializer(ArangoSerialization)
- added link to jackson-dataformat-velocypack in docs
- added
4.5.1 - 2018-06-21
- fixed
exists()
method inArangoDatabase
,ArangoCollection
,ArangoGraph
: check for ArangoDB error num - fixed
ArangoDB#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
ArangoDatabase#create()
- added
ArangoCollection#create()
- added
ArangoCollection#create(CollectionCreateOptions)
- added
ArangoGraph#create(Collection<EdgeDefinition>)
- added
ArangoGraph#create(Collection<EdgeDefinition>, GraphCreateOptions)
- added return type for
ArangoDatabase#deleteAqlFunction()
- added field
AqlFunctionEntity#isDeterministic
- upgraded dependency velocypack 1.2.0
- replaced dependency json-simple with jackson
- extracted interfaces for ArangoDB API
- removed deprecated
ArangoDB.Builder#host(String)
- removed deprecated
ArangoDB.Builder#port(Integer)
- removed deprecated
ArangoCollection#create[IndexType]Index()
- removed deprecated
ArangoDatabase#updateUserDefaultCollectionAccess()
- removed deprecated
ArangoDB#updateUserDefaultDatabaseAccess()
- removed deprecated
ArangoDB#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 (issue #186)
- fixed
ArangoCollection#updateDocuments()
ignoringDocumentUpdateOptions#serializeNull
(issue #180)
4.3.7 - 2018-04-17
- fixed property loading
4.3.6 - 2018-04-16
- added
ArangoDB.Builder#maxConnectionTtl(Integer)
(Issue #141, #186)
4.3.5 - 2018-04-11
- fixed compatibility for
ArangoDatabase#getAqlFunctions()
for ArangoDB 3.4 - fixed internal exception handling in VST connection
4.3.4 - 2018-03-21
- made
ErrorEntity
serializable (Issue #178)
- fixed serialization of bind parameter with null values (Issue #176, #177)
- fixed VelocyStream multi-thread authentication bug
- fixed load balancing cursor stickiness bug
4.3.3 - 2018-02-01
- added
CollectionCreateOptions#distributeShardsLike(String)
(Issue #170) - 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
ArangoCollection#getDocument()
variants (Issue #168)
4.3.2 - 2017-11-30
- fixed redirect header (uppercase)
4.3.1 - 2017-11-27
- fixed default JSON parsing, include null values (Issue #163)
- fixed JSON parsing of negative long (Issue #151)
4.3.0 - 2017-11-23
- added load balancing (
ArangoDB.Builder#loadBalancingStrategy()
) - added automatic acquiring of hosts for load balancing or as fallback (
ArangoDB.Builder#acquireHostList()
)
4.2.7 - 2017-11-03
- added
ArangoGraph#exists()
- fixed deserialization of
BigDecimal
4.2.6 - 2017-10-23
- exclude junit dependency of json-simple
- fixed de-/serialization of negative int values (issue #151)
4.2.5 - 2017-10-16
- added
ArangoCollection#exists()
(issue #146) - added
ArangoDatabase#exists()
- added
BaseDocument#setId(String)
(issue #152) - added
GraphCreateOptions#replicationFactor(Integer)
ArangoDB#shutdown()
now closes all connections (issue #156)
4.2.4 - 2017-09-04
- added properties validation
arangodb.host
- added
ArangoCollection#ensure<IndexType>Index()
- let
ArangoCursor
implementIterable
- deprecated
ArangoCollection#create<IndexType>Index()
- fixed
ArangoDatabase#transaction()
: ignore null result - fixed
ArangoCollection#updateDocument()
(issue #145) - fixed
ArangoVertexCollection#updateVertex()
(issue #145) - fixed
ArangoEdgeCollection#updateEdge()
(issue #145)
4.2.3 - 2017-07-31
- added
ArangoDatabase#getPermissions(String)
- added
ArangoCollection#getPermissions(String)
- added
ArangoDB#grantDefaultDatabaseAccess(String, Permissions)
- added
ArangoDB#grantDefaultCollectionAccess(String, Permissions)
- added
ArangoDatabase#grantDefaultCollectionAccess(String, Permissions)
- fixed
DateUtil
(thread-safe)
4.2.2 - 2017-07-20
- added
ArangoDatabase#grantAccess(String, Permissions)
- added
ArangoCollection#grantAccess(String, Permissions)
- added
ArangoDatabase#resetAccess(String)
- added
ArangoCollection#resetAccess(String)
- added
ArangoDB#updateUserDefaultDatabaseAccess(String, Permissions)
- added
ArangoDB#updateUserDefaultCollectionAccess(String, Permissions)
- added
ArangoDatabase#updateUserDefaultCollectionAccess(String, Permissions)
- added
ArangoCollection#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()
- added protocol switch (
ArangoDB.Builder#protocol(Protocol)
)Protocol#VST
= VeclocyStream (default)Protocol#HTTP_JSON
= JSON over HTTPProtocol#HTTP_VPACK
= VelocyPack over HTTP
4.1.12 - 2017-04-13
- added
ArangoDatabase#cursor()
(issue #116)
- optimized
ArangoDB.Builder
for better multi thread support
- fixed
VPackSlice
float
/double
bug
4.1.11 - 2017-03-24
- added convenience methods
ArangoDatabase#arango()
,ArangoCollection#db()
,ArangoGraph#db()
- added convenience methods
ArangoCollection#getIndex(String)
,ArangoCollection#deleteIndex(key)
- added connection pooling (issue #103)
- added extension point for
VelocyPack
serialization (ArangoDB#registerModule()
) - added support for replacing build-in VelocyPack serializer/deserializer
- added
ArangoDatabase#getVersion()
,ArangoDatabase#getAccessibleDatabases()
- extracted VelocyPack implementation to https://github.com/arangodb/java-velocypack
- fixed exception handling in Connection (issue #110)
- fixed NPE in
ArangoCursor
(issue #112)
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 Connection (thread-safe)
- 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 fromVPack.date
toVPack.string
(ISO 8601) - changed
java.sql.Date
serialization fromVPack.date
toVPack.string
(ISO 8601) - changed
java.sql.Timestamp
serialization fromVPack.date
toVPack.string
(ISO 8601) - changed
ArangoCollection#deleteDocuments()
to work with keys and documents
- fixed URL encoding bug (#97)
- fixed update/replaceDocumets with JSON (#98)
4.1.7 - 2017-01-26
- fixed
importDocuments
,insertDocuments
to work with raw JSONs (issue #91)
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 (issue #88)
4.1.4 - 2016-12-19
- added
VPack
serializer/de-serializer forjava.util.UUID
- fixed
VPack
parsing (issue #65, #80, #82)
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
inArangoDB.Builder
- added
VPackJsonSerializer
forVPackParser
- fixed
GraphEntity
forArangoDatabase#getGraphs()
(fieldname
is null)
4.1.1 - 2016-11-09
- added option
CollectionCreateOptions#replicationFactor
- added option
CollectionPropertiesEntity#replicationFactor
- added option
DocumentUpdateOptions#serializeNull
- changed json parsing of VelocyPack types not known in json
- fixed VelocyPack bug with non-ASCII characters
4.1.0 - 2016-10-28
- added
ArangoUtil
for manually de-/serialization
- changed VelocyStream communication (send protocol header)
4.0.0 - 2016-10-17
- added VelocyPack support
- added multi document operations (insert, delete, update, replace)
- replaced API
- replaced protocol http with VelocyStream
3.1.0 - 2016-10-17
- added profile flag to AqlQueryOptions (issue #47)
- changed Revision from long to String
- removed methods with collectionId (long) from
ArangoDriver
(Id is only for internal usage) - removed methods with documentId (long) from
ArangoDriver
3.0.4 - 2016-10-17
- fixed edges deserializer (issue #50)
3.0.3 - 2016-09-12
- added error handling in getBatchResponseByRequestId()
- added function createPersistentIndex() (issue #48)
- added deserializer for BaseDocument (issue #50)
3.0.2 - 2016-08-05
- added profile flag to AqlQueryOptions (issue #47)
- added getExtra() to DocumentCursor<> (issue #47)
- added IndexType.PERSISTENT (issue #48)
3.0.1 - 2016-07-08
- added flag complete and details in ImportOptions
- fixed issue #43 (ArangoDriver.getAqlFunctions(String) does not uses the defaultDatabase setting)
3.0.0 - 2016-06-17
- added User-Method grantDatabaseAccess(username, database)
- added Transaction attribute allowImplicit
- refactored QueryCachePropertiesEntity, TransactionResultEntity
- replaced Graph-Functions (graph_edge, graph_vertices, graph_shortes_path) with AQL
- removed ArangoDriver.EdgeEntity() (/_api/edge withdrawn in Server)
- removed CAP-Index (Cap-constraints are withdrawn in Server)
- removed Param database in User-Methods (in 3.0 users are managed in _users Collection in _system Database only)
- removed deprecated Methods
2.7.4 - 2016-04-15
- fixed issue #35 (There is no replaceDocumentRaw similar to createDocumentRaw)
2.7.3 - 2016-03-25
- batch driver performance fix
- fixed issue #33 (typo in ArangoDriver.executeAqlQueryWithDocumentCursorResutl method)
2.7.2 - 2016-01-22
- added executeAqlQueryRaw(...). Example src/test/java/com/arangodb/example/document/RawDocumentExample.java
2.7.1 - 2016-01-21
- added examples for new AQL traversal functions (since ArangoDB 2.8)
- added AQL warnings to CursorResult<?> (hasWarning() and getWarnings())
- added createDocumentRaw(...) and getDocumentRaw(...). Examples src/test/java/com/arangodb/example/document/RawDocumentExample.java
- Updated dependencies gson (2.5), httpclient (4.5.1) and slf4j-api (1.7.13)
2.7.0 - 2015-11-20
- added document examples in src/test/java/com/arangodb/example/document/
- added graph examples in src/test/java/com/arangodb/example/document/
- added new function executeAqlQueryJSON(): Executes an AQL query and returns the raw JSON response as a String
- initial support of HTTPS connections. Examples src/test/java/com/arangodb/example/ssl/
2.6.9 - 2015-10-16
- added support API:
/_api/query-cache/properties
(AQL query tracking properties: setQueryTrackingProperties(), getQueryTrackingProperties()) - added support API:
/_api/query-cache
(delete AQL query cache: deleteQueryCache()) - added support API:
/_api/query/current
(currently running AQL queries: getCurrentlyRunningQueries()) - added support API:
/_api/query/slow
(slow AQL queries: getSlowQueries(), deleteSlowQueries()) - added support API:
/_api/query
(kill AQL queries: killQuery()) - added boolean exists(long collectionId, long documentId)
- added boolean exists(String collectionName, long documentId)
- added boolean exists(long collectionId, String documentKey) throws ArangoException {
- added boolean exists(String collectionName, String documentKey)
- added boolean exists(String documentHandle)
2.6.8 - 2015-09-25
- fixed GRAPH_EDGES() 2.6-incompatibility
2.5.6 - 2015-07-04
- ArangoDB 2.6 support
- fixed issue #19 * createEdge takes graphName but needs database name
2.5.5 - 2015-05-23
- added an examples for Transaction API (see src/test/java/com/arangodb/example/TransactionExample.java)
- added TraversalQueryOptions to avoid too many parameters
- updated
driver.getTraversal(...);
- changed TransactionEntity.ReadWriteCollections to a static class (issue #17)
- removed VisitedEntity (Traversal)
2.5.4 - 2015-05-03
- added new cursor implementation for AQL queries
- DocumentCursor executeDocumentQuery(...)
- VertexCursor executeVertexQuery(...)
- EdgeCursor executeEdgeQuery(...)
- added new cursor implementation for simple queries
- DocumentCursor executeSimpleAllDocuments(...)
- DocumentCursor executeSimpleByExampleDocuments(...)
- DocumentCursor executeSimpleRangeWithDocuments(...)
- DocumentCursor executeSimpleFulltextWithDocuments(...)
- added some examples for AQL queries (see src/test/java/com/arangodb/example)
- fixed issue #12
- added auto reconnection when connection breaks
- added fallback server endpoints
2.5.3 - 2015-03-29
- fixed issue #9 * added method to driver.getTraversal(...);
Added support for sparse indexes
- fixed issue #5
- added method to driver.createGraph(GraphEntity g);
- fixed issue #6
- fixed issue #7
- Some additional methods in GraphEntity:
- public EdgeDefinitionsEntity getEdgeDefinitionsEntity()
- public void setEdgeDefinitionsEntity(EdgeDefinitionsEntity edgeDefinitionsEntity)
- Some additional methods in EdgeDefinitionsEntity:
- public int getSize()
- public EdgeDefinitionEntity getEdgeDefinition(String collectionName)
- GraphEntity has been changed, so that edge definitions are stored in an EdgeDefinitionsEntity.
- Fixed a graph bug: when retrieving a graph via the driver, "from" and "to" were emtpy. This is fixed now.
- Fixed issue#2
- httpclient version 4.3.6
1.4.1 - 2014-02-04
- added support API: GET
/_api/database/user
(getDatabases) - added debug property: enableCURLLogger
- added Annotation @DocumentKey and support user define document key.
- added document API support
_key
.
- rename attribute: UserEntity#user -> UserEntity#username
- modify API: createDatabase(db) -> createDatabase(db, users...)
- Bug fixed: raise error if
_key
is not number. - Fixed OraacleJDK build error.(#11)
1.4.0 - 2013-11-26
- support database (for 1.4 feature)
- stop the API of edge, edges in version 1.4.0
- stop the API of kvs(
/_api/key
) in version 1.4.0(because server does not support yet.) - add support API:
/_api/database/
- add configure: defaultDatabase
- add support API:
/_admin/statistics
(getStatistics) - add support API:
/_admin/statistics-description
(statisticsDescription) - add support API:
/_api/endpoint
- add support API:
/_api/collection/{collection-name}/checksum
(getCollectionChecksum) - add support API:
/_api/example/first
- add support API:
/_api/example/last
- add support API:
/_api/replication/inventory
(getReplicationInventory) - add support API:
/_api/replication/dump
(getReplicationDump) - add support API:
/_api/replication/server-id
(getReplicationServerId) - add support API:
/_api/replication/logger-start
(startReplicationLogger) - add support API:
/_api/replication/logger-stop
(stopReplicationLogger) - add support API: GET
/_api/replication/logger-state
(getReplicationLoggerState) - add support API: GET
/_api/replication/logger-config
(getReplicationLoggerConfig) - add support API: PUT
/_api/replication/logger-config
(setReplicationLoggerConfig) - add support API: GET
/_api/replication/applier-config
(getReplicationApplierConfig) - add support API: PUT
/_api/replication/applier-config
(setReplicationApplierConfig) - add support API: PUT
/_api/replication/applier-start
(startReplicationApplier) - add support API: PUT
/_api/replication/applier-stop
(stopReplicationApplier) - add support API: GET
/_api/replication/applier-state
(getReplicationApplierState) - add support API: POST
/_admin/execute
(executeScript) - add support API: POST
/_api/graph
(createGraph) - add support API: GET
/_api/graph
(getGraphs) - add support API: GET
/_api/graph/{graph-name}
(getGraph) - add support API: DELETE
/_api/graph/{graph-name}
(deleteGraph) - add support API: POST
/_api/graph/{graph-name}/vertex
(createVertex) - add support API: GET
/_api/graph/{graph-name}/vertex/{document-key}
(getVertex) - add support API: DELETE
/_api/graph/{graph-name}/vertex/{document-key}
(deleteVertex) - add support API: PUT
/_api/graph/{graph-name}/vertex/{document-key}
(replaceVertex) - add support API: PATCH
/_api/graph/{graph-name}/vertex/{document-key}
(updateVertex) - add support API: POST
/_api/graph/{graph-name}/vertices
(getVertices) - add support API: POST
/_api/graph/{graph-name}/vertices/{vertex-key}
(getVertices) - add support API: POST
/_api/graph/{graph-name}/edge
(createEdge) - add support API: GET
/_api/graph/{graph-name}/edge/{edge-key}
(getEdge) - add support API: DELETE
/_api/graph/{graph-name}/edge/{edge-key}
(deleteEdge) - add support API: PUT
/_api/graph/{graph-name}/edge/{edge-key}
(replaceEdge) - add support API: POST
/_api/graph/{graph-name}/edges
(getEdges) - add support API: POST
/_api/graph/{graph-name}/edges/{vertex-key}
(getEdges) - add attribute: CollectionEntity#checksum
- add attribute: CollectionEntity#doCompact
- add attribute: CollectionEntity#keyOptions
- add attribute: CollectionEntity.Figures#(compactorsCount,compactorsFileSize,shapefilesCount,shapefilesFileSize,shapesCount,attributesCount)
- add doCompact to argument of createCollection
- getDocuments was changed to return document-handle
- rename method: updateDocument -> replaceDocument
- rename method: partialUpdateDocument -> updateDocument
- changed the version API endpoint. (/_admin/version -> /_api/version)
- changed into createOptions to keyOptions of collection API
- refactoring deserialize of parameterized entity class.
- gson library upgrade to 2.2.4
- remove attribute: CollectionEntity#createOptions
- remove: getServerStatus
- remove: getConnectionStatistics
- fixed ArangoUnixTime bug.
1.2.2 - 2013-07-10
- add support API:
/_api/explain
- add support API:
/_api/collection/collection-name/revision
- add support API:
/_api/index of fulltext
- add support API:
/_api/simple/fulltext
- add support API:
/_admin/modules/flush
- add support API:
/_admin/routing/reload
- add support API: User Management
- add support: Basic Authentication
/_api/simple/all
and/_api/simple/by-example
returns DocumentEntity- add support import API
1.2.1 - 2013-07-02
- Add support: load configure from property-file in classpath.
- Add configure: timeout, connectionTimeout, retryCount.
- Change google-gson scope in pom.xml
- Change logback-classic in pom.xml
- Remove configure: autoUnknownCollections.
- Remove README.JA
- Initial Release