You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/12/08 16:00:58 UTC

lucene-solr:jira/http2: Restore missing method of TrackingShardHandlerFactory

Repository: lucene-solr
Updated Branches:
  refs/heads/jira/http2 9f765aaf8 -> 809ecafa2


Restore missing method of TrackingShardHandlerFactory


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/809ecafa
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/809ecafa
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/809ecafa

Branch: refs/heads/jira/http2
Commit: 809ecafa2958f5285fe4d56e27937b592bd2b37b
Parents: 9f765aa
Author: Cao Manh Dat <da...@apache.org>
Authored: Sat Dec 8 16:00:44 2018 +0000
Committer: Cao Manh Dat <da...@apache.org>
Committed: Sat Dec 8 16:00:44 2018 +0000

----------------------------------------------------------------------
 .../component/TrackingShardHandlerFactory.java  | 46 +++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/809ecafa/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java
----------------------------------------------------------------------
diff --git a/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java b/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java
index 002e408..1649aa5 100644
--- a/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java
+++ b/solr/test-framework/src/java/org/apache/solr/handler/component/TrackingShardHandlerFactory.java
@@ -24,7 +24,9 @@ import java.util.Map;
 import java.util.Queue;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.http.client.HttpClient;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
 import org.apache.solr.cloud.MiniSolrCloudCluster;
 import org.apache.solr.common.cloud.DocCollection;
 import org.apache.solr.common.cloud.Replica;
@@ -84,7 +86,49 @@ public class TrackingShardHandlerFactory extends HttpShardHandlerFactory {
   public ShardHandler getShardHandler() {
     return super.getShardHandler();
   }
-  
+
+  @Override
+  public ShardHandler getShardHandler(Http2SolrClient client) {
+    final ShardHandlerFactory factory = this;
+    final ShardHandler wrapped = super.getShardHandler(client);
+    return new HttpShardHandler(this, client) {
+      @Override
+      public void prepDistributed(ResponseBuilder rb) {
+        wrapped.prepDistributed(rb);
+      }
+
+      @Override
+      public void submit(ShardRequest sreq, String shard, ModifiableSolrParams params) {
+        synchronized (TrackingShardHandlerFactory.this) {
+          if (isTracking()) {
+            queue.offer(new ShardRequestAndParams(sreq, shard, params));
+          }
+        }
+        wrapped.submit(sreq, shard, params);
+      }
+
+      @Override
+      public ShardResponse takeCompletedIncludingErrors() {
+        return wrapped.takeCompletedIncludingErrors();
+      }
+
+      @Override
+      public ShardResponse takeCompletedOrError() {
+        return wrapped.takeCompletedOrError();
+      }
+
+      @Override
+      public void cancelAll() {
+        wrapped.cancelAll();
+      }
+
+      @Override
+      public ShardHandlerFactory getShardHandlerFactory() {
+        return factory;
+      }
+    };
+  }
+
   @Override
   public void close() {
     super.close();