Add CWL components
4 files changed
tree: cb557aa0c8fdc0b40cbcac56ed647e70e06942f2
  1. taverna-baclava-language/
  2. taverna-databundle/
  3. taverna-robundle/
  4. taverna-scufl2-annotation/
  5. taverna-scufl2-api/
  6. taverna-scufl2-cwl/
  7. taverna-scufl2-examples/
  8. taverna-scufl2-integration-tests/
  9. taverna-scufl2-schemas/
  10. taverna-scufl2-scufl/
  11. taverna-scufl2-t2flow/
  12. taverna-scufl2-ucfpackage/
  13. taverna-scufl2-wfbundle/
  14. taverna-scufl2-wfdesc/
  15. taverna-tavlang-tool/
  16. .gitignore
  17. .travis.yml
  18. DEPENDENCIES
  19. DISCLAIMER
  20. LICENSE
  21. NOTICE
  22. pom.xml
  23. README.md
README.md

Apache Taverna Language

Apache Taverna Language is a set of APIs for workflow definitions (SCUFL2), Research Object Bundles and workflow inputs/outputs/run (DataBundle), as consumed and produced by the Apache Taverna (incubating) workflow system.

The API includes support for the legacy formats from Taverna 2 and Taverna 1, and can be also used independently of Apache Taverna 3.

The command line tool tavlang can be used for conversion and inspection of research objects and workflow bundles.

License

  • (c) 2010-2014 University of Manchester
  • (c) 2014-2018 Apache Software Foundation

This product includes software developed at The Apache Software Foundation.

Licensed under the Apache License 2.0, see the file LICENSE for details.

The file NOTICE contains any additional attributions and details about embedded third-party libraries and source code.

Contribute

Please subscribe to and contact the dev@taverna mailing list for any questions, suggestions and discussions about Apache Taverna.

Bugs and feature plannings are tracked in the Jira Issue tracker under the TAVERNA component Taverna Language. Feel free to add an issue!

To suggest changes to this source code, feel free to raise a GitHub pull request. Any contributions received are assumed to be covered by the Apache License 2.0. We might ask you to sign a Contributor License Agreement before accepting a larger contribution.

Disclaimer

Apache Taverna is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Modules

Official modules:

Experimental modules:

Deprecated modules:

For more details, see the READMEs of:

Prerequisites

  • Java JDK 8 or 9
  • Apache Maven 3.5.3 or newer (older versions probably also work)

Building

To build Apache Taverna Language, use:

mvn clean install

This will build each module and run their tests, producing JARs like taverna-scufl2-api/target/taverna-scufl2-api-0.16.0-incubating.jar. Some of the experimental modules are not built automatically, to build them separately, run the same command from within their folder.

Building on Windows

If you are building on Windows, ensure you unpack this source code to a folder with a short path name lenght, e.g. C:\src - as Windows has a limitation on the total path length which might otherwise prevent this code from building successfully.

Skipping tests

To skip the tests (these can be timeconsuming), use:

mvn clean install -DskipTests

If you are modifying this source code independent of the Apache Taverna project, you may not want to run the Rat Maven plugin that enforces Apache headers in every source file - to disable it, try:

mvn clean install -Drat.skip=true

Building for Android

To use the workflow parsers in Android you need to use the android profile. This excludes any
modules which use Java 8 features (Java 7 source is ok for Android API 19 and above eg scufl2-ufcpackage uses the diamond operator)

mvn -P android clean install

Usage

Apache Taverna Language is a Maven project, and the easiest way to use it is from other Maven projects.

Released binaries of Apache Taverna Language are published in Maven Central.

Typical users of this API will depend on these modules:

	<dependency>
		<groupId>org.apache.taverna.language</groupId>
		<artifactId>taverna-robundle</artifactId>
		<version>0.16.0-incubating</version>
	</dependency>
	<dependency>
		<groupId>org.apache.taverna.language</groupId>
		<artifactId>taverna-databundle</artifactId>
		<version>0.16.0-incubating</version>
	</dependency>
	<dependency>
		<groupId>org.apache.taverna.language</groupId>
		<artifactId>taverna-scufl2-api</artifactId>
		<version>0.16.0-incubating</version>
	</dependency>
	<dependency>
		<groupId>org.apache.taverna.language</groupId>
		<artifactId>taverna-scufl2-wfbundle</artifactId>
		<version>0.16.0-incubating</version>
	</dependency>
	<dependency>
		<groupId>org.apache.taverna.language</groupId>
		<artifactId>taverna-scufl2-t2flow</artifactId>
		<version>0.16.0-incubating</version>
	</dependency>

To find the latest <version> to use above (this README might not have been updated), see the [Apache Taverna Language downloads] (http://taverna.incubator.apache.org/download/language/).

All Scufl2 modules are also valid OSGi bundles, providing OSGi services.

You can alternatively copy and add these JARs from the build to add to your classpath:

  • taverna-robundle/target/taverna-scufl2-robundle-0.16.0-incubating.jar
  • taverna-databundle/target/taverna-scufl2-databundle-0.16.0-incubating.jar
  • taverna-scufl2-api/target/taverna-scufl2-api-0.16.0-incubating.jar
  • taverna-scufl2-wfbundle/target/taverna-scufl2-wfbundle-0.16.0-incubating.jar
  • taverna-scufl2-ucfpackage/target/taverna-scufl2-ucfpackage-0.16.0-incubating.jar
  • taverna-scufl2-t2flow/target/taverna-scufl2-t2flow-0.16.0-incubating.jar

Javadoc

See the Taverna Language Javadoc for documentation of classes and methods of Taverna Language. Good starting points:

Export restrictions

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software: