Plugin Download Site Basics
This tutorial explains how to set up your own download site for cytoscape plugins. If you intend to offer these plugins publically we encourage you to submit them to http://cytoscape.org/plugins25/index.php, however this is not required. Please note that this tutorial assumes you know how to set up a web server (apache, tomcat etc).
Cytoscape’s Plugin Manager contacts web sites via a url and expects to receive xml in return. This xml describes the plugins available for download and tells the manager where to download them from. This xml can be automatically generated or hand-created. This xml should be used to describe all plugins available on your site. Below is the description of the xml that the manager expects. Note that jar files should not have white spaces in their names.
<project> <!-- global info regarding the project these plugins come from --> <name> Cytoscape Plugins </name> <description> Test </description> <url> http://cytoscape.org </url> <pluginlist> <!-- contains all the available plugins --> <plugin> <!-- describes a single plugin --> <uniqueID> <!-- id must be the same from one version to the next for updating --> Some text that is the same from one version to the next </uniqueID> <name> foobar </name> <description> Tells about what my plugin does and anything else you may want a user to know.<br>Include html tags for formatting. </description> <!-- versions may only be two numbers separated by a decimal --> <pluginVersion> 1.0 </pluginVersion> <!-- compatible with these versions, a separate <version> entry is required for each compatible version --> <cytoscapeVersions> <version>2.5</version> <version>2.4</version> </cytoscapeVersions> <filetype> jar </filetype> <!-- jar or zip supported --> <category> Enrichment </category> <!-- license is NOT required, if used a license can be embedded in the xml or downloaded from a url --> <license> <!-- this tag is ONLY used if you want the license to be agreed to with every update, otherwise it will be shown when first installed only --> <license_required /> <url>http://url/to/download/license.txt </url> <!-- OR, do not use both url and text tags --> <text> This is my license text that a user must accept in order to install </text> </license> <url> <!-- url to download plugin file from --> http://url/to/download/jar-or-zip-file.xxx </url> <authorlist> <author> <!-- add as many authors as you like --> <name> You and Me </name> <institution> Some institution </institution> </author> </authorlist> </plugin> </pluginlist> <!-- In order to support themes downloading the following is required (if you do not plan on using any themes you can leave this out) --> <themes> <theme> <uniqueID> goodThemeTest123 </uniqueID> <name> Good Test Theme </name> <description>This is just a test theme.</description> <!-- Note that this tag is different from a <plugin> to a <theme> most of the others are the same --> <themeVersion>0.8</themeVersion> <cytoscapeVersions> <version>2.5</version> <version>2.6</version> </cytoscapeVersions> <pluginlist> <!-- There are two ways to specify a theme plugin --> <!-- If the theme plugin has been previously described in the file between the <pluginlist> tags you need only the unique id and the version of the plugin that belongs in this theme --> <plugin> <uniqueID>Some text that is the same from one version to the next</uniqueID> <pluginVersion>1.0</pluginVersion> </plugin> <!-- If the theme plugin is NOT listed previously in the file between the <pluginlist> tags you need the entire description (this is the same as a <plugin> above --> <plugin> <uniqueID>goodJarPlugin123</uniqueID> <name>Good Jar</name> <description> This plugin demonstrates the use of a jar file with the PluginInfo object created and a correct manifest file. </description> <pluginVersion>1.0</pluginVersion> <cytoscapeVersions> <version>2.3.3</version> <version>2.4</version> <version>2.6</version> </cytoscapeVersions> <filetype>jar</filetype> <category>Test</category> <url>http://some-url-to-download/GoodPlugin.jar</url> <license> <text> This is some license text a user would see and have to ok in order to install a plugin. </text> </license> <authorlist> <author> <name>Ann Smith</name> <institution>UW</institution> </author> </authorlist> </plugin> </pluginlist> </theme> </themes> </project>
A user will now only need to add your url to his list of plugin sites to view all your plugins and download/update from this list. This can be a fully internal site available only to your own users or a fully public site. There is currently no way to “sign in” to a given site.