You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by "Clemens, Kristin E." <Kr...@gd-ms.com> on 2015/05/29 18:11:52 UTC

Best dev environment setup for front-end work?

Hi all!

I'm new to working with NiFi and have been having a fair bit of trouble trying to get the development environment set up properly for working specifically on the front-end (extending existing components, adding more, refactoring, etc.). After a couple of initial issues with relatively simple solutions, I haven't had any trouble getting an ordinary maven install to work (both for development and running NiFi), despite this being a larger project than I've ever worked with before. The web-app aspect of things is throwing me for a loop, though, since everything is so coupled.

I'm currently using Eclipse but am willing to switch to another IDE if it the workflow would be more manageable. I imagine I have all the tools I need at this point in Eclipse, but I just can't figure out how to get the project set up so that I can easily work on the front-end bits.

I'd appreciate any advice you all may have!

Thanks,
Kristin Clemens

Re: Best dev environment setup for front-end work?

Posted by Matt Gilman <ma...@gmail.com>.
Kristin,

Thanks for showing interest in Apache NiFi. All artifacts are standard
Maven modules. I cannot speak for Eclipse but I would image that they would
support all types of Maven modules including web artifacts. Please reply
with more details if you are having a specific issue and maybe it's
something that another member of the community has encountered before.

If you had any feature requests that would benefit the community as a whole
you could also enter a JIRA ticket [1]. This is where we track all the work
that is currently in progress for upcoming releases.

Thanks.

Matt

[1] https://issues.apache.org/jira/browse/NIFI

On Fri, May 29, 2015 at 12:11 PM, Clemens, Kristin E. <
Kristin.Clemens@gd-ms.com> wrote:

> Hi all!
>
> I'm new to working with NiFi and have been having a fair bit of trouble
> trying to get the development environment set up properly for working
> specifically on the front-end (extending existing components, adding more,
> refactoring, etc.). After a couple of initial issues with relatively simple
> solutions, I haven't had any trouble getting an ordinary maven install to
> work (both for development and running NiFi), despite this being a larger
> project than I've ever worked with before. The web-app aspect of things is
> throwing me for a loop, though, since everything is so coupled.
>
> I'm currently using Eclipse but am willing to switch to another IDE if it
> the workflow would be more manageable. I imagine I have all the tools I
> need at this point in Eclipse, but I just can't figure out how to get the
> project set up so that I can easily work on the front-end bits.
>
> I'd appreciate any advice you all may have!
>
> Thanks,
> Kristin Clemens
>

RE: Best dev environment setup for front-end work?

Posted by "Clemens, Kristin E." <Kr...@gd-ms.com>.
Thanks for the responses, all. Perhaps I can explain a bit better what I am talking about.



Warning up front: this is long and has screenshots!



My intent currently is not to write new processors or do much of any backend work, but rather to extend and improve the functionality of the NiFi UI (i.e., the web-app). This necessitates the ability to easily browse and work with all of these artifacts. Currently I do the following (or some variation thereof; the idea is generally the same.)



Primary

1.    Build the project per the instructions in the quickstart guide for developers. [1]

2.    Run mvn eclipse:eclipse to generate eclipse project files.

3.     Import existing maven project in to eclipse.



Alternate

1.    Same as step one above.

2.    Import source code manually and let eclipse create the projects for me.





I have the option of importing as many or as few of NiFi's modules and submodules (translated to projects per the maven eclipse plugin) as I would like. Unfortunately they are all imported as Maven Java projects (or simple Maven projects if they have no Java source at all). The majority of the frontend related module has the following directory structure:



     module

     |

     |--src

        |

        |--main

           |

           |--java

           |  |

           |  |--org.apache.nifi.etc (package structure, java files, etc.)

           |  |

           |  |--resources

           |     |

           |     |--filters

           |     |  |

           |     |  |--(various .properties files – canvas.properties, summary.properties, etc.)

           |     |

           |     |--META-INF

           |        |--LICENSE

           |

           |--webapp

              |

              |--css

              |  |

              |  |-- (various .css files for that specific module)

              |

              |--images

              |  |

              |  |-- (various image files for that specific module)

              |

              |--js

              |  |

              |  |-- (various .js files for that specific module)

              |

              |--WEB-INF

              |  |

              |  |--pages

              |  |  |

              |  |  |-- (various .jsp files)

              |  |

              |  |--partials

              |  |  |

              |  |  |-- (more folders, with more .jsp files)

              |

              |--web.xml (mappings for servlets)





As you can imagine, using a typical java project in eclipse for this sort of structure, and for these sorts of files, is an exercise in frustration. A solution for this is to make this specific project faceted. For this project, which by the way is nifi-web-ui,  I’ve selected the following facets:

