You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ja...@apache.org on 2023/11/07 14:29:40 UTC

(solr) branch main updated: SOLR-16038: Rename PackageStore as Filestore (#1908)

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

janhoy 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 b17b17d1c49 SOLR-16038: Rename PackageStore as Filestore (#1908)
b17b17d1c49 is described below

commit b17b17d1c49b81fbb62c0e072a8fb9fffcbc9042
Author: Jan Høydahl <ja...@apache.org>
AuthorDate: Tue Nov 7 15:29:34 2023 +0100

    SOLR-16038: Rename PackageStore as Filestore (#1908)
---
 .../java/org/apache/solr/core/CoreContainer.java   | 14 ++--
 ...tribPackageStore.java => DistribFileStore.java} | 24 +++----
 .../{PackageStore.java => FileStore.java}          |  4 +-
 .../{PackageStoreAPI.java => FileStoreAPI.java}    | 78 +++++++++++-----------
 .../org/apache/solr/filestore/package-info.java    |  2 +-
 .../apache/solr/packagemanager/PackageManager.java |  4 +-
 .../apache/solr/packagemanager/PackageUtils.java   |  8 +--
 .../solr/packagemanager/RepositoryManager.java     |  4 +-
 .../src/java/org/apache/solr/pkg/PackageAPI.java   | 14 ++--
 .../org/apache/solr/pkg/SolrPackageLoader.java     |  4 +-
 ...PackageStore.java => TestDistribFileStore.java} | 13 ++--
 .../apache/solr/handler/TestContainerPlugin.java   | 32 ++++-----
 .../src/test/org/apache/solr/pkg/TestPackages.java | 48 ++++++-------
 13 files changed, 124 insertions(+), 125 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 8e86167749b..6e1a417a63d 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -105,7 +105,7 @@ import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.DirectoryFactory.DirContext;
 import org.apache.solr.core.backup.repository.BackupRepository;
 import org.apache.solr.core.backup.repository.BackupRepositoryFactory;
-import org.apache.solr.filestore.PackageStoreAPI;
+import org.apache.solr.filestore.FileStoreAPI;
 import org.apache.solr.handler.ClusterAPI;
 import org.apache.solr.handler.RequestHandlerBase;
 import org.apache.solr.handler.SnapShooter;
@@ -293,7 +293,7 @@ public class CoreContainer {
   private final DelegatingPlacementPluginFactory placementPluginFactory =
       new DelegatingPlacementPluginFactory();
 
-  private PackageStoreAPI packageStoreAPI;
+  private FileStoreAPI fileStoreAPI;
   private SolrPackageLoader packageLoader;
 
   private final Set<Path> allowPaths;
@@ -714,8 +714,8 @@ public class CoreContainer {
     return packageLoader;
   }
 
-  public PackageStoreAPI getPackageStoreAPI() {
-    return packageStoreAPI;
+  public FileStoreAPI getFileStoreAPI() {
+    return fileStoreAPI;
   }
 
   public SolrCache<?, ?> getCache(String name) {
@@ -837,9 +837,9 @@ public class CoreContainer {
               (PublicKeyHandler) containerHandlers.get(PublicKeyHandler.PATH));
       pkiAuthenticationSecurityBuilder.initializeMetrics(solrMetricsContext, "/authentication/pki");
 
-      packageStoreAPI = new PackageStoreAPI(this);
-      registerV2ApiIfEnabled(packageStoreAPI.readAPI);
-      registerV2ApiIfEnabled(packageStoreAPI.writeAPI);
+      fileStoreAPI = new FileStoreAPI(this);
+      registerV2ApiIfEnabled(fileStoreAPI.readAPI);
+      registerV2ApiIfEnabled(fileStoreAPI.writeAPI);
 
       packageLoader = new SolrPackageLoader(this);
       registerV2ApiIfEnabled(packageLoader.getPackageAPI().editAPI);
diff --git a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java b/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
similarity index 96%
rename from solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
rename to solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
index 1538a64b639..3cf8cbca3a3 100644
--- a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
+++ b/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
@@ -54,7 +54,7 @@ import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrPaths;
-import org.apache.solr.filestore.PackageStoreAPI.MetaData;
+import org.apache.solr.filestore.FileStoreAPI.MetaData;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.server.ByteBufferInputStream;
@@ -62,7 +62,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @NotThreadSafe
-public class DistribPackageStore implements PackageStore {
+public class DistribFileStore implements FileStore {
   static final long MAX_PKG_SIZE =
       Long.parseLong(System.getProperty("max.file.store.size", String.valueOf(100 * 1024 * 1024)));
 
@@ -75,7 +75,7 @@ public class DistribPackageStore implements PackageStore {
 
   private final Path solrHome;
 
-  public DistribPackageStore(CoreContainer coreContainer) {
+  public DistribFileStore(CoreContainer coreContainer) {
     this.coreContainer = coreContainer;
     this.solrHome = Paths.get(this.coreContainer.getSolrHome());
   }
@@ -93,9 +93,9 @@ public class DistribPackageStore implements PackageStore {
     while (path.startsWith(File.separator)) { // Trim all leading slashes
       path = path.substring(1);
     }
-    var finalPath = getPackageStoreDirPath(solrHome).resolve(path);
+    var finalPath = getFileStoreDirPath(solrHome).resolve(path);
     // Guard against path traversal by asserting final path is sub path of filestore
-    if (!finalPath.normalize().startsWith(getPackageStoreDirPath(solrHome).normalize())) {
+    if (!finalPath.normalize().startsWith(getFileStoreDirPath(solrHome).normalize())) {
       throw new SolrException(BAD_REQUEST, "Illegal path " + path);
     }
     return finalPath;
@@ -125,7 +125,7 @@ public class DistribPackageStore implements PackageStore {
     }
 
     private void persistToFile(ByteBuffer data, ByteBuffer meta) throws IOException {
-      synchronized (DistribPackageStore.this) {
+      synchronized (DistribFileStore.this) {
         this.metaData = meta;
         this.fileData = data;
         _persistToFile(solrHome, path, data, meta);
@@ -217,7 +217,7 @@ public class DistribPackageStore implements PackageStore {
     }
 
     boolean fetchFromAnyNode() {
-      ArrayList<String> l = coreContainer.getPackageStoreAPI().shuffledNodes();
+      ArrayList<String> l = coreContainer.getFileStoreAPI().shuffledNodes();
       for (String liveNode : l) {
         try {
           String baseurl =
@@ -355,7 +355,7 @@ public class DistribPackageStore implements PackageStore {
     }
     tmpFiles.put(info.path, info);
 
-    List<String> nodes = coreContainer.getPackageStoreAPI().shuffledNodes();
+    List<String> nodes = coreContainer.getFileStoreAPI().shuffledNodes();
     int i = 0;
     int FETCHFROM_SRC = 50;
     String myNodeName = coreContainer.getZkController().getNodeName();
@@ -498,7 +498,7 @@ public class DistribPackageStore implements PackageStore {
   @Override
   public void delete(String path) {
     deleteLocal(path);
-    List<String> nodes = coreContainer.getPackageStoreAPI().shuffledNodes();
+    List<String> nodes = coreContainer.getFileStoreAPI().shuffledNodes();
     HttpClient client = coreContainer.getUpdateShardHandler().getDefaultHttpClient();
     for (String node : nodes) {
       String baseUrl =
@@ -584,8 +584,8 @@ public class DistribPackageStore implements PackageStore {
     return file.charAt(0) == '.' && file.endsWith(".json");
   }
 
-  public static synchronized Path getPackageStoreDirPath(Path solrHome) {
-    var path = solrHome.resolve(PackageStoreAPI.PACKAGESTORE_DIRECTORY);
+  public static synchronized Path getFileStoreDirPath(Path solrHome) {
+    var path = solrHome.resolve(FileStoreAPI.FILESTORE_DIRECTORY);
     if (!Files.exists(path)) {
       try {
         Files.createDirectories(path);
@@ -634,7 +634,7 @@ public class DistribPackageStore implements PackageStore {
   // reads local keys file
   private static Map<String, byte[]> _getKeys(Path solrHome) throws IOException {
     Map<String, byte[]> result = new HashMap<>();
-    Path keysDir = _getRealPath(PackageStoreAPI.KEYS_DIR, solrHome);
+    Path keysDir = _getRealPath(FileStoreAPI.KEYS_DIR, solrHome);
 
     File[] keyFiles = keysDir.toFile().listFiles();
     if (keyFiles == null) return result;
diff --git a/solr/core/src/java/org/apache/solr/filestore/PackageStore.java b/solr/core/src/java/org/apache/solr/filestore/FileStore.java
similarity index 97%
rename from solr/core/src/java/org/apache/solr/filestore/PackageStore.java
rename to solr/core/src/java/org/apache/solr/filestore/FileStore.java
index e3a60089aef..fdff79e1fa5 100644
--- a/solr/core/src/java/org/apache/solr/filestore/PackageStore.java
+++ b/solr/core/src/java/org/apache/solr/filestore/FileStore.java
@@ -27,11 +27,11 @@ import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 import org.apache.solr.common.MapWriter;
-import org.apache.solr.filestore.PackageStoreAPI.MetaData;
+import org.apache.solr.filestore.FileStoreAPI.MetaData;
 import org.apache.zookeeper.server.ByteBufferInputStream;
 
 /** The interface to be implemented by any package store provider * @lucene.experimental */
-public interface PackageStore {
+public interface FileStore {
 
   /**
    * Store a file into the filestore. This should ensure that it is replicated across all nodes in
diff --git a/solr/core/src/java/org/apache/solr/filestore/PackageStoreAPI.java b/solr/core/src/java/org/apache/solr/filestore/FileStoreAPI.java
similarity index 89%
rename from solr/core/src/java/org/apache/solr/filestore/PackageStoreAPI.java
rename to solr/core/src/java/org/apache/solr/filestore/FileStoreAPI.java
index eb87c1a8e29..52dee0f5e9a 100644
--- a/solr/core/src/java/org/apache/solr/filestore/PackageStoreAPI.java
+++ b/solr/core/src/java/org/apache/solr/filestore/FileStoreAPI.java
@@ -58,24 +58,24 @@ import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class PackageStoreAPI {
+public class FileStoreAPI {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-  public static final String PACKAGESTORE_DIRECTORY = "filestore";
+  public static final String FILESTORE_DIRECTORY = "filestore";
   public static final String TRUSTED_DIR = "_trusted_";
   public static final String KEYS_DIR = "/_trusted_/keys";
 
   private final CoreContainer coreContainer;
-  PackageStore packageStore;
+  FileStore fileStore;
   public final FSRead readAPI = new FSRead();
   public final FSWrite writeAPI = new FSWrite();
 
-  public PackageStoreAPI(CoreContainer coreContainer) {
+  public FileStoreAPI(CoreContainer coreContainer) {
     this.coreContainer = coreContainer;
-    packageStore = new DistribPackageStore(coreContainer);
+    fileStore = new DistribFileStore(coreContainer);
   }
 
-  public PackageStore getPackageStore() {
-    return packageStore;
+  public FileStore getFileStore() {
+    return fileStore;
   }
 
   /** get a list of nodes randomly shuffled * @lucene.internal */
@@ -91,13 +91,13 @@ public class PackageStoreAPI {
   public void validateFiles(List<String> files, boolean validateSignatures, Consumer<String> errs) {
     for (String path : files) {
       try {
-        PackageStore.FileType type = packageStore.getType(path, true);
-        if (type != PackageStore.FileType.FILE) {
+        FileStore.FileType type = fileStore.getType(path, true);
+        if (type != FileStore.FileType.FILE) {
           errs.accept("No such file: " + path);
           continue;
         }
 
-        packageStore.get(
+        fileStore.get(
             path,
             entry -> {
               if (entry.getMetaData().signatures == null
@@ -107,7 +107,7 @@ public class PackageStoreAPI {
               }
               if (validateSignatures) {
                 try {
-                  packageStore.refresh(KEYS_DIR);
+                  fileStore.refresh(KEYS_DIR);
                   validate(entry.meta.signatures, entry, false);
                 } catch (Exception e) {
                   log.error("Error validating package artifact", e);
@@ -125,7 +125,7 @@ public class PackageStoreAPI {
 
   public class FSWrite {
 
-    static final String TMP_ZK_NODE = "/packageStoreWriteInProgress";
+    static final String TMP_ZK_NODE = "/fileStoreWriteInProgress";
 
     @EndPoint(
         path = "/cluster/files/*",
@@ -146,12 +146,12 @@ public class PackageStoreAPI {
         if (coreContainer.getPackageLoader().getPackageAPI().isJarInuse(path)) {
           throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "jar in use, can't delete");
         }
-        PackageStore.FileType type = packageStore.getType(path, true);
-        if (type == PackageStore.FileType.NOFILE) {
+        FileStore.FileType type = fileStore.getType(path, true);
+        if (type == FileStore.FileType.NOFILE) {
           throw new SolrException(
               SolrException.ErrorCode.BAD_REQUEST, "Path does not exist: " + path);
         }
-        packageStore.delete(path);
+        fileStore.delete(path);
       } catch (SolrException e) {
         throw e;
       } catch (Exception e) {
@@ -173,7 +173,7 @@ public class PackageStoreAPI {
     public void deleteLocal(SolrQueryRequest req, SolrQueryResponse rsp) {
       String path = req.getPathTemplateValues().get("*");
       validateName(path, true);
-      packageStore.deleteLocal(path);
+      fileStore.deleteLocal(path);
     }
 
     @EndPoint(
@@ -203,11 +203,11 @@ public class PackageStoreAPI {
           byte[] buf = stream.getStream().readAllBytes();
           List<String> signatures = readSignatures(req, buf);
           MetaData meta = _createJsonMetaData(buf, signatures);
-          PackageStore.FileType type = packageStore.getType(path, true);
+          FileStore.FileType type = fileStore.getType(path, true);
           boolean[] returnAfter = new boolean[] {false};
-          if (type == PackageStore.FileType.FILE) {
+          if (type == FileStore.FileType.FILE) {
             // a file already exist at the same path
-            packageStore.get(
+            fileStore.get(
                 path,
                 fileEntry -> {
                   if (meta.equals(fileEntry.meta)) {
@@ -221,11 +221,11 @@ public class PackageStoreAPI {
                 true);
           }
           if (returnAfter[0]) return;
-          if (type != PackageStore.FileType.NOFILE) {
+          if (type != FileStore.FileType.NOFILE) {
             throw new SolrException(
                 SolrException.ErrorCode.BAD_REQUEST, "Path already exists " + path);
           }
-          packageStore.put(new PackageStore.FileEntry(ByteBuffer.wrap(buf), meta, path));
+          fileStore.put(new FileStore.FileEntry(ByteBuffer.wrap(buf), meta, path));
           rsp.add(CommonParams.FILE, path);
         } catch (IOException e) {
           throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
@@ -251,23 +251,23 @@ public class PackageStoreAPI {
       String[] signatures = req.getParams().getParams("sig");
       if (signatures == null || signatures.length == 0) return null;
       List<String> sigs = Arrays.asList(signatures);
-      packageStore.refresh(KEYS_DIR);
+      fileStore.refresh(KEYS_DIR);
       validate(sigs, buf);
       return sigs;
     }
 
     private void validate(List<String> sigs, byte[] buf) throws SolrException, IOException {
-      Map<String, byte[]> keys = packageStore.getKeys();
+      Map<String, byte[]> keys = fileStore.getKeys();
       if (keys == null || keys.isEmpty()) {
         throw new SolrException(
-            SolrException.ErrorCode.BAD_REQUEST, "package store does not have any keys");
+            SolrException.ErrorCode.BAD_REQUEST, "File store does not have any keys");
       }
       CryptoKeys cryptoKeys = null;
       try {
         cryptoKeys = new CryptoKeys(keys);
       } catch (Exception e) {
         throw new SolrException(
-            SolrException.ErrorCode.SERVER_ERROR, "Error parsing public keys in Package store");
+            SolrException.ErrorCode.SERVER_ERROR, "Error parsing public keys in file store");
       }
       for (String sig : sigs) {
         if (cryptoKeys.verify(sig, ByteBuffer.wrap(buf)) == null) {
@@ -310,7 +310,7 @@ public class PackageStoreAPI {
       String pathCopy = path;
       if (req.getParams().getBool("sync", false)) {
         try {
-          packageStore.syncToAllNodes(path);
+          fileStore.syncToAllNodes(path);
           return;
         } catch (IOException e) {
           throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Error getting file ", e);
@@ -325,7 +325,7 @@ public class PackageStoreAPI {
                 () -> {
                   log.debug("Downloading file {}", pathCopy);
                   try {
-                    packageStore.fetch(pathCopy, getFrom);
+                    fileStore.fetch(pathCopy, getFrom);
                   } catch (Exception e) {
                     log.error("Failed to download file: {}", pathCopy, e);
                   }
@@ -337,21 +337,21 @@ public class PackageStoreAPI {
         path = "";
       }
 
-      PackageStore.FileType typ = packageStore.getType(path, false);
-      if (typ == PackageStore.FileType.NOFILE) {
+      FileStore.FileType typ = fileStore.getType(path, false);
+      if (typ == FileStore.FileType.NOFILE) {
         rsp.add("files", Collections.singletonMap(path, null));
         return;
       }
-      if (typ == PackageStore.FileType.DIRECTORY) {
-        rsp.add("files", Collections.singletonMap(path, packageStore.list(path, null)));
+      if (typ == FileStore.FileType.DIRECTORY) {
+        rsp.add("files", Collections.singletonMap(path, fileStore.list(path, null)));
         return;
       }
       if (req.getParams().getBool("meta", false)) {
-        if (typ == PackageStore.FileType.FILE) {
+        if (typ == FileStore.FileType.FILE) {
           int idx = path.lastIndexOf('/');
           String fileName = path.substring(idx + 1);
           String parentPath = path.substring(0, path.lastIndexOf('/'));
-          List<PackageStore.FileDetails> l = packageStore.list(parentPath, s -> s.equals(fileName));
+          List<FileStore.FileDetails> l = fileStore.list(parentPath, s -> s.equals(fileName));
           rsp.add("files", Collections.singletonMap(path, l.isEmpty() ? null : l.get(0)));
           return;
         }
@@ -366,7 +366,7 @@ public class PackageStoreAPI {
         solrParams.add(CommonParams.WT, "json");
         req.setParams(SolrParams.wrapDefaults(solrParams, req.getParams()));
         try {
-          packageStore.get(
+          fileStore.get(
               path,
               it -> {
                 try {
@@ -391,7 +391,7 @@ public class PackageStoreAPI {
             FILE_STREAM,
             (SolrCore.RawWriter)
                 os ->
-                    packageStore.get(
+                    fileStore.get(
                         path,
                         it -> {
                           try {
@@ -481,22 +481,22 @@ public class PackageStoreAPI {
    * @param entry The file details
    * @param isFirstAttempt If there is a failure
    */
-  public void validate(List<String> sigs, PackageStore.FileEntry entry, boolean isFirstAttempt)
+  public void validate(List<String> sigs, FileStore.FileEntry entry, boolean isFirstAttempt)
       throws SolrException, IOException {
     if (!isFirstAttempt) {
       // we are retrying because last validation failed.
       // get all keys again and try again
-      packageStore.refresh(KEYS_DIR);
+      fileStore.refresh(KEYS_DIR);
     }
 
-    Map<String, byte[]> keys = packageStore.getKeys();
+    Map<String, byte[]> keys = fileStore.getKeys();
     if (keys == null || keys.isEmpty()) {
       if (isFirstAttempt) {
         validate(sigs, entry, false);
         return;
       }
       throw new SolrException(
-          SolrException.ErrorCode.BAD_REQUEST, "Packagestore does not have any public keys");
+          SolrException.ErrorCode.BAD_REQUEST, "Filestore does not have any public keys");
     }
     CryptoKeys cryptoKeys = null;
     try {
diff --git a/solr/core/src/java/org/apache/solr/filestore/package-info.java b/solr/core/src/java/org/apache/solr/filestore/package-info.java
index 7d3d4e98825..95ed282965b 100644
--- a/solr/core/src/java/org/apache/solr/filestore/package-info.java
+++ b/solr/core/src/java/org/apache/solr/filestore/package-info.java
@@ -14,5 +14,5 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/** Implementation of Package Store. */
+/** Implementation of File Store. */
 package org.apache.solr.filestore;
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
index 79b9fa1c9c3..a21195add91 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageManager.java
@@ -57,7 +57,7 @@ import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.Pair;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.common.util.Utils;
-import org.apache.solr.filestore.DistribPackageStore;
+import org.apache.solr.filestore.DistribFileStore;
 import org.apache.solr.handler.admin.ContainerPluginsApi;
 import org.apache.solr.packagemanager.SolrPackage.Command;
 import org.apache.solr.packagemanager.SolrPackage.Manifest;
@@ -168,7 +168,7 @@ public class PackageManager implements Closeable {
     filesToDelete.add(
         String.format(Locale.ROOT, "/package/%s/%s/%s", packageName, version, "manifest.json"));
     for (String filePath : filesToDelete) {
-      DistribPackageStore.deleteZKFileEntry(zkClient, filePath);
+      DistribFileStore.deleteZKFileEntry(zkClient, filePath);
       String path = "/api/cluster/files" + filePath;
       PackageUtils.printGreen("Deleting " + path);
       solrClient.request(new GenericSolrRequest(SolrRequest.METHOD.DELETE, path));
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
index c380764a678..10a255a81f5 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageUtils.java
@@ -49,8 +49,8 @@ import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.BlobRepository;
-import org.apache.solr.filestore.DistribPackageStore;
-import org.apache.solr.filestore.PackageStoreAPI;
+import org.apache.solr.filestore.DistribFileStore;
+import org.apache.solr.filestore.FileStoreAPI;
 import org.apache.solr.packagemanager.SolrPackage.Manifest;
 import org.apache.solr.util.SolrJacksonAnnotationInspector;
 
@@ -272,8 +272,8 @@ public class PackageUtils {
   }
 
   public static void uploadKey(byte[] bytes, String path, Path home) throws IOException {
-    PackageStoreAPI.MetaData meta = PackageStoreAPI._createJsonMetaData(bytes, null);
-    DistribPackageStore._persistToFile(
+    FileStoreAPI.MetaData meta = FileStoreAPI._createJsonMetaData(bytes, null);
+    DistribFileStore._persistToFile(
         home, path, ByteBuffer.wrap(bytes), ByteBuffer.wrap(Utils.toJSON(meta)));
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
index 1899d8b4786..f7ac243d0a3 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
@@ -51,7 +51,7 @@ import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.BlobRepository;
-import org.apache.solr.filestore.PackageStoreAPI;
+import org.apache.solr.filestore.FileStoreAPI;
 import org.apache.solr.packagemanager.SolrPackage.Artifact;
 import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
 import org.apache.solr.pkg.PackageAPI;
@@ -146,7 +146,7 @@ public class RepositoryManager {
     String solrHome = (String) systemInfo.get("solr_home");
 
     // put the public key into package store's trusted key store and request a sync.
-    String path = PackageStoreAPI.KEYS_DIR + "/" + destinationKeyFilename;
+    String path = FileStoreAPI.KEYS_DIR + "/" + destinationKeyFilename;
     PackageUtils.uploadKey(key, path, Paths.get(solrHome));
     PackageUtils.getJsonStringFromUrl(
         solrClient, "/api/node/files" + path, new ModifiableSolrParams().add("sync", "true"));
diff --git a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
index 0f9a8d50845..a1bc228cb72 100644
--- a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
+++ b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
@@ -44,7 +44,7 @@ import org.apache.solr.common.util.CommandOperation;
 import org.apache.solr.common.util.ReflectMapWriter;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.CoreContainer;
-import org.apache.solr.filestore.PackageStoreAPI;
+import org.apache.solr.filestore.FileStoreAPI;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.util.SolrJacksonAnnotationInspector;
@@ -73,8 +73,8 @@ public class PackageAPI {
   public final Read readAPI = new Read();
 
   public PackageAPI(CoreContainer coreContainer, SolrPackageLoader loader) {
-    if (coreContainer.getPackageStoreAPI() == null) {
-      throw new IllegalStateException("Must successfully load PackageStoreAPI first");
+    if (coreContainer.getFileStoreAPI() == null) {
+      throw new IllegalStateException("Must successfully load FileStoreAPI first");
     }
 
     this.coreContainer = coreContainer;
@@ -254,7 +254,7 @@ public class PackageAPI {
       }
       // first refresh my own
       packageLoader.notifyListeners(p);
-      for (String s : coreContainer.getPackageStoreAPI().shuffledNodes()) {
+      for (String s : coreContainer.getFileStoreAPI().shuffledNodes()) {
         Utils.executeGET(
             coreContainer.getUpdateShardHandler().getDefaultHttpClient(),
             coreContainer
@@ -276,8 +276,8 @@ public class PackageAPI {
         payload.addError("No files specified");
         return;
       }
-      PackageStoreAPI packageStoreAPI = coreContainer.getPackageStoreAPI();
-      packageStoreAPI.validateFiles(add.files, true, s -> payload.addError(s));
+      FileStoreAPI fileStoreAPI = coreContainer.getFileStoreAPI();
+      fileStoreAPI.validateFiles(add.files, true, s -> payload.addError(s));
       if (payload.hasError()) return;
       Packages[] finalState = new Packages[1];
       try {
@@ -426,7 +426,7 @@ public class PackageAPI {
   }
 
   void notifyAllNodesToSync(int expected) {
-    for (String s : coreContainer.getPackageStoreAPI().shuffledNodes()) {
+    for (String s : coreContainer.getFileStoreAPI().shuffledNodes()) {
       Utils.executeGET(
           coreContainer.getUpdateShardHandler().getDefaultHttpClient(),
           coreContainer
diff --git a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
index 2243d70441b..5fe62e1f46b 100644
--- a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
+++ b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
@@ -272,12 +272,12 @@ public class SolrPackageLoader implements Closeable {
         List<Path> paths = new ArrayList<>();
 
         List<String> errs = new ArrayList<>();
-        coreContainer.getPackageStoreAPI().validateFiles(version.files, true, s -> errs.add(s));
+        coreContainer.getFileStoreAPI().validateFiles(version.files, true, s -> errs.add(s));
         if (!errs.isEmpty()) {
           throw new RuntimeException("Cannot load package: " + errs);
         }
         for (String file : version.files) {
-          paths.add(coreContainer.getPackageStoreAPI().getPackageStore().getRealpath(file));
+          paths.add(coreContainer.getFileStoreAPI().getFileStore().getRealpath(file));
         }
 
         loader =
diff --git a/solr/core/src/test/org/apache/solr/filestore/TestDistribPackageStore.java b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
similarity index 96%
rename from solr/core/src/test/org/apache/solr/filestore/TestDistribPackageStore.java
rename to solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
index f4ead6626df..0b300836437 100644
--- a/solr/core/src/test/org/apache/solr/filestore/TestDistribPackageStore.java
+++ b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
@@ -62,8 +62,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @LogLevel(
-    "org.apache.solr.filestore.PackageStoreAPI=DEBUG;org.apache.solr.filestore.DistribPackageStore=DEBUG")
-public class TestDistribPackageStore extends SolrCloudTestCase {
+    "org.apache.solr.filestore.FileStoreAPI=DEBUG;org.apache.solr.filestore.DistribFileStore=DEBUG")
+public class TestDistribFileStore extends SolrCloudTestCase {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Before
@@ -77,7 +77,7 @@ public class TestDistribPackageStore extends SolrCloudTestCase {
   }
 
   @Test
-  public void testPackageStoreManagement() throws Exception {
+  public void testFileStoreManagement() throws Exception {
     MiniSolrCloudCluster cluster =
         configureCluster(4)
             .withJettyConfig(jetty -> jetty.enableV2(true))
@@ -86,7 +86,7 @@ public class TestDistribPackageStore extends SolrCloudTestCase {
     try {
 
       byte[] derFile = readFile("cryptokeys/pub_key512.der");
-      uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+      uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
 
       try {
         postFile(
@@ -175,7 +175,7 @@ public class TestDistribPackageStore extends SolrCloudTestCase {
         assertResponseValues(10, new Fetcher(url, jettySolrRunner), expected);
       }
       // Delete Jars
-      DistribPackageStore.deleteZKFileEntry(
+      DistribFileStore.deleteZKFileEntry(
           cluster.getZkClient(), "/package/mypkg/v1.0/runtimelibs.jar");
       JettySolrRunner j = cluster.getRandomJetty(random());
       String path = j.getBaseURLV2() + "/cluster/files" + "/package/mypkg/v1.0/runtimelibs.jar";
@@ -359,8 +359,7 @@ public class TestDistribPackageStore extends SolrCloudTestCase {
    * @throws IOException if there is an I/O error reading the contents
    */
   public static byte[] readFile(String fname) throws IOException {
-    try (InputStream is =
-        TestDistribPackageStore.class.getClassLoader().getResourceAsStream(fname)) {
+    try (InputStream is = TestDistribFileStore.class.getClassLoader().getResourceAsStream(fname)) {
       return is.readAllBytes();
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
index 27daaab4d9a..fab149129f2 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
@@ -20,8 +20,8 @@ package org.apache.solr.handler;
 import static java.util.Collections.singletonList;
 import static java.util.Collections.singletonMap;
 import static org.apache.solr.client.solrj.SolrRequest.METHOD.GET;
-import static org.apache.solr.filestore.TestDistribPackageStore.readFile;
-import static org.apache.solr.filestore.TestDistribPackageStore.uploadKey;
+import static org.apache.solr.filestore.TestDistribFileStore.readFile;
+import static org.apache.solr.filestore.TestDistribFileStore.uploadKey;
 import static org.hamcrest.Matchers.containsString;
 
 import java.io.IOException;
@@ -52,9 +52,9 @@ import org.apache.solr.common.util.ReflectMapWriter;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.embedded.JettySolrRunner;
-import org.apache.solr.filestore.PackageStoreAPI;
-import org.apache.solr.filestore.TestDistribPackageStore;
-import org.apache.solr.filestore.TestDistribPackageStore.Fetcher;
+import org.apache.solr.filestore.FileStoreAPI;
+import org.apache.solr.filestore.TestDistribFileStore;
+import org.apache.solr.filestore.TestDistribFileStore.Fetcher;
 import org.apache.solr.pkg.PackageAPI;
 import org.apache.solr.pkg.PackageListeners;
 import org.apache.solr.pkg.SolrPackageLoader;
@@ -173,7 +173,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     assertEquals(C3.class.getName(), rsp._getStr("/plugin/testplugin/class", null));
 
     // let's test the plugin
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("/plugin/my/plugin"), Map.of("/testkey", "testval"));
 
     // now remove the plugin
@@ -201,10 +201,10 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     version = phaser.awaitAdvanceInterruptibly(version, 10, TimeUnit.SECONDS);
 
     // let's test the plugin
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("/my-random-name/my/plugin"), Map.of("/method.name", "m1"));
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("/my-random-prefix/their/plugin"), Map.of("/method.name", "m2"));
     // now remove the plugin
     postPlugin("{remove : my-random-name}").process(cluster.getSolrClient());
@@ -263,7 +263,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
 
     version = phaser.awaitAdvanceInterruptibly(version, 10, TimeUnit.SECONDS);
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("hello/plugin"),
         Map.of(
             "/config/boolVal", "true", "/config/strVal", "Something", "/config/longVal", "1234"));
@@ -272,7 +272,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     postPlugin(singletonMap("update", p)).process(cluster.getSolrClient());
     version = phaser.awaitAdvanceInterruptibly(version, 10, TimeUnit.SECONDS);
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("hello/plugin"),
         Map.of("/config/boolVal", "true", "/config/strVal", cfg.strVal, "/config/longVal", "1234"));
 
@@ -294,7 +294,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     int version = phaser.getPhase();
 
     byte[] derFile = readFile("cryptokeys/pub_key512.der");
-    uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+    uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
     TestPackages.postFileAndWait(
         cluster,
         "runtimecode/containerplugin.v.1.jar.bin",
@@ -342,14 +342,14 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     version = phaser.awaitAdvanceInterruptibly(version, 10, TimeUnit.SECONDS);
 
     // verify the plugin creation
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("/cluster/plugin"),
         Map.of(
             "/plugin/myplugin/class", plugin.klass,
             "/plugin/myplugin/version", plugin.version));
     // let's test this now
     Callable<V2Response> invokePlugin = getPlugin("/plugin/my/path");
-    TestDistribPackageStore.assertResponseValues(invokePlugin, Map.of("/myplugin.version", "1.0"));
+    TestDistribFileStore.assertResponseValues(invokePlugin, Map.of("/myplugin.version", "1.0"));
 
     // now let's upload the jar file for version 2.0 of the plugin
     add.version = "2.0";
@@ -362,11 +362,11 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     version = phaser.awaitAdvanceInterruptibly(version, 10, TimeUnit.SECONDS);
 
     // now verify if it is indeed updated
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         getPlugin("/cluster/plugin"),
         Map.of("/plugin/myplugin/class", plugin.klass, "/plugin/myplugin/version", "2.0"));
     // invoke the plugin and test thye output
-    TestDistribPackageStore.assertResponseValues(invokePlugin, Map.of("/myplugin.version", "2.0"));
+    TestDistribFileStore.assertResponseValues(invokePlugin, Map.of("/myplugin.version", "2.0"));
 
     plugin.name = "plugin2";
     plugin.klass = "mypkg:" + C5.class.getName();
@@ -529,7 +529,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
     for (JettySolrRunner jettySolrRunner : cluster.getJettySolrRunners()) {
       String baseUrl = jettySolrRunner.getBaseUrl().toString().replace("/solr", "/api");
       String url = baseUrl + path + "?wt=javabin";
-      TestDistribPackageStore.assertResponseValues(1, new Fetcher(url, jettySolrRunner), expected);
+      TestDistribFileStore.assertResponseValues(1, new Fetcher(url, jettySolrRunner), expected);
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
index 3e8fea806e5..1bc6810af63 100644
--- a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
+++ b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
@@ -21,9 +21,9 @@ import static org.apache.solr.common.cloud.ZkStateReader.SOLR_PKGS_PATH;
 import static org.apache.solr.common.params.CommonParams.JAVABIN;
 import static org.apache.solr.common.params.CommonParams.WT;
 import static org.apache.solr.core.TestSolrConfigHandler.getFileContent;
-import static org.apache.solr.filestore.TestDistribPackageStore.checkAllNodesForFile;
-import static org.apache.solr.filestore.TestDistribPackageStore.readFile;
-import static org.apache.solr.filestore.TestDistribPackageStore.uploadKey;
+import static org.apache.solr.filestore.TestDistribFileStore.checkAllNodesForFile;
+import static org.apache.solr.filestore.TestDistribFileStore.readFile;
+import static org.apache.solr.filestore.TestDistribFileStore.uploadKey;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -68,8 +68,8 @@ import org.apache.solr.common.util.ReflectMapWriter;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.embedded.JettySolrRunner;
-import org.apache.solr.filestore.PackageStoreAPI;
-import org.apache.solr.filestore.TestDistribPackageStore;
+import org.apache.solr.filestore.FileStoreAPI;
+import org.apache.solr.filestore.TestDistribFileStore;
 import org.apache.solr.handler.RequestHandlerBase;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
@@ -121,7 +121,7 @@ public class TestPackages extends SolrCloudTestCase {
     String FILE1 = "/mypkg/runtimelibs.jar";
     String COLLECTION_NAME = "testCoreReloadingPluginColl";
     byte[] derFile = readFile("cryptokeys/pub_key512.der");
-    uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+    uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
     postFileAndWait(
         cluster,
         "runtimecode/runtimelibs.jar.bin",
@@ -140,7 +140,7 @@ public class TestPackages extends SolrCloudTestCase {
             .build();
 
     req.process(cluster.getSolrClient());
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         () ->
             new V2Request.Builder("/cluster/package")
@@ -162,7 +162,7 @@ public class TestPackages extends SolrCloudTestCase {
 
     add.version = "2.0";
     req.process(cluster.getSolrClient());
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         () ->
             new V2Request.Builder("/cluster/package")
@@ -190,7 +190,7 @@ public class TestPackages extends SolrCloudTestCase {
     String EXPR1 = "/mypkg/expressible.jar";
     String COLLECTION_NAME = "testPluginLoadingColl";
     byte[] derFile = readFile("cryptokeys/pub_key512.der");
-    uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+    uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
     postFileAndWait(
         cluster,
         "runtimecode/runtimelibs.jar.bin",
@@ -226,7 +226,7 @@ public class TestPackages extends SolrCloudTestCase {
         .process(cluster.getSolrClient());
     cluster.waitForActiveCollection(COLLECTION_NAME, 2, 4);
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         () ->
             new V2Request.Builder("/cluster/package")
@@ -287,7 +287,7 @@ public class TestPackages extends SolrCloudTestCase {
     verifyComponent(
         cluster.getSolrClient(), COLLECTION_NAME, "expressible", "mincopy", "mypkg", "1.0");
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         cluster.getSolrClient(),
         new GenericSolrRequest(
@@ -525,7 +525,7 @@ public class TestPackages extends SolrCloudTestCase {
       Map<String, Object> expected)
       throws Exception {
     try (HttpSolrClient client = (HttpSolrClient) jetty.newClient()) {
-      TestDistribPackageStore.assertResponseValues(
+      TestDistribFileStore.assertResponseValues(
           10,
           () -> {
             Object o = Utils.executeGET(client.getHttpClient(), jetty.getBaseUrl() + uri, parser);
@@ -559,7 +559,7 @@ public class TestPackages extends SolrCloudTestCase {
 
     GenericSolrRequest req1 =
         new GenericSolrRequest(SolrRequest.METHOD.GET, "/config/" + componentType, params);
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         client,
         req1,
@@ -597,7 +597,7 @@ public class TestPackages extends SolrCloudTestCase {
     expectError(req, cluster.getSolrClient(), errPath, FILE1 + " has no signature");
     // now we upload the keys
     byte[] derFile = readFile("cryptokeys/pub_key512.der");
-    uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+    uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
     // and upload the same file with a different name, but it has proper signature
     postFileAndWait(
         cluster,
@@ -617,7 +617,7 @@ public class TestPackages extends SolrCloudTestCase {
     req.process(cluster.getSolrClient());
 
     // Now verify the data in ZK
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         1,
         () ->
             new MapWriterMap(
@@ -641,7 +641,7 @@ public class TestPackages extends SolrCloudTestCase {
     // this request should succeed
     req.process(cluster.getSolrClient());
     // no verify the data (/packages.json) in ZK
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         1,
         () ->
             new MapWriterMap(
@@ -667,7 +667,7 @@ public class TestPackages extends SolrCloudTestCase {
     delVersion.version = "0.12"; // correct version. Should succeed
     req.process(cluster.getSolrClient());
     // Verify with ZK that the data is correct
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         1,
         () ->
             new MapWriterMap(
@@ -681,7 +681,7 @@ public class TestPackages extends SolrCloudTestCase {
     for (JettySolrRunner jetty : cluster.getJettySolrRunners()) {
       String path =
           jetty.getBaseUrl().toString().replace("/solr", "/api") + "/cluster/package?wt=javabin";
-      TestDistribPackageStore.assertResponseValues(
+      TestDistribFileStore.assertResponseValues(
           10,
           new Callable<NavigableObject>() {
             @Override
@@ -744,7 +744,7 @@ public class TestPackages extends SolrCloudTestCase {
 
     String FILE1 = "/schemapkg/schema-plugins.jar";
     byte[] derFile = readFile("cryptokeys/pub_key512.der");
-    uploadKey(derFile, PackageStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
+    uploadKey(derFile, FileStoreAPI.KEYS_DIR + "/pub_key512.der", cluster);
     postFileAndWait(
         cluster,
         "runtimecode/schema-plugins.jar.bin",
@@ -770,7 +770,7 @@ public class TestPackages extends SolrCloudTestCase {
             .build();
     req.process(cluster.getSolrClient());
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         () ->
             new V2Request.Builder("/cluster/package")
@@ -811,7 +811,7 @@ public class TestPackages extends SolrCloudTestCase {
             .build();
     req.process(cluster.getSolrClient());
 
-    TestDistribPackageStore.assertResponseValues(
+    TestDistribFileStore.assertResponseValues(
         10,
         () ->
             new V2Request.Builder("/cluster/package")
@@ -844,7 +844,7 @@ public class TestPackages extends SolrCloudTestCase {
         new MapSolrParams(Map.of("collection", COLLECTION_NAME, WT, JAVABIN, "meta", "true"));
 
     GenericSolrRequest req = new GenericSolrRequest(SolrRequest.METHOD.GET, path, params);
-    TestDistribPackageStore.assertResponseValues(10, client, req, expected);
+    TestDistribFileStore.assertResponseValues(10, client, req, expected);
   }
 
   public static void postFileAndWait(
@@ -853,10 +853,10 @@ public class TestPackages extends SolrCloudTestCase {
     @SuppressWarnings("ByteBufferBackingArray") // this is the result of a call to wrap()
     String sha512 = DigestUtils.sha512Hex(fileContent.array());
 
-    TestDistribPackageStore.postFile(
+    TestDistribFileStore.postFile(
         cluster.getSolrClient(), fileContent, path, sig); // has file, but no signature
 
-    TestDistribPackageStore.checkAllNodesForFile(
+    TestDistribFileStore.checkAllNodesForFile(
         cluster, path, Map.of(":files:" + path + ":sha512", sha512), false);
   }