[ https://issues.apache.org/jira/browse/NIFI-5287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16508107#comment-16508107 ]
ASF GitHub Bot commented on NIFI-5287: -------------------------------------- Github user markap14 commented on the issue: https://github.com/apache/nifi/pull/2777 @MikeThomsen @ijokarumawak Hey guys, I'm sorry to chime in a bit late here. I don't think this is really the approach that we want to take here, though. What our interface provides currently is a mechanism to pass in the 'coordinates', i.e., the location for finding the data that we want. The approach here takes this concepts and muddies it by providing arbitrary key/value pairs that don't make sense for the lookup. I would propose an alternative approach, which would be to add a new method to the interface that has a default implementation: ``` default Optional<T> lookup(Map<String, Object> coordinates, Map<String, String> context) throws LookupFailureException { return lookup(coordinates); } ``` Where `context` is used for the FlowFile attributes (I'm referring to it as `context` instead of `attributes` because there may well be a case where we want to provide some other value that is not specifically a FlowFile attribute). Here is why I am suggesting this: - It provides a clean interface that properly separates the data's coordinates from FlowFile attributes. - It prevents any collisions between FlowFile attribute names and coordinates. - It maintains backward compatibility, and we know that it won't change the behavior of existing services or processors/components using those services - even those that may have been implemented by others outside of the Apache realm. - If attributes are passed in by a Processor, those attributes will be ignored anyway unless the Controller Service is specifically updated to make use of those attributes, such as via Expression Language. In such a case, the Controller Service can simply be updated at that time to make use of the new method instead of the existing method. > LookupRecord should supply flowfile attributes to the lookup service > -------------------------------------------------------------------- > > Key: NIFI-5287 > URL: https://issues.apache.org/jira/browse/NIFI-5287 > Project: Apache NiFi > Issue Type: Improvement > Reporter: Mike Thomsen > Assignee: Mike Thomsen > Priority: Major > > LookupRecord should supply the flowfile attributes to the lookup service. It > should be done as follows: > # Provide a regular expression to choose which attributes are used. > # The chosen attributes should be foundation of the coordinates map used for > the lookup. > # If a configured key collides with a flowfile attribute, it should override > the flowfile attribute in the coordinate map. -- This message was sent by Atlassian JIRA (v7.6.3#76005)