You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2019/11/04 09:02:28 UTC

[lucene-solr] 02/03: Cleanup unused code

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

ishan pushed a commit to branch jira/solr-13662-2
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 6f7c32d292ee06cb14e83948e37dbf947501470a
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Sun Nov 3 16:16:05 2019 +0530

    Cleanup unused code
---
 .../{pf4j => }/DefaultVersionManager.java          |   5 +-
 .../{pf4j => }/PackageManagerException.java        |  12 +-
 .../{pf4j => }/SimpleFileDownloader.java           |   6 +-
 .../solr/packagemanager/SolrPackageManager.java    |  23 ---
 .../solr/packagemanager/SolrPackageRepository.java |  11 +-
 .../solr/packagemanager/SolrUpdateManager.java     | 191 +--------------------
 .../solr/packagemanager/pf4j/BasicVerifier.java    |  40 -----
 .../solr/packagemanager/pf4j/CompoundVerifier.java |  63 -------
 .../solr/packagemanager/pf4j/FileDownloader.java   |  39 -----
 .../solr/packagemanager/pf4j/FileVerifier.java     |  63 -------
 .../packagemanager/pf4j/Sha512SumVerifier.java     |  83 ---------
 .../solr/packagemanager/pf4j/StringUtils.java      |  56 ------
 .../solr/packagemanager/pf4j/VerifyException.java  |  33 ----
 .../src/java/org/apache/solr/util/PackageTool.java |  10 +-
 14 files changed, 14 insertions(+), 621 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/DefaultVersionManager.java b/solr/core/src/java/org/apache/solr/packagemanager/DefaultVersionManager.java
similarity index 88%
rename from solr/core/src/java/org/apache/solr/packagemanager/pf4j/DefaultVersionManager.java
rename to solr/core/src/java/org/apache/solr/packagemanager/DefaultVersionManager.java
index 8ccce47..91d69e4 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/DefaultVersionManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/DefaultVersionManager.java
@@ -13,10 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.packagemanager.pf4j;
+package org.apache.solr.packagemanager;
 
 import com.github.zafarkhaja.semver.Version;
 import com.github.zafarkhaja.semver.expr.Expression;
+import com.google.common.base.Strings;
 
 /**
  * This implementation uses jSemVer (a Java implementation of the SemVer Specification).
@@ -33,7 +34,7 @@ public class DefaultVersionManager {
      *
      */
     public boolean checkVersionConstraint(String version, String constraint) {
-        return StringUtils.isNullOrEmpty(constraint) || Version.valueOf(version).satisfies(constraint);
+        return Strings.isNullOrEmpty(constraint) || Version.valueOf(version).satisfies(constraint);
     }
 
     public int compareVersions(String v1, String v2) {
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/PackageManagerException.java b/solr/core/src/java/org/apache/solr/packagemanager/PackageManagerException.java
similarity index 77%
rename from solr/core/src/java/org/apache/solr/packagemanager/pf4j/PackageManagerException.java
rename to solr/core/src/java/org/apache/solr/packagemanager/PackageManagerException.java
index 76fb761..73926f6 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/PackageManagerException.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/PackageManagerException.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.packagemanager.pf4j;
+package org.apache.solr.packagemanager;
 
 
 /**
@@ -38,13 +38,5 @@ public class PackageManagerException extends RuntimeException {
     public PackageManagerException(String message, Throwable cause) {
         super(message, cause);
     }
-
-    public PackageManagerException(Throwable cause, String message, Object... args) {
-        super(StringUtils.format(message, args), cause);
-    }
-
-    public PackageManagerException(String message, Object... args) {
-        super(StringUtils.format(message, args));
-    }
-
+    
 }
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/SimpleFileDownloader.java b/solr/core/src/java/org/apache/solr/packagemanager/SimpleFileDownloader.java
similarity index 97%
rename from solr/core/src/java/org/apache/solr/packagemanager/pf4j/SimpleFileDownloader.java
rename to solr/core/src/java/org/apache/solr/packagemanager/SimpleFileDownloader.java
index 5b7c3ae..ff45d56 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/SimpleFileDownloader.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/SimpleFileDownloader.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.packagemanager.pf4j;
+package org.apache.solr.packagemanager;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,7 +37,7 @@ import java.nio.file.attribute.FileTime;
  *
  * @author Decebal Suiu
  */
-public class SimpleFileDownloader implements FileDownloader {
+public class SimpleFileDownloader {
 
     private static final Logger log = LoggerFactory.getLogger(SimpleFileDownloader.class);
 
@@ -59,7 +59,7 @@ public class SimpleFileDownloader implements FileDownloader {
             case "file":
                 return copyLocalFile(fileUrl);
             default:
-                throw new PackageManagerException("URL protocol {} not supported", fileUrl.getProtocol());
+                throw new PackageManagerException("URL protocol "+fileUrl.getProtocol()+" not supported");
         }
     }
 
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
index 28808b5..7554397 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageManager.java
@@ -23,8 +23,6 @@ import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.packagemanager.SolrPackage.Command;
 import org.apache.solr.packagemanager.SolrPackage.Metadata;
 import org.apache.solr.packagemanager.SolrPackage.Plugin;
-import org.apache.solr.packagemanager.pf4j.DefaultVersionManager;
-import org.apache.solr.packagemanager.pf4j.PackageManagerException;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -59,10 +57,6 @@ public class SolrPackageManager implements Closeable {
     List<SolrPackageInstance> ret = new ArrayList<SolrPackageInstance>();
     packages = new HashMap<String, List<SolrPackageInstance>>();
     try {
-      /*String clusterPropsZnode = IOUtils.toString(new URL(solrBaseUrl + "/solr/admin/zookeeper?detail=true&path=/clusterprops.json&wt=json").openStream(), "UTF-8");
-      String clusterPropsJson = ((Map)new ObjectMapper().readValue(clusterPropsZnode, Map.class).get("znode")).get("data").toString();
-      Map packagesJson = (Map)new ObjectMapper().readValue(clusterPropsJson, Map.class).get("packages");*/
-      
       String clusterPropsJson = null;
       Map packagesJson = null;
       
@@ -228,23 +222,6 @@ public class SolrPackageManager implements Closeable {
     return success;
   }
 
-  public boolean deployUpdatePackage(String pluginId, String version, List<String> collections) {
-    SolrPackageInstance pkg = getPackage(pluginId, version);
-    for (Plugin p: pkg.getPlugins()) {
-
-      System.out.println(p.updateCommand);
-      for (String collection: collections) {
-        System.out.println("Executing " + p.updateCommand + " for collection:" + collection);
-        postJson(solrBaseUrl + "/solr/"+collection+"/config", p.updateCommand);
-      }
-    }
-    boolean success = verify(pkg, collections);
-    if (success) {
-      System.out.println("Deployed and verified package: "+pkg.id+", version: "+pkg.version);
-    }
-    return true;
-  }
-
   String getStringFromStream(String url) {
     return get(url);
   }
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageRepository.java b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageRepository.java
index eaca740..45819e1 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageRepository.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/SolrPackageRepository.java
@@ -10,10 +10,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
-import org.apache.solr.packagemanager.pf4j.CompoundVerifier;
-import org.apache.solr.packagemanager.pf4j.FileDownloader;
-import org.apache.solr.packagemanager.pf4j.FileVerifier;
-import org.apache.solr.packagemanager.pf4j.SimpleFileDownloader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,16 +38,11 @@ public class SolrPackageRepository {
   }
 
   @JsonIgnore
-  public FileDownloader getFileDownloader() {
+  public SimpleFileDownloader getFileDownloader() {
       return new SimpleFileDownloader();
   }
 
   @JsonIgnore
-  public FileVerifier getFileVerfier() {
-      return new CompoundVerifier();
-  }
-
-  @JsonIgnore
   private Map<String, SolrPackage> packages;
 
   public Map<String, SolrPackage> getPackages() {
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/SolrUpdateManager.java b/solr/core/src/java/org/apache/solr/packagemanager/SolrUpdateManager.java
index 78a448a..05d1aef 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/SolrUpdateManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/SolrUpdateManager.java
@@ -3,8 +3,6 @@ package org.apache.solr.packagemanager;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
 import java.net.URL;
 import java.nio.ByteBuffer;
 import java.nio.file.Path;
@@ -15,16 +13,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpPost;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;
 import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.entity.mime.MultipartEntity;
-import org.apache.http.entity.mime.content.FileBody;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.solr.client.solrj.SolrClient;
@@ -37,12 +28,6 @@ import org.apache.solr.client.solrj.response.V2Response;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
-import org.apache.solr.packagemanager.pf4j.CompoundVerifier;
-import org.apache.solr.packagemanager.pf4j.DefaultVersionManager;
-import org.apache.solr.packagemanager.pf4j.FileDownloader;
-import org.apache.solr.packagemanager.pf4j.FileVerifier;
-import org.apache.solr.packagemanager.pf4j.PackageManagerException;
-import org.apache.solr.packagemanager.pf4j.SimpleFileDownloader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -119,48 +104,6 @@ public class SolrUpdateManager {
   }
 
   private boolean updateOrInstallPackage(Operation op, String id, String version) throws PackageManagerException {
-    /*Path downloaded = downloadPackage(id, version);
-
-    SolrPackageInstance existingPlugin = packageManager.getPackage(id);
-    if (existingPlugin != null && version.equals(existingPlugin.getVersion())) {
-      throw new PackageManagerException("Plugin already installed.");
-    }
-
-    SolrPackageRelease release = null;
-    String repository = null;
-    for (SolrPackage pkg: getPackages()) {
-      if (id.equals(pkg.id)) {
-        for (SolrPackageRelease r: pkg.versions) {
-          if (version.equals(r.version) ) {
-            release = r;
-            repository = pkg.getRepositoryId();
-            break;
-          }
-        }
-      }
-    }
-
-    if (release == null) {
-      throw new PackageManagerException("Couldn't find the release..");
-    }
-
-    String sha256 = uploadToBlobHandler(downloaded);
-    String metadataSha256;
-    try {
-      metadataSha256 = uploadToBlobHandler(new ObjectMapper().writeValueAsString(release.metadata));
-    } catch (IOException e) {
-      throw new PackageManagerException(e);
-    }
-
-    addOrUpdatePackage(op, id, version, sha256, repository, release.sig, metadataSha256, release.metadata);
-    
-    return true;*/
-    
-    //postFile(cluster.getSolrClient(), getFileContent("runtimecode/runtimelibs.jar.bin"),
-    //    "/package/mypkg/v1.0/runtimelibs.jar",
-    //    "j+Rflxi64tXdqosIhbusqi6GTwZq8znunC/dzwcWW0/dHlFGKDurOaE1Nz9FSPJuXbHkVLj638yZ0Lp1ssnoYA=="
-    //);
-
     SolrPackageInstance existingPlugin = packageManager.getPackage(id, version);
     if (existingPlugin != null && version.equals(existingPlugin.getVersion())) {
       throw new PackageManagerException("Plugin already installed.");
@@ -233,45 +176,6 @@ public class SolrUpdateManager {
   private boolean addOrUpdatePackage(Operation op, SolrClient solrClient, String id, String version, String files[], String repository, String sig,
       String manifest, String manifestSHA512) {
     
-    /*String json;
-    
-    if (op.equals(Operation.INSTALL)) {
-      json = "{add: ";
-    } else {
-      json = "{update: ";
-    }
-    json = json
-        + "{name: '"+id+"', "
-        + "version: '"+version+"', "
-        + "repository: '"+repository+"', "
-        + "blob: {sha256: '"+sha256+"', sig: '"+sig+"'}, "
-        + "metadata: '"+metadataSha256+"'"
-        + "}}";
-
-    System.out.println("Posting package: "+json);
-    try (CloseableHttpClient client = createTrustAllHttpClientBuilder()) {
-      HttpPost httpPost = new HttpPost(solrBaseUrl + "/api/cluster/package");
-      StringEntity entity = new StringEntity(json);
-      httpPost.setEntity(entity);
-      httpPost.setHeader("Accept", "application/json");
-      httpPost.setHeader("Content-type", "application/json");
-
-      try (CloseableHttpResponse response = client.execute(httpPost)) {
-        HttpEntity rspEntity = response.getEntity();
-        if (rspEntity != null) {
-          InputStream is = rspEntity.getContent();
-          StringWriter writer = new StringWriter();
-          IOUtils.copy(is, writer, "UTF-8");
-          String results = writer.toString();
-          System.out.println(results);
-        }
-      } catch (IOException e) {
-        e.printStackTrace();
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-    }*/
-    
     Package.AddVersion add = new Package.AddVersion();
     add.version = version;
     add.pkg = id;
@@ -303,57 +207,6 @@ public class SolrUpdateManager {
     return HttpClients.custom().setSSLSocketFactory(sslsf).build();
   }
   
-  private String uploadToBlobHandler(Path downloaded) throws PackageManagerException {
-    String url = solrBaseUrl + "/api/cluster/blob";
-    File file = downloaded.toFile();
-    try (CloseableHttpClient client = createTrustAllHttpClientBuilder()) { //HttpClients.createDefault();) {
-      HttpPost post = new HttpPost(url);
-
-      MultipartEntity entity = new MultipartEntity();
-      entity.addPart("file", new FileBody(file));
-      post.setEntity(entity);
-
-      try {
-        HttpResponse response = client.execute(post);
-
-        HttpEntity rspEntity = response.getEntity();
-        if (rspEntity != null) {
-          InputStream is = rspEntity.getContent();
-          StringWriter writer = new StringWriter();
-          IOUtils.copy(is, writer, "UTF-8");
-          String results = writer.toString();
-          System.out.println(results);
-          String sha = new ObjectMapper().readValue(results, Map.class).get("sha256").toString();
-          //System.out.println("SHA: "+sha);
-          return sha;
-        }
-      } catch (IOException e) {
-        // TODO Auto-generated catch block
-        throw e;
-      }
-    } catch (Exception e1) {
-      // TODO Auto-generated catch block
-      e1.printStackTrace();
-      throw new PackageManagerException(e1);
-    }
-    return null;
-  }
-  
-  private String uploadToBlobHandler(String json) throws IOException, PackageManagerException {
-    System.out.println("Trying to upload the blob: "+json);
-    FileUtils.writeStringToFile(new File("tmp-metadata"), json);
-    return uploadToBlobHandler(new File("tmp-metadata").toPath());
-  }
-
-  /**
-   * Downloads a plugin with given coordinates, runs all {@link FileVerifier}s
-   * and returns a path to the downloaded file.
-   *
-   * @param id of plugin
-   * @param version of plugin or null to download latest
-   * @return Path to file which will reside in a temporary folder in the system default temp area
-   * @throws PackageManagerException if download failed
-   */
   protected Path downloadPackage(String id, String version) throws PackageManagerException {
       try {
           SolrPackageRelease release = findReleaseForPlugin(id, version);
@@ -362,17 +215,11 @@ public class SolrUpdateManager {
           //nocommit verify this download
           return downloaded;
       } catch (IOException e) {
-          throw new PackageManagerException(e, "Error during download of plugin {}", id);
+          throw new PackageManagerException("Error during download of plugin " + id, e);
       }
   }
 
-  /**
-   * Finds the {@link FileDownloader} to use for this repository.
-   *
-   * @param pluginId the plugin we wish to download
-   * @return FileDownloader instance
-   */
-  protected FileDownloader getFileDownloader(String pluginId) {
+  protected SimpleFileDownloader getFileDownloader(String pluginId) {
       for (SolrPackageRepository ur : repositories) {
           if (ur.getPlugin(pluginId) != null && ur.getFileDownloader() != null) {
               return ur.getFileDownloader();
@@ -382,36 +229,11 @@ public class SolrUpdateManager {
       return new SimpleFileDownloader();
   }
 
-  /**
-   * Gets a file verifier to use for this plugin. First tries to use custom verifier
-   * configured for the repository, then fallback to the default CompoundVerifier
-   *
-   * @param pluginId the plugin we wish to download
-   * @return FileVerifier instance
-   */
-  protected FileVerifier getFileVerifier(String pluginId) {
-      for (SolrPackageRepository ur : repositories) {
-          if (ur.getPlugin(pluginId) != null && ur.getFileVerfier() != null) {
-              return ur.getFileVerfier();
-          }
-      }
-
-      return new CompoundVerifier();
-  }
-  
-  /**
-   * Resolves Release from id and version.
-   *
-   * @param id of plugin
-   * @param version of plugin or null to locate latest version
-   * @return PluginRelease for downloading
-   * @throws PackageManagerException if id or version does not exist
-   */
   public SolrPackageRelease findReleaseForPlugin(String id, String version) throws PackageManagerException {
       SolrPackage pluginInfo = getPackagesMap().get(id);
       if (pluginInfo == null) {
           log.info("Plugin with id {} does not exist in any repository", id);
-          throw new PackageManagerException("Plugin with id {} not found in any repository", id);
+          throw new PackageManagerException("Plugin with id "+id+" not found in any repository");
       }
 
       if (version == null) {
@@ -424,14 +246,9 @@ public class SolrUpdateManager {
           }
       }
 
-      throw new PackageManagerException("Plugin {} with version @{} does not exist in the repository", id, version);
+      throw new PackageManagerException("Plugin "+id+" with version @"+version+" does not exist in the repository");
   }
   
-  /**
-   * Returns the last release version of this plugin for given system version, regardless of release date.
-   *
-   * @return PluginRelease which has the highest version number
-   */
   public SolrPackageRelease getLastPackageRelease(String id) {
       SolrPackage pluginInfo = getPackagesMap().get(id);
       if (pluginInfo == null) {
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/BasicVerifier.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/BasicVerifier.java
deleted file mode 100644
index f912b06..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/BasicVerifier.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-/**
- * Verifies that the file exists is a regular file and has a non-null size
- */
-public class BasicVerifier implements FileVerifier {
-    /**
-     * Verifies a plugin release according to certain rules
-     *
-     * @param context the file verifier context object
-     * @param file    the path to the downloaded file itself
-     * @throws IOException     if there was a problem accessing file
-     * @throws VerifyException in case of problems verifying the file
-     */
-    @Override
-    public void verify(Context context, Path file) throws VerifyException, IOException {
-        if (!Files.isRegularFile(file) || Files.size(file) == 0) {
-            throw new VerifyException("File {} is not a regular file or has size 0", file);
-        }
-    }
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/CompoundVerifier.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/CompoundVerifier.java
deleted file mode 100644
index 481ade7..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/CompoundVerifier.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class CompoundVerifier implements FileVerifier {
-    /**
-     * Default list of verifiers
-     */
-    public static final List<FileVerifier> ALL_DEFAULT_FILE_VERIFIERS = Arrays.asList(
-                new BasicVerifier(),
-                new Sha512SumVerifier());
-
-    private List<FileVerifier> verifiers = new ArrayList<>();
-
-    /**
-     * Default constructor which will add the default verifiers to start with
-     */
-    public CompoundVerifier() {
-        setVerifiers(ALL_DEFAULT_FILE_VERIFIERS);
-    }
-
-    /**
-     * Constructs a Compound verifier using the supplied list of verifiers instead of the default ones
-     * @param verifiers the list of verifiers to apply
-     */
-    public CompoundVerifier(List<FileVerifier> verifiers) {
-        this.verifiers = verifiers;
-    }
-
-    @Override
-    public void verify(Context context, Path file) throws IOException, VerifyException {
-        for (FileVerifier verifier : getVerifiers()) {
-            verifier.verify(context, file);
-        }
-    }
-
-    public List<FileVerifier> getVerifiers() {
-        return verifiers;
-    }
-
-    public void setVerifiers(List<FileVerifier> verifiers) {
-        this.verifiers = verifiers;
-    }
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileDownloader.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileDownloader.java
deleted file mode 100644
index 32f6fe4..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileDownloader.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-
-import java.io.IOException;
-import java.net.URL;
-import java.nio.file.Path;
-
-/**
- * Interface to download a file.
- */
-public interface FileDownloader {
-
-    /**
-     * Downloads a file to destination. The implementation should download to a temporary folder.
-     * Implementations may choose to support different protocols such as http, https, ftp, file...
-     * The path returned must be of temporary nature and will most probably be moved/deleted by consumer.
-     *
-     * @param fileUrl the URL representing the file to download
-     * @return Path of downloaded file, typically in a temporary folder
-     * @throws IOException if there was an IO problem during download
-     * @throws PackageManagerException in case of other problems, such as unsupported protocol
-     */
-    Path downloadFile(URL fileUrl) throws PackageManagerException, IOException;
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileVerifier.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileVerifier.java
deleted file mode 100644
index 5f755aa..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/FileVerifier.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.solr.packagemanager.SolrPackage;
-
-/**
- * Interface to verify a file.
- */
-public interface FileVerifier {
-
-    void verify(Context context, Path file) throws IOException, VerifyException;
-
-    /**
-     * Context to be passed to file verifiers
-     */
-    class Context {
-        public String id;
-        public Date date;
-        public String version;
-        public String requires;
-        public String url;
-        public String sha512sum;
-        public Map<String,Object> meta = new HashMap<>();
-
-        public Context(String id, SolrPackage.SolrPackageRelease pluginRelease) {
-            this.id = id;
-            this.date = pluginRelease.date;
-            this.version = pluginRelease.version;
-            this.requires = pluginRelease.requires;
-            this.url = pluginRelease.url;
-            this.sha512sum = pluginRelease.sha512sum;
-        }
-
-        public Context(String id, Date date, String version, String requires, String url, String sha512sum) {
-            this.id = id;
-            this.date = date;
-            this.version = version;
-            this.requires = requires;
-            this.url = url;
-            this.sha512sum = sha512sum;
-        }
-    }
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/Sha512SumVerifier.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/Sha512SumVerifier.java
deleted file mode 100644
index 26f2535..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/Sha512SumVerifier.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-import org.apache.commons.codec.digest.DigestUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.lang.invoke.MethodHandles;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-/**
- * Verifies that the SHA512 checksum of a downloaded file equals the checksum given in
- * the plugins.json descriptor. This helps validate that the file downloaded is exactly
- * the same as intended. Especially useful when dealing with meta repositories pointing
- * to S3 or other 3rd party download locations that could have been tampered with.
- */
-public class Sha512SumVerifier implements FileVerifier {
-    private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
-    /**
-     * Verifies a plugin release according to certain rules
-     *
-     * @param context the file verifier context object
-     * @param file    the path to the downloaded file itself
-     * @throws IOException     if there was a problem accessing file
-     * @throws VerifyException in case of problems verifying the file
-     */
-    @Override
-    public void verify(Context context, Path file) throws VerifyException, IOException {
-        String expectedSha512sum;
-        try {
-            if (context.sha512sum == null) {
-                log.debug("No sha512 checksum specified, skipping verification");
-                return;
-            } else if (context.sha512sum.equalsIgnoreCase(".sha512")) {
-                String url = context.url.substring(0, context.url.lastIndexOf(".")) + ".sha512";
-                expectedSha512sum = getUrlContents(url).split(" ")[0].trim();
-            } else if (context.sha512sum.startsWith("http")) {
-                expectedSha512sum = getUrlContents(context.sha512sum).split(" ")[0].trim();
-            } else {
-                expectedSha512sum = context.sha512sum;
-            }
-        } catch (IOException e) {
-            throw new VerifyException(e, "SHA512 checksum verification failed, could not download SHA512 file ({})", context.sha512sum);
-        }
-
-        log.debug("Verifying sha512 checksum of file {}", file.getFileName());
-        String actualSha512sum = DigestUtils.sha512Hex(Files.newInputStream(file));
-        if (actualSha512sum.equalsIgnoreCase(expectedSha512sum)) {
-            log.debug("Checksum OK");
-            return;
-        }
-        throw new VerifyException("SHA512 checksum of downloaded file " + file.getFileName()
-                + " does not match that from plugin descriptor. Got " + actualSha512sum
-                + " but expected " + expectedSha512sum);
-    }
-
-    private String getUrlContents(String url) throws IOException {
-        try (BufferedReader reader = new BufferedReader(new InputStreamReader(
-                new URL(url).openStream()))) {
-            return reader.readLine();
-        }
-    }
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/StringUtils.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/StringUtils.java
deleted file mode 100644
index a1a3ad3..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/StringUtils.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2012 Decebal Suiu
- *
- * Licensed 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.packagemanager.pf4j;
-
-/**
- * @author Decebal Suiu
- */
-public class StringUtils {
-
-	public static boolean isNullOrEmpty(String str) {
-		return (str == null) || str.isEmpty();
-	}
-
-    public static boolean isNotNullOrEmpty(String str) {
-        return !isNullOrEmpty(str);
-    }
-
-    /**
-     * Format the string. Replace "{}" with %s and format the string using {@link String#format(String, Object...)}.
-     */
-    public static String format(String str, Object... args) {
-        str = str.replaceAll("\\{}", "%s");
-
-        return String.format(str, args);
-    }
-
-    public static String addStart(String str, String add) {
-        if (isNullOrEmpty(add)) {
-            return str;
-        }
-
-        if (isNullOrEmpty(str)) {
-            return add;
-        }
-
-        if (!str.startsWith(add)) {
-            return add + str;
-        }
-
-        return str;
-    }
-
-}
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/VerifyException.java b/solr/core/src/java/org/apache/solr/packagemanager/pf4j/VerifyException.java
deleted file mode 100644
index e893963..0000000
--- a/solr/core/src/java/org/apache/solr/packagemanager/pf4j/VerifyException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2012-present the original author or authors.
- *
- * Licensed 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.packagemanager.pf4j;
-
-/**
- * Marker exception for plugin verification failure
- */
-public class VerifyException extends PackageManagerException {
-    public VerifyException(String message) {
-        super(message);
-    }
-
-    public VerifyException(Throwable cause, String message, Object... args) {
-        super(cause, message, args);
-    }
-
-    public VerifyException(String message, Object... args) {
-        super(message, args);
-    }
-}
diff --git a/solr/core/src/java/org/apache/solr/util/PackageTool.java b/solr/core/src/java/org/apache/solr/util/PackageTool.java
index 0138f6e..180ebc3 100644
--- a/solr/core/src/java/org/apache/solr/util/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/util/PackageTool.java
@@ -36,13 +36,13 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.config.Configurator;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.common.cloud.SolrZkClient;
+import org.apache.solr.packagemanager.PackageManagerException;
 import org.apache.solr.packagemanager.SolrPackage;
 import org.apache.solr.packagemanager.SolrPackage.SolrPackageRelease;
 import org.apache.solr.packagemanager.SolrPackageInstance;
 import org.apache.solr.packagemanager.SolrPackageManager;
 import org.apache.solr.packagemanager.SolrPackageRepository;
 import org.apache.solr.packagemanager.SolrUpdateManager;
-import org.apache.solr.packagemanager.pf4j.PackageManagerException;
 import org.apache.solr.util.SolrCLI.StatusTool;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
@@ -111,9 +111,6 @@ public class PackageTool extends SolrCLI.ToolBase {
                   cli.getArgList().get(1).toString().split(":")[1]: null;
               deploy(packageName, version, cli.hasOption("update"), colls, params);
               break;
-            case "redeploy":
-              redeploy(cli.getArgList().subList(1, cli.getArgList().size()));
-              break;
             case "update":
               if (cli.getArgList().size()==1) {
                 update();
@@ -188,11 +185,6 @@ public class PackageTool extends SolrCLI.ToolBase {
         Arrays.asList(collections), parameters));
   }
 
-  protected void redeploy(List args) throws PackageManagerException {
-    throw new UnsupportedOperationException("redeploy not supported");
-    //System.out.println(packageManager.deployUpdatePackage(args.get(0).toString(), args.subList(1, args.size())));
-  }
-
   protected void update() throws PackageManagerException {
     if (updateManager.hasUpdates()) {
       System.out.println("Available updates:\n-----");