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

dsmiley 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 7f7683da197 Remove deprecated SimpleMap and related classes (#3490)
7f7683da197 is described below

commit 7f7683da197606bc623744b2ad302ee852a94c3c
Author: David Smiley <[email protected]>
AuthorDate: Thu Aug 28 18:02:54 2025 -0400

    Remove deprecated SimpleMap and related classes (#3490)
    
    NamedList no longer implements SimpleMap.
    Removed deprecated classes, namely SimpleMap, LazySolrCluster, and 
everything in org.apache.solr.cluster.api
    ---------
    
    Co-authored-by: google-labs-jules[bot] 
<161369871+google-labs-jules[bot]@users.noreply.github.com>
    Co-authored-by: Christine Poerschke <[email protected]>
---
 .../org/apache/solr/cloud/TestLazySolrCluster.java | 104 -----
 .../org/apache/solr/common/LazySolrCluster.java    | 466 ---------------------
 .../java/org/apache/solr/common/SimpleZkMap.java   | 137 ------
 .../java/org/apache/solr/cluster/api/ApiType.java  |  30 --
 .../apache/solr/cluster/api/CollectionConfig.java  |  26 --
 .../org/apache/solr/cluster/api/HashRange.java     |  39 --
 .../java/org/apache/solr/cluster/api/Resource.java |  42 --
 .../java/org/apache/solr/cluster/api/Router.java   |  26 --
 .../java/org/apache/solr/cluster/api/Shard.java    |  38 --
 .../org/apache/solr/cluster/api/ShardReplica.java  |  58 ---
 .../org/apache/solr/cluster/api/SimpleMap.java     | 110 -----
 .../org/apache/solr/cluster/api/SolrCluster.java   |  46 --
 .../apache/solr/cluster/api/SolrCollection.java    |  34 --
 .../java/org/apache/solr/cluster/api/SolrNode.java |  35 --
 .../org/apache/solr/cluster/api/package-info.java  |  20 -
 .../org/apache/solr/common/util/NamedList.java     |  42 +-
 .../apache/solr/common/util/WrappedSimpleMap.java  |  58 ---
 17 files changed, 1 insertion(+), 1310 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/cloud/TestLazySolrCluster.java 
b/solr/core/src/test/org/apache/solr/cloud/TestLazySolrCluster.java
deleted file mode 100644
index 7d7f7024953..00000000000
--- a/solr/core/src/test/org/apache/solr/cloud/TestLazySolrCluster.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.solr.cloud;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.solr.client.solrj.impl.CloudSolrClient;
-import org.apache.solr.client.solrj.request.CollectionAdminRequest;
-import org.apache.solr.cluster.api.CollectionConfig;
-import org.apache.solr.cluster.api.SimpleMap;
-import org.apache.solr.cluster.api.SolrCollection;
-import org.apache.solr.common.LazySolrCluster;
-import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.zookeeper.CreateMode;
-import org.junit.BeforeClass;
-
-public class TestLazySolrCluster extends SolrCloudTestCase {
-  @BeforeClass
-  public static void setupCluster() throws Exception {
-    configureCluster(5)
-        .addConfig(
-            "conf1", 
TEST_PATH().resolve("configsets").resolve("cloud-minimal").resolve("conf"))
-        .configure();
-  }
-
-  public void test() throws Exception {
-    CloudSolrClient cloudClient = cluster.getSolrClient();
-    String collection = "testLazyCluster1";
-    cloudClient.request(CollectionAdminRequest.createCollection(collection, 
"conf1", 2, 2));
-    cluster.waitForActiveCollection(collection, 2, 4);
-    collection = "testLazyCluster2";
-    cloudClient.request(CollectionAdminRequest.createCollection(collection, 
"conf1", 2, 2));
-    cluster.waitForActiveCollection(collection, 2, 4);
-
-    LazySolrCluster solrCluster = new 
LazySolrCluster(ZkStateReader.from(cloudClient));
-    SimpleMap<SolrCollection> colls = solrCluster.collections();
-
-    SolrCollection c = colls.get("testLazyCluster1");
-    assertNotNull(c);
-    c = colls.get("testLazyCluster2");
-    assertNotNull(c);
-    int[] count = new int[1];
-    solrCluster.collections().forEachEntry((s, solrCollection) -> count[0]++);
-    assertEquals(2, count[0]);
-
-    count[0] = 0;
-
-    assertEquals(2, 
solrCluster.collections().get("testLazyCluster1").shards().size());
-    solrCluster
-        .collections()
-        .get("testLazyCluster1")
-        .shards()
-        .forEachEntry((s, shard) -> shard.replicas().forEachEntry((s1, 
replica) -> count[0]++));
-    assertEquals(4, count[0]);
-
-    assertEquals(5, solrCluster.nodes().size());
-    SolrZkClient zkClient = ZkStateReader.from(cloudClient).getZkClient();
-    zkClient.create(ZkStateReader.CONFIGS_ZKNODE + "/conf1/a", null, 
CreateMode.PERSISTENT, true);
-    zkClient.create(
-        ZkStateReader.CONFIGS_ZKNODE + "/conf1/a/aa1", new byte[1024], 
CreateMode.PERSISTENT, true);
-    zkClient.create(
-        ZkStateReader.CONFIGS_ZKNODE + "/conf1/a/aa2",
-        new byte[1024 * 2],
-        CreateMode.PERSISTENT,
-        true);
-
-    List<String> allFiles = new ArrayList<>();
-    byte[] buf = new byte[3 * 1024];
-    CollectionConfig conf1 = solrCluster.configs().get("conf1");
-    conf1
-        .resources()
-        .abortableForEach(
-            (s, resource) -> {
-              allFiles.add(s);
-              if ("a/aa1".equals(s)) {
-                resource.get(is -> assertEquals(1024, is.read(buf)));
-              }
-              if ("a/aa2".equals(s)) {
-                resource.get(is -> assertEquals(2 * 1024, is.read(buf)));
-              }
-              if ("a".equals(s)) {
-                resource.get(is -> assertEquals(-1, is.read()));
-              }
-              return Boolean.TRUE;
-            });
-    assertEquals(5, allFiles.size());
-  }
-}
diff --git 
a/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java 
b/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java
deleted file mode 100644
index 6dc597ad646..00000000000
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * 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.solr.common;
-
-import static org.apache.solr.common.cloud.ZkStateReader.URL_SCHEME;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BiConsumer;
-import org.apache.solr.cluster.api.ApiType;
-import org.apache.solr.cluster.api.CollectionConfig;
-import org.apache.solr.cluster.api.HashRange;
-import org.apache.solr.cluster.api.Resource;
-import org.apache.solr.cluster.api.Router;
-import org.apache.solr.cluster.api.Shard;
-import org.apache.solr.cluster.api.ShardReplica;
-import org.apache.solr.cluster.api.SimpleMap;
-import org.apache.solr.cluster.api.SolrCluster;
-import org.apache.solr.cluster.api.SolrCollection;
-import org.apache.solr.cluster.api.SolrNode;
-import org.apache.solr.common.cloud.Aliases;
-import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.Replica;
-import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.common.util.Utils;
-import org.apache.solr.common.util.WrappedSimpleMap;
-import org.apache.zookeeper.KeeperException;
-
-/**
- * Reference implementation for SolrCluster. As much as possible fetch all the 
values lazily because
- * the value of anything can change any moment Creating an instance is a low 
cost operation. It does
- * not result in a network call or large object creation
- */
-@Deprecated
-public class LazySolrCluster implements SolrCluster {
-  final ZkStateReader zkStateReader;
-
-  private final Map<String, SolrCollectionImpl> cached = new 
ConcurrentHashMap<>();
-  private final SimpleMap<SolrCollection> collections;
-  private final SimpleMap<SolrCollection> collectionsAndAliases;
-  private final SimpleMap<SolrNode> nodes;
-  private SimpleMap<CollectionConfig> configs;
-
-  public LazySolrCluster(ZkStateReader zkStateReader) {
-    this.zkStateReader = zkStateReader;
-    collections = lazyCollectionsMap(zkStateReader);
-    collectionsAndAliases = lazyCollectionsWithAlias(zkStateReader);
-    nodes = lazyNodeMap();
-  }
-
-  private SimpleMap<CollectionConfig> lazyConfigMap() {
-    Set<String> configNames = new HashSet<>();
-    new SimpleZkMap(zkStateReader, ZkStateReader.CONFIGS_ZKNODE)
-        .abortableForEach(
-            (name, resource) -> {
-              if (!name.contains("/")) {
-                configNames.add(name);
-                return Boolean.TRUE;
-              }
-              return Boolean.FALSE;
-            });
-
-    return new SimpleMap<CollectionConfig>() {
-      @Override
-      public CollectionConfig get(String key) {
-        if (configNames.contains(key)) {
-          return new ConfigImpl(key);
-        } else {
-          return null;
-        }
-      }
-
-      @Override
-      public void forEachEntry(BiConsumer<String, ? super CollectionConfig> 
fun) {
-        for (String name : configNames) {
-          fun.accept(name, new ConfigImpl(name));
-        }
-      }
-
-      @Override
-      public int size() {
-        return configNames.size();
-      }
-    };
-  }
-
-  private SimpleMap<SolrNode> lazyNodeMap() {
-    return new SimpleMap<SolrNode>() {
-      @Override
-      public SolrNode get(String key) {
-        if (!zkStateReader.getClusterState().liveNodesContain(key)) {
-          return null;
-        }
-        return new Node(key);
-      }
-
-      @Override
-      public void forEachEntry(BiConsumer<String, ? super SolrNode> fun) {
-        for (String s : zkStateReader.getClusterState().getLiveNodes()) {
-          fun.accept(s, new Node(s));
-        }
-      }
-
-      @Override
-      public int size() {
-        return zkStateReader.getClusterState().getLiveNodes().size();
-      }
-    };
-  }
-
-  private SimpleMap<SolrCollection> lazyCollectionsWithAlias(ZkStateReader 
zkStateReader) {
-    return new SimpleMap<SolrCollection>() {
-      @Override
-      public SolrCollection get(String key) {
-        SolrCollection result = collections.get(key);
-        if (result != null) return result;
-        Aliases aliases = zkStateReader.getAliases();
-        List<String> aliasNames = aliases.resolveAliases(key);
-        if (aliasNames == null || aliasNames.isEmpty()) return null;
-        return _collection(aliasNames.get(0), null);
-      }
-
-      @Override
-      public void forEachEntry(BiConsumer<String, ? super SolrCollection> fun) 
{
-        collections.forEachEntry(fun);
-        Aliases aliases = zkStateReader.getAliases();
-        aliases.forEachAlias(
-            (s, colls) -> {
-              if (colls == null || colls.isEmpty()) return;
-              fun.accept(s, _collection(colls.get(0), null));
-            });
-      }
-
-      @Override
-      public int size() {
-        return collections.size() + zkStateReader.getAliases().size();
-      }
-    };
-  }
-
-  private SimpleMap<SolrCollection> lazyCollectionsMap(ZkStateReader 
zkStateReader) {
-    return new SimpleMap<SolrCollection>() {
-      @Override
-      public SolrCollection get(String key) {
-        return _collection(key, null);
-      }
-
-      @Override
-      public void forEachEntry(BiConsumer<String, ? super SolrCollection> fun) 
{
-        zkStateReader
-            .getClusterState()
-            .collectionStream()
-            .forEach(coll -> fun.accept(coll.getName(), 
_collection(coll.getName(), coll)));
-      }
-
-      @Override
-      public int size() {
-        return zkStateReader.getClusterState().size();
-      }
-    };
-  }
-
-  private SolrCollection _collection(String key, DocCollection c) {
-    if (c == null) c = zkStateReader.getCollection(key);
-    if (c == null) {
-      cached.remove(key);
-      return null;
-    }
-    SolrCollectionImpl existing = cached.get(key);
-    if (existing == null || !Objects.equals(existing.coll, c)) {
-      cached.put(key, existing = new SolrCollectionImpl(c, zkStateReader));
-    }
-    return existing;
-  }
-
-  @Override
-  public SimpleMap<SolrCollection> collections() throws SolrException {
-    return collections;
-  }
-
-  @Override
-  public SimpleMap<SolrCollection> collections(boolean includeAlias) throws 
SolrException {
-    return includeAlias ? collectionsAndAliases : collections;
-  }
-
-  @Override
-  public SimpleMap<SolrNode> nodes() throws SolrException {
-    return nodes;
-  }
-
-  @Override
-  public SimpleMap<CollectionConfig> configs() throws SolrException {
-    if (configs == null) {
-      // these are lightweight objects and we don't care even if multiple 
objects ar ecreated b/c of
-      // a race condition
-      configs = lazyConfigMap();
-    }
-    return configs;
-  }
-
-  @Override
-  public String overseerNode() throws SolrException {
-    return null;
-  }
-
-  @Override
-  public String thisNode() {
-    return null;
-  }
-
-  private class SolrCollectionImpl implements SolrCollection {
-    final DocCollection coll;
-    final SimpleMap<Shard> shards;
-    final ZkStateReader zkStateReader;
-    final Router router;
-    String confName;
-
-    private SolrCollectionImpl(DocCollection coll, ZkStateReader 
zkStateReader) {
-      this.coll = coll;
-      this.zkStateReader = zkStateReader;
-      this.router = key -> coll.getRouter().getTargetSlice(key, null, null, 
null, null).getName();
-      LinkedHashMap<String, Shard> map = new LinkedHashMap<>();
-      for (Slice slice : coll.getSlices()) {
-        map.put(slice.getName(), new ShardImpl(this, slice));
-      }
-      shards = new WrappedSimpleMap<>(map);
-    }
-
-    @Override
-    public String name() {
-      return coll.getName();
-    }
-
-    @Override
-    public SimpleMap<Shard> shards() {
-      return shards;
-    }
-
-    @Override
-    public String config() {
-      if (confName == null) {
-        // do this lazily . It's usually not necessary
-        try {
-          byte[] d =
-              zkStateReader
-                  .getZkClient()
-                  
.getData(DocCollection.getCollectionPathRoot(coll.getName()), null, null, true);
-          if (d == null || d.length == 0) return null;
-          Map<?, ?> m = (Map<?, ?>) Utils.fromJSON(d);
-          confName = (String) m.get("configName");
-        } catch (KeeperException | InterruptedException e) {
-          SimpleZkMap.throwZkExp(e);
-          // cannot read from ZK
-          return null;
-        }
-      }
-      return confName;
-    }
-
-    @Override
-    public Router router() {
-      return router;
-    }
-  }
-
-  private class ShardImpl implements Shard {
-    final SolrCollectionImpl collection;
-    final Slice slice;
-    final HashRange range;
-    final SimpleMap<ShardReplica> replicas;
-
-    private ShardImpl(SolrCollectionImpl collection, Slice slice) {
-      this.collection = collection;
-      this.slice = slice;
-      range = _range(slice);
-      replicas = _replicas();
-    }
-
-    private SimpleMap<ShardReplica> _replicas() {
-      Map<String, ShardReplica> replicas = new HashMap<>();
-      slice.forEach(
-          replica ->
-              replicas.put(replica.getName(), new 
ShardReplicaImpl(ShardImpl.this, replica)));
-      return new WrappedSimpleMap<>(replicas);
-    }
-
-    private HashRange _range(Slice slice) {
-      return slice.getRange() == null
-          ? null
-          : new HashRange() {
-            @Override
-            public int min() {
-              return slice.getRange().min;
-            }
-
-            @Override
-            public int max() {
-              return slice.getRange().max;
-            }
-          };
-    }
-
-    @Override
-    public String name() {
-      return slice.getName();
-    }
-
-    @Override
-    public String collection() {
-      return collection.name();
-    }
-
-    @Override
-    public HashRange range() {
-      return range;
-    }
-
-    @Override
-    public SimpleMap<ShardReplica> replicas() {
-      return replicas;
-    }
-
-    @Override
-    public String leader() {
-      Replica leader = slice.getLeader();
-      return leader == null ? null : leader.getName();
-    }
-  }
-
-  private class ShardReplicaImpl implements ShardReplica {
-    private final ShardImpl shard;
-    private final Replica replica;
-
-    private ShardReplicaImpl(ShardImpl shard, Replica replica) {
-      this.shard = shard;
-      this.replica = replica;
-    }
-
-    @Override
-    public String name() {
-      return replica.getName();
-    }
-
-    @Override
-    public String shard() {
-      return shard.name();
-    }
-
-    @Override
-    public String collection() {
-      return shard.collection.name();
-    }
-
-    @Override
-    public String node() {
-      return replica.getNodeName();
-    }
-
-    @Override
-    public String core() {
-      return replica.getCoreName();
-    }
-
-    @Override
-    public Replica.Type type() {
-      return replica.getType();
-    }
-
-    @Override
-    public boolean alive() {
-      return zkStateReader.getClusterState().getLiveNodes().contains(node())
-          && replica.getState() == Replica.State.ACTIVE;
-    }
-
-    @Override
-    public long indexSize() {
-      // todo implement later
-      throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-    @Override
-    public boolean isLeader() {
-      return Objects.equals(shard.leader(), name());
-    }
-
-    @Override
-    public String url(ApiType type) {
-      String base = nodes.get(node()).baseUrl(type);
-      if (type == ApiType.V2) {
-        return base + "/cores/" + core();
-      } else {
-        return base + "/" + core();
-      }
-    }
-  }
-
-  private class Node implements SolrNode {
-    private final String name;
-
-    private Node(String name) {
-      this.name = name;
-    }
-
-    @Override
-    public String name() {
-      return name;
-    }
-
-    @Override
-    public String baseUrl(ApiType apiType) {
-      return Utils.getBaseUrlForNodeName(
-          name, zkStateReader.getClusterProperty(URL_SCHEME, "http"), apiType 
== ApiType.V2);
-    }
-
-    @Override
-    public SimpleMap<ShardReplica> cores() {
-      // todo implement later
-      // this requires a call to the node
-      throw new UnsupportedOperationException("Not yet implemented");
-    }
-  }
-
-  private class ConfigImpl implements CollectionConfig {
-    final String name;
-    final SimpleMap<Resource> resources;
-    final String path;
-
-    private ConfigImpl(String name) {
-      this.name = name;
-      path = ZkStateReader.CONFIGS_ZKNODE + "/" + name;
-      this.resources = new SimpleZkMap(zkStateReader, path);
-    }
-
-    @Override
-    public SimpleMap<Resource> resources() {
-      return resources;
-    }
-
-    @Override
-    public String name() {
-      return name;
-    }
-  }
-}
diff --git 
a/solr/solrj-zookeeper/src/java/org/apache/solr/common/SimpleZkMap.java 
b/solr/solrj-zookeeper/src/java/org/apache/solr/common/SimpleZkMap.java
deleted file mode 100644
index f72d487256d..00000000000
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/SimpleZkMap.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.solr.common;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
-import org.apache.solr.cluster.api.Resource;
-import org.apache.solr.cluster.api.SimpleMap;
-import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.zookeeper.KeeperException;
-
-/**
- * A view of ZK as a {@link SimpleMap} impl. This gives a flat view of all 
paths instead of a tree
- * view eg: a, b, c , a/a1, a/a2, a/a1/aa1 etc If possible, use the {@link
- * #abortableForEach(BiFunction)} to traverse DO not use the {@link #size()} 
method. It always
- * return 0 because it is very expensive to compute that
- */
-@Deprecated
-public class SimpleZkMap implements SimpleMap<Resource> {
-  private final ZkStateReader zkStateReader;
-  private final String basePath;
-
-  static final byte[] EMPTY_BYTES = new byte[0];
-
-  public SimpleZkMap(ZkStateReader zkStateReader, String path) {
-    this.zkStateReader = zkStateReader;
-    this.basePath = path;
-  }
-
-  @Override
-  public Resource get(String key) {
-    return readZkNode(basePath + key);
-  }
-
-  @Override
-  public void abortableForEach(BiFunction<String, ? super Resource, Boolean> 
fun) {
-    try {
-      recursiveRead("", zkStateReader.getZkClient().getChildren(basePath, 
null, true), fun);
-    } catch (KeeperException | InterruptedException e) {
-      throwZkExp(e);
-    }
-  }
-
-  @Override
-  public void forEachEntry(BiConsumer<String, ? super Resource> fun) {
-    abortableForEach(
-        (path, resource) -> {
-          fun.accept(path, resource);
-          return Boolean.TRUE;
-        });
-  }
-
-  @Override
-  public int size() {
-    return 0;
-  }
-
-  private Resource readZkNode(String path) {
-    return new Resource() {
-      @Override
-      public String name() {
-        return path;
-      }
-
-      @Override
-      public void get(Consumer consumer) throws SolrException {
-        try {
-          byte[] data =
-              zkStateReader.getZkClient().getData(basePath + "/" + path, null, 
null, true);
-          if (data != null && data.length > 0) {
-            consumer.read(new ByteArrayInputStream(data));
-          } else {
-            consumer.read(new ByteArrayInputStream(EMPTY_BYTES));
-          }
-        } catch (KeeperException | InterruptedException e) {
-          throwZkExp(e);
-        } catch (IOException e) {
-          throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Can;t 
read stream", e);
-        }
-      }
-    };
-  }
-
-  private boolean recursiveRead(
-      String parent, List<String> childrenList, BiFunction<String, ? super 
Resource, Boolean> fun) {
-    if (childrenList == null || childrenList.isEmpty()) return true;
-    try {
-      Map<String, List<String>> withKids = new LinkedHashMap<>();
-      for (String child : childrenList) {
-        String relativePath = parent.isEmpty() ? child : parent + "/" + child;
-        if (!fun.apply(relativePath, readZkNode(relativePath))) return false;
-        List<String> l1 =
-            zkStateReader.getZkClient().getChildren(basePath + "/" + 
relativePath, null, true);
-        if (l1 != null && !l1.isEmpty()) {
-          withKids.put(relativePath, l1);
-        }
-      }
-      // now we iterate through all nodes with sub paths
-      for (Map.Entry<String, List<String>> e : withKids.entrySet()) {
-        // has children
-        if (!recursiveRead(e.getKey(), e.getValue(), fun)) {
-          return false;
-        }
-      }
-    } catch (KeeperException | InterruptedException e) {
-      throwZkExp(e);
-    }
-    return true;
-  }
-
-  static void throwZkExp(Exception e) {
-    if (e instanceof InterruptedException) {
-      Thread.currentThread().interrupt();
-    }
-    throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "ZK errror", 
e);
-  }
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/ApiType.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/ApiType.java
deleted file mode 100644
index 1945a2039a1..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/ApiType.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** Types of API calls */
-@Deprecated
-public enum ApiType {
-  V1("solr"),
-  V2("api");
-  final String prefix;
-
-  ApiType(String prefix) {
-    this.prefix = prefix;
-  }
-}
diff --git 
a/solr/solrj/src/java/org/apache/solr/cluster/api/CollectionConfig.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/CollectionConfig.java
deleted file mode 100644
index c3043ab50dc..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/CollectionConfig.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-@Deprecated
-public interface CollectionConfig {
-
-  String name();
-
-  SimpleMap<Resource> resources();
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/HashRange.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/HashRange.java
deleted file mode 100644
index 3bfa66eaab6..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/HashRange.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** A range of hash that is stored in a shard */
-@Deprecated
-public interface HashRange {
-
-  /** minimum value (inclusive) */
-  int min();
-
-  /** maximum value (inclusive) */
-  int max();
-
-  /** Check if a given hash falls in this range */
-  default boolean includes(int hash) {
-    return hash >= min() && hash <= max();
-  }
-
-  /** Check if another range is a subset of this range */
-  default boolean isSubset(HashRange subset) {
-    return min() <= subset.min() && max() >= subset.max();
-  }
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/Resource.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/Resource.java
deleted file mode 100644
index faa5207838b..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/Resource.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-import java.io.IOException;
-import java.io.InputStream;
-import org.apache.solr.common.SolrException;
-
-/** A binary resource. The impl is agnostic of the content type */
-@Deprecated
-public interface Resource {
-  /** This is a full path. e.g schema.xml, solrconfig.xml, lang/stopwords.txt 
etc */
-  String name();
-
-  /**
-   * read a file/resource. The caller should consume the stream completely and 
should not hold a
-   * reference to this stream. This method closes the stream soon after the 
method returns
-   *
-   * @param resourceConsumer This should be a full path. e.g schema.xml, 
solrconfig.xml,
-   *     lang/stopwords.txt etc
-   */
-  void get(Consumer resourceConsumer) throws SolrException;
-
-  interface Consumer {
-    void read(InputStream is) throws IOException;
-  }
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/Router.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/Router.java
deleted file mode 100644
index ecea98572f2..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/Router.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** identify shards for a given routing key or document id */
-@Deprecated
-public interface Router {
-
-  /** shard name for a given routing key */
-  String shard(String routingKey);
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/Shard.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/Shard.java
deleted file mode 100644
index 896cf8dd6b4..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/Shard.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** A shard of a collection */
-@Deprecated
-public interface Shard {
-
-  /** name of the shard */
-  String name();
-
-  /** collection this shard belongs to */
-  String collection();
-
-  /** hash range of this shard. null if this is not using hash based router */
-  HashRange range();
-
-  /** replicas of the shard */
-  SimpleMap<ShardReplica> replicas();
-
-  /** Name of the replica that is acting as the leader at the moment */
-  String leader();
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/ShardReplica.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/ShardReplica.java
deleted file mode 100644
index 0e85e51cea7..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/ShardReplica.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-import org.apache.solr.common.cloud.Replica;
-
-/** replica of a shard */
-@Deprecated
-public interface ShardReplica {
-  /** Name of this replica */
-  String name();
-
-  /** The shard which it belongs to */
-  String shard();
-
-  /** collection which it belongs to */
-  String collection();
-
-  /** Name of the node where this replica is present */
-  String node();
-
-  /** Name of the core where this is hosted */
-  String core();
-
-  /** type of the replica */
-  Replica.Type type();
-
-  /** Is the replica alive now */
-  boolean alive();
-
-  /**
-   * Size of the index in bytes. Keep in mind that this may result in a 
network call. Also keep in
-   * mind that the value that you get is at best an approximation. The exact 
size may vary from
-   * replica to replica
-   */
-  long indexSize();
-
-  /** Is this replica the leader */
-  boolean isLeader();
-
-  /** Baseurl for this replica */
-  String url(ApiType type);
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java
deleted file mode 100644
index 3684a2862df..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/SimpleMap.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import org.apache.solr.common.MapWriter;
-
-/**
- * A simplified read-only key-value structure. It is designed to support large 
datasets without
- * consuming a lot of memory The objective is to provide implementations that 
are cheap and memory
- * efficient to implement and consume. The keys are always {@link 
CharSequence} objects, The values
- * can be of any type
- */
-@Deprecated
-public interface SimpleMap<T> extends MapWriter {
-
-  /** get a value by key. If not present , null is returned */
-  T get(String key);
-
-  @Deprecated
-  default T get(String key, T def) {
-    T val = get(key);
-    return val == null ? def : val;
-  }
-
-  /** Navigate through all keys and values */
-  @Deprecated
-  void forEachEntry(BiConsumer<String, ? super T> fun);
-
-  /**
-   * iterate through all keys The default impl is suboptimal. Proper 
implementations must do it more
-   * efficiently
-   */
-  @Deprecated
-  default void forEachKey(Consumer<String> fun) {
-    forEachEntry((k, t) -> fun.accept(k));
-  }
-
-  int size();
-
-  /**
-   * iterate through all keys but abort in between if required The default 
impl is suboptimal.
-   * Proper implementations must do it more efficiently
-   *
-   * @param fun Consume each key and return a boolean to signal whether to 
proceed or not. If true,
-   *     continue. If false stop
-   */
-  @Deprecated
-  default void abortableForEachKey(Function<String, Boolean> fun) {
-    abortableForEach((key, t) -> fun.apply(key));
-  }
-
-  /**
-   * Navigate through all key-values but abort in between if required. The 
default impl is
-   * suboptimal. Proper implementations must do it more efficiently
-   *
-   * @param fun Consume each entry and return a boolean to signal whether to 
proceed or not. If
-   *     true, continue, if false stop
-   */
-  @Deprecated
-  default void abortableForEach(BiFunction<String, ? super T, Boolean> fun) {
-    forEachEntry(
-        new BiConsumer<>() {
-          boolean end = false;
-
-          @Override
-          public void accept(String k, T v) {
-            if (end) return;
-            end = fun.apply(k, v);
-          }
-        });
-  }
-
-  @Override
-  default void writeMap(EntryWriter ew) throws IOException {
-    forEachEntry(ew::putNoEx);
-  }
-
-  @Deprecated
-  default Map<String, T> asMap(Map<String, T> sink) {
-    forEachEntry(sink::put);
-    return sink;
-  }
-
-  @Deprecated
-  default Map<String, T> asMap() {
-    return asMap(new LinkedHashMap<>());
-  }
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCluster.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCluster.java
deleted file mode 100644
index 1fa77d24c8d..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCluster.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-import org.apache.solr.common.SolrException;
-
-/** Represents a Solr cluster */
-@Deprecated
-public interface SolrCluster {
-
-  /** collections in the cluster */
-  SimpleMap<SolrCollection> collections() throws SolrException;
-
-  /** collections in the cluster and aliases */
-  SimpleMap<SolrCollection> collections(boolean includeAlias) throws 
SolrException;
-
-  /** nodes in the cluster */
-  SimpleMap<SolrNode> nodes() throws SolrException;
-
-  /** Config sets in the cluster */
-  SimpleMap<CollectionConfig> configs() throws SolrException;
-
-  /** Name of the node in which the overseer is running */
-  String overseerNode() throws SolrException;
-
-  /**
-   * The name of the node in which this method is invoked from. returns null, 
if this is not invoked
-   * from a Solr node
-   */
-  String thisNode();
-}
diff --git 
a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCollection.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCollection.java
deleted file mode 100644
index c0dd86d047a..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrCollection.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** Represents a collection in Solr */
-@Deprecated
-public interface SolrCollection {
-
-  String name();
-
-  /** shards of a collection */
-  SimpleMap<Shard> shards();
-
-  /** Name of the configset used by this collection */
-  String config();
-
-  /** Router used in this collection */
-  Router router();
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrNode.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/SolrNode.java
deleted file mode 100644
index e6db68a1470..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/SolrNode.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.solr.cluster.api;
-
-/** A read only view of a Solr node */
-@Deprecated
-public interface SolrNode {
-
-  /** The node name */
-  String name();
-
-  /** Base http url for this node */
-  String baseUrl(ApiType type);
-
-  /**
-   * Get all the cores in a given node. This usually involves a network call. 
So, it's likely to be
-   * expensive
-   */
-  SimpleMap<ShardReplica> cores();
-}
diff --git a/solr/solrj/src/java/org/apache/solr/cluster/api/package-info.java 
b/solr/solrj/src/java/org/apache/solr/cluster/api/package-info.java
deleted file mode 100644
index 84e7f43b356..00000000000
--- a/solr/solrj/src/java/org/apache/solr/cluster/api/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * 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.
- */
-
-/** API interfaces for core SolrCloud classes */
-@Deprecated
-package org.apache.solr.cluster.api;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java 
b/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
index a56a2784cd0..6b43da26de9 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
@@ -31,10 +31,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import org.apache.solr.cluster.api.SimpleMap;
 import org.apache.solr.common.MapWriter;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.MultiMapSolrParams;
@@ -62,7 +58,7 @@ import org.apache.solr.common.params.SolrParams;
  */
 @SuppressWarnings({"unchecked", "rawtypes"})
 public class NamedList<T>
-    implements Cloneable, Serializable, Iterable<Map.Entry<String, T>>, 
MapWriter, SimpleMap<T> {
+    implements Cloneable, Serializable, Iterable<Map.Entry<String, T>>, 
MapWriter {
 
   private static final long serialVersionUID = 1957981902839867821L;
   protected final List<Object> nvPairs;
@@ -157,7 +153,6 @@ public class NamedList<T>
   }
 
   /** The total number of name/value pairs */
-  @Override
   public int size() {
     return nvPairs.size() >> 1;
   }
@@ -258,7 +253,6 @@ public class NamedList<T>
    * @see #indexOf
    * @see #get(String,int)
    */
-  @Override
   public T get(String name) {
     return get(name, 0);
   }
@@ -769,44 +763,10 @@ public class NamedList<T>
     return this.nvPairs.equals(nl.nvPairs);
   }
 
-  @Override
-  public void abortableForEach(BiFunction<String, ? super T, Boolean> fun) {
-    int sz = size();
-    for (int i = 0; i < sz; i++) {
-      if (!fun.apply(getName(i), getVal(i))) break;
-    }
-  }
-
-  @Override
-  public void abortableForEachKey(Function<String, Boolean> fun) {
-    int sz = size();
-    for (int i = 0; i < sz; i++) {
-      if (!fun.apply(getName(i))) break;
-    }
-  }
-
-  @Override
-  public void forEachKey(Consumer<String> fun) {
-    int sz = size();
-    for (int i = 0; i < sz; i++) {
-      fun.accept(getName(i));
-    }
-  }
-
   public void forEach(BiConsumer<? super String, ? super T> action) {
     int sz = size();
     for (int i = 0; i < sz; i++) {
       action.accept(getName(i), getVal(i));
     }
   }
-
-  @Override
-  public int _size() {
-    return size();
-  }
-
-  @Override
-  public void forEachEntry(BiConsumer<String, ? super T> fun) {
-    forEach(fun);
-  }
 }
diff --git 
a/solr/solrj/src/java/org/apache/solr/common/util/WrappedSimpleMap.java 
b/solr/solrj/src/java/org/apache/solr/common/util/WrappedSimpleMap.java
deleted file mode 100644
index 768fef788b9..00000000000
--- a/solr/solrj/src/java/org/apache/solr/common/util/WrappedSimpleMap.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.solr.common.util;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.function.BiConsumer;
-import org.apache.solr.cluster.api.SimpleMap;
-
-@Deprecated
-public class WrappedSimpleMap<T> implements SimpleMap<T> {
-  private final Map<String, T> delegate;
-
-  @Override
-  public T get(String key) {
-    return delegate.get(key);
-  }
-
-  @Override
-  public void forEachEntry(BiConsumer<String, ? super T> fun) {
-    delegate.forEach(fun);
-  }
-
-  @Override
-  public int size() {
-    return delegate.size();
-  }
-
-  public WrappedSimpleMap(Map<String, T> delegate) {
-    this.delegate = delegate;
-  }
-
-  @Override
-  public Map<String, T> asMap(Map<String, T> sink) {
-    sink.putAll(delegate);
-    return sink;
-  }
-
-  @Override
-  public Map<String, T> asMap() {
-    return Collections.unmodifiableMap(delegate);
-  }
-}

Reply via email to