·         Dynamic Web Module

·         Java

·         JavaScript

·         JAX-RS (REST Web Services)

·         Jpt.jaxb



And there are many more options, many of which are incompatible with each other. Here is a screenshot of what is available with the stock Eclipse for Java EE:



[cid:image001.png@01D09C51.652482C0]



And this is how the project looks in project explorer once I’ve done this – and, keep in mind, I’m not even sure these are the correct facets for the project. I have manually added the webapp folder as a source folder under right click -> build path -> use as source folder. Note that it is treating webapp as a Java resource rather than a JavaScript (or any other) resource.



[cid:image002.png@01D09C53.8CDE4560]





A point of note: Deployment Descriptor: nifi-web-ui, as seen here below, is essentially empty. I don’t know enough about frontend projects of this magnitude or style to know that getting that filled in would help matters, but I think that it would; regardless, I’ve no clue how.



[cid:image003.png@01D09C53.8CDE4560]



I apologize if this sounds like I’m trying to debug eclipse; in truth, I’m just trying to get this project set up so that I don’t have to fight the IDE to get things done. ☺



Thanks in advance for any help!

Kristin Clemens



[1] http://nifi.incubator.apache.org/quickstart.html

-----Original Message-----
From: Toivo Adams [mailto:toivo.adams@gmail.com]
Sent: Sunday, May 31, 2015 7:15 AM
To: dev@nifi.incubator.apache.org
Subject: Re: Best dev environment setup for front-end work?



I use Eclipse and have done some Nifi development using Eclipse also.

Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.

But this is no way related to NiFi.



I usually check out NiFi source using command line Git (and not Eclipse Egit).

After that I import NiFi stuff using Eclipse import...

This way Eclipse builds correct Maven projects structure under Eclipse.



NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.



NiFi projects structure is at first little bit complicated, but perfectly usable.

Maybe this help you to create your own project:



https://issues.apache.org/jira/browse/NIFI-272



Once you have your project structure created, you can add your code and

dependencies to web jars under

     nifi-donothing-processors



I personally have created new NiFi project structure (for my own NiFi

processors) manually

- works also, but more typing.





Is “web-app” any way related to war files and possibly some container – Tomcat?





Hope this helps,

Toivo









--

View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html

Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.

Re: Best dev environment setup for front-end work?

Posted by Aldrin Piri <al...@gmail.com>.
Kristin,

There are a couple ways to tackle that.  If you are doing your work through
Github, feel free to provide a PR through there to the NiFi project.  If
you are not using GitHub, the easiest way is to create an issue in JIRA
with the problems experienced and attach a patch with your proposed changes.




On Mon, Jun 1, 2015 at 5:08 PM, Clemens, Kristin E. <
Kristin.Clemens@gd-ms.com> wrote:

> Mark,
>
> I can certainly give it a shot! There are some other small issues I've run
> across while working out the development kinks with my system. For example,
> on Windows 7 EE using Maven 3.2.5, there are three plugin errors that occur
> but are easily fixed by adding the appropriate <pluginManagement> tags in
> their associated pom.xml files. How would I go about submitting a pull
> request or patch for something as simple a fix as that?
>
> Kristin
>
> -----Original Message-----
> From: Mark Payne [mailto:markap14@hotmail.com]
> Sent: Monday, June 01, 2015 3:06 PM
> To: dev@nifi.incubator.apache.org
> Subject: RE: Best dev environment setup for front-end work?
>
> Kristin,
>
> Great! Happy that you were able to get things sorted out.  I use Eclipse
> heavily but for Java development, not UI stuff. I think most of the devs
> that contribute to the NiFi UI tend to use Netbeans.
>
> We do need to get something setup somewhere (possibly in the Developer
> Guide, the Quickstart Guide, or even the new Wiki) for IDE-specific setup.
> For instance, we need to post a template for code style and some templates
> for auto-completion of stubbed out statements.
>
> If you're interested in writing something up for the next person who deals
> with this, we'd be happy to make that available for others!
>
> Thanks
> -Mark
>
> ----------------------------------------
> > From: Kristin.Clemens@gd-ms.com
> > To: dev@nifi.incubator.apache.org
> > Subject: RE: Best dev environment setup for front-end work?
> > Date: Mon, 1 Jun 2015 19:11:24 +0000
> >
> > So, after all that it appears Toivo had it right! I tried not building
> it first and directly importing the maven project in to Eclipse, and
> Eclipse is now properly recognizing the different facets of the various
> modules. Huzzah!
> >
> > Thanks everyone for your patience, and Toivo for the simple suggestion.
> That part should probably go in the developer’s quickstart guide under “For
> users of Eclipse…”. ☺
> >
> > Kristin Clemens
> >
> > -----Original Message-----
> > From: Toivo Adams [mailto:toivo.adams@gmail.com]
> > Sent: Sunday, May 31, 2015 7:15 AM
> > To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
> > Subject: Re: Best dev environment setup for front-end work?
> >
> >
> >
> > I use Eclipse and have done some Nifi development using Eclipse also.
> >
> > Eclipse is wonderful tool but Maven and Git integration feels like
> little bit unfinished.
> >
> > But this is no way related to NiFi.
> >
> >
> >
> > I usually check out NiFi source using command line Git (and not Eclipse
> Egit).
> >
> > After that I import NiFi stuff using Eclipse import...
> >
> > This way Eclipse builds correct Maven projects structure under Eclipse.
> >
> >
> >
> > NiFi development can be done using Eclipse and I am not sure switching
> to other IDE will help.
> >
> >
> >
> > NiFi projects structure is at first little bit complicated, but
> perfectly usable.
> >
> > Maybe this help you to create your own project:
> >
> >
> >
> > https://issues.apache.org/jira/browse/NIFI-272
> >
> >
> >
> > Once you have your project structure created, you can add your code and
> >
> > dependencies to web jars under
> >
> > nifi-donothing-processors
> >
> >
> >
> > I personally have created new NiFi project structure (for my own NiFi
> >
> > processors) manually
> >
> > - works also, but more typing.
> >
> >
> >
> >
> >
> > Is “web-app” any way related to war files and possibly some container –
> Tomcat?
> >
> >
> >
> >
> >
> > Hope this helps,
> >
> > Toivo
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > --
> >
> > View this message in context:
> http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html
> >
> > Sent from the Apache NiFi (incubating) Developer List mailing list
> archive at Nabble.com.
> >
> >
>
>

RE: Best dev environment setup for front-end work?

Posted by "Clemens, Kristin E." <Kr...@gd-ms.com>.
Mark,

I can certainly give it a shot! There are some other small issues I've run across while working out the development kinks with my system. For example, on Windows 7 EE using Maven 3.2.5, there are three plugin errors that occur but are easily fixed by adding the appropriate <pluginManagement> tags in their associated pom.xml files. How would I go about submitting a pull request or patch for something as simple a fix as that?

Kristin

-----Original Message-----
From: Mark Payne [mailto:markap14@hotmail.com] 
Sent: Monday, June 01, 2015 3:06 PM
To: dev@nifi.incubator.apache.org
Subject: RE: Best dev environment setup for front-end work?

Kristin,

Great! Happy that you were able to get things sorted out.  I use Eclipse heavily but for Java development, not UI stuff. I think most of the devs that contribute to the NiFi UI tend to use Netbeans.

We do need to get something setup somewhere (possibly in the Developer Guide, the Quickstart Guide, or even the new Wiki) for IDE-specific setup. For instance, we need to post a template for code style and some templates for auto-completion of stubbed out statements.

If you're interested in writing something up for the next person who deals with this, we'd be happy to make that available for others!

Thanks
-Mark

----------------------------------------
> From: Kristin.Clemens@gd-ms.com
> To: dev@nifi.incubator.apache.org
> Subject: RE: Best dev environment setup for front-end work?
> Date: Mon, 1 Jun 2015 19:11:24 +0000
>
> So, after all that it appears Toivo had it right! I tried not building it first and directly importing the maven project in to Eclipse, and Eclipse is now properly recognizing the different facets of the various modules. Huzzah!
>
> Thanks everyone for your patience, and Toivo for the simple suggestion. That part should probably go in the developer’s quickstart guide under “For users of Eclipse…”. ☺
>
> Kristin Clemens
>
> -----Original Message-----
> From: Toivo Adams [mailto:toivo.adams@gmail.com]
> Sent: Sunday, May 31, 2015 7:15 AM
> To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
> Subject: Re: Best dev environment setup for front-end work?
>
>
>
> I use Eclipse and have done some Nifi development using Eclipse also.
>
> Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.
>
> But this is no way related to NiFi.
>
>
>
> I usually check out NiFi source using command line Git (and not Eclipse Egit).
>
> After that I import NiFi stuff using Eclipse import...
>
> This way Eclipse builds correct Maven projects structure under Eclipse.
>
>
>
> NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.
>
>
>
> NiFi projects structure is at first little bit complicated, but perfectly usable.
>
> Maybe this help you to create your own project:
>
>
>
> https://issues.apache.org/jira/browse/NIFI-272
>
>
>
> Once you have your project structure created, you can add your code and
>
> dependencies to web jars under
>
> nifi-donothing-processors
>
>
>
> I personally have created new NiFi project structure (for my own NiFi
>
> processors) manually
>
> - works also, but more typing.
>
>
>
>
>
> Is “web-app” any way related to war files and possibly some container – Tomcat?
>
>
>
>
>
> Hope this helps,
>
> Toivo
>
>
>
>
>
>
>
>
>
> --
>
> View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html
>
> Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.
>
>
 		 	   		  

