Workflow engine for Apache Taverna (incubating).
The engine executes a Taverna workflow, defined using Apache Taverna Language.
Note that the engine does not include the activity implementations that actually perform work (e.g. calling a REST service). To use the engine, use the Apache Taverna Command Line or Apache Taverna Server.
All Taverna Engine modules are also valid OSGi bundles, providing OSGi Spring services.
This product includes software developed at The Apache Software Foundation.
Licensed under the Apache License 2.0, see the LICENSE file for details.
The NOTICE file contains any additional attributions as well as details about embedded third-party libraries and source code.
Please subscribe to and contact the [dev@taverna](http://taverna.incubator.apache.org/community/lists#dev mailing list) mailing list for any questions, suggestions and discussions about Apache Taverna.
Bugs and planned features are tracked in the Jira Issue tracker under the
TAVERNA component Taverna Engine. 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.
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.
This code relies on other Apache Taverna modules, which Maven shuold automatically download from Apache's Maven repository; however you might want to compile these yourself in the below order:
Please see the
<properties> of this pom.xml to find the correct versions to build.
To build, use
mvn clean install
This will build each module and run their tests.
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.
To skip the tests (these can be time-consuming), 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
The Taverna Engine modules are generally split into
-api modules contain Java interfaces, abstract classes, and minimal dependencies while
-impl modules contain the corresponding implementation(s).
Thus, the taverna-common-activities should only need to depend on the
-api modules, while the
-impl are added by the packaging of the taverna-commandline-product.
These modules include utilities used by the above, or for test purposes:
These modules include structural workflow activities:
See the separate release of taverna-common-activities for activities that invoke Beanshell, WSDL, REST and command line tool services.
These modules are experimental:
These modules are not yet fully updated to Taverna 3 (contributions welcome!):
See the taverna-engine JavaDoc for more details.
This section shows how different Taverna Engine module are involved when running a Taverna workflow, e.g. from the Apache Taverna Command Line.
There are two layers of Taverna Engine:
t2.core) is the orchestrating part of the Taverna Engine. Its Activity is implemented by multiple plugins depending on the activity type.
.t2flowfile using WorkflowBundleIO from Taverna Language.
Bundlewith inputs. A workflow run id
Stringis returned for subsequent calls.
Activityimplementations, allowing pass-by-reference where supported, with conversion to strings and bytes if needed.
The OSGi services should be discoverable as Spring services, e.g., by adding the following code to your
<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd"> <reference id="executionService" interface="org.apache.taverna.platform.execution.api.ExecutionService"/> <reference id="runService" interface="org.apache.taverna.platform.run.api.RunService"/> <reference id="credentialManager" interface="org.apache.taverna.security.credentialmanager.CredentialManager" /> <reference id="databaseConfiguration" interface="org.apache.taverna.configuration.database.DatabaseConfiguration" /> <reference id="databaseManager" interface="org.apache.taverna.configuration.database.DatabaseManager" /> </beans:beans>
You might want to combine these with the Taverna OSGi services.
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:
https://connections using Java Secure Socket Extension (JSSE).