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); } } }