sarankk commented on code in PR #189:
URL: https://github.com/apache/cassandra-sidecar/pull/189#discussion_r1970559279


##########
conf/sidecar.yaml:
##########
@@ -236,6 +236,57 @@ healthcheck:
   initial_delay: 0ms
   execute_interval: 30s
 
+# Sidecar Peer Health Monitor settings
+# Enables a periodic task checking for the health of adjacent Sidecar peers in 
the token ring
+sidecar_peer_health:
+  # Determines if the peer health monitor periodic task is enabled or not
+  enabled: false
+  # Time between peer health checks
+  execute_interval: 30s
+  # The amount of retries the client will attempt a request
+  sidecar_client_health_check_retries: 5
+  # The initial delay between the retries the client will attempt a request
+  sidecar_client_health_check_retry_delay: 10s
+
+# Sidecar client settings used to interact with other sidecars
+sidecar_client:
+  # Determines if the sidecar client should use and SSL connection
+  use_ssl: true

Review Comment:
   We should disable `ssl` by default for client, since sidecar's ssl config is 
disabled by default. Instead of `use_ssl` can be add enable flag under `ssl:` ?



##########
server/src/main/java/org/apache/cassandra/sidecar/config/SidecarClientConfiguration.java:
##########
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config;
+
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+
+/**
+ * Configuration for sidecar client
+ */
+public interface SidecarClientConfiguration
+{
+    /**
+     * @return {@code true} if SSL should be used for Sidecar client 
connections
+     */
+    boolean useSsl();

Review Comment:
   `useSsl` should go under `SslConfiguration` 



##########
conf/sidecar.yaml:
##########
@@ -236,6 +236,57 @@ healthcheck:
   initial_delay: 0ms
   execute_interval: 30s
 
+# Sidecar Peer Health Monitor settings
+# Enables a periodic task checking for the health of adjacent Sidecar peers in 
the token ring
+sidecar_peer_health:
+  # Determines if the peer health monitor periodic task is enabled or not
+  enabled: false
+  # Time between peer health checks
+  execute_interval: 30s
+  # The amount of retries the client will attempt a request
+  sidecar_client_health_check_retries: 5
+  # The initial delay between the retries the client will attempt a request
+  sidecar_client_health_check_retry_delay: 10s
+
+# Sidecar client settings used to interact with other sidecars
+sidecar_client:
+  # Determines if the sidecar client should use and SSL connection
+  use_ssl: true
+  # Time in which a request made by the sidecar client will time out
+  request_timeout: 1s
+  # How long the request can be idle

Review Comment:
   Nit: to avoid extra lines, can we add comments on same line as setting ?, 
for e.g. here 
   
   ```
   schema_reporting:                            # Schema Reporting configuration
     enabled:          false                    # Disabled by default
     initial_delay:    6h                       # Maximum delay before the 
first schema report (actual delay is randomized)
   ```



##########
server/src/main/java/org/apache/cassandra/sidecar/config/yaml/PeerHealthConfigurationImpl.java:
##########
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config.yaml;
+
+import java.util.concurrent.TimeUnit;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+import org.apache.cassandra.sidecar.config.PeerHealthConfiguration;
+
+
+/**
+ * Configuration for Peer Health checks
+ */
+public class PeerHealthConfigurationImpl extends PeriodicTaskConfigurationImpl 
implements PeerHealthConfiguration
+{
+    public static final boolean DEFAULT_ENABLED = true;

Review Comment:
   In `sidecar.conf` enabled is set to `false` by default. Here it is still 
true.



##########
conf/sidecar.yaml:
##########
@@ -236,6 +236,57 @@ healthcheck:
   initial_delay: 0ms
   execute_interval: 30s
 
+# Sidecar Peer Health Monitor settings
+# Enables a periodic task checking for the health of adjacent Sidecar peers in 
the token ring
+sidecar_peer_health:

Review Comment:
   Nit: since `sidecar_peer_health` has only 4 settings, shall we move it under 
`sidecar:` section and remove `sidecar` prefix?. We also seem to have 
`PeerHealthConfiguration` class



##########
server/src/main/java/org/apache/cassandra/sidecar/config/yaml/PeerHealthConfigurationImpl.java:
##########
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config.yaml;
+
+import java.util.concurrent.TimeUnit;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+import org.apache.cassandra.sidecar.config.PeerHealthConfiguration;
+
+
+/**
+ * Configuration for Peer Health checks
+ */
+public class PeerHealthConfigurationImpl extends PeriodicTaskConfigurationImpl 
implements PeerHealthConfiguration
+{
+    public static final boolean DEFAULT_ENABLED = true;
+    public static final MillisecondBoundConfiguration DEFAULT_FREQUENCY = new 
MillisecondBoundConfiguration(30, TimeUnit.SECONDS);
+    public static final int DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRIES = 5;
+    public static final MillisecondBoundConfiguration 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRY_DELAY
+    = new MillisecondBoundConfiguration(10, TimeUnit.SECONDS);
+
+    @JsonProperty(value = "sidecar_client_health_check_retries")
+    private final int sidecarClientHealthCheckRetries;
+    @JsonProperty(value = "sidecar_client_health_check_retry_delay")
+    private final MillisecondBoundConfiguration 
sidecarClientHealthCheckRetryDelay;
+
+    /**
+     * Constructs a new {@link PeerHealthConfigurationImpl} instance with the 
default configuration
+     * values.
+     */
+    public PeerHealthConfigurationImpl()
+    {
+        super(DEFAULT_ENABLED, DEFAULT_FREQUENCY, DEFAULT_FREQUENCY);
+        this.sidecarClientHealthCheckRetries = 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRIES;
+        this.sidecarClientHealthCheckRetryDelay = 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRY_DELAY;
+    }
+
+    public PeerHealthConfigurationImpl(boolean enabled,
+                                       MillisecondBoundConfiguration frequency,
+                                       int sidecarClientHealthCheckRetries,
+                                       MillisecondBoundConfiguration 
sidecarClientHealthCheckRetryDelay)
+    {
+        super(enabled, frequency, frequency);
+        this.sidecarClientHealthCheckRetries = sidecarClientHealthCheckRetries;
+        this.sidecarClientHealthCheckRetryDelay = 
sidecarClientHealthCheckRetryDelay;
+    }
+
+    /**
+     * @return the number of maximum retries to be performed during a Sidecar 
peer health check
+     */
+    @Override
+    @JsonProperty(value = "sidecar_client_health_check_retries")

Review Comment:
   Nit: are we creating Json from `PeerHealthConfiguration` object? if not we 
dont need these `@JsonProperty` tags 



##########
server/src/main/java/org/apache/cassandra/sidecar/config/yaml/PeerHealthConfigurationImpl.java:
##########
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config.yaml;
+
+import java.util.concurrent.TimeUnit;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+import org.apache.cassandra.sidecar.config.PeerHealthConfiguration;
+
+
+/**
+ * Configuration for Peer Health checks
+ */
+public class PeerHealthConfigurationImpl extends PeriodicTaskConfigurationImpl 
implements PeerHealthConfiguration
+{
+    public static final boolean DEFAULT_ENABLED = true;
+    public static final MillisecondBoundConfiguration DEFAULT_FREQUENCY = new 
MillisecondBoundConfiguration(30, TimeUnit.SECONDS);
+    public static final int DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRIES = 5;
+    public static final MillisecondBoundConfiguration 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRY_DELAY
+    = new MillisecondBoundConfiguration(10, TimeUnit.SECONDS);
+
+    @JsonProperty(value = "sidecar_client_health_check_retries")
+    private final int sidecarClientHealthCheckRetries;
+    @JsonProperty(value = "sidecar_client_health_check_retry_delay")
+    private final MillisecondBoundConfiguration 
sidecarClientHealthCheckRetryDelay;
+
+    /**
+     * Constructs a new {@link PeerHealthConfigurationImpl} instance with the 
default configuration
+     * values.
+     */
+    public PeerHealthConfigurationImpl()
+    {
+        super(DEFAULT_ENABLED, DEFAULT_FREQUENCY, DEFAULT_FREQUENCY);
+        this.sidecarClientHealthCheckRetries = 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRIES;
+        this.sidecarClientHealthCheckRetryDelay = 
DEFAULT_SIDECAR_CLIENT_HEALTH_CHECK_RETRY_DELAY;
+    }
+
+    public PeerHealthConfigurationImpl(boolean enabled,
+                                       MillisecondBoundConfiguration frequency,
+                                       int sidecarClientHealthCheckRetries,
+                                       MillisecondBoundConfiguration 
sidecarClientHealthCheckRetryDelay)
+    {
+        super(enabled, frequency, frequency);
+        this.sidecarClientHealthCheckRetries = sidecarClientHealthCheckRetries;
+        this.sidecarClientHealthCheckRetryDelay = 
sidecarClientHealthCheckRetryDelay;
+    }
+
+    /**
+     * @return the number of maximum retries to be performed during a Sidecar 
peer health check

Review Comment:
   can we use ` {@inheritDoc}` to use same doc as the interface? 



##########
client/src/main/java/org/apache/cassandra/sidecar/client/SidecarClient.java:
##########
@@ -113,6 +115,22 @@ public CompletableFuture<HealthResponse> sidecarHealth()
                                             .build());
     }
 
+    /**
+     * Executes the Sidecar health request using the configured selection 
policy and with no retries
+     *
+     * @return a completable future of the Sidecar health response
+     */
+    public CompletableFuture<HealthResponse> peerHealth(SidecarInstance 
instance)
+    {
+        return executor.executeRequestAsync(requestBuilder()
+                                                .singleInstanceSelectionPolicy(
+                                                new 
SidecarInstanceImpl(instance.hostname(),

Review Comment:
   Why not share `instance` here instead of creating a new one? 



##########
conf/sidecar.yaml:
##########
@@ -236,6 +236,57 @@ healthcheck:
   initial_delay: 0ms
   execute_interval: 30s
 
+# Sidecar Peer Health Monitor settings
+# Enables a periodic task checking for the health of adjacent Sidecar peers in 
the token ring
+sidecar_peer_health:
+  # Determines if the peer health monitor periodic task is enabled or not
+  enabled: false
+  # Time between peer health checks
+  execute_interval: 30s
+  # The amount of retries the client will attempt a request
+  sidecar_client_health_check_retries: 5
+  # The initial delay between the retries the client will attempt a request

Review Comment:
   Nit: shall we add comments on same line as setting?



##########
server/src/main/java/org/apache/cassandra/sidecar/config/yaml/SidecarConfigurationImpl.java:
##########
@@ -437,6 +465,17 @@ public Builder sslConfiguration(SslConfiguration 
sslConfiguration)
             return update(b -> b.sslConfiguration = sslConfiguration);
         }
 
+        /**
+         * Sets the {@code downDetectorConfiguration} and returns a reference 
to this Builder enabling method chaining.
+         *
+         * @param peerHealthConfiguration the {@code 
downDetectorConfiguration} to set
+         * @return a reference to this Builder
+         */
+        public Builder downDetectorConfiguration(PeerHealthConfiguration 
peerHealthConfiguration)

Review Comment:
   This method seems to have been added by mistake. 



##########
server/src/main/java/org/apache/cassandra/sidecar/config/SidecarClientConfiguration.java:
##########
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config;
+
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+
+/**
+ * Configuration for sidecar client
+ */
+public interface SidecarClientConfiguration
+{
+    /**
+     * @return {@code true} if SSL should be used for Sidecar client 
connections
+     */
+    boolean useSsl();
+
+    /**
+     * @return The configuration for SSL connections on the client.
+     */
+    SslConfiguration sslConfiguration();
+
+    /**
+     * @return the client request timeout value for the connection to be 
established
+     */
+    MillisecondBoundConfiguration requestTimeout();
+
+    /**
+     * @return the client idle timeout before the connection is considered as 
stale
+     */
+    MillisecondBoundConfiguration requestIdleTimeout();
+
+    // Pooling options
+
+    /**
+     * @return the maximum size of the pool for client connections
+     */
+    int connectionPoolMaxSize();
+
+    /**
+     * @return the connection pool cleaner period, a non-positive value 
disables expiration checks and connections
+     * will remain in the pool until they are closed.
+     */
+    MillisecondBoundConfiguration connectionPoolCleanerPeriod();
+
+    /**
+     * Return the configured number of event-loop the pool use.
+     *
+     * <ul>
+     *   <li>when the size is {@code 0}, the client pool will use the current 
event-loop</li>
+     *   <li>otherwise the client will create and use its own event loop</li>
+     * </ul>
+     *
+     * @return the configured number of event-loop the pool use
+     */
+    int connectionPoolEventLoopSize();

Review Comment:
   I think this setting allows the client to create its own event loop, should 
we avoid this, client can use server's current event loop to allow for sharing 
of resources between server and client? 



##########
server/src/main/java/org/apache/cassandra/sidecar/config/yaml/SidecarClientConfigurationImpl.java:
##########
@@ -0,0 +1,216 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.sidecar.config.yaml;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import 
org.apache.cassandra.sidecar.common.server.utils.MillisecondBoundConfiguration;
+import org.apache.cassandra.sidecar.config.SidecarClientConfiguration;
+import org.apache.cassandra.sidecar.config.SslConfiguration;
+
+
+/**
+ * Configuration for Sidecar client
+ */
+public class SidecarClientConfigurationImpl implements 
SidecarClientConfiguration
+{
+    public static final String USE_SSL = "use_ssl";
+    public static final String SSL_CONFIGURATION = "ssl";
+    public static final String REQUEST_TIMEOUT = "request_timeout";
+    public static final String REQUEST_IDLE_TIMEOUT = "request_idle_timeout";
+    public static final String CONNECTION_POOL_MAX_SIZE = 
"connection_pool_max_size";
+    public static final String CONNECTION_POOL_CLEANER_PERIOD = 
"connection_pool_clearing_period";
+    public static final String CONNECTION_POOL_EVENT_LOOP_SIZE = 
"connection_pool_event_loop_size";
+    public static final String CONNECTION_POOL_MAX_WAIT_QUEUE_SIZE = 
"connection_pool_max_wait_queue_size";
+    public static final String MAX_RETRIES = "max_retries";
+    public static final String RETRY_DELAY = "retry_delay";
+    public static final String MAX_RETRY_DELAY = "max_retry_delay";
+
+    public static final boolean DEFAULT_USE_SSL = false;
+    public static final SslConfiguration DEFAULT_SSL_CONFIGURATION = null;
+    public static final MillisecondBoundConfiguration DEFAULT_REQUEST_TIMEOUT 
= MillisecondBoundConfiguration.parse("60s");
+    public static final MillisecondBoundConfiguration 
DEFAULT_REQUEST_IDLE_TIMEOUT = MillisecondBoundConfiguration.parse("60s");
+    public static final int DEFAULT_CONNECTION_POOL_MAX_SIZE = 10;
+    public static final MillisecondBoundConfiguration 
DEFAULT_CONNECTION_POOL_CLEANER_PERIOD = 
MillisecondBoundConfiguration.parse("60s");
+    public static final int DEFAULT_CONNECTION_POOL_EVENT_LOOP_SIZE = 10;
+    public static final int DEFAULT_CONNECTION_POOL_MAX_WAIT_QUEUE_SIZE = 10;
+    public static final int DEFAULT_MAX_RETRIES = 3;
+    public static final MillisecondBoundConfiguration DEFAULT_RETRY_DELAY = 
MillisecondBoundConfiguration.parse("1s");
+    public static final MillisecondBoundConfiguration DEFAULT_MAX_RETRY_DELAY 
= MillisecondBoundConfiguration.parse("10s");
+
+
+    @JsonProperty(value = USE_SSL)
+    protected final boolean useSsl;
+
+    @JsonProperty(value = SSL_CONFIGURATION)
+    protected final SslConfiguration sslConfiguration;
+
+    @JsonProperty(value = REQUEST_TIMEOUT)
+    protected final MillisecondBoundConfiguration requestTimeout;
+
+    @JsonProperty(value = REQUEST_IDLE_TIMEOUT)
+    protected final MillisecondBoundConfiguration requestIdleTimeout;
+
+    @JsonProperty(value = CONNECTION_POOL_MAX_SIZE)
+    protected final int connectionPoolMaxSize;
+
+    @JsonProperty(value = CONNECTION_POOL_CLEANER_PERIOD)
+    protected final MillisecondBoundConfiguration connectionPoolCleanerPeriod;
+
+    @JsonProperty(value = CONNECTION_POOL_EVENT_LOOP_SIZE)
+    protected final int connectionPoolEventLoopSize;
+
+    @JsonProperty(value = CONNECTION_POOL_MAX_WAIT_QUEUE_SIZE)
+    protected final int connectionPoolEventMaxWaitQueueSize;
+
+    @JsonProperty(value = MAX_RETRIES)
+    protected final int maxRetries;
+
+    @JsonProperty(value = RETRY_DELAY)
+    protected final MillisecondBoundConfiguration retryDelay;
+
+    @JsonProperty(value = MAX_RETRY_DELAY)
+    protected final MillisecondBoundConfiguration maxRetryDelay;
+
+    public SidecarClientConfigurationImpl()
+    {
+
+        this(DEFAULT_USE_SSL,
+             DEFAULT_SSL_CONFIGURATION,
+             DEFAULT_REQUEST_TIMEOUT,
+             DEFAULT_REQUEST_IDLE_TIMEOUT,
+             DEFAULT_CONNECTION_POOL_MAX_SIZE,
+             DEFAULT_CONNECTION_POOL_CLEANER_PERIOD,
+             DEFAULT_CONNECTION_POOL_EVENT_LOOP_SIZE,
+             DEFAULT_CONNECTION_POOL_MAX_WAIT_QUEUE_SIZE,
+             DEFAULT_MAX_RETRIES,
+             DEFAULT_RETRY_DELAY,
+             DEFAULT_MAX_RETRY_DELAY
+        );
+    }
+
+    public SidecarClientConfigurationImpl(SslConfiguration sslConfiguration)
+    {
+
+        this(DEFAULT_USE_SSL,
+             sslConfiguration,
+             DEFAULT_REQUEST_TIMEOUT,
+             DEFAULT_REQUEST_IDLE_TIMEOUT,
+             DEFAULT_CONNECTION_POOL_MAX_SIZE,
+             DEFAULT_CONNECTION_POOL_CLEANER_PERIOD,
+             DEFAULT_CONNECTION_POOL_EVENT_LOOP_SIZE,
+             DEFAULT_CONNECTION_POOL_MAX_WAIT_QUEUE_SIZE,
+             DEFAULT_MAX_RETRIES,
+             DEFAULT_RETRY_DELAY,
+             DEFAULT_MAX_RETRY_DELAY
+        );
+    }
+
+    public SidecarClientConfigurationImpl(boolean useSsl,
+                                          SslConfiguration sslConfiguration,
+                                          MillisecondBoundConfiguration 
requestTimeout,
+                                          MillisecondBoundConfiguration 
requestIdleTimeout,
+                                          int connectionPoolMaxSize,
+                                          MillisecondBoundConfiguration 
connectionPoolCleanerPeriod,
+                                          int connectionPoolEventLoopSize,
+                                          int 
connectionPoolEventMaxWaitQueueSize,
+                                          int maxRetries,
+                                          MillisecondBoundConfiguration 
retryDelay,
+                                          MillisecondBoundConfiguration 
maxRetryDelay)
+    {
+        this.useSsl = useSsl;
+        this.sslConfiguration = sslConfiguration;
+        this.requestTimeout = requestTimeout;
+        this.requestIdleTimeout = requestIdleTimeout;
+        this.connectionPoolMaxSize = connectionPoolMaxSize;
+        this.connectionPoolCleanerPeriod = connectionPoolCleanerPeriod;
+        this.connectionPoolEventLoopSize = connectionPoolEventLoopSize;
+        this.connectionPoolEventMaxWaitQueueSize = 
connectionPoolEventMaxWaitQueueSize;
+        this.maxRetries = maxRetries;
+        this.retryDelay = retryDelay;
+        this.maxRetryDelay = maxRetryDelay;
+    }
+
+    @Override
+    public boolean useSsl()
+    {
+        return useSsl;
+    }
+
+    @Override
+    public SslConfiguration sslConfiguration()
+    {
+        return sslConfiguration;
+    }
+
+    @Override
+    public MillisecondBoundConfiguration requestTimeout()
+    {
+        return requestTimeout;
+    }
+
+    @Override
+    public MillisecondBoundConfiguration requestIdleTimeout()
+    {
+        return requestIdleTimeout;
+    }
+
+    @Override
+    public int connectionPoolMaxSize()
+    {
+        return connectionPoolMaxSize;
+    }
+
+    @Override
+    public MillisecondBoundConfiguration connectionPoolCleanerPeriod()
+    {
+        return connectionPoolCleanerPeriod;
+    }
+
+    @Override
+    public int connectionPoolEventLoopSize()
+    {
+        return connectionPoolEventLoopSize;
+    }
+
+    @Override
+    public int connectionPoolMaxWaitQueueSize()
+    {
+        return connectionPoolEventMaxWaitQueueSize;
+    }
+
+    @Override
+    public int maxRetries()
+    {
+        return maxRetries;
+    }
+
+    @Override
+    public MillisecondBoundConfiguration retryDelay()
+    {
+        return retryDelay;
+    }
+
+    @Override
+    public MillisecondBoundConfiguration maxRetryDelay()
+    {
+        return maxRetryDelay;
+    }
+

Review Comment:
   Nit: extra line



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to