RE: Best dev environment setup for front-end work?

Posted by Mark Payne <ma...@hotmail.com>.
Kristin,

Great! Happy that you were able to get things sorted out.  I use Eclipse heavily but for Java development, not UI stuff. I think most of the devs that contribute to the NiFi UI tend to use Netbeans.

We do need to get something setup somewhere (possibly in the Developer Guide, the Quickstart Guide, or even the new Wiki) for IDE-specific setup. For instance, we need to post a template for code style and some templates for auto-completion of stubbed out statements.

If you're interested in writing something up for the next person who deals with this, we'd be happy to make that available for others!

Thanks
-Mark

----------------------------------------
> From: Kristin.Clemens@gd-ms.com
> To: dev@nifi.incubator.apache.org
> Subject: RE: Best dev environment setup for front-end work?
> Date: Mon, 1 Jun 2015 19:11:24 +0000
>
> So, after all that it appears Toivo had it right! I tried not building it first and directly importing the maven project in to Eclipse, and Eclipse is now properly recognizing the different facets of the various modules. Huzzah!
>
> Thanks everyone for your patience, and Toivo for the simple suggestion. That part should probably go in the developer’s quickstart guide under “For users of Eclipse…”. ☺
>
> Kristin Clemens
>
> -----Original Message-----
> From: Toivo Adams [mailto:toivo.adams@gmail.com]
> Sent: Sunday, May 31, 2015 7:15 AM
> To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
> Subject: Re: Best dev environment setup for front-end work?
>
>
>
> I use Eclipse and have done some Nifi development using Eclipse also.
>
> Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.
>
> But this is no way related to NiFi.
>
>
>
> I usually check out NiFi source using command line Git (and not Eclipse Egit).
>
> After that I import NiFi stuff using Eclipse import...
>
> This way Eclipse builds correct Maven projects structure under Eclipse.
>
>
>
> NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.
>
>
>
> NiFi projects structure is at first little bit complicated, but perfectly usable.
>
> Maybe this help you to create your own project:
>
>
>
> https://issues.apache.org/jira/browse/NIFI-272
>
>
>
> Once you have your project structure created, you can add your code and
>
> dependencies to web jars under
>
> nifi-donothing-processors
>
>
>
> I personally have created new NiFi project structure (for my own NiFi
>
> processors) manually
>
> - works also, but more typing.
>
>
>
>
>
> Is “web-app” any way related to war files and possibly some container – Tomcat?
>
>
>
>
>
> Hope this helps,
>
> Toivo
>
>
>
>
>
>
>
>
>
> --
>
> View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html
>
> Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.
>
>
 		 	   		  

RE: Best dev environment setup for front-end work?

Posted by "Clemens, Kristin E." <Kr...@gd-ms.com>.
So, after all that it appears Toivo had it right! I tried not building it first and directly importing the maven project in to Eclipse, and Eclipse is now properly recognizing the different facets of the various modules. Huzzah!

Thanks everyone for your patience, and Toivo for the simple suggestion. That part should probably go in the developer’s quickstart guide under “For users of Eclipse…”. ☺

Kristin Clemens

-----Original Message-----
From: Toivo Adams [mailto:toivo.adams@gmail.com]
Sent: Sunday, May 31, 2015 7:15 AM
To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
Subject: Re: Best dev environment setup for front-end work?



I use Eclipse and have done some Nifi development using Eclipse also.

Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.

But this is no way related to NiFi.



I usually check out NiFi source using command line Git (and not Eclipse Egit).

After that I import NiFi stuff using Eclipse import...

This way Eclipse builds correct Maven projects structure under Eclipse.



NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.



NiFi projects structure is at first little bit complicated, but perfectly usable.

Maybe this help you to create your own project:



https://issues.apache.org/jira/browse/NIFI-272



Once you have your project structure created, you can add your code and

dependencies to web jars under

     nifi-donothing-processors



I personally have created new NiFi project structure (for my own NiFi

processors) manually

- works also, but more typing.





Is “web-app” any way related to war files and possibly some container – Tomcat?





Hope this helps,

Toivo









