diff --git a/ChangeLog.md b/ChangeLog.md
index b331518c9..ab58a1951 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
### Fixed
+- add arangodb.httpCookieSpec
- host handling (issue #241)
- logging extended hostresolver
diff --git a/pom.xml b/pom.xml
index 28f0deba3..584d55d94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
1.4.1
- 4.5.7
+ 4.5.8
1.1.3
@@ -278,7 +278,7 @@
commons-codec
commons-codec
- 1.11
+ 1.12
commons-logging
diff --git a/src/main/java/com/arangodb/ArangoDB.java b/src/main/java/com/arangodb/ArangoDB.java
index 9d7e038f3..ffad3b011 100644
--- a/src/main/java/com/arangodb/ArangoDB.java
+++ b/src/main/java/com/arangodb/ArangoDB.java
@@ -611,11 +611,12 @@ public synchronized ArangoDB build() {
final ConnectionFactory connectionFactory = (protocol == null || Protocol.VST == protocol)
? new VstConnectionFactorySync(host, timeout, connectionTtl, useSsl, sslContext)
: new HttpConnectionFactory(timeout, user, password, useSsl, sslContext, custom, protocol,
- connectionTtl);
+ connectionTtl, httpCookieSpec);
final Collection hostList = createHostList(max, connectionFactory);
final HostResolver hostResolver = createHostResolver(hostList, max, connectionFactory);
final HostHandler hostHandler = createHostHandler(hostResolver);
+
return new ArangoDBImpl(
new VstCommunicationSync.Builder(hostHandler).timeout(timeout).user(user).password(password)
.useSsl(useSsl).sslContext(sslContext).chunksize(chunksize).maxConnections(maxConnections)
diff --git a/src/main/java/com/arangodb/internal/ArangoDBImpl.java b/src/main/java/com/arangodb/internal/ArangoDBImpl.java
index cf10e9e75..fa88d6e0d 100644
--- a/src/main/java/com/arangodb/internal/ArangoDBImpl.java
+++ b/src/main/java/com/arangodb/internal/ArangoDBImpl.java
@@ -21,10 +21,10 @@
package com.arangodb.internal;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.arangodb.ArangoDB;
import com.arangodb.ArangoDBException;
@@ -42,7 +42,6 @@
import com.arangodb.internal.net.CommunicationProtocol;
import com.arangodb.internal.net.HostHandle;
import com.arangodb.internal.net.HostResolver;
-import com.arangodb.internal.net.HostResolver.EndpointResolver;
import com.arangodb.internal.util.ArangoSerializationFactory;
import com.arangodb.internal.util.ArangoSerializationFactory.Serializer;
import com.arangodb.internal.velocystream.VstCommunicationSync;
@@ -52,10 +51,8 @@
import com.arangodb.model.UserUpdateOptions;
import com.arangodb.util.ArangoCursorInitializer;
import com.arangodb.util.ArangoSerialization;
-import com.arangodb.velocypack.VPackSlice;
import com.arangodb.velocypack.exception.VPackException;
import com.arangodb.velocystream.Request;
-import com.arangodb.velocystream.RequestType;
import com.arangodb.velocystream.Response;
/**
@@ -64,6 +61,8 @@
*
*/
public class ArangoDBImpl extends InternalArangoDB implements ArangoDB {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ArangoDBImpl.class);
private ArangoCursorInitializer cursorInitializer;
private CommunicationProtocol cp;
@@ -71,51 +70,24 @@ public class ArangoDBImpl extends InternalArangoDB implement
public ArangoDBImpl(final VstCommunicationSync.Builder vstBuilder, final HttpCommunication.Builder httpBuilder,
final ArangoSerializationFactory util, final Protocol protocol, final HostResolver hostResolver,
final ArangoContext context) {
- super(new ArangoExecutorSync(createProtocol(vstBuilder, httpBuilder, util.get(Serializer.INTERNAL), protocol),
- util, new DocumentCache()), util, context);
- cp = createProtocol(new VstCommunicationSync.Builder(vstBuilder).maxConnections(1),
- new HttpCommunication.Builder(httpBuilder), util.get(Serializer.INTERNAL), protocol);
- hostResolver.init(new EndpointResolver() {
- @Override
- public Collection resolve(final boolean closeConnections) throws ArangoDBException {
- Collection response;
- try {
- response = executor.execute(new Request(ArangoRequestParam.SYSTEM, RequestType.GET, PATH_ENDPOINTS),
- new ResponseDeserializer>() {
- @Override
- public Collection deserialize(final Response response) throws VPackException {
- final VPackSlice field = response.getBody().get("endpoints");
- Collection endpoints;
- if (field.isNone()) {
- endpoints = Collections. emptyList();
- } else {
- final Collection