Class Cluster.Builder
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.driver.Cluster.Builder
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Cluster.Builder
addContactPoint(String address)
Adds the address of a Gremlin Server to the list of servers aClient
will try to contact to send requests to.Cluster.Builder
addContactPoints(String... addresses)
Add one or more the addresses of a Gremlin Servers to the list of servers aClient
will try to contact to send requests to.Cluster.Builder
authProperties(AuthProperties authProps)
Specifies parameters for authentication to Gremlin Server.Cluster.Builder
channelizer(Class channelizerClass)
Specify theChannelizer
implementation to use on the client when creating aConnection
.Cluster.Builder
channelizer(String channelizerClass)
Specify theChannelizer
implementation to use on the client when creating aConnection
.Cluster.Builder
connectionSetupTimeoutMillis(long connectionSetupTimeoutMillis)
Sets the duration of time in milliseconds provided for connection setup to complete which includes WebSocket handshake and SSL handshake.Cluster
create()
Cluster.Builder
credentials(String username, String password)
Sets theAuthProperties.Property.USERNAME
andAuthProperties.Property.PASSWORD
properties for authentication to Gremlin Server.Cluster.Builder
enableSsl(boolean enable)
Enables connectivity over SSL - note that the server should be configured with SSL turned on for this setting to work properly.Cluster.Builder
enableUserAgentOnConnect(boolean enableUserAgentOnConnect)
Configures whether cluster will send a user agent during web socket handshakesCluster.Builder
handshakeInterceptor(HandshakeInterceptor interceptor)
Deprecated.As of release 3.6.6, replaced withrequestInterceptor(RequestInterceptor)
.Cluster.Builder
jaasEntry(String jaasEntry)
Sets theAuthProperties.Property.JAAS_ENTRY
properties for authentication to Gremlin Server.Cluster.Builder
keepAliveInterval(long keepAliveInterval)
Length of time in milliseconds to wait on an idle connection before sending a keep-alive request.Cluster.Builder
keyStore(String keyStore)
The file location of the private key in JKS or PKCS#12 format.Cluster.Builder
keyStorePassword(String keyStorePassword)
The password of thekeyStore
, ornull
if it's not password-protected.Cluster.Builder
keyStoreType(String keyStoreType)
Cluster.Builder
loadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy)
Specifies the load balancing strategy to use on the client side.Cluster.Builder
maxConnectionPoolSize(int maxSize)
The maximum size that theConnectionPool
can grow.Cluster.Builder
maxContentLength(int maxContentLength)
The maximum size in bytes of any request sent to the server.Cluster.Builder
maxInProcessPerConnection(int maxInProcessPerConnection)
The maximum number of in-flight requests that can occur on aConnection
.Cluster.Builder
maxSimultaneousUsagePerConnection(int maxSimultaneousUsagePerConnection)
The maximum number of times that aConnection
can be borrowed from the pool simultaneously.Cluster.Builder
maxWaitForClose(int maxWait)
The amount of time in milliseconds to wait the connection to close before timing out where the default value is 3000.Cluster.Builder
maxWaitForConnection(int maxWait)
The maximum amount of time to wait for a connection to be borrowed from the connection pool.Cluster.Builder
minConnectionPoolSize(int minSize)
The minimum size of theConnectionPool
.Cluster.Builder
minInProcessPerConnection(int minInProcessPerConnection)
The minimum number of in-flight requests that can occur on aConnection
before it is considered for closing on return to theConnectionPool
.Cluster.Builder
minSimultaneousUsagePerConnection(int minSimultaneousUsagePerConnection)
The minimum number of times that aConnection
should be borrowed from the pool before it falls under consideration for closing.Cluster.Builder
nioPoolSize(int nioPoolSize)
Size of the pool for handling request/response operations.Cluster.Builder
path(String path)
The path to the Gremlin service on the host which is "/gremlin" by default.Cluster.Builder
port(int port)
Sets the port that the Gremlin Servers will be listening on.Cluster.Builder
protocol(String protocol)
Sets theAuthProperties.Property.PROTOCOL
properties for authentication to Gremlin Server.Cluster.Builder
reconnectInterval(int interval)
Time in milliseconds to wait between retries when attempting to reconnect to a dead host.Cluster.Builder
requestInterceptor(RequestInterceptor interceptor)
Specifies anHandshakeInterceptor
that will allow manipulation of theFullHttpRequest
prior to its being sent to the server.Cluster.Builder
resultIterationBatchSize(int size)
Override the server setting that determines how many results are returned per batch.Cluster.Builder
serializer(String mimeType)
Set theMessageSerializer
to use given the exact name of aSerializers
enum.Cluster.Builder
serializer(MessageSerializer<?> serializer)
Sets theMessageSerializer
to use.Cluster.Builder
serializer(Serializers mimeType)
Set theMessageSerializer
to use via theSerializers
enum.Cluster.Builder
sslCipherSuites(List<String> sslCipherSuites)
A list of cipher suites to enable.Cluster.Builder
sslContext(io.netty.handler.ssl.SslContext sslContext)
Explicitly set theSslContext
for when more flexibility is required in the configuration than is allowed by theCluster.Builder
.Cluster.Builder
sslEnabledProtocols(List<String> sslEnabledProtocols)
A list of SSL protocols to enable.Cluster.Builder
sslSkipCertValidation(boolean sslSkipCertValidation)
If true, trust all certificates and do not perform any validation.Cluster.Builder
trustStore(String trustStore)
The file location for a SSL Certificate Chain to use when SSL is enabled.Cluster.Builder
trustStorePassword(String trustStorePassword)
The password of thetrustStore
, ornull
if it's not password-protected.Cluster.Builder
trustStoreType(String trustStoreType)
Cluster.Builder
validationRequest(String script)
Specify a valid Gremlin script that can be used to test remote operations.Cluster.Builder
workerPoolSize(int workerPoolSize)
Size of the pool for handling background work.
-
-
-
Method Detail
-
nioPoolSize
public Cluster.Builder nioPoolSize(int nioPoolSize)
Size of the pool for handling request/response operations. Defaults to the number of available processors.
-
workerPoolSize
public Cluster.Builder workerPoolSize(int workerPoolSize)
Size of the pool for handling background work. Defaults to the number of available processors multiplied by 2
-
path
public Cluster.Builder path(String path)
The path to the Gremlin service on the host which is "/gremlin" by default.
-
serializer
public Cluster.Builder serializer(String mimeType)
Set theMessageSerializer
to use given the exact name of aSerializers
enum. Note that setting this value this way will not allow specific configuration of the serializer itself. If specific configuration is required * please useserializer(MessageSerializer)
.
-
serializer
public Cluster.Builder serializer(Serializers mimeType)
Set theMessageSerializer
to use via theSerializers
enum. If specific configuration is required please useserializer(MessageSerializer)
.
-
serializer
public Cluster.Builder serializer(MessageSerializer<?> serializer)
Sets theMessageSerializer
to use.
-
enableSsl
public Cluster.Builder enableSsl(boolean enable)
Enables connectivity over SSL - note that the server should be configured with SSL turned on for this setting to work properly.
-
sslContext
public Cluster.Builder sslContext(io.netty.handler.ssl.SslContext sslContext)
Explicitly set theSslContext
for when more flexibility is required in the configuration than is allowed by theCluster.Builder
. If this value is set to something other thannull
then all other related SSL settings are ignored. TheenableSsl
setting should still be set totrue
for this setting to take effect.
-
keepAliveInterval
public Cluster.Builder keepAliveInterval(long keepAliveInterval)
Length of time in milliseconds to wait on an idle connection before sending a keep-alive request. Set to zero to disable this feature.
-
keyStore
public Cluster.Builder keyStore(String keyStore)
The file location of the private key in JKS or PKCS#12 format.
-
keyStorePassword
public Cluster.Builder keyStorePassword(String keyStorePassword)
The password of thekeyStore
, ornull
if it's not password-protected.
-
trustStore
public Cluster.Builder trustStore(String trustStore)
The file location for a SSL Certificate Chain to use when SSL is enabled. If this value is not provided and SSL is enabled, the defaultTrustManager
will be used, which will have a set of common public certificates installed to it.
-
trustStorePassword
public Cluster.Builder trustStorePassword(String trustStorePassword)
The password of thetrustStore
, ornull
if it's not password-protected.
-
keyStoreType
public Cluster.Builder keyStoreType(String keyStoreType)
-
trustStoreType
public Cluster.Builder trustStoreType(String trustStoreType)
-
sslEnabledProtocols
public Cluster.Builder sslEnabledProtocols(List<String> sslEnabledProtocols)
A list of SSL protocols to enable. @see JSSE Protocols
-
sslCipherSuites
public Cluster.Builder sslCipherSuites(List<String> sslCipherSuites)
A list of cipher suites to enable. @see Cipher Suites
-
sslSkipCertValidation
public Cluster.Builder sslSkipCertValidation(boolean sslSkipCertValidation)
If true, trust all certificates and do not perform any validation.
-
minInProcessPerConnection
public Cluster.Builder minInProcessPerConnection(int minInProcessPerConnection)
The minimum number of in-flight requests that can occur on aConnection
before it is considered for closing on return to theConnectionPool
.
-
maxInProcessPerConnection
public Cluster.Builder maxInProcessPerConnection(int maxInProcessPerConnection)
The maximum number of in-flight requests that can occur on aConnection
. This represents an indication of how busy aConnection
is allowed to be. This number is linked to themaxSimultaneousUsagePerConnection
setting, but is slightly different in that it refers to the total number of requests on aConnection
. In other words, aConnection
might be borrowed once to have multiple requests executed against it. This number controls the maximum number of requests whereasmaxSimultaneousUsagePerConnection
controls the times borrowed.
-
maxSimultaneousUsagePerConnection
public Cluster.Builder maxSimultaneousUsagePerConnection(int maxSimultaneousUsagePerConnection)
The maximum number of times that aConnection
can be borrowed from the pool simultaneously. This represents an indication of how busy aConnection
is allowed to be. Set too large and theConnection
may queue requests too quickly, rather than wait for an availableConnection
or create a fresh one. If set too small, theConnection
will show as busy very quickly thus forcing waits for availableConnection
instances in the pool when there is more capacity available.
-
minSimultaneousUsagePerConnection
public Cluster.Builder minSimultaneousUsagePerConnection(int minSimultaneousUsagePerConnection)
The minimum number of times that aConnection
should be borrowed from the pool before it falls under consideration for closing. If aConnection
is not busy and theminConnectionPoolSize
is exceeded, then there is no reason to keep that connection open. Set too large andConnection
that isn't busy will continue to consume resources when it is not being used. Set too small andConnection
instances will be destroyed when the driver might still be busy.
-
maxConnectionPoolSize
public Cluster.Builder maxConnectionPoolSize(int maxSize)
The maximum size that theConnectionPool
can grow.
-
minConnectionPoolSize
public Cluster.Builder minConnectionPoolSize(int minSize)
The minimum size of theConnectionPool
. When theClient
is started,Connection
objects will be initially constructed to this size.
-
resultIterationBatchSize
public Cluster.Builder resultIterationBatchSize(int size)
Override the server setting that determines how many results are returned per batch.
-
maxWaitForConnection
public Cluster.Builder maxWaitForConnection(int maxWait)
The maximum amount of time to wait for a connection to be borrowed from the connection pool.
-
maxWaitForClose
public Cluster.Builder maxWaitForClose(int maxWait)
The amount of time in milliseconds to wait the connection to close before timing out where the default value is 3000. This timeout allows for a delay to occur in waiting for remaining messages that may still be returning from the server while aClient.close()
is called.
-
maxContentLength
public Cluster.Builder maxContentLength(int maxContentLength)
The maximum size in bytes of any request sent to the server. This number should not exceed the same setting defined on the server.
-
channelizer
public Cluster.Builder channelizer(String channelizerClass)
Specify theChannelizer
implementation to use on the client when creating aConnection
.
-
channelizer
public Cluster.Builder channelizer(Class channelizerClass)
Specify theChannelizer
implementation to use on the client when creating aConnection
.
-
validationRequest
public Cluster.Builder validationRequest(String script)
Specify a valid Gremlin script that can be used to test remote operations. This script should be designed to return quickly with the least amount of overhead possible. By default, the script sends an empty string. If the graph does not support that sort of script because it requires all scripts to include a reference to a graph then a good option might beg.inject()
.
-
reconnectInterval
public Cluster.Builder reconnectInterval(int interval)
Time in milliseconds to wait between retries when attempting to reconnect to a dead host.
-
loadBalancingStrategy
public Cluster.Builder loadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy)
Specifies the load balancing strategy to use on the client side.
-
handshakeInterceptor
@Deprecated public Cluster.Builder handshakeInterceptor(HandshakeInterceptor interceptor)
Deprecated.As of release 3.6.6, replaced withrequestInterceptor(RequestInterceptor)
.Specifies anHandshakeInterceptor
that will allow manipulation of theFullHttpRequest
prior to its being sent to the server.
-
requestInterceptor
public Cluster.Builder requestInterceptor(RequestInterceptor interceptor)
Specifies anHandshakeInterceptor
that will allow manipulation of theFullHttpRequest
prior to its being sent to the server. For websockets the interceptor is only called on the handshake.
-
authProperties
public Cluster.Builder authProperties(AuthProperties authProps)
Specifies parameters for authentication to Gremlin Server.
-
credentials
public Cluster.Builder credentials(String username, String password)
Sets theAuthProperties.Property.USERNAME
andAuthProperties.Property.PASSWORD
properties for authentication to Gremlin Server.
-
protocol
public Cluster.Builder protocol(String protocol)
Sets theAuthProperties.Property.PROTOCOL
properties for authentication to Gremlin Server.
-
jaasEntry
public Cluster.Builder jaasEntry(String jaasEntry)
Sets theAuthProperties.Property.JAAS_ENTRY
properties for authentication to Gremlin Server.
-
addContactPoint
public Cluster.Builder addContactPoint(String address)
Adds the address of a Gremlin Server to the list of servers aClient
will try to contact to send requests to. The address should be parseable byInetAddress.getByName(String)
. That's the only validation performed at this point. No connection to the host is attempted.
-
addContactPoints
public Cluster.Builder addContactPoints(String... addresses)
Add one or more the addresses of a Gremlin Servers to the list of servers aClient
will try to contact to send requests to. The address should be parseable byInetAddress.getByName(String)
. That's the only validation performed at this point. No connection to the host is attempted.
-
port
public Cluster.Builder port(int port)
Sets the port that the Gremlin Servers will be listening on.
-
connectionSetupTimeoutMillis
public Cluster.Builder connectionSetupTimeoutMillis(long connectionSetupTimeoutMillis)
Sets the duration of time in milliseconds provided for connection setup to complete which includes WebSocket handshake and SSL handshake. Beyond this duration an exception would be thrown.
-
enableUserAgentOnConnect
public Cluster.Builder enableUserAgentOnConnect(boolean enableUserAgentOnConnect)
Configures whether cluster will send a user agent during web socket handshakes- Parameters:
enableUserAgentOnConnect
- true enables the useragent. false disables the useragent.
-
create
public Cluster create()
-
-