Just to follow up on Matt’s comments, the *name* value is used when the flow is 
serialized to the flow.xml.gz file and deserialized. For example, if a property 
descriptor has name “ssl-protocol-version” and value “SSL 3.0”, the XML would 
look like:

<processor>
  <name>Something using SSL</name
  <ssl-protocol-version>SSL 3.0</ssl-protocol-version>
  …
</processor>

Now, when SSL is renamed to TLS years later, the processor property gets 
renamed to “tls-protocol-version” and the XML looks like:

<processor>
  <name>Something using SSL</name
  <tls-protocol-version>SSL 3.0</tls-protocol-version>
  …
</processor>

The problem is that if the NiFi code changes to look for “tls-protocol-version” 
in the XML, existing flows will no longer work, because the application will 
say “no value defined for tis-protocol-version”. This is why the *displayName* 
value was introduced — to allow a “human readable”, internationalizable, and 
*modifiable* value for each property without impacting name resolution in flow 
de/serialization.

We strongly discourage changing the value of the name, and encourage providing 
a displayName from the beginning on any new property descriptor, and adding 
them to existing property descriptors rather than changing the name.

Andy LoPresto
[email protected]
[email protected]
PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69

> On Sep 30, 2017, at 7:54 AM, Matt Burgess <[email protected]> wrote:
> 
> The .name() method is commonly used to provide a more Machine-friendly name, 
> to help in future Internalization (i18n) efforts. The .displayName() method 
> is commonly used to provide a user-friendly name. Currently the display name 
> is used in the UI when present, and if not present, the name is used.
> 
> Regards,
> Matt
> 
> On Sep 30, 2017, at 10:35 AM, Giovanni Lanzani 
> <[email protected] <mailto:[email protected]>> 
> wrote:
> 
>> On 29 Sep 2017, at 18:50, Giovanni Lanzani wrote:
>> 
>> Now you definitely picked my interest.
>> 
>> I've opened https://issues.apache.org/jira/browse/NIFI-4443 
>> <https://issues.apache.org/jira/browse/NIFI-4443> and I'll try to work on it 
>> a bit. I might not tackle the Kerberos stuff just yet but I'm curious to see 
>> if this additional CLASSPATH thingy is enough.
>> 
>> Thanks,
>> 
>> Giovanni
>> 
>> Hi again,
>> 
>> I was looking to open a PR and I saw this (new to me?) requirement:
>> 
>> If adding new Properties, have you added .displayName in addition to .name 
>> (programmatic access) for each of the new properties?
>> 
>> Can anyone tell me precisely what this is about? Should I add a .displayName 
>> equal to .name or is it only when I want to make a distinction between the 
>> programmatic access and the UI?
>> 
>> Giovanni
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to