Taverna source code is organised into a collection of Maven modules
.
In the Taverna Subversion repository, the modules are grouped into larger Maven projects, enabling them to have independent version numbers and tag/branching/deployment patterns.
Maven module version numbers
These are the version numbers for the officially deployed Maven artifacts, organised per groupId.
Parent modules
Each of the top-level modules of Taverna inherits settings from taverna-parent/pom.xml which again inherits from the grand parent parent/pom.xml.
Utils modules
Independent utility units, written by or adopted by myGrid, that are used by other modules in Taverna. As such, each utillity have their own release/deployment lifecycle, version numbers and hence their own trunk/branches/tags structure.
Engine modules
The core of the workflow engine, framework for plugins, activities and engine extensions.
Compatibility modules
Support for legacy systems, ie. loading Taverna 1 workflows and processors and converting them to Taverna 2 equivalents.
UI modules
User interface stuff, used by the Workbench, and other future UI products such as the Taverna Player.
Product modules
The projects for the actual downloadable products, such as the Taverna Workbench. These typically contain little or no code, and link in from the above categories using Maven dependencies. Contains POMs for building the distributions, typically using the Maven Assembly plugin
.
Build tree modules
Maven build trees for the products, which links in the other modules to a common Maven build tree.
Developer modules
Contains various developer resources not required for building, such as:
Labels
Page: Parent modules
Page: Utils modules
Page: Engine modules
Page: Compatibility modules
Page: UI modules
Page: Product modules
Page: Build tree modules
Page: Developer modules