ExecuteGroovyScript has a couple of built-in conventions/bindings to make working with controller services easier. One is `SQL.` which lets you add dynamic properties that are DBCPService implementations. The other is `CTL.` which lets you add arbitrary controller services as dynamic properties for use in your script(s).
CTL is very generic and in fact led to an issue (
NIFI-6852) which is fixed in NiFi 1.11.0. Even so, this Jira proposes to add `RecordReader.` and `RecordWriter.` conventions to ExecuteGroovyScript, offering dynamic property access to RecordReaderFactory and RecordSetWriterFactory services, respectively. For readers/writers, this alleviates the need to choose from a list of all controller services in the dynamic property, as well as to remove the need to use the ControllerServiceLookup to find the desired CS and then cast it to the desired controller service interface. Basically the RecordReader/Writer version of the current `SQL.` capability.