gerlowskija commented on code in PR #1960:
URL: https://github.com/apache/solr/pull/1960#discussion_r1344327552


##########
solr/api/src/java/org/apache/solr/client/api/model/InstallShardDataRequestBody.java:
##########
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.client.api.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class InstallShardDataRequestBody {
+  @JsonProperty(value = "location", required = true)

Review Comment:
   It wouldn't surprise me if there was some inconsistency there, for sure.
   
   That said: I think the specific case you mentioned was intentional and not 
an oversight.  Some of these model classes are used for multiple APIs, and have 
different requirements (pardon the pun) based on which API is being run.
   
   Case in point: "name" should be required in the create-collection API. But 
it shouldn't be required when nested in the body of a create-alias API call, 
where CreateCollectionRequestBody acts as a template allowing routed-aliases to 
create additional collections.
   
   Long story short, code reuse often requires us to enforce required-props the 
old-fashioned way instead of relying on the less-flexible Jackson.
   
   (And even if we decided not to reuse model classes across APIs - we'd still 
have to rely on old-fashioned enforcement, as Jackson doesn't handle all of the 
content types that Solr accepts e.g. javabin)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to