Debugging a Plugin Dynamically

98 views
Skip to first unread message

Victoria Mui

unread,
May 26, 2008, 1:53:57 PM5/26/08
to cytoscape-discuss
Hi,

I'm wondering if there is a way to dynamically debug a plugin in
Eclipse when the Cytoscape program is executed from within Eclipse.

Thanks,
Victoria

piet molenaar

unread,
May 27, 2008, 3:35:42 AM5/27/08
to cytoscap...@googlegroups.com
Hi Victoria,
Yes this is possible by creating a separate project for your plugin: it's documented at wiki here: http://www.cytoscape.org/cgi-bin/moin.cgi/SettingUpEclipseForPluginDevelopment
Hope this helps, if not just ask!
Piet
--
Piet Molenaar
p.mol...@amc.uva.nl
Department of Human Genetics, M1-131
Academic Medical Center
University of Amsterdam
Meibergdreef 9
1105 AZ Amsterdam
the Netherlands

tel (+31) 20-5666592
fax (+31) 20-6918626

Victoria Mui

unread,
May 27, 2008, 12:43:29 PM5/27/08
to cytoscape-discuss
Thanks Piet!

I've followed the instructions listed on that page. However, I've
encountered the following problems:

1) If I run my plugin without specifying the Program Arguments in the
Run Dialog under (x) = Arguments, my HelloWorld plugin gets executed,
but execution just stops after that (so the rest of the Cytoscape
program is not executed)

2) If I run my plugin with the Cytoscape plugins folder path specified
in Program Arguments, Cytoscape runs, but fails to load my HelloWorld
plugin.

I've also noticed that in both of these cases, the Filters and Editor
tabs on the left hand side are also not generated.

Do you happen to know of a solution to these problems?

Thanks,
Victoria

On May 27, 3:35 am, "piet molenaar" <piet....@gmail.com> wrote:
> Hi Victoria,
> Yes this is possible by creating a separate project for your plugin: it's
> documented at wiki here:http://www.cytoscape.org/cgi-bin/moin.cgi/SettingUpEclipseForPluginDe...
> Hope this helps, if not just ask!
> Piet
>
> On Mon, May 26, 2008 at 7:53 PM, Victoria Mui <vickee...@gmail.com> wrote:
>
> > Hi,
>
> > I'm wondering if there is a way to dynamically debug a plugin in
> > Eclipse when the Cytoscape program is executed from within Eclipse.
>
> > Thanks,
> > Victoria
>
> --
> Piet Molenaar
> p.molen...@amc.uva.nl

piet molenaar

unread,
May 28, 2008, 6:39:24 AM5/28/08
to cytoscap...@googlegroups.com
Hi Victoria,
The trick is mentioned in the last paragraph of the wiki docs on the subject:

"Note: Before running the plugin for the first time, you may need to put a .jar of the plugin in some place Cytoscape will search for plugins (e.g. the plugins/ folder inside the Cytoscape installarion folder). Otherwise, Cytoscape will not find your plugin. You don't need to generate the .jar for every run, only the first time. Cytoscape only needs to know your plugin is there, but the actual code will be run from the files in your Eclipse project."

I think putting the jar of your plugin into the cytoscape plugins dir will solve your problems.
Hope this helps,
Cheers,
Piet
--
Piet Molenaar
p.mol...@amc.uva.nl

Victoria Mui

unread,
May 28, 2008, 9:17:06 AM5/28/08
to cytoscape-discuss
Hi Piet,

I actually created a JAR file consisting of the HelloWorld.class file
and the manifest file with the following contents:

Manifest-Version: 1.0

Created-By: 0.92-gcc

And I've placed this JAR file in the cytoscape plugins folder. I've
copied this manifest file from the HelloWorld.jar file that was
provided to us in one of the Cytoscape plugin tutorials I've read.

It seems very strange because in both cases (mentioned in my last
post), it seems to load the Cytoscape program half way and fails to
load the layouts, the Data Panel, the Filters and Editor tabs.

Could it be that my JAR file is missing something? Because it seems
to me that once it finishes my "HelloWorld" plugin, the program
doesn't know how to continue the rest of the program execution.

If some program execution output will help, the following is the
Eclipse output when I run my plugin (the (1) and (2) correspond to the
cases in my last post):



(1)
Hello World!
cytoscape[INFO]: starting delete action
cytoscape[INFO]: ending delete action
cytoscape[INFO]: PreferenceAction()...
cytoscape[INFO]: BookmarkAction()...
cytoscape[INFO]: CytoscapeInit static initialization
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at cytoscape.Cytoscape.exit(Cytoscape.java:431)
at cytoscape.view.CytoscapeDesktop
$1.windowClosing(CytoscapeDesktop.java:346)
at
java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:
332)
at
java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:
332)
at java.awt.Window.processWindowEvent(Window.java:1827)
at javax.swing.JFrame.processWindowEvent(JFrame.java:279)
at java.awt.Window.processEvent(Window.java:1785)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:
273)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:
183)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:
173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:
168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:
160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

