Skip to content

Commit ef98b18

Browse files
author
mpv1989
committed
compatibility with sync driver
1 parent f8a194d commit ef98b18

File tree

7 files changed

+67
-42
lines changed

7 files changed

+67
-42
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.arangodb</groupId>
66
<artifactId>arangodb-java-driver-async</artifactId>
7-
<version>4.1.13-SNAPSHOT</version>
7+
<version>4.2.0-SNAPSHOT</version>
88
<inceptionYear>2016</inceptionYear>
99
<packaging>jar</packaging>
1010

src/main/java/com/arangodb/ArangoCollectionAsync.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.arangodb.entity.DocumentUpdateEntity;
3434
import com.arangodb.entity.IndexEntity;
3535
import com.arangodb.entity.MultiDocumentEntity;
36+
import com.arangodb.internal.ArangoExecutor.ResponseDeserializer;
3637
import com.arangodb.internal.ArangoExecutorAsync;
3738
import com.arangodb.internal.InternalArangoCollection;
3839
import com.arangodb.internal.velocystream.ConnectionAsync;
@@ -49,6 +50,7 @@
4950
import com.arangodb.model.HashIndexOptions;
5051
import com.arangodb.model.PersistentIndexOptions;
5152
import com.arangodb.model.SkiplistIndexOptions;
53+
import com.arangodb.velocypack.exception.VPackException;
5254
import com.arangodb.velocystream.Response;
5355

5456
/**
@@ -480,8 +482,12 @@ public <T> CompletableFuture<MultiDocumentEntity<DocumentDeleteEntity<T>>> delet
480482
*/
481483
public CompletableFuture<Boolean> documentExists(final String key) {
482484
final CompletableFuture<Boolean> result = new CompletableFuture<>();
483-
executor.communication().execute(documentExistsRequest(key, new DocumentExistsOptions()))
484-
.whenComplete(documentExistsResponseConsumer(result));
485+
executor.execute(documentExistsRequest(key, new DocumentExistsOptions()), new ResponseDeserializer<Response>() {
486+
@Override
487+
public Response deserialize(final Response response) throws VPackException {
488+
return response;
489+
}
490+
}).whenComplete(documentExistsResponseConsumer(result));
485491
return result;
486492
}
487493

@@ -499,8 +505,12 @@ public CompletableFuture<Boolean> documentExists(final String key) {
499505
*/
500506
public CompletableFuture<Boolean> documentExists(final String key, final DocumentExistsOptions options) {
501507
final CompletableFuture<Boolean> result = new CompletableFuture<>();
502-
executor.communication().execute(documentExistsRequest(key, options))
503-
.whenComplete(documentExistsResponseConsumer(result));
508+
executor.execute(documentExistsRequest(key, options), new ResponseDeserializer<Response>() {
509+
@Override
510+
public Response deserialize(final Response response) throws VPackException {
511+
return response;
512+
}
513+
}).whenComplete(documentExistsResponseConsumer(result));
504514
return result;
505515
}
506516

src/main/java/com/arangodb/ArangoDBAsync.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,22 @@
3939
import com.arangodb.internal.ArangoExecutorAsync;
4040
import com.arangodb.internal.CollectionCache;
4141
import com.arangodb.internal.CollectionCache.DBAccess;
42+
import com.arangodb.internal.DefaultHostHandler;
4243
import com.arangodb.internal.DocumentCache;
44+
import com.arangodb.internal.Host;
45+
import com.arangodb.internal.HostHandler;
4346
import com.arangodb.internal.InternalArangoDB;
4447
import com.arangodb.internal.util.ArangoDeserializerImpl;
4548
import com.arangodb.internal.util.ArangoSerializerImpl;
4649
import com.arangodb.internal.util.ArangoUtilImpl;
4750
import com.arangodb.internal.velocypack.VPackDocumentModule;
4851
import com.arangodb.internal.velocypack.VPackDriverModule;
49-
import com.arangodb.internal.velocystream.Communication;
50-
import com.arangodb.internal.velocystream.CommunicationAsync;
51-
import com.arangodb.internal.velocystream.CommunicationSync;
5252
import com.arangodb.internal.velocystream.ConnectionAsync;
53-
import com.arangodb.internal.velocystream.ConnectionSync;
54-
import com.arangodb.internal.velocystream.DefaultHostHandler;
55-
import com.arangodb.internal.velocystream.Host;
56-
import com.arangodb.internal.velocystream.HostHandler;
53+
import com.arangodb.internal.velocystream.VstCommunication;
54+
import com.arangodb.internal.velocystream.VstCommunicationAsync;
55+
import com.arangodb.internal.velocystream.VstCommunicationSync;
56+
import com.arangodb.internal.velocystream.VstProtocol;
57+
import com.arangodb.internal.velocystream.internal.ConnectionSync;
5758
import com.arangodb.model.LogOptions;
5859
import com.arangodb.model.UserCreateOptions;
5960
import com.arangodb.model.UserUpdateOptions;
@@ -344,27 +345,26 @@ public synchronized ArangoDBAsync build() {
344345
collectionCache, syncBuilder(hostHandler));
345346
}
346347

347-
private CommunicationAsync.Builder asyncBuilder(final HostHandler hostHandler) {
348-
return new CommunicationAsync.Builder(hostHandler).timeout(timeout).user(user).password(password)
348+
private VstCommunicationAsync.Builder asyncBuilder(final HostHandler hostHandler) {
349+
return new VstCommunicationAsync.Builder(hostHandler).timeout(timeout).user(user).password(password)
349350
.useSsl(useSsl).sslContext(sslContext).chunksize(chunksize).maxConnections(maxConnections);
350351
}
351352

352-
private CommunicationSync.Builder syncBuilder(final HostHandler hostHandler) {
353-
return new CommunicationSync.Builder(hostHandler).timeout(timeout).user(user).password(password)
353+
private VstCommunicationSync.Builder syncBuilder(final HostHandler hostHandler) {
354+
return new VstCommunicationSync.Builder(hostHandler).timeout(timeout).user(user).password(password)
354355
.useSsl(useSsl).sslContext(sslContext).chunksize(chunksize).maxConnections(maxConnections);
355356
}
356357

357358
}
358359

359-
public ArangoDBAsync(final CommunicationAsync.Builder commBuilder, final ArangoSerialization util,
360-
final CollectionCache collectionCache, final CommunicationSync.Builder syncbuilder) {
361-
super(new ArangoExecutorAsync(commBuilder.build(util, collectionCache), util, new DocumentCache(),
362-
collectionCache), util);
363-
final Communication<Response, ConnectionSync> cacheCom = syncbuilder.build(util, collectionCache);
360+
public ArangoDBAsync(final VstCommunicationAsync.Builder commBuilder, final ArangoSerialization util,
361+
final CollectionCache collectionCache, final VstCommunicationSync.Builder syncbuilder) {
362+
super(new ArangoExecutorAsync(commBuilder.build(util, collectionCache), util, new DocumentCache()), util);
363+
final VstCommunication<Response, ConnectionSync> cacheCom = syncbuilder.build(util, collectionCache);
364364
collectionCache.init(new DBAccess() {
365365
@Override
366366
public ArangoDatabase db(final String name) {
367-
return new ArangoDatabase(cacheCom, util, executor.documentCache(), null, name);
367+
return new ArangoDatabase(new VstProtocol(cacheCom), util, executor.documentCache(), name);
368368
}
369369
});
370370
}
@@ -375,7 +375,7 @@ protected ArangoExecutorAsync executor() {
375375
}
376376

377377
public void shutdown() {
378-
executor.communication().disconnect();
378+
executor.disconnect();
379379
}
380380

381381
/**

src/main/java/com/arangodb/ArangoDatabaseAsync.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
import com.arangodb.internal.CollectionCache;
4545
import com.arangodb.internal.DocumentCache;
4646
import com.arangodb.internal.InternalArangoDatabase;
47-
import com.arangodb.internal.velocystream.CommunicationAsync;
4847
import com.arangodb.internal.velocystream.ConnectionAsync;
48+
import com.arangodb.internal.velocystream.VstCommunicationAsync;
4949
import com.arangodb.model.AqlFunctionCreateOptions;
5050
import com.arangodb.model.AqlFunctionDeleteOptions;
5151
import com.arangodb.model.AqlFunctionGetOptions;
@@ -73,9 +73,9 @@ protected ArangoDatabaseAsync(final ArangoDBAsync arangoDB, final String name) {
7373
super(arangoDB, arangoDB.executor(), arangoDB.util(), name);
7474
}
7575

76-
protected ArangoDatabaseAsync(final CommunicationAsync communication, final ArangoSerialization util,
76+
protected ArangoDatabaseAsync(final VstCommunicationAsync communication, final ArangoSerialization util,
7777
final DocumentCache documentCache, final CollectionCache collectionCache, final String name) {
78-
super(null, new ArangoExecutorAsync(communication, util, documentCache, collectionCache), util, name);
78+
super(null, new ArangoExecutorAsync(communication, util, documentCache), util, name);
7979
}
8080

8181
/**

src/main/java/com/arangodb/internal/ArangoExecutorAsync.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,23 @@
2424
import java.util.concurrent.CompletableFuture;
2525

2626
import com.arangodb.ArangoDBException;
27-
import com.arangodb.internal.velocystream.Communication;
28-
import com.arangodb.internal.velocystream.ConnectionAsync;
27+
import com.arangodb.internal.velocystream.VstCommunicationAsync;
2928
import com.arangodb.util.ArangoSerialization;
3029
import com.arangodb.velocypack.exception.VPackException;
3130
import com.arangodb.velocystream.Request;
32-
import com.arangodb.velocystream.Response;
3331

3432
/**
3533
* @author Mark - mark at arangodb.com
3634
*
3735
*/
38-
public class ArangoExecutorAsync extends ArangoExecutor<CompletableFuture<Response>, ConnectionAsync> {
36+
public class ArangoExecutorAsync extends ArangoExecutor {
3937

40-
public ArangoExecutorAsync(final Communication<CompletableFuture<Response>, ConnectionAsync> communication,
41-
final ArangoSerialization util, final DocumentCache documentCache, final CollectionCache collectionCache) {
42-
super(communication, util, documentCache, collectionCache);
38+
private final VstCommunicationAsync communication;
39+
40+
public ArangoExecutorAsync(final VstCommunicationAsync communication, final ArangoSerialization util,
41+
final DocumentCache documentCache) {
42+
super(util, documentCache);
43+
this.communication = communication;
4344
}
4445

4546
public <T> CompletableFuture<T> execute(final Request request, final Type type) {
@@ -48,7 +49,7 @@ public <T> CompletableFuture<T> execute(final Request request, final Type type)
4849

4950
public <T> CompletableFuture<T> execute(final Request request, final ResponseDeserializer<T> responseDeserializer) {
5051
final CompletableFuture<T> result = new CompletableFuture<>();
51-
communication().execute(request).whenComplete((response, ex) -> {
52+
communication.execute(request).whenComplete((response, ex) -> {
5253
if (response != null) {
5354
try {
5455
result.complete(responseDeserializer.deserialize(response));
@@ -64,4 +65,7 @@ public <T> CompletableFuture<T> execute(final Request request, final ResponseDes
6465
return result;
6566
}
6667

68+
public void disconnect() {
69+
communication.disconnect();
70+
}
6771
}

src/main/java/com/arangodb/internal/velocystream/ConnectionAsync.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727

2828
import javax.net.ssl.SSLContext;
2929

30+
import com.arangodb.internal.HostHandler;
31+
import com.arangodb.internal.velocystream.internal.Chunk;
32+
import com.arangodb.internal.velocystream.internal.Connection;
33+
import com.arangodb.internal.velocystream.internal.Message;
34+
import com.arangodb.internal.velocystream.internal.MessageStore;
35+
3036
/**
3137
* @author Mark - mark at arangodb.com
3238
*

src/main/java/com/arangodb/internal/velocystream/CommunicationAsync.java renamed to src/main/java/com/arangodb/internal/velocystream/VstCommunicationAsync.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
import com.arangodb.entity.ErrorEntity;
3434
import com.arangodb.internal.ArangoDBConstants;
3535
import com.arangodb.internal.CollectionCache;
36+
import com.arangodb.internal.HostHandler;
37+
import com.arangodb.internal.velocystream.internal.AuthenticationRequest;
38+
import com.arangodb.internal.velocystream.internal.ConnectionPool;
39+
import com.arangodb.internal.velocystream.internal.Message;
40+
import com.arangodb.internal.velocystream.internal.MessageStore;
3641
import com.arangodb.util.ArangoSerialization;
3742
import com.arangodb.velocypack.exception.VPackException;
3843
import com.arangodb.velocypack.exception.VPackParserException;
@@ -43,9 +48,10 @@
4348
* @author Mark - mark at arangodb.com
4449
*
4550
*/
46-
public class CommunicationAsync extends Communication<CompletableFuture<Response>, ConnectionAsync> {
51+
public class VstCommunicationAsync extends VstCommunication<CompletableFuture<Response>, ConnectionAsync> {
4752

48-
private static final Logger LOGGER = LoggerFactory.getLogger(CommunicationAsync.class);
53+
private static final Logger LOGGER = LoggerFactory.getLogger(VstCommunicationAsync.class);
54+
private final CollectionCache collectionCache;
4955

5056
public static class Builder {
5157

@@ -98,18 +104,16 @@ public Builder maxConnections(final Integer maxConnections) {
98104
return this;
99105
}
100106

101-
public Communication<CompletableFuture<Response>, ConnectionAsync> build(
102-
final ArangoSerialization util,
103-
final CollectionCache collectionCache) {
104-
return new CommunicationAsync(hostHandler, timeout, user, password, useSsl, sslContext, util,
107+
public VstCommunicationAsync build(final ArangoSerialization util, final CollectionCache collectionCache) {
108+
return new VstCommunicationAsync(hostHandler, timeout, user, password, useSsl, sslContext, util,
105109
collectionCache, chunksize, maxConnections);
106110
}
107111
}
108112

109-
private CommunicationAsync(final HostHandler hostHandler, final Integer timeout, final String user,
113+
private VstCommunicationAsync(final HostHandler hostHandler, final Integer timeout, final String user,
110114
final String password, final Boolean useSsl, final SSLContext sslContext, final ArangoSerialization util,
111115
final CollectionCache collectionCache, final Integer chunksize, final Integer maxConnections) {
112-
super(timeout, user, password, useSsl, sslContext, util, collectionCache, chunksize,
116+
super(timeout, user, password, useSsl, sslContext, util, chunksize,
113117
new ConnectionPool<ConnectionAsync>(maxConnections) {
114118
private final ConnectionAsync.Builder builder = new ConnectionAsync.Builder(hostHandler,
115119
new MessageStore()).timeout(timeout).useSsl(useSsl).sslContext(sslContext);
@@ -119,6 +123,7 @@ public ConnectionAsync createConnection() {
119123
return builder.build();
120124
}
121125
});
126+
this.collectionCache = collectionCache;
122127
}
123128

124129
@Override

0 commit comments

Comments
 (0)