Skip to content
Prev Previous commit
Next Next commit
Add property loading for acquireHostList and loadBalancingStrategy
  • Loading branch information
mpv1989 committed Nov 13, 2017
commit a4785a15823f64509cc1f0b1ec27f8f93a929ad2
2 changes: 2 additions & 0 deletions src/main/java/com/arangodb/ArangoDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ public Builder loadProperties(final InputStream in) throws ArangoDBException {
chunksize = loadChunkSize(properties, chunksize);
maxConnections = loadMaxConnections(properties, maxConnections);
protocol = loadProtocol(properties, protocol);
acquireHostList = loadAcquireHostList(properties, acquireHostList);
loadBalancingStrategy = loadLoadBalancingStrategy(properties, loadBalancingStrategy);
} catch (final IOException e) {
throw new ArangoDBException(e);
}
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/arangodb/internal/ArangoDBConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
package com.arangodb.internal;

import com.arangodb.Protocol;
import com.arangodb.entity.LoadBalancingStrategy;

/**
* @author Mark Vollmary
Expand All @@ -42,6 +43,8 @@ public class ArangoDBConstants {
public static final int MAX_CONNECTIONS_VST_DEFAULT = 1;
public static final int MAX_CONNECTIONS_HTTP_DEFAULT = 20;
public static final Protocol DEFAULT_NETWORK_PROTOCOL = Protocol.VST;
public static final boolean DEFAULT_ACQUIRE_HOST_LIST = false;
public static final LoadBalancingStrategy DEFAULT_LOAD_BALANCING_STRATEGY = LoadBalancingStrategy.NONE;

public static final String PATH_API_DOCUMENT = "/_api/document";
public static final String PATH_API_COLLECTION = "/_api/collection";
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/com/arangodb/internal/InternalArangoDB.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

import com.arangodb.ArangoDBException;
import com.arangodb.Protocol;
import com.arangodb.entity.LoadBalancingStrategy;
import com.arangodb.entity.LogLevelEntity;
import com.arangodb.entity.Permissions;
import com.arangodb.entity.ServerRole;
Expand Down Expand Up @@ -66,6 +67,8 @@ public class InternalArangoDB<E extends ArangoExecutor, R, C extends VstConnecti
private static final String PROPERTY_KEY_V_STREAM_CHUNK_CONTENT_SIZE = "arangodb.chunksize";
private static final String PROPERTY_KEY_MAX_CONNECTIONS = "arangodb.connections.max";
private static final String PROPERTY_KEY_PROTOCOL = "arangodb.protocol";
private static final String PROPERTY_KEY_ACQUIRE_HOST_LIST = "arangodb.acquireHostList";
private static final String PROPERTY_KEY_LOAD_BALANCING_STRATEGY = "arangodb.loadBalancingStrategy";
protected static final String DEFAULT_PROPERTY_FILE = "/arangodb.properties";

public InternalArangoDB(final E executor, final ArangoSerialization util) {
Expand Down Expand Up @@ -138,6 +141,18 @@ protected static Protocol loadProtocol(final Properties properties, final Protoc
.toUpperCase());
}

protected static Boolean loadAcquireHostList(final Properties properties, final Boolean currentValue) {
return Boolean.parseBoolean(getProperty(properties, PROPERTY_KEY_ACQUIRE_HOST_LIST, currentValue,
ArangoDBConstants.DEFAULT_ACQUIRE_HOST_LIST));
}

protected static LoadBalancingStrategy loadLoadBalancingStrategy(
final Properties properties,
final LoadBalancingStrategy currentValue) {
return LoadBalancingStrategy.valueOf(getProperty(properties, PROPERTY_KEY_LOAD_BALANCING_STRATEGY, currentValue,
ArangoDBConstants.DEFAULT_LOAD_BALANCING_STRATEGY).toUpperCase());
}

private static <T> String getProperty(
final Properties properties,
final String key,
Expand Down