On Tue, Jan 11, 2011 at 06:19, Jane Ren <[email protected]> wrote:
> But in my directory, I have only a couple of pom.xmls, so how do I get the 
> xml that I need to add to pluginlist.xml?  It doesn't seem like I have any 
> xml files I can the path to pluginlist.xml.  Any ideas?

This bit is unfortunately not yet covered by our tutorial.

We've got a Maven plugin that can help you generate the plugin file.

See 
http://www.mygrid.org.uk/dev/wiki/display/developer/Maven+plugin+for+managing+Taverna+plugins


Alternatively, look at
http://www.mygrid.org.uk/taverna/updates/2.2.0/plugins/prototype/ for
some inspiration based on the prototype plugins.

The most important things to get right based on this example:



<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plugins:plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://taverna.sf.net/2008/xml/plugins
    http://taverna.sourceforge.net/2008/xml/plugins/plugins-2008-10-16.xsd";
    xmlns:plugins="http://taverna.sf.net/2008/xml/plugins";>
  <provider>taverna.org.uk</provider>
  <identifier>net.sf.taverna.t2.ui-activities.rest</identifier>
  <version>0.3.1</version>
  <!-- Does not match the workbench version, this -->
  <!-- is the plugin version -->
  <name>REST Activity Plugin</name>
  <description>Generic REST Activity that can handle all HTTP
methods</description>
  <enabled>true</enabled>
  <repositories>
    <!-- myGrid repositories and mirrors  -->
    <repository>http://www.mygrid.org.uk/maven/repository/</repository>
    <repository>http://bioinf.ncl.ac.uk/mirror/maven/repository/</repository>
    <repository>http://mirror.omii.ac.uk/maven/repository/</repository>
    <repository>http://www.mygrid.org.uk/maven/snapshot-repository/</repository>

    <!--  Mirror of official maven repository -->
    <repository>http://www.mygrid.org.uk/maven/repo1/</repository>
    <repository>http://ibiblio.lsu.edu/main/pub/packages/maven2/</repository>
    <repository>http://www.eviware.com/repository/maven2/</repository>
  </repositories>

  <profile>
    <artifact groupId="net.sf.taverna.t2.ui-activities"
artifactId="rest-activity" version="0.3.1" />
        <artifact groupId="net.sf.taverna.t2.ui-activities"
artifactId="rest-activity-ui" version="0.3.1" />
  </profile>

  <compatibility>
    <application>
      <version>2.2.0</version>
    </application>
  </compatibility>
</plugins:plugin>


under <repositories> make sure your new repository (where Maven has
deployed the artifacts) is listed.

<provider> is informational only, and mainly used to identify the
plugin site - so if you deploy to maven.jane.org - use
<provider>maven.jane.org</provider>

<identifier> identifies this particular plugin, so that it can be
matched for upgrades. Generally this should match the groupID and
artifactID, which should match your Java package name. For instance:

  <identifier>org.jane.taverna.pdfviewer</identifier>

<version> is the version of this plugin DEFINITION - a new version
here (when ASCII-compared) means that it will be offered as an upgrade
to the user. Any new versions of artifacts under <profile> will be
downloaded as well.


under <profile> you need to include the head Maven artifacts you want
Taverna to load. For activities this typically will only be the
"x-activity" and the "x-activity-ui". You can either use the
short-hand format as above, or you can use a standard <dependency>
block as in pom.xml:

<profile>
  <dependency>
    <groupId>net.sf.taverna.t2.activities</groupId>
    <artifactId>sadi-activity</artifactId>
    <version>0.3.0</version>
  </dependency>
  <dependency>
    <groupId>net.sf.taverna.t2.ui-activities</groupId>
    <artifactId>sadi-activity-ui</artifactId>
    <version>0.3.0</version>
  </dependency>
</profile>

(note that properties are not allowed, and all three of <groupId>,
<artifactId> and <version> must be present).

You don't need to add the individual dependencies that x-activity
needs, etc, as Taverna will pick up these by following the POMs
recursively.


Typically the <version> of the artifacts your plugin pulls in are
matching the plugin version. Note that if you are doing a new release
it's essential for your Maven artifacts to have a new version number -
if Taverna has already downloaded blah-activity version 0.1, it's not
going to download that JAR and POM file again even if you have updated
the plugin definition version.

If it's only you testing, you can work around this by simply deleting
the 'repository' folder from Taverna's home directory. (Click Advanced
-> View log folder and go one up to find this folder)


For a plugin update, you'll need to redeploy in new versions the
affected Maven artifacts (and any artifacts which depend on those),
and then add a new plugin definition file with a new version number
both on the artifacts and for itself, and add this to the
pluginlist.xml. When Taverna checks for updates it will pick up your
new plugin definition and offer it as an upgrade to users who had the
old version installed. You can leave the old version in pluginlist.xml
as the Plugin manager will only offer to install the latest version.


-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
taverna-hackers mailing list
[email protected]
Web site: http://www.taverna.org.uk
Mailing lists: http://www.taverna.org.uk/about/contact-us/
Developers Guide: http://www.taverna.org.uk/developers/

Reply via email to