--

View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html

Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.



RE: Best dev environment setup for front-end work?

Posted by "Clemens, Kristin E." <Kr...@gd-ms.com>.
Thanks, Chad!

Here’s an imgur album: http://imgur.com/a/KR3gS#0

Kristin

From: Chad Zobrisky [mailto:czobrisky@gmail.com]
Sent: Monday, June 01, 2015 10:22 AM
To: dev@nifi.incubator.apache.org
Subject: Re: Best dev environment setup for front-end work?

Kristin,
The mailing list does not allow for pictures to be inserted or for attachments.  It would be best to upload them to a free hosting site and include a link to them if they are necessary in order to understand the issue.
-Chad

On Mon, Jun 1, 2015 at 11:19 AM, Clemens, Kristin E. <Kr...@gd-ms.com>> wrote:
Trying this once more. I apologize for sending again, but the pictures didn’t work last time. I’ve inserted them via a different method this time as well as attached them. The first picture is facets.jpg. The second is webapp.jpg. The third is dd.jpg.

From: Clemens, Kristin E.
Sent: Monday, June 01, 2015 10:13 AM
To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
Subject: RE: Best dev environment setup for front-end work?


Thanks for the responses, all. Perhaps I can explain a bit better what I am talking about.



Warning up front: this is long and has screenshots!



My intent currently is not to write new processors or do much of any backend work, but rather to extend and improve the functionality of the NiFi UI (i.e., the web-app). This necessitates the ability to easily browse and work with all of these artifacts. Currently I do the following (or some variation thereof; the idea is generally the same.)



Primary

1.    Build the project per the instructions in the quickstart guide for developers. [1]

2.    Run mvn eclipse:eclipse to generate eclipse project files.

3.     Import existing maven project in to eclipse.



Alternate

1.    Same as step one above.

2.    Import source code manually and let eclipse create the projects for me.





I have the option of importing as many or as few of NiFi's modules and submodules (translated to projects per the maven eclipse plugin) as I would like. Unfortunately they are all imported as Maven Java projects (or simple Maven projects if they have no Java source at all). The majority of the frontend related module has the following directory structure:



     module

     |

     |--src

        |

        |--main

           |

           |--java

           |  |

           |  |--org.apache.nifi.etc (package structure, java files, etc.)

           |  |

           |  |--resources

           |     |

           |     |--filters

           |     |  |

           |     |  |--(various .properties files – canvas.properties, summary.properties, etc.)

           |     |

           |     |--META-INF

           |        |--LICENSE

           |

           |--webapp

              |

              |--css

              |  |

              |  |-- (various .css files for that specific module)

              |

              |--images

              |  |

              |  |-- (various image files for that specific module)

              |

              |--js

              |  |

              |  |-- (various .js files for that specific module)

              |

              |--WEB-INF

              |  |

              |  |--pages

              |  |  |

              |  |  |-- (various .jsp files)

              |  |

              |  |--partials

              |  |  |

              |  |  |-- (more folders, with more .jsp files)

              |

              |--web.xml (mappings for servlets)





As you can imagine, using a typical java project in eclipse for this sort of structure, and for these sorts of files, is an exercise in frustration. A solution for this is to make this specific project faceted. For this project, which by the way is nifi-web-ui,  I’ve selected the following facets:

•         Dynamic Web Module

•         Java

•         JavaScript

•         JAX-RS (REST Web Services)

•         Jpt.jaxb



And there are many more options, many of which are incompatible with each other. Here is a screenshot of what is available with the stock Eclipse for Java EE:



[cid:image004.jpg@01D09C54.61D158C0]



And this is how the project looks in project explorer once I’ve done this – and, keep in mind, I’m not even sure these are the correct facets for the project. I have manually added the webapp folder as a source folder under right click -> build path -> use as source folder. Note that it is treating webapp as a Java resource rather than a JavaScript (or any other) resource.



[cid:image005.jpg@01D09C54.61D158C0]





A point of note: Deployment Descriptor: nifi-web-ui, as seen here below, is essentially empty. I don’t know enough about frontend projects of this magnitude or style to know that getting that filled in would help matters, but I think that it would; regardless, I’ve no clue how.



[cid:image006.jpg@01D09C54.61D158C0]



I apologize if this sounds like I’m trying to debug eclipse; in truth, I’m just trying to get this project set up so that I don’t have to fight the IDE to get things done. ☺



Thanks in advance for any help!

Kristin Clemens



[1] http://nifi.incubator.apache.org/quickstart.html

-----Original Message-----
From: Toivo Adams [mailto:toivo.adams@gmail.com]
Sent: Sunday, May 31, 2015 7:15 AM
To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
Subject: Re: Best dev environment setup for front-end work?



I use Eclipse and have done some Nifi development using Eclipse also.

Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.

But this is no way related to NiFi.



I usually check out NiFi source using command line Git (and not Eclipse Egit).

After that I import NiFi stuff using Eclipse import...

This way Eclipse builds correct Maven projects structure under Eclipse.



NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.



NiFi projects structure is at first little bit complicated, but perfectly usable.

Maybe this help you to create your own project:



https://issues.apache.org/jira/browse/NIFI-272



Once you have your project structure created, you can add your code and

dependencies to web jars under

     nifi-donothing-processors



I personally have created new NiFi project structure (for my own NiFi

processors) manually

- works also, but more typing.





Is “web-app” any way related to war files and possibly some container – Tomcat?





Hope this helps,

Toivo









--

View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html

Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.


Re: Best dev environment setup for front-end work?

Posted by Chad Zobrisky <cz...@gmail.com>.
Kristin,

The mailing list does not allow for pictures to be inserted or for
attachments.  It would be best to upload them to a free hosting site and
include a link to them if they are necessary in order to understand the
issue.

-Chad

On Mon, Jun 1, 2015 at 11:19 AM, Clemens, Kristin E. <
Kristin.Clemens@gd-ms.com> wrote:

>  Trying this once more. I apologize for sending again, but the pictures
> didn’t work last time. I’ve inserted them via a different method this time
> as well as attached them. The first picture is facets.jpg. The second is
> webapp.jpg. The third is dd.jpg.
>
>
>
> *From:* Clemens, Kristin E.
> *Sent:* Monday, June 01, 2015 10:13 AM
> *To:* dev@nifi.incubator.apache.org
> *Subject:* RE: Best dev environment setup for front-end work?
>
>
>
> Thanks for the responses, all. Perhaps I can explain a bit better what I
> am talking about.
>
>
>
> *Warning up front: this is long and has screenshots!*
>
>
>
> My intent currently is not to write new processors or do much of any
> backend work, but rather to extend and improve the functionality of the
> NiFi UI (i.e., the web-app). This necessitates the ability to easily browse
> and work with all of these artifacts. Currently I do the following (or some
> variation thereof; the idea is generally the same.)
>
>
>
> *Primary*
>
> 1.    Build the project per the instructions in the quickstart guide for
> developers. [1]
>
> 2.    Run mvn eclipse:eclipse to generate eclipse project files.
>
> 3.     Import existing maven project in to eclipse.
>
>
>
> *Alternate*
>
> 1.    Same as step one above.
>
> 2.    Import source code manually and let eclipse create the projects for
> me.
>
>
>
>
>
> I have the option of importing as many or as few of NiFi's modules and
> submodules (translated to projects per the maven eclipse plugin) as I would
> like. Unfortunately they are all imported as Maven Java projects (or simple
> Maven projects if they have no Java source at all). The majority of the
> frontend related module has the following directory structure:
>
>
>
>      module
>
>      |
>
>      |--src
>
>         |
>
>         |--main
>
>            |
>
>            |--java
>
>            |  |
>
>            |  |--org.apache.nifi.etc (package structure, java files, etc.)
>
>            |  |
>
>            |  |--resources
>
>            |     |
>
>            |     |--filters
>
>            |     |  |
>
>            |     |  |--(various .properties files – canvas.properties,
> summary.properties, etc.)
>
>            |     |
>
>            |     |--META-INF
>
>            |        |--LICENSE
>
>            |
>
>            |--webapp
>
>               |
>
>               |--css
>
>               |  |
>
>               |  |-- (various .css files for that specific module)
>
>               |
>
>               |--images
>
>               |  |
>
>               |  |-- (various image files for that specific module)
>
>               |
>
>               |--js
>
>               |  |
>
>               |  |-- (various .js files for that specific module)
>
>               |
>
>               |--WEB-INF
>
>               |  |
>
>               |  |--pages
>
>               |  |  |
>
>               |  |  |-- (various .jsp files)
>
>               |  |
>
>               |  |--partials
>
>               |  |  |
>
>               |  |  |-- (more folders, with more .jsp files)
>
>               |
>
>               |--web.xml (mappings for servlets)
>
>
>
>
>
> As you can imagine, using a typical java project in eclipse for this sort
> of structure, and for these sorts of files, is an exercise in frustration.
> A solution for this is to make this specific project faceted. For this
> project, which by the way is *nifi-web-ui*,  I’ve selected the following
> facets:
>
> ·         Dynamic Web Module
>
> ·         Java
>
> ·         JavaScript
>
> ·         JAX-RS (REST Web Services)
>
> ·         Jpt.jaxb
>
>
>
> And there are many more options, many of which are incompatible with each
> other. Here is a screenshot of what is available with the stock Eclipse for
> Java EE:
>
>
>
>
>
> And this is how the project looks in project explorer once I’ve done this
> – and, keep in mind, I’m not even sure these are the correct facets for the
> project. I have manually added the *webapp* folder as a source folder
> under right click -> build path -> use as source folder. Note that it is
> treating *webapp* as a Java resource rather than a JavaScript (or any
> other) resource.
>
>
>
>
>
>
>
> A point of note: *Deployment Descriptor:* *nifi-web-ui*, as seen here
> below, is essentially empty. I don’t know enough about frontend projects of
> this magnitude or style to know that getting that filled in would help
> matters, but I think that it would; regardless, I’ve no clue how.
>
>
>
>
>
> I apologize if this sounds like I’m trying to debug eclipse; in truth, I’m
> just trying to get this project set up so that I don’t have to fight the
> IDE to get things done. J
>
>
>
> Thanks in advance for any help!
>
> Kristin Clemens
>
>
>
> [1] http://nifi.incubator.apache.org/quickstart.html
>
> -----Original Message-----
> From: Toivo Adams [mailto:toivo.adams@gmail.com <to...@gmail.com>]
> Sent: Sunday, May 31, 2015 7:15 AM
> To: dev@nifi.incubator.apache.org
> Subject: Re: Best dev environment setup for front-end work?
>
>
>
> I use Eclipse and have done some Nifi development using Eclipse also.
>
> Eclipse is wonderful tool but Maven and Git integration feels like little
> bit unfinished.
>
> But this is no way related to NiFi.
>
>
>
> I usually check out NiFi source using command line Git (and not Eclipse
> Egit).
>
> After that I import NiFi stuff using Eclipse import...
>
> This way Eclipse builds correct Maven projects structure under Eclipse.
>
>
>
> NiFi development can be done using Eclipse and I am not sure switching to
> other IDE will help.
>
>
>
> NiFi projects structure is at first little bit complicated, but perfectly
> usable.
>
> Maybe this help you to create your own project:
>
>
>
> https://issues.apache.org/jira/browse/NIFI-272
>
>
>
> Once you have your project structure created, you can add your code and
>
> dependencies to web jars under
>
>      nifi-donothing-processors
>
>
>
> I personally have created new NiFi project structure (for my own NiFi
>
> processors) manually
>
> - works also, but more typing.
>
>
>
>
>
> Is “web-app” any way related to war files and possibly some container –
> Tomcat?
>
>
>
>
>
> Hope this helps,
>
> Toivo
>
>
>
>
>
>
>
>
>
> --
>
> View this message in context:
> http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html
>
> Sent from the Apache NiFi (incubating) Developer List mailing list archive
> at Nabble.com.
>

