All, Bryan has done a great job of creating a Maven archetype for creating a processor bundle (processor + nar + parent). I think it will be extremely helpful to have, and Bryan has chosen to contribute the archetype back to the community. The question is where in the source tree does it make sense to put it? I could see putting it directly under nifi/ or nifi/commons but I imagine that there will be more archetypes in the future -- for reporting tasks, for controller services, and perhaps other things. So maybe we would create a nifi/maven-archetypes or a nifi/commons/maven-archetypes directory. Any thoughts on where best to add this into the source tree? Thanks-Mark
Date: Mon, 19 Jan 2015 21:48:26 -0500 Subject: Re: Processor Bundle Archetype From: [email protected] To: [email protected] Hey Mark, Since it looks like the develop branch is back to having the nar-maven-plugin and nifi as the two top level directories, where would you want to put the archetype? I guess it could be a directory under nifi ? And do you have a preference on the artifactId? In my own repo I called it nifi-processor-bundle-archetype, but I wasn't sure if something else made more sense within the actual NiFi source code. -Bryan On Fri, Jan 16, 2015 at 9:37 AM, Mark Payne <[email protected]> wrote: Bryan, That's great - I was hoping you'd go ahead and contribute that back. I think it's best if you create the patch/pull-request so that all of the git patch magic can take affect and show you as the contributor. I think putting it into that new directory with the nar plugin is the way to go, too. I created a ticket that you can submit the patch/PR to: https://issues.apache.org/jira/browse/NIFI-272 Many thanks!-Mark Date: Fri, 16 Jan 2015 09:27:09 -0500 Subject: Re: Processor Bundle Archetype From: [email protected] To: [email protected] Hey Mark, Glad you like the archetype so much! I would love to contribute it to the official codebase. I could probably put together a patch/pull-request over the weekend if that works, or if you are looking to get it in there today, I have no problem with you taking the reigns and doing it. I was looking at the latest code last night and I saw one of Joe W's email about the latest directory structure, so I assume we could put the archetype along side the nar plugin. Let me know what you want to do. -Bryan On Fri, Jan 16, 2015 at 8:45 AM, Mark Payne <[email protected]> wrote: Hey Bryan, Sorry, I never did write back. I did look at the documentation that you put together, and it's perfect. Every time I write Processor, I end up copying another index.html and gutting it to look just like this one and then filling in. So nice to not have to do that every time. I appreciate all the work you put into this! Were you interested in putting this into the Apache NiFi codebase? Or did you want to keep it separate? Thanks-Mark > Date: Wed, 7 Jan 2015 20:42:10 -0500 > Subject: Re: Processor Bundle Archetype > From: [email protected] > To: [email protected] > > Mark, > > Thanks for the feedback! and glad it is useful for you. > > I just made the updates you suggested so you should be able to pull them > down from GitHub. > > If you were thinking of anything different for the documentation stub let > me know. I just took an example that had Uses Attributes, Modifies > Attributes, Properties, and Relationships, and then removed the specific > content. > > -Bryan > > On Wed, Jan 7, 2015 at 4:34 PM, Mark Payne <[email protected]> wrote: > > > Bryan, > > This is great! I've been meaning to do this for a while... just haven't > > gotten around to it. Very helpful. > > It's done pretty well, too, I would say. I have just a few things I'd > > point out: > > In the Processor implementation, I would avoid the:this.myProperty = > > context.getProperty(MY_PROPERTY).getValue(); > > and defining the myProperty variable altogether. > > This approach is not thread-safe, and the context.getProperty() returns > > PropertyValue, which has some nice convenience methods like "asInteger", > > etc. > > In the onTrigger method, the argument names are 'processContext' and > > 'processSession'. I would call these simply 'context' and 'session', as > > it's much easier to type and these are the names that are typically used. > > In the processor's directory you may also want to build a directory > > structure > > of:src/main/resources/docs/org.apache.nifi.processors.MyProcessor/index.html > > with a stubbed out documentation. The Standard Processors all use the same > > documentation. > > Then, in the application, if you right-click on a Processor and click > > "Usage", that's where the information comes from. > > This is very helpful! I will be building this locally so I can start > > making use of it. > > > > > Date: Sun, 4 Jan 2015 15:23:56 -0500 > > > Subject: Processor Bundle Archetype > > > From: [email protected] > > > To: [email protected] > > > > > > After setting up a project to develop some custom processors, I started > > > thinking it would be useful to have a really easy way to jump start a new > > > project, so I created a Maven archetype that can be used to help get > > > started: > > > > > > https://github.com/bbende/nifi-processor-bundle-archetype > > > > > > If anyone has any feedback on useful defaults, or best practices to > > > include, let me know. > > > > > > If something like this already exists, then I'll chalk this up to a good > > > learning experience since I learned a lot about multi-module archetypes > > :) > > > > > > -Bryan > > > >
