You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@nifi.apache.org by Russell Bateman <ru...@perfectsearchcorp.com> on 2016/03/23 22:22:59 UTC
To help fulfill NIFI-513...
I needed to break down and debug a processor I'm working on. I found a
JIRA issue a year old that's probably not been taken care of. I'd like
to help.
https://issues.apache.org/jira/browse/NIFI-513
I wrote this quickie on how to set up IntelliJ or Eclipse to accomplish
that. I'm using IntelliJ, but I'm a very old Eclipse guy and still
active in the Eclipse forums. It's actually easier than I make it look
here because I'm covering Eclipse as well as IntelliJ and I'm trying not
to assume the person who follows will know too much about doing this or
might never have done remote debugging before.
Hope this helps someone. Maybe someone in charge of the NiFi user doc
could use this to resolve the JIRA issue.
------------------------------------------------------------------------
Steps to debugging a NiFi processor you've written. See this article
<http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/>*
to learn how remote debugging works in IntelliJ. The example uses
IntelliJ to debug an application running in Tomcat, but it's a similar
thing no matter if you're using Eclipse (or IntelliJ) to debug NiFi.
1. Edit /conf/bootstrap.conf/ and simply uncomment the line that starts
out with java.arg.debug.
2. Create a Debug configuration.
In IntelliJ IDEA, ...
1. Do Run → Edit Configurations
2. Click the green +.
3. Choose Remote (because it's a remote debugging session you want
to create.
4. Give a Name:, something like "Local NiFi".
5. Change the port to 8000 (this value must match the one in
/conf/bootstrap.conf/).
6. If you're only debugging a processor in a project with multiple
modules, set the drop-down Search sources using module's
classpath: to the module in which it lives.
In Eclipse, do
1. Do Run → Debug Configurations....
2. Choose Remote Java Application.
3. Click on the New Launch Configuration icon (a tiny sheet of
paper with a yellow plus sign in upper left of dialog).
4. Give it a name like "Local NiFi".
5. In Project:, type the name (or browse for it) of the project
containing your processor code.
6. Set the Port: to 8000 or whatever you established in
/conf/bootstrap.conf/.
7. Click Apply or, if you're ready, Debug.
3. Launch NiFi (or bounce it).
4. Set one or more breakpoints in your processor code.
5. Launch the debugger.
In IntelliJ IDEA, do Run → Debug and choose "Local NiFi" (or
whatever you called it) from the list presented. This brings up the
debugger and displays, "Connected to the target VM, address
'localhost:8000', transport: 'socket'
In Eclipse, do Run → Debug Configurations..., scroll down and choose
"Local NiFi" or whatever you called it. What you see should give you
warm fuzzies, something akin to what I'm reporting seeing in
IntelliJ IDEA.
6. Prepare data flows into your processor.
7. Start your processor; the IDE debugger should pop up stopped at the
first breakpoint.
8. Debug away.
*
http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/
Re: To help fulfill NIFI-513...
Posted by Oleg Zhurakousky <oz...@hortonworks.com>.
Russell
First, thank you for taking initiative!
Indeed we need to bring that JIRA to a closure. Having said that there is actually a link in our Contributor Guide on interactive debugging https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide#ContributorGuide-RunningNiFiinDebugmode which also links to a sample project which describes in details debugging in both Eclipse and IntelliJ https://github.com/olegz/nifi-ide-integration/, although it may need some TLC. Please go through it and see if you feel anything should be added.
Cheers
Oleg
On Mar 23, 2016, at 5:22 PM, Russell Bateman <ru...@perfectsearchcorp.com>> wrote:
I needed to break down and debug a processor I'm working on. I found a JIRA issue a year old that's probably not been taken care of. I'd like to help.
https://issues.apache.org/jira/browse/NIFI-513
I wrote this quickie on how to set up IntelliJ or Eclipse to accomplish that. I'm using IntelliJ, but I'm a very old Eclipse guy and still active in the Eclipse forums. It's actually easier than I make it look here because I'm covering Eclipse as well as IntelliJ and I'm trying not to assume the person who follows will know too much about doing this or might never have done remote debugging before.
Hope this helps someone. Maybe someone in charge of the NiFi user doc could use this to resolve the JIRA issue.
------------------------------------------------------------------------
Steps to debugging a NiFi processor you've written. See this article <http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/>* to learn how remote debugging works in IntelliJ. The example uses IntelliJ to debug an application running in Tomcat, but it's a similar thing no matter if you're using Eclipse (or IntelliJ) to debug NiFi.
1. Edit /conf/bootstrap.conf/ and simply uncomment the line that starts
out with java.arg.debug.
2. Create a Debug configuration.
In IntelliJ IDEA, ...
1. Do Run → Edit Configurations
2. Click the green +.
3. Choose Remote (because it's a remote debugging session you want
to create.
4. Give a Name:, something like "Local NiFi".
5. Change the port to 8000 (this value must match the one in
/conf/bootstrap.conf/).
6. If you're only debugging a processor in a project with multiple
modules, set the drop-down Search sources using module's
classpath: to the module in which it lives.
In Eclipse, do
1. Do Run → Debug Configurations....
2. Choose Remote Java Application.
3. Click on the New Launch Configuration icon (a tiny sheet of
paper with a yellow plus sign in upper left of dialog).
4. Give it a name like "Local NiFi".
5. In Project:, type the name (or browse for it) of the project
containing your processor code.
6. Set the Port: to 8000 or whatever you established in
/conf/bootstrap.conf/.
7. Click Apply or, if you're ready, Debug.
3. Launch NiFi (or bounce it).
4. Set one or more breakpoints in your processor code.
5. Launch the debugger.
In IntelliJ IDEA, do Run → Debug and choose "Local NiFi" (or
whatever you called it) from the list presented. This brings up the
debugger and displays, "Connected to the target VM, address
'localhost:8000', transport: 'socket'
In Eclipse, do Run → Debug Configurations..., scroll down and choose
"Local NiFi" or whatever you called it. What you see should give you
warm fuzzies, something akin to what I'm reporting seeing in
IntelliJ IDEA.
6. Prepare data flows into your processor.
7. Start your processor; the IDE debugger should pop up stopped at the
first breakpoint.
8. Debug away.
* http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/
Re: To help fulfill NIFI-513...
Posted by Oleg Zhurakousky <oz...@hortonworks.com>.
Russell
First, thank you for taking initiative!
Indeed we need to bring that JIRA to a closure. Having said that there is actually a link in our Contributor Guide on interactive debugging https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide#ContributorGuide-RunningNiFiinDebugmode which also links to a sample project which describes in details debugging in both Eclipse and IntelliJ https://github.com/olegz/nifi-ide-integration/, although it may need some TLC. Please go through it and see if you feel anything should be added.
Cheers
Oleg
On Mar 23, 2016, at 5:22 PM, Russell Bateman <ru...@perfectsearchcorp.com>> wrote:
I needed to break down and debug a processor I'm working on. I found a JIRA issue a year old that's probably not been taken care of. I'd like to help.
https://issues.apache.org/jira/browse/NIFI-513
I wrote this quickie on how to set up IntelliJ or Eclipse to accomplish that. I'm using IntelliJ, but I'm a very old Eclipse guy and still active in the Eclipse forums. It's actually easier than I make it look here because I'm covering Eclipse as well as IntelliJ and I'm trying not to assume the person who follows will know too much about doing this or might never have done remote debugging before.
Hope this helps someone. Maybe someone in charge of the NiFi user doc could use this to resolve the JIRA issue.
------------------------------------------------------------------------
Steps to debugging a NiFi processor you've written. See this article <http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/>* to learn how remote debugging works in IntelliJ. The example uses IntelliJ to debug an application running in Tomcat, but it's a similar thing no matter if you're using Eclipse (or IntelliJ) to debug NiFi.
1. Edit /conf/bootstrap.conf/ and simply uncomment the line that starts
out with java.arg.debug.
2. Create a Debug configuration.
In IntelliJ IDEA, ...
1. Do Run → Edit Configurations
2. Click the green +.
3. Choose Remote (because it's a remote debugging session you want
to create.
4. Give a Name:, something like "Local NiFi".
5. Change the port to 8000 (this value must match the one in
/conf/bootstrap.conf/).
6. If you're only debugging a processor in a project with multiple
modules, set the drop-down Search sources using module's
classpath: to the module in which it lives.
In Eclipse, do
1. Do Run → Debug Configurations....
2. Choose Remote Java Application.
3. Click on the New Launch Configuration icon (a tiny sheet of
paper with a yellow plus sign in upper left of dialog).
4. Give it a name like "Local NiFi".
5. In Project:, type the name (or browse for it) of the project
containing your processor code.
6. Set the Port: to 8000 or whatever you established in
/conf/bootstrap.conf/.
7. Click Apply or, if you're ready, Debug.
3. Launch NiFi (or bounce it).
4. Set one or more breakpoints in your processor code.
5. Launch the debugger.
In IntelliJ IDEA, do Run → Debug and choose "Local NiFi" (or
whatever you called it) from the list presented. This brings up the
debugger and displays, "Connected to the target VM, address
'localhost:8000', transport: 'socket'
In Eclipse, do Run → Debug Configurations..., scroll down and choose
"Local NiFi" or whatever you called it. What you see should give you
warm fuzzies, something akin to what I'm reporting seeing in
IntelliJ IDEA.
6. Prepare data flows into your processor.
7. Start your processor; the IDE debugger should pop up stopped at the
first breakpoint.
8. Debug away.
* http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/