2323import com .arangodb .arch .UnstableApi ;
2424import com .arangodb .config .ArangoConfigProperties ;
2525import com .arangodb .config .HostDescription ;
26+ import com .arangodb .config .ProtocolConfig ;
2627import com .arangodb .entity .*;
2728import com .arangodb .internal .ArangoDBImpl ;
2829import com .arangodb .internal .ArangoExecutorSync ;
@@ -264,9 +265,9 @@ public interface ArangoDB extends ArangoSerdeAccessor {
264265 *
265266 * @param user The name of the user
266267 * @param permissions The permissions the user grant
267- * @since ArangoDB 3.2.0
268268 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/users/#set-a-users-database-access-level">API
269269 * Documentation</a>
270+ * @since ArangoDB 3.2.0
270271 */
271272 void grantDefaultDatabaseAccess (String user , Permissions permissions );
272273
@@ -276,9 +277,9 @@ public interface ArangoDB extends ArangoSerdeAccessor {
276277 *
277278 * @param user The name of the user
278279 * @param permissions The permissions the user grant
279- * @since ArangoDB 3.2.0
280280 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/users/#set-a-users-collection-access-level">API
281281 * Documentation</a>
282+ * @since ArangoDB 3.2.0
282283 */
283284 void grantDefaultCollectionAccess (String user , Permissions permissions );
284285
@@ -313,19 +314,19 @@ public interface ArangoDB extends ArangoSerdeAccessor {
313314 * Returns the server's current loglevel settings.
314315 *
315316 * @return the server's current loglevel settings
316- * @since ArangoDB 3.1.0
317317 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/monitoring/logs/#get-the-server-log-levels">API
318318 * Documentation</a>
319+ * @since ArangoDB 3.1.0
319320 */
320321 LogLevelEntity getLogLevel ();
321322
322323 /**
323324 * Returns the server's current loglevel settings.
324325 *
325326 * @return the server's current loglevel settings
326- * @since ArangoDB 3.10
327327 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/monitoring/logs/#get-the-server-log-levels">API
328328 * Documentation</a>
329+ * @since ArangoDB 3.10
329330 */
330331 LogLevelEntity getLogLevel (LogLevelOptions options );
331332
@@ -334,9 +335,9 @@ public interface ArangoDB extends ArangoSerdeAccessor {
334335 *
335336 * @param entity loglevel settings
336337 * @return the server's current loglevel settings
337- * @since ArangoDB 3.1.0
338338 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/monitoring/logs/#set-the-server-log-levels">API
339339 * Documentation</a>
340+ * @since ArangoDB 3.1.0
340341 */
341342 LogLevelEntity setLogLevel (LogLevelEntity entity );
342343
@@ -345,17 +346,17 @@ public interface ArangoDB extends ArangoSerdeAccessor {
345346 *
346347 * @param entity loglevel settings
347348 * @return the server's current loglevel settings
348- * @since ArangoDB 3.10
349349 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/monitoring/logs/#set-the-server-log-levels">API
350350 * Documentation</a>
351+ * @since ArangoDB 3.10
351352 */
352353 LogLevelEntity setLogLevel (LogLevelEntity entity , LogLevelOptions options );
353354
354355 /**
355356 * @return the list of available rules and their respective flags
356- * @since ArangoDB 3.10
357357 * @see <a href="https://docs.arangodb.com/stable/develop/http-api/queries/aql-queries/#list-all-aql-optimizer-rules">API
358358 * Documentation</a>
359+ * @since ArangoDB 3.10
359360 */
360361 Collection <QueryOptimizerRule > getQueryOptimizerRules ();
361362
@@ -381,7 +382,7 @@ public ArangoDB build() {
381382 ProtocolProvider protocolProvider = protocolProvider (config .getProtocol ());
382383 config .setProtocolModule (protocolProvider .protocolModule ());
383384
384- ConnectionFactory connectionFactory = protocolProvider .createConnectionFactory ();
385+ ConnectionFactory connectionFactory = protocolProvider .createConnectionFactory (config . getProtocolConfig () );
385386 Collection <Host > hostList = createHostList (connectionFactory );
386387 HostResolver hostResolver = createHostResolver (hostList , connectionFactory );
387388 HostHandler hostHandler = createHostHandler (hostResolver );
@@ -680,6 +681,15 @@ public Builder compressionLevel(Integer level) {
680681 return this ;
681682 }
682683
684+ /**
685+ * Configuration specific for {@link com.arangodb.internal.net.ProtocolProvider}.
686+ * @return {@link ArangoDB.Builder}
687+ */
688+ public Builder protocolConfig (ProtocolConfig protocolConfig ) {
689+ config .setProtocolConfig (protocolConfig );
690+ return this ;
691+ }
692+
683693 @ UnstableApi
684694 protected ProtocolProvider protocolProvider (Protocol protocol ) {
685695 ServiceLoader <ProtocolProvider > loader = ServiceLoader .load (ProtocolProvider .class );
0 commit comments