This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new e7cac796d20 SOLR-10463: setRetryExpiryTime should be deprecated in 
favor of Solr Client Builder methods (#1220)
e7cac796d20 is described below

commit e7cac796d20727595527d68630dd04ddd15722d2
Author: Eric Pugh <[email protected]>
AuthorDate: Thu Dec 22 12:01:26 2022 -0500

    SOLR-10463: setRetryExpiryTime should be deprecated in favor of Solr Client 
Builder methods (#1220)
    
    Deprecated original method on clients, and added to builders.
---
 solr/CHANGES.txt                                             |  3 +++
 .../apache/solr/client/solrj/impl/CloudHttp2SolrClient.java  | 12 ++++++++++++
 .../apache/solr/client/solrj/impl/CloudLegacySolrClient.java |  4 ++++
 .../org/apache/solr/client/solrj/impl/CloudSolrClient.java   |  5 ++++-
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index cd3fa37bddb..709c6dba3d5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -90,6 +90,9 @@ Improvements
 
 * SOLR-16438: Support optional split.setPreferredLeaders prop in shard split 
command. (Bruno Roustant)
 
+* SOLR-10463: Introduce Builder setter for retryExpiryTime on cloud 
SolrClients.  Deprecated 
+  direct setter setRetryExpiryTime on cloud SolrClients. (Eric Pugh)
+
 Optimizations
 ---------------------
 
diff --git 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
index 49200f4ce2f..4692eede98c 100644
--- 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
+++ 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import org.apache.solr.client.solrj.ResponseParser;
 import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -64,6 +65,7 @@ public class CloudHttp2SolrClient extends CloudSolrClient {
       this.clientIsInternal = false;
       this.myClient = builder.httpClient;
     }
+    this.retryExpiryTime = builder.retryExpiryTime;
     if (builder.requestWriter != null) {
       this.myClient.requestWriter = builder.requestWriter;
     }
@@ -143,6 +145,8 @@ public class CloudHttp2SolrClient extends CloudSolrClient {
     protected Http2SolrClient.Builder internalClientBuilder;
     private RequestWriter requestWriter;
     private ResponseParser responseParser;
+    private long retryExpiryTime =
+        TimeUnit.NANOSECONDS.convert(3, TimeUnit.SECONDS); // 3 seconds or 3 
million nanos
 
     /**
      * Provide a series of Solr URLs to be used when configuring {@link 
CloudHttp2SolrClient}
@@ -245,6 +249,14 @@ public class CloudHttp2SolrClient extends CloudSolrClient {
       return this;
     }
 
+    /**
+     * This is the time to wait to refetch the state after getting the same 
state version from ZK
+     */
+    public Builder setRetryExpiryTime(int secs) {
+      this.retryExpiryTime = TimeUnit.NANOSECONDS.convert(secs, 
TimeUnit.SECONDS);
+      return this;
+    }
+
     public Builder withHttpClient(Http2SolrClient httpClient) {
       if (this.internalClientBuilder != null) {
         throw new IllegalStateException(
diff --git 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
index 58da3d71d3f..1bdd0636e77 100644
--- 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
+++ 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import org.apache.http.NoHttpResponseException;
 import org.apache.http.client.HttpClient;
 import org.apache.http.conn.ConnectTimeoutException;
@@ -85,6 +86,7 @@ public class CloudLegacySolrClient extends CloudSolrClient {
     } else {
       this.stateProvider = builder.stateProvider;
     }
+    this.retryExpiryTime = builder.retryExpiryTime;
     this.clientIsInternal = builder.httpClient == null;
     this.shutdownLBHttpSolrServer = builder.loadBalancedSolrClient == null;
     if (builder.lbClientBuilder != null) {
@@ -194,6 +196,8 @@ public class CloudLegacySolrClient extends CloudSolrClient {
     protected boolean shardLeadersOnly = true;
     protected boolean directUpdatesToLeadersOnly = false;
     protected boolean parallelUpdates = true;
+    protected long retryExpiryTime =
+        TimeUnit.NANOSECONDS.convert(3, TimeUnit.SECONDS); // 3 seconds or 3 
million nanos
     protected ClusterStateProvider stateProvider;
 
     /** Constructor for use by subclasses. This constructor was public prior 
to version 9.0 */
diff --git 
a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java 
b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
index b435ef72233..ea997a62158 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
@@ -105,7 +105,7 @@ public abstract class CloudSolrClient extends SolrClient {
           new SolrNamedThreadFactory("CloudSolrClient ThreadPool"));
 
   public static final String STATE_VERSION = "_stateVer_";
-  private long retryExpiryTime =
+  protected long retryExpiryTime =
       TimeUnit.NANOSECONDS.convert(3, TimeUnit.SECONDS); // 3 seconds or 3 
million nanos
   private final Set<String> NON_ROUTABLE_PARAMS;
 
@@ -231,7 +231,10 @@ public abstract class CloudSolrClient extends SolrClient {
    * This is the time to wait to refetch the state after getting the same 
state version from ZK
    *
    * <p>secs
+   *
+   * @deprecated use {@link CloudSolrClient.Builder#setRetryExpiryTime(int)} 
instead
    */
+  @Deprecated
   public void setRetryExpiryTime(int secs) {
     this.retryExpiryTime = TimeUnit.NANOSECONDS.convert(secs, 
TimeUnit.SECONDS);
   }

Reply via email to