Simple App Manifest File Cytoscape-App argument

1,140 views
Skip to first unread message

Emanuel

unread,
Apr 24, 2013, 9:46:03 AM4/24/13
to cytoscap...@googlegroups.com
Hi all,

I'm trying to create a simple app following the tutorials that you provide (http://wiki.cytoscape.org/Cytoscape_3/AppDeveloper/SettingUpAnIDE/Eclipse and http://opentutorials.cgl.ucsf.edu/index.php/Tutorial:Creating_a_Simple_Cytoscape_3_App), although when I try to import the app jar file I keep getting this error:

        org.cytoscape.app.internal.exception.AppParsingException: Jar is missing value for entry Cytoscape-App in its manifest file. 

My MANIFEST.MF file looks like this (I have a return character in the last line as you advised to have):

Cytoscape-App: uk.ac.ebi.Cyrface

Manifest-Version: 1.0


My java project looks like this:

I'm using the build.xml and ant to generate the jar but even if I use Eclipse to export the jar file I get the same error as above. The structure of the jar file is the following:

> jar tf deploy/Cyrface-v1.0.jar
META-INF/
META-INF/MANIFEST.MF
uk/
uk/ac/
uk/ac/ebi/
uk/ac/ebi/Cyrface.class

I'm running out of ideas on how to fix this any help would be much appreciated. Thanks!

Best,

PS: I was trying to get the Cytoscape 3.0.1 API jar file from http://chianti.ucsd.edu/cytoscape-3.0.1/swing-app-api-3.0.1.jar but the link is broken.

Emanuel

unread,
Apr 24, 2013, 10:34:18 AM4/24/13
to cytoscap...@googlegroups.com
Hi,

I got it, it's now working. 

When generating the jar files with ant it automatically generates a manifest file and it was overriding mine. I had to add the argument manifest="./MANIFEST.MF" to the jar command. So it now looks like this in the build.xml:

<jar manifest="./MANIFEST.MF" destfile="${project.jar}">
      <fileset dir="${build.dir}" includes="**"/>
</jar>

I'm sorry for asking and then answer to my question. Maybe this can be useful to someone else.

Thanks.

Best,

Peng-Liang Wang

unread,
Apr 25, 2013, 6:43:48 PM4/25/13
to cytoscap...@googlegroups.com
Hi Emanuel,

Today I updated the page "Creating a Simple Cytoscape 3 App" at http://opentutorials.cgl.ucsf.edu/index.php/Tutorial:Creating_a_Simple_Cytoscape_3_App

About the Manifest file, you can include more info besides the entry point "Cytoscape-App". Here is an example I included in the page,

Cytoscape-API-Compatibility: 3.0                        (This app works with Cytosape 3.0 or late )
Cytoscape-App: HideSingletonNodesApp             (Entry point, in your case: it is uk.ac.ebi.Cyrface)
Cytoscape-App-Name: HideSingletonNodesApp    (name of your app)
Cytoscape-App-Version: 0.1                                (The version of your app)


Peng



--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-disc...@googlegroups.com.
To post to this group, send email to cytoscap...@googlegroups.com.
Visit this group at http://groups.google.com/group/cytoscape-discuss?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Emanuel

unread,
Apr 29, 2013, 6:34:43 AM4/29/13
to cytoscap...@googlegroups.com
Hi Peng,

Thanks for your reply.

Indeed, I just added that information to the manifest file as well, in fact I was wondering if there is another specification that we can add to the manifest file to add a description to the plugin.

I ran into a problem just this morning after I added most of the code and dependencies of the 2.8.x version of my plugin. The code is already adapted to Cy3 and no error is thrown when building the jar with all the dependencies, but when I try to install the app from file I get the following error:
  • java.lang.Exception: java.lang.UnsupportedClassVersionError: uk/ac/ebi/cyrface/Cyrface : Unsupported major.minor version 51.0 
Any ideas what this could be?

P.S: Is there any faster way to install the apps than go through the app manager GUI? I was thinking in copying the simple app jar to ~/CytoscapeConfiguration/3/apps/installed/, although is it was possible to run Cytoscape directly from the eclipse with a simple app that would be wonderful.

Thanks for the help.

Best

Emanuel

unread,
Apr 29, 2013, 8:01:16 AM4/29/13
to cytoscap...@googlegroups.com
I found the solution for the error actually, it was a conflict of java versions used to compile the app and cy3. I was using java 1.7 to compile my app and cy3 was probably compiled with java 1.6. I just had to change a little bit the javac in the ant build file: 

