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