* Note: The NullPointerException occurred when I tried to close the
Cytoscape program by using the "X" on the upper right corner of the
program. *



(2)
cytoscape[INFO]: CytoscapeInit static initialization
cytoscape[INFO]: init mode: 1
cytoscape[INFO]: Updating plugins...
cytoscape[INFO]: loading plugins....
cytoscape.plugin.PluginManager[INFO]: - file: /etc/Cytoscape_v2.6.0/
plugins/biopax.jar
cytoscape.plugin.PluginManager[INFO]: attempting to load plugin url:
jar:file:/etc/Cytoscape_v2.6.0/plugins/biopax.jar!/
cytoscape.plugin.PluginManager[INFO]: Loading from manifest
org.mskcc.biopax_plugin.plugin.BioPaxPlugIn[INFO]: Plugin successfully
loaded
cytoscape.plugin.PluginManager[INFO]: Registering
org.mskcc.biopax_plugin.plugin.BioPaxPlugIn@109da93
cytoscape.plugin.PluginManager[INFO]: Registering
org.mskcc.biopax_plugin.plugin.BioPaxPlugIn
cytoscape.plugin.PluginManager[INFO]: Track plugin: true
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme QuickFind
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme cPath
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme yFiles
Layouts status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme LinkOut
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme Browser
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme
AutomaticLayout status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme Filters
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme Old
Filters status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme
ManualLayout status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme
CytoscapeEditor status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme Table
Import status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme PSI-MI
status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme SBML
Reader status CURRENT
cytoscape.plugin.PluginTracker[INFO]: Removing plugin/theme GraphMerge
status CURRENT
cytoscape[INFO]: loading session...
cytoscape[INFO]: Got VMM Change event. Cur VS in VMM: Sample1
cytoscape[INFO]: Creating Default Image for Sample1
cytoscape[INFO]: Got VMM Change event. Cur VS in VMM: Solid
cytoscape[INFO]: Creating Default Image for Solid
cytoscape[INFO]: Got VMM Change event. Cur VS in VMM: Universe
cytoscape[INFO]: Creating Default Image for Universe
cytoscape[INFO]: Got VMM Change event. Cur VS in VMM: default
cytoscape[INFO]: Creating Default Image for default
cytoscape[INFO]: VS Switched --> default, Last = null
cytoscape[INFO]: loading networks...
cytoscape[INFO]: loading attributes...
cytoscape[INFO]: loading expression files...
cytoscape[INFO]:
Cytoscape initialized successfully in: 5848 ms
cytoscape[INFO]: VS Switched --> default, Last = null
cytoscape[INFO]: Cytoscape Exiting....



Thanks,
Victoria

On May 28, 6:39 am, "piet molenaar" <piet....@gmail.com> wrote:
> Hi Victoria,
> The trick is mentioned in the last paragraph of the wiki docs on the
> subject:
>
> "*Note:* Before running the plugin for the first time, you may need to put a

piet molenaar

unread,
May 28, 2008, 10:58:44 AM5/28/08
to cytoscap...@googlegroups.com
Hi Victoria,
I've reproduced your errors and I think they're due to the fact that the paths described in the sample are not windows specific and that currently the plugins in the default cytoscape svn configuration are in the plugins/core directory. So in my configuration (where both the helloworld plugin project and the cytoscape project are in the same level directory) I had to set the plugins path as ../Cytoscape_2_6/plugins/core
I put the helloworld jar from the tutorial in that directory and it worked for me.

However, in order to see your code changes you'll have to rebuild the jar...
A better way might be to create a directory called plugins in your plugin project and than set the path for plugins to that (ie: -p plugins); copy the plugins from the cytoscape/plugins/core dir over to that plugins dir and have eclipse build a jar from your plugin each time you build your project (this can be done through the export dialog; see eclipse help :'creating jar file'). In this way the eclipse debugger will stop in your plugin code.

If this works for you I'll adapt the existing wiki.
Cheers,
Piet
--
Piet Molenaar
p.mol...@amc.uva.nl

Victoria Mui

unread,
May 28, 2008, 11:22:44 AM5/28/08
to cytoscape-discuss
Hi Piet!

I have been using plugins/core but it turns out that I've been missing
the "-p" infront of the path (I failed to see it from the screenshot
on the tutorial)! I was going through the run rule in the cytoscape
build file and I noticed that it had arguments "-p" and "plugins/core"
so I also added the -p in front of my absolute path to the plugin/core
folder in the Run Dialog. It seems like it works now! I'm not sure
if it was an obvious thing, but I certainly stumbled over it!

Yeah, I was wondering why there's plugin/core in Cy2.6 versus just
plugin in some of the tutorials. So thanks for clearing things up
now! :)

Thank you so much for your assistance and patience!

Thanks,
Victoria

On May 28, 10:58 am, "piet molenaar" <piet....@gmail.com> wrote:
> Hi Victoria,
> p.molen...@amc.uva.nl...
>
> read more »
Reply all
Reply to author
Forward
0 new messages