You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ge...@apache.org on 2023/06/27 19:31:21 UTC

[solr] branch main updated: SOLR-16395: Avoid Jersey resource inheritance

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

gerlowskija 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 175fb87d94c SOLR-16395: Avoid Jersey resource inheritance
175fb87d94c is described below

commit 175fb87d94c4d5bde5d63fc630f8ace1a9548ea5
Author: Jason Gerlowski <ge...@apache.org>
AuthorDate: Tue Jun 27 14:08:47 2023 -0400

    SOLR-16395: Avoid Jersey resource inheritance
    
    Prior to this commit GetSchemaFieldAPI inherited from a parent resource
    class, GetSchemaAPI.
    
    The "strict validation" linting that Jersey offers (see the config
    setting in JerseyApplications.java) complained about this, as it was
    detecting that the endpoints offered by GetSchemaAPI were being
    shadowed.
    
    This commit removes this inheritance, so that Jersey's validation (when
    enabled) can complete successfully on newly created SolrCores.
---
 .../java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java  | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
index b5c3fbbb2a7..2ad7db4d863 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/api/GetSchemaFieldAPI.java
@@ -28,6 +28,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
+import org.apache.solr.api.JerseyResource;
 import org.apache.solr.common.MapWriter;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.cloud.SolrClassLoader;
@@ -54,15 +55,17 @@ import org.apache.solr.security.PermissionNameProvider;
  *   <li>/fieldtypes/{fieldTypeName}
  * </ul>
  */
-public class GetSchemaFieldAPI extends GetSchemaAPI {
+@Path("/{a:cores|collections}/{collectionName}/schema")
+public class GetSchemaFieldAPI /*extends GetSchemaAPI*/ extends JerseyResource {
 
+  private final IndexSchema indexSchema;
   private final SolrParams params;
 
   // TODO Stop using SolrParams here and instead give API methods parameters representing only those
   // query-params that they support
   @Inject
   public GetSchemaFieldAPI(IndexSchema indexSchema, SolrParams params) {
-    super(indexSchema);
+    this.indexSchema = indexSchema;
     this.params = params;
   }