Use simplified API signatures. @EndPoint annotation can be attached to a method and it's posisble to have just a single parameter for an end point

This commit is contained in:
noble 2020-06-25 16:12:54 +10:00
parent 3000bbd05a
commit 73a5016ea7
2 changed files with 17 additions and 25 deletions

View File

@ -32,7 +32,6 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.solr.api.Command;
import org.apache.solr.api.EndPoint;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.common.MapWriter;
@ -128,15 +127,14 @@ public class PackageStoreAPI {
}
@EndPoint(
path = "/cluster/files/*",
method = SolrRequest.METHOD.PUT,
permission = PermissionNameProvider.Name.FILESTORE_WRITE_PERM)
public class FSWrite {
static final String TMP_ZK_NODE = "/packageStoreWriteInProgress";
@Command
@EndPoint(
path = "/cluster/files/*",
method = SolrRequest.METHOD.PUT,
permission = PermissionNameProvider.Name.FILESTORE_WRITE_PERM)
public void upload(SolrQueryRequest req, SolrQueryResponse rsp) {
if (!coreContainer.getPackageLoader().getPackageAPI().isEnabled()) {
throw new RuntimeException(PackageAPI.ERR_MSG);
@ -230,12 +228,11 @@ public class PackageStoreAPI {
return new MetaData(vals);
}
@EndPoint(
path = "/node/files/*",
method = SolrRequest.METHOD.GET,
permission = PermissionNameProvider.Name.FILESTORE_READ_PERM)
public class FSRead {
@Command
@EndPoint(
path = "/node/files/*",
method = SolrRequest.METHOD.GET,
permission = PermissionNameProvider.Name.FILESTORE_READ_PERM)
public void read(SolrQueryRequest req, SolrQueryResponse rsp) {
String path = req.getPathTemplateValues().get("*");
String pathCopy = path;

View File

@ -60,7 +60,6 @@ import static org.apache.solr.security.PermissionNameProvider.Name.PACKAGE_READ_
*
*/
public class PackageAPI {
public static final String PACKAGES = "packages";
public final boolean enablePackages = Boolean.parseBoolean(System.getProperty("enable.packages", "false"));
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@ -231,7 +230,7 @@ public class PackageAPI {
public class Edit {
@Command(name = "refresh")
public void refresh(SolrQueryRequest req, SolrQueryResponse rsp, PayloadObj<String> payload) {
public void refresh(PayloadObj<String> payload) {
String p = payload.get();
if (p == null) {
payload.addError("Package null");
@ -249,14 +248,11 @@ public class PackageAPI {
coreContainer.getZkController().zkStateReader.getBaseUrlForNodeName(s).replace("/solr", "/api") + "/cluster/package?wt=javabin&omitHeader=true&refreshPackage=" + p,
Utils.JAVABINCONSUMER);
}
}
@Command(name = "add")
@SuppressWarnings({"unchecked"})
public void add(SolrQueryRequest req, SolrQueryResponse rsp, PayloadObj<Package.AddVersion> payload) {
public void add(PayloadObj<Package.AddVersion> payload) {
if (!checkEnabled(payload)) return;
Package.AddVersion add = payload.get();
if (add.files.isEmpty()) {
@ -307,7 +303,7 @@ public class PackageAPI {
}
@Command(name = "delete")
public void del(SolrQueryRequest req, SolrQueryResponse rsp, PayloadObj<Package.DelVersion> payload) {
public void del(PayloadObj<Package.DelVersion> payload) {
if (!checkEnabled(payload)) return;
Package.DelVersion delVersion = payload.get();
try {
@ -362,14 +358,13 @@ public class PackageAPI {
return true;
}
@EndPoint(
method = SolrRequest.METHOD.GET,
path = {"/cluster/package/",
"/cluster/package/{name}"},
permission = PACKAGE_READ_PERM
)
public class Read {
@Command()
@EndPoint(
method = SolrRequest.METHOD.GET,
path = {"/cluster/package/",
"/cluster/package/{name}"},
permission = PACKAGE_READ_PERM
)
public void get(SolrQueryRequest req, SolrQueryResponse rsp) {
String refresh = req.getParams().get("refreshPackage");
if (refresh != null) {