RE: Best dev environment setup for front-end work?

Posted by "Clemens, Kristin E." <Kr...@gd-ms.com>.
Trying this once more. I apologize for sending again, but the pictures didn’t work last time. I’ve inserted them via a different method this time as well as attached them. The first picture is facets.jpg. The second is webapp.jpg. The third is dd.jpg.

From: Clemens, Kristin E.
Sent: Monday, June 01, 2015 10:13 AM
To: dev@nifi.incubator.apache.org
Subject: RE: Best dev environment setup for front-end work?


Thanks for the responses, all. Perhaps I can explain a bit better what I am talking about.



Warning up front: this is long and has screenshots!



My intent currently is not to write new processors or do much of any backend work, but rather to extend and improve the functionality of the NiFi UI (i.e., the web-app). This necessitates the ability to easily browse and work with all of these artifacts. Currently I do the following (or some variation thereof; the idea is generally the same.)



Primary

1.    Build the project per the instructions in the quickstart guide for developers. [1]

2.    Run mvn eclipse:eclipse to generate eclipse project files.

3.     Import existing maven project in to eclipse.



Alternate

1.    Same as step one above.

2.    Import source code manually and let eclipse create the projects for me.





I have the option of importing as many or as few of NiFi's modules and submodules (translated to projects per the maven eclipse plugin) as I would like. Unfortunately they are all imported as Maven Java projects (or simple Maven projects if they have no Java source at all). The majority of the frontend related module has the following directory structure:



     module

     |

     |--src

        |

        |--main

           |

           |--java

           |  |

           |  |--org.apache.nifi.etc (package structure, java files, etc.)

           |  |

           |  |--resources

           |     |

           |     |--filters

           |     |  |

           |     |  |--(various .properties files – canvas.properties, summary.properties, etc.)

           |     |

           |     |--META-INF

           |        |--LICENSE

           |

           |--webapp

              |

              |--css

              |  |

              |  |-- (various .css files for that specific module)

              |

              |--images

              |  |

              |  |-- (various image files for that specific module)

              |

              |--js

              |  |

              |  |-- (various .js files for that specific module)

              |

              |--WEB-INF

              |  |

              |  |--pages

              |  |  |

              |  |  |-- (various .jsp files)

              |  |

              |  |--partials

              |  |  |

              |  |  |-- (more folders, with more .jsp files)

              |

              |--web.xml (mappings for servlets)





