The bulk schema api should be added to TestCloudManagedSchemaConcurrent
Why can't it be in a new class?
It can, but you don't have any distributed tests at all. All existing schema API modification functionality gets distributed testing via TestCloudManagedSchemaConcurrent at this point.
TestBulkSchemaAPI has lots of backslash-double-quotes in JSON strings
That was deliberate. Most JSON writers use double quotes.
You misunderstand me: SolrTestCaseJ4.json(String) converts single-quotes to double-quotes. Several Solr tests use it to get most-JSON-writer-compatible output without causing backslash-eye-bleed. I'm suggesting you do the same.
In SchemaManager.doOperation(), you limit retries to MAX_TRIES
I can make the variable bigger , but I somehow hate infinite loops
It keeps retrying when another schema modification request gets in first. Please fix this - you didn't change anything at all here. There is no way we should be giving up here just because other modifications are happening.
SchemaManager.ADD_FIELD_TYPE should be "add-field-type"
I also want to ask the preference of "add-field" Vs "addField" in the command names
Thanks - I like "add-field" better, but either would be fine.
SchemaManager has lots of non-generic collections
will fix them
I only see one modification here (you added <String> on the left hand side but forgot to put in the diamond operator on the right side), still lots of non-generic collection usages - is there a problem with fixing the others?
Most of the add*() javadocs in IndexSchema say that persistence always happens, but it doesn't if persist=false
We need to remove those methods without persist option
You removed some sugar methods, specifically for adding a single dynamic field, but left other sugar methods intact, e.g. addField() - why the inconsistency? I personally think sugar methods are fine - that's why I put them there - but if you're going to remove them, please be consistent.
And the javadocs are still wrong:
- the persist param isn't listed on addFieldTypes() and addDynamicFields()
- the javadocs for all the methods say the methods will always persist. This is wrong.