You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2016/11/28 14:05:24 UTC

lucene-solr:apiv2: SOLR-8029: add support for #include in spec files

Repository: lucene-solr
Updated Branches:
  refs/heads/apiv2 166291751 -> 84695ff71


SOLR-8029: add support for #include in spec files


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/84695ff7
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/84695ff7
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/84695ff7

Branch: refs/heads/apiv2
Commit: 84695ff71f33716774b85413eced4d42fb26ad09
Parents: 1662917
Author: Noble Paul <no...@apache.org>
Authored: Mon Nov 28 19:35:12 2016 +0530
Committer: Noble Paul <no...@apache.org>
Committed: Mon Nov 28 19:35:12 2016 +0530

----------------------------------------------------------------------
 .../src/java/org/apache/solr/api/ApiBag.java    |  12 ++-
 .../collections.collection.Commands.json        |   8 +-
 .../src/resources/apispec/core.SchemaEdit.json  |  44 ++++++--
 ...g.Commands.addRequestHandler.properties.json |  19 ++++
 .../resources/apispec/core.config.Commands.json | 100 +++++++++----------
 .../resources/apispec/cores.core.Commands.json  |   2 +-
 .../solr/common/util/ValidatingJsonMap.java     |   2 +-
 7 files changed, 118 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/java/org/apache/solr/api/ApiBag.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index 1f55ed6..9a1da62 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -216,10 +216,14 @@ public class ApiBag {
         Map  commands2BReplaced = new ValidatingJsonMap();
         for (Object o : cmds.keySet()) {
           Object val = cmds.get(o);
-          if (val instanceof String) {
-            String s = (String) val;
-            ValidatingJsonMap cmdSpec = getResource(APISPEC_LOCATION + s + ".json");
-            commands2BReplaced.put(o.toString(), cmdSpec);
+          Map m = (Map) val;
+          String include = (String) m.get("#include");
+          if (include != null) {
+            ValidatingJsonMap cmdSpec = getResource(APISPEC_LOCATION + include + ".json");
+            m = ValidatingJsonMap.getDeepCopy(m, 4, true);
+            m.remove("#include");
+            m.putAll(cmdSpec);
+            commands2BReplaced.put(o.toString(), m);
           }
         }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/resources/apispec/collections.collection.Commands.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/collections.collection.Commands.json b/solr/core/src/resources/apispec/collections.collection.Commands.json
index dea722e..dfd11b9 100644
--- a/solr/core/src/resources/apispec/collections.collection.Commands.json
+++ b/solr/core/src/resources/apispec/collections.collection.Commands.json
@@ -10,8 +10,12 @@
     ]
   },
   "commands": {
-    "modify": "collections.collection.Commands.modify",
-    "reload": "collections.collection.Commands.reload",
+    "modify": {
+      "#include": "collections.collection.Commands.modify"
+    },
+    "reload": {
+      "#include": "collections.collection.Commands.reload"
+    },
     "migrate-docs":{
       "type":"object",
       "documentation":"https://cwiki.apache.org/confluence/display/solr/Collections+API#CollectionsAPI-api12",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/resources/apispec/core.SchemaEdit.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/core.SchemaEdit.json b/solr/core/src/resources/apispec/core.SchemaEdit.json
index ef85751..d3f064f 100644
--- a/solr/core/src/resources/apispec/core.SchemaEdit.json
+++ b/solr/core/src/resources/apispec/core.SchemaEdit.json
@@ -9,16 +9,38 @@
     ]
   },
   "commands": {
-    "add-field": "core.SchemaEdit.addField",
-    "delete-field": "core.SchemaEdit.deleteField",
-    "replace-field": "core.SchemaEdit.addField",
-    "add-dynamic-field": "core.SchemaEdit.addField",
-    "delete-dynamic-field": "core.SchemaEdit.deleteDynamicField",
-    "replace-dynamic-field": "core.SchemaEdit.addField",
-    "add-field-type": "core.SchemaEdit.addFieldType",
-    "delete-field-type": "core.SchemaEdit.deleteFieldType",
-    "replace-field-type": "core.SchemaEdit.replaceFieldType",
-    "add-copy-field": "core.SchemaEdit.addCopyField",
-    "delete-copy-field": "core.SchemaEdit.deleteCopyField"
+    "add-field": {
+      "#include": "core.SchemaEdit.addField"
+    },
+    "delete-field": {
+      "#include": "core.SchemaEdit.deleteField"
+    },
+    "replace-field": {
+      "#include": "core.SchemaEdit.addField"
+    },
+    "add-dynamic-field": {
+      "#include": "core.SchemaEdit.addField"
+    },
+    "delete-dynamic-field": {
+      "#include": "core.SchemaEdit.deleteDynamicField"
+    },
+    "replace-dynamic-field": {
+      "#include": "core.SchemaEdit.addField"
+    },
+    "add-field-type": {
+      "#include": "core.SchemaEdit.addFieldType"
+    },
+    "delete-field-type": {
+      "#include": "core.SchemaEdit.deleteFieldType"
+    },
+    "replace-field-type": {
+      "#include": "core.SchemaEdit.replaceFieldType"
+    },
+    "add-copy-field": {
+      "#include": "core.SchemaEdit.addCopyField"
+    },
+    "delete-copy-field": {
+      "#include": "core.SchemaEdit.deleteCopyField"
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/resources/apispec/core.config.Commands.addRequestHandler.properties.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/core.config.Commands.addRequestHandler.properties.json b/solr/core/src/resources/apispec/core.config.Commands.addRequestHandler.properties.json
new file mode 100644
index 0000000..895d255
--- /dev/null
+++ b/solr/core/src/resources/apispec/core.config.Commands.addRequestHandler.properties.json
@@ -0,0 +1,19 @@
+{
+  "properties": {
+    "name": {
+      "type": "string"
+    },
+    "class": {
+      "type": "string"
+    },
+    "runtimeLib": {
+      "type": "boolean"
+    },
+    "startup": {
+      "type": "string",
+      "enum": [
+        "lazy"
+      ]
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/resources/apispec/core.config.Commands.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/core.config.Commands.json b/solr/core/src/resources/apispec/core.config.Commands.json
index 6dc8d4a..5aa6c70 100644
--- a/solr/core/src/resources/apispec/core.config.Commands.json
+++ b/solr/core/src/resources/apispec/core.config.Commands.json
@@ -22,23 +22,7 @@
     },
     "add-requesthandler": {
       "type": "object",
-      "properties": {
-        "name": {
-          "type": "string"
-        },
-        "class": {
-          "type": "string"
-        },
-        "runtimeLib": {
-          "type": "boolean"
-        },
-        "startup": {
-          "type": "string",
-          "enum": [
-            "lazy"
-          ]
-        }
-      },
+      "#include":"core.config.Commands.addRequestHandler.properties",
       "required": [
         "name",
         "class"
@@ -47,23 +31,7 @@
     },
     "update-requesthandler": {
       "type": "object",
-      "properties": {
-        "name": {
-          "type": "string"
-        },
-        "class": {
-          "type": "string"
-        },
-        "runtimeLib": {
-          "type": "boolean"
-        },
-        "startup": {
-          "type": "string",
-          "enum": [
-            "lazy"
-          ]
-        }
-      },
+      "#include":"core.config.Commands.addRequestHandler.properties",
       "required": [
         "name"
       ],
@@ -75,8 +43,12 @@
         "type": "string"
       }
     },
-    "add-searchcomponent": "core.config.Commands.generic",
-    "update-searchcomponent": "core.config.Commands.generic",
+    "add-searchcomponent": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-searchcomponent": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-searchcomponent": {
       "type": "array",
       "items": {
@@ -97,45 +69,69 @@
         "type": "string"
       }
     },
-    "add-queryresponsewriter": "core.config.Commands.generic",
-    "update-queryresponsewriter": "core.config.Commands.generic",
+    "add-queryresponsewriter": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-queryresponsewriter": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-queryresponsewriter": {
       "type": "array",
       "items": {
         "type": "string"
       }
     },
-    "add-queryparser": "core.config.Commands.generic",
-    "update-queryparser": "core.config.Commands.generic",
+    "add-queryparser": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-queryparser": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-queryparser": {
       "type": "string"
     },
-    "add-valuesourceparser": "core.config.Commands.generic",
-    "update-valuesourceparser": "core.config.Commands.generic",
+    "add-valuesourceparser": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-valuesourceparser": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-valuesourceparser": {
       "type": "array",
       "items": {
         "type": "string"
       }
     },
-    "add-transformer": "core.config.Commands.generic",
-    "update-transformer": "core.config.Commands.generic",
+    "add-transformer": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-transformer": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-transformer": {
       "type": "array",
       "items": {
         "type": "string"
       }
     },
-    "add-updateprocessor": "core.config.Commands.generic",
-    "update-updateprocessor": "core.config.Commands.generic",
+    "add-updateprocessor": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-updateprocessor": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-updateprocessor": {
       "type": "array",
       "items": {
         "type": "string"
       }
     },
-    "add-queryconverter": "core.config.Commands.generic",
-    "update-queryconverter": "core.config.Commands.generic",
+    "add-queryconverter": {
+      "#include": "core.config.Commands.generic"
+    },
+    "update-queryconverter": {
+      "#include": "core.config.Commands.generic"
+    },
     "delete-queryconverter": {
       "type": "array",
       "items": {
@@ -156,8 +152,12 @@
         "type": "string"
       }
     },
-    "add-runtimelib": "core.config.Commands.addRuntimeLib",
-    "update-runtimelib": "core.config.Commands.updateRuntimeLib",
+    "add-runtimelib": {
+      "#include": "core.config.Commands.addRuntimeLib"
+    },
+    "update-runtimelib": {
+      "#include": "core.config.Commands.updateRuntimeLib"
+    },
     "delete-runtimelib": {
       "type":"array",
       "items": {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/core/src/resources/apispec/cores.core.Commands.json
----------------------------------------------------------------------
diff --git a/solr/core/src/resources/apispec/cores.core.Commands.json b/solr/core/src/resources/apispec/cores.core.Commands.json
index ca1fc2e..5ebab70 100644
--- a/solr/core/src/resources/apispec/cores.core.Commands.json
+++ b/solr/core/src/resources/apispec/cores.core.Commands.json
@@ -101,7 +101,7 @@
       "additionalProperties": true,
       "description": "Internal API"
     },
-    "split": "cores.core.Commands.split",
+    "split":  { "#include": "cores.core.Commands.split"},
     "prep-recovery": {
       "type": "object",
       "additionalProperties": true,

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/84695ff7/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
index 61168f4..3ea11bf 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
@@ -107,7 +107,7 @@ public class ValidatingJsonMap implements Map<String, Object> {
 
   @Override
   public Object remove(Object key) {
-    return null;
+    return delegate.remove(key);
   }
 
   @Override