[ 
https://issues.apache.org/jira/browse/MINIFICPP-39?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16202138#comment-16202138
 ] 

Andrew Christianson edited comment on MINIFICPP-39 at 10/12/17 3:51 PM:
------------------------------------------------------------------------

[~calebj] nice job on the rebase and setting up tests. A couple of notes:

1) I noticed this bit seems to be unlimplemented in UnfocusArchive.onTrigger:

{code}
  // Set new/updated lens stack to attribute; height(stack') = height(stack) - 1

  // if (!flowFile->updateAttribute("lens.archive.stack", stackStr))
  // {
  //    flowFile->addAttribute("lens.archive.stack", stackStr);
  // }
{code}

The lens stack is already "popped" with this line: 
lensStack.resize(lensStack.size() - 1);, so I think we just need to serialize 
the json after that and set it back into the lens.archive.stack attribute.

2) The unit tests do cover onTrigger of both Focus & Unfocus, which is good, 
but it would be nice to have some additional verification of the actual output 
file. I.e. verify that it is a valid tar/what have you, and that the content is 
valid. Along similar lines, it would be nice to verify that the flow file 
content is correct after FocusArchive.

Looking good over all. I think this is close to ready for a PR.



was (Author: achristianson):
[~calebj] nice job on the rebase and setting up tests. A couple of notes:

1) I noticed this bit seems to be unlimplemented in UnfocusArchive.onTrigger:

{{
  // Set new/updated lens stack to attribute; height(stack') = height(stack) - 1

  // if (!flowFile->updateAttribute("lens.archive.stack", stackStr))
  // {
  //    flowFile->addAttribute("lens.archive.stack", stackStr);
  // }
}}

The lens stack is already "popped" with this line: 
lensStack.resize(lensStack.size() - 1);, so I think we just need to serialize 
the json after that and set it back into the lens.archive.stack attribute.

2) The unit tests do cover onTrigger of both Focus & Unfocus, which is good, 
but it would be nice to have some additional verification of the actual output 
file. I.e. verify that it is a valid tar/what have you, and that the content is 
valid. Along similar lines, it would be nice to verify that the flow file 
content is correct after FocusArchive.

Looking good over all. I think this is close to ready for a PR.


> Create FocusArchive processor
> -----------------------------
>
>                 Key: MINIFICPP-39
>                 URL: https://issues.apache.org/jira/browse/MINIFICPP-39
>             Project: NiFi MiNiFi C++
>          Issue Type: Task
>            Reporter: Andrew Christianson
>            Assignee: Andrew Christianson
>            Priority: Minor
>
> Create an FocusArchive processor which implements a lens over an archive 
> (tar, etc.). A concise, though informal, definition of a lens is as follows:
> "Essentially, they represent the act of “peering into” or “focusing in on” 
> some particular piece/path of a complex data object such that you can more 
> precisely target particular operations without losing the context or 
> structure of the overall data you’re working with." 
> https://medium.com/@dtipson/functional-lenses-d1aba9e52254#.hdgsvbraq
> Why an FocusArchive in MiNiFi? Simply put, it will enable us to "focus in on" 
> an entry in the archive, perform processing *in-context* of that entry, then 
> re-focus on the overall archive. This allows for transformation or other 
> processing of an entry in the archive without losing the overall context of 
> the archive.
> Initial format support is tar, due to its simplicity and ubiquity.
> Attributes:
> - Path (the path in the archive to focus; "/" to re-focus the overall archive)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to