As you can imagine, using a typical java project in eclipse for this sort of structure, and for these sorts of files, is an exercise in frustration. A solution for this is to make this specific project faceted. For this project, which by the way is nifi-web-ui,  I’ve selected the following facets:

·         Dynamic Web Module

·         Java

·         JavaScript

·         JAX-RS (REST Web Services)

·         Jpt.jaxb



And there are many more options, many of which are incompatible with each other. Here is a screenshot of what is available with the stock Eclipse for Java EE:



[cid:image004.jpg@01D09C54.61D158C0]



And this is how the project looks in project explorer once I’ve done this – and, keep in mind, I’m not even sure these are the correct facets for the project. I have manually added the webapp folder as a source folder under right click -> build path -> use as source folder. Note that it is treating webapp as a Java resource rather than a JavaScript (or any other) resource.



[cid:image005.jpg@01D09C54.61D158C0]





A point of note: Deployment Descriptor: nifi-web-ui, as seen here below, is essentially empty. I don’t know enough about frontend projects of this magnitude or style to know that getting that filled in would help matters, but I think that it would; regardless, I’ve no clue how.



[cid:image006.jpg@01D09C54.61D158C0]



I apologize if this sounds like I’m trying to debug eclipse; in truth, I’m just trying to get this project set up so that I don’t have to fight the IDE to get things done. ☺



Thanks in advance for any help!

Kristin Clemens



[1] http://nifi.incubator.apache.org/quickstart.html

-----Original Message-----
From: Toivo Adams [mailto:toivo.adams@gmail.com]
Sent: Sunday, May 31, 2015 7:15 AM
To: dev@nifi.incubator.apache.org<ma...@nifi.incubator.apache.org>
Subject: Re: Best dev environment setup for front-end work?



I use Eclipse and have done some Nifi development using Eclipse also.

Eclipse is wonderful tool but Maven and Git integration feels like little bit unfinished.

But this is no way related to NiFi.



I usually check out NiFi source using command line Git (and not Eclipse Egit).

After that I import NiFi stuff using Eclipse import...

This way Eclipse builds correct Maven projects structure under Eclipse.



NiFi development can be done using Eclipse and I am not sure switching to other IDE will help.



NiFi projects structure is at first little bit complicated, but perfectly usable.

Maybe this help you to create your own project:



https://issues.apache.org/jira/browse/NIFI-272



Once you have your project structure created, you can add your code and

dependencies to web jars under

     nifi-donothing-processors



I personally have created new NiFi project structure (for my own NiFi

processors) manually

- works also, but more typing.





Is “web-app” any way related to war files and possibly some container – Tomcat?





Hope this helps,

Toivo









--

View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html

Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.

Re: Best dev environment setup for front-end work?

Posted by Toivo Adams <to...@gmail.com>.
I use Eclipse and have done some Nifi development using Eclipse also.
Eclipse is wonderful tool but Maven and Git integration feels like little
bit unfinished.
But this is no way related to NiFi.

I usually check out NiFi source using command line Git (and not Eclipse
Egit).
After that I import NiFi stuff using Eclipse import...
This way Eclipse builds correct Maven projects structure under Eclipse.

NiFi development can be done using Eclipse and I am not sure switching to
other IDE will help.

NiFi projects structure is at first little bit complicated, but perfectly
usable.
Maybe this help you to create your own project:

https://issues.apache.org/jira/browse/NIFI-272

Once you have your project structure created, you can add your code and
dependencies to web jars under    
     nifi-donothing-processors

I personally have created new NiFi project structure (for my own NiFi
processors) manually
- works also, but more typing.


Is “web-app” any way related to war files and possibly some container –
Tomcat?


Hope this helps, 
Toivo




--
View this message in context: http://apache-nifi-incubating-developer-list.39713.n7.nabble.com/Best-dev-environment-setup-for-front-end-work-tp1665p1668.html
Sent from the Apache NiFi (incubating) Developer List mailing list archive at Nabble.com.