If a processor/controller service property (A) has a dependency on another property (B), we do not perform validation of property A (i.e., the property descriptor's validator is ignored). However, if Property A references a Controller Service, and that Controller Service is either disabled or invalid, we currently consider the referencing component invalid. This should not be the case.
- Create an AvroSchemaRegistry Controller Service. Leave the Controller Service disabled.
- Create a JsonTreeReader controller service.
- Configure the JsonTreeReader Controller Service.
- Set "Schema Access Strategy" to "Use 'Schema Name' Property"
- Set "Schema Registry" to the AvroSchemaRegistry created in the first step.
- Change "Schema Access Strategy" to "Infer Schema"
- Click Apply to apply the changes.
The JsonTreeReader service will be invalid due to the fact that AvroSchemaRegistry is disabled. Not only should the Schema Registry property not be considered in validation, it becomes very confusing now because the validation error states: "'Schema Registry' validated against XYZ is invalid because Controller Service with ID XYZ is invalid." But when configuring JsonTreeReader, we don't even see the "Schema Registry" property.
The reference should not be validated unless its property's dependencies have been satisfied.