The SCUFL2 API provides Java classes that can be used independently from Taverna to inspect, modify and generate SCUFL2 workflows.
The code and definitions for SCUFL2 are kept in the GitHub project scufl2.
- scufl2-api Java Beans for working with SCUFL2
- scufl2-t2flow .t2flow import from Taverna 2
- scufl2-rdfxml .wfbundle import/export (RDF/XML)
- scufl2-usecases Example code covering SCUFL2 use cases4
- scufl2-rdf Pure RDF export/import (out of date)
- scufl2-scufl SCUFL 1 .xml import from Taverna 1
- scufl2-validation API for validating a Scufl2 workflow bundle
- scufl2-validation-correctness Validate correctness of Scufl2 workflow definition
- scufl2-validation-structural Validate that a Scufl2 workflow definition is structurally sound
- scufl2-validation-integration Integration tests for scufl2-validation modules
In short, add:
<property> scufl2.version used above allows you to consistently upgrade to later versions of SCUFL2. Note that the version number above might not be the latest, see #Release notes.
You should not need to compile the SCUFL2 API for most uses, as the Maven deployment even includes the source code for retrieval by tools like Eclipse using the m2e plugin.
The simplest way to retrieve the current version of the SCUFL2 API is using git:
- git clone https://github.com/myGrid/scufl2.git
Note that this will by default check out the
master branch, which represents the latest
SNAPSHOT version of the API, which might not be stable or backwards-compatible.
To inspect the code of the latest release, use
git tag and
Alternatively you can download a tagged release as a ZIP or TAR ball from:
Unpack using your favourite archiver, but don't use the ZIP support of Windows Explorer, as it occasionally don't unpack all files.
mvn clean install
This will build each module and run their tests, producing JARs like `scufl2-api/target/scufl2-api-0.9.1.jar`.
The build does not yet produce a single
First time you build Scufl2 this might download dependencies needed for compilation. These have separate open source licenses, but should be compatible with LGPL. None of the dependencies are neccessary for using the compiled SCUFL2 API.
Some of the experimental modules are not built automatically, to build them separately, run the same command from within their folder.
- 0.9.1 Fixes Workflow Bundle file locking issue on Windows
- 0.9 First public release
- 0.5 First internal release
The simplest way to use the SCUFL2 API is as Maven dependencies. See #Maven above.
Typical use of the Scufl2 API will depend on the three modules
All Scufl2 modules are also valid OSGi bundles.
If you don't use Maven, you can alternatively copy and add the JARs from these modules to your classpath:
Note that version numbers above might not be the latest, see #Release notes
See the JavaDoc at:
Note that these JavaDocs does not show the other modules, as they are generally extensions to the core API. For instance, to load a .t2flow file, include
If you are using Eclipse we recommend also using the m2e plugin for Maven support - which can provide both JavaDocs and source code from within the editor. After adding the #Maven dependencies for SCUFL2, try Open declaration or Open Type on a class like
Examples of using the Scufl2 API are available as a separate Github project scufl2-examples.
Also see the scufl2-validation folder of the SCUFL2 API source code for examples of usage.
The best classes to start using would be
Example of converting .t2flow to .wfbundle: