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