<javac target="1.5" 
I just realised that the last sentence is awful, so what I really want to know is if it is possible to start Cy3 with the simple app code from eclipse? This would help about debugging.
 
Best,

Peng-Liang Wang

unread,
Apr 29, 2013, 7:30:56 PM4/29/13
to cytoscap...@googlegroups.com
When you build your jar, you should make sure that the dependency Cytoscape-API is 3.0.0 or late. Fast way to install app for debug is using the OSGi console. Look at these page for more information

http://wiki.cytoscape.org/Cytoscape_3/Interactive_Shell

Peng



Andrea Cannella

unread,
Jan 20, 2014, 2:44:40 PM1/20/14
to cytoscap...@googlegroups.com
You should update that tutorial because the manifest should have at least App, App-Name, App-Version and API-Compatibility information:

Manifest-Version: 1.0

Cytoscape-App: netmatch.netMatchPlugin

Cytoscape-App-Name: NetMatch

Cytoscape-App-Version: 2.2

Cytoscape-API-Compatibility: 3.0

dhvl

unread,
Jan 18, 2016, 1:53:59 PM1/18/16
to cytoscape-discuss
Hello,
I am new to cytoscape plugin development. I am trying to create a simple bundle app. I am trying to export jar using Eclipse and am facing a problem similar to yours.  As soon as I compile and load the jar file in cytoscape software it throws an error 
"Failed to load app "
Here is the manifest file.













Please do help me out.

Regards,
Dhaval 

Tim Hull

unread,
Jan 19, 2016, 1:39:16 PM1/19/16
to cytoscap...@googlegroups.com
Are you making a simple app or a bundle app? They are two separate things - simple apps implement AbstractCyApp, and bundle apps implement the AbstractCyActivator. It looks like you may have inadvertently mixed up the two, since Cytoscape-App is intended for simple apps and the tutorial you linked ahead is for bundle apps.

If you are doing a simple app, the Cytoscape-App field should have the full classname (including package) of the class implementing AbstractCyApp - for a bundle, the Bundle-Activator should have the full classname of the AbstractCyActivator implementation. In any case, if you follow the steps of the proper tutorial (simple or bundle app), you should have a skeleton app that compiles/loads OK you can work from...

Does this help? 

Tim

P.S. If you aren't sure whether you want a simple or bundle app, I'd recommend doing the bundle app - the vast majority of apps in the App Store use this, and it allows more flexibility for dependencies and allows for the app to be uninstalled/upgraded without restarting Cytoscape.

--
You received this message because you are subscribed to the Google Groups "cytoscape-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-disc...@googlegroups.com.
To post to this group, send email to cytoscap...@googlegroups.com.

Barry Demchak

unread,
Jan 19, 2016, 1:42:24 PM1/19/16
to cytoscap...@googlegroups.com

… and we’ll be deprecating simple apps starting in Cytoscape 3.4

Dhaval naik

unread,
Jan 23, 2016, 10:17:45 AM1/23/16
to cytoscap...@googlegroups.com
Hi Tim,
     I am making Bundle app. I tried using the skeleton app and it worked but i just wanted to know how can i prepare the manifest file correctly. Below is my manifest file . On exporting my app, it failed to load.Can you help me out ? Thanks

Manifest-Version: 1.0
Cytoscape-API-Compatibility: 3.0
Cytoscape-App: org.cytoscape.myapp.my_cyaction_app.internal.CyActivator
Cytoscape-App-Name: org.cytoscape.myapp.my_cyaction_app.internal.CyActivator
Cytoscape-App-Version: 0.1


--
You received this message because you are subscribed to a topic in the Google Groups "cytoscape-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cytoscape-discuss/XikjKyw1ixE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cytoscape-disc...@googlegroups.com.

Tim Hull

unread,
Jan 25, 2016, 2:15:46 PM1/25/16
to cytoscap...@googlegroups.com
The Cytoscape-App entries (except for Cytoscape-App-Dependencies, which is a separate animal) are for the soon-deprecated simple app format, not for OSGi bundles. If you are using Maven (recommended), the manifest will be generated automatically using the entries in the maven-bundle-plugin configuration in pom.xml. Otherwise, you'll need to create it manually - if for some reason you can't/don't want to use Maven, I recommend building one of the sample OSGi/Bundle apps and looking at the resulting manifest.

Tim
Reply all
Reply to author
Forward
0 new messages