From e049e59e27643c28899bc0bc372efdb6c310a40e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B9=20=D0=91=D0=B5?= =?UTF-8?q?=D0=BB=D0=BE=D0=BD=D0=BE=D0=B3=D0=BE=D0=B2?= Date: Thu, 29 Oct 2026 13:02:49 +0300 Subject: [PATCH] feat(pool): add AvailabilityPolicy into InstanceConnectionGroup class --- .../pool/InstanceConnectionGroup.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/tarantool-pooling/src/main/java/io/tarantool/pool/InstanceConnectionGroup.java b/tarantool-pooling/src/main/java/io/tarantool/pool/InstanceConnectionGroup.java index bb4aa825..e89676d7 100644 --- a/tarantool-pooling/src/main/java/io/tarantool/pool/InstanceConnectionGroup.java +++ b/tarantool-pooling/src/main/java/io/tarantool/pool/InstanceConnectionGroup.java @@ -11,6 +11,7 @@ import static io.tarantool.core.protocol.requests.IProtoAuth.DEFAULT_AUTH_TYPE; import io.tarantool.core.protocol.requests.IProtoAuth.AuthType; +import io.tarantool.pool.availability.AvailabilityPolicy; /** * Class that implements a group of connections to a host. @@ -84,6 +85,11 @@ public final class InstanceConnectionGroup { /** Default netty flush handler. */ private final FlushConsolidationHandler flushConsolidationHandler; + /** + * @see AvailabilityPolicy + */ + private final AvailabilityPolicy availabilityPolicy; + /** * Tag of group. * @@ -113,7 +119,8 @@ private InstanceConnectionGroup( String user, String password, AuthType authType, - FlushConsolidationHandler flushConsolidationHandler) + FlushConsolidationHandler flushConsolidationHandler, + AvailabilityPolicy availabilityPolicy) throws IllegalArgumentException { if (user != null && user.equals("guest")) { user = null; @@ -130,6 +137,7 @@ private InstanceConnectionGroup( this.tag = tag; this.address = new InetSocketAddress(host, port); this.flushConsolidationHandler = flushConsolidationHandler; + this.availabilityPolicy = availabilityPolicy; } /** @@ -235,6 +243,10 @@ public FlushConsolidationHandler getFlushConsolidationHandler() { return flushConsolidationHandler; } + public AvailabilityPolicy getAvailabilityPolicy() { + return availabilityPolicy; + } + /** Builder of {@link InstanceConnectionGroup} class. */ public static class Builder { @@ -276,6 +288,11 @@ public static class Builder { /** Default netty flush handler. */ private FlushConsolidationHandler flushConsolidationHandler; + /** + * @see AvailabilityPolicy + */ + private AvailabilityPolicy availabilityPolicy; + /** Constructor of {@link Builder}. */ private Builder() {} @@ -440,6 +457,14 @@ public Builder withFlushConsolidationHandler( return this; } + /** + * @see AvailabilityPolicy + */ + public Builder withAvailabilityPolicy(AvailabilityPolicy policy) { + this.availabilityPolicy = policy; + return this; + } + /** * Builds {@link InstanceConnectionGroup} object. * @@ -455,7 +480,8 @@ public InstanceConnectionGroup build() { this.user, this.password, this.authType, - this.flushConsolidationHandler); + this.flushConsolidationHandler, + this.availabilityPolicy); } } }