blob: 531daf5f4349cd7b61bc696efed5e0e4848c2461 [file] [log] [blame] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# Apache Taverna Common Activities
Common Activities to be invoked as part of
[Apache Taverna](https://taverna.incubator.apache.org/) workflows.
Note that this module relies on other
[Apache Taverna modules](https://taverna.incubator.apache.org/code) for
the actual workflow execution.
## License
* (c) 2007-2014 University of Manchester
* (c) 2014-2016 Apache Software Foundation
This product includes software developed at The
[Apache Software Foundation](http://www.apache.org/).
Licensed under the
[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), see the file
[LICENSE](LICENSE) for details.
The file [NOTICE](NOTICE) contains any additional attributions and
details about embedded third-party libraries and source code.
# Contribute
Please subscribe to and contact the
[dev@taverna](https://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](https://issues.apache.org/jira/browse/TAVERNA/component/12326811)
under the `TAVERNA` component _Taverna Common Activities._ Feel free
to add an issue!
To suggest changes to this source code, feel free to raise a
[GitHub pull request](https://github.com/apache/incubator-taverna-common-activities/pulls).
Any contributions received are assumed to be covered by the [Apache License
2.0](https://www.apache.org/licenses/LICENSE-2.0). We might ask you
to sign a [Contributor License Agreement](https://www.apache.org/licenses/#clas)
before accepting a larger contribution.
## Disclaimer
Apache Taverna is an effort undergoing incubation at the
[Apache Software Foundation (ASF)](http://www.apache.org/),
sponsored by the [Apache Incubator PMC](http://incubator.apache.org/).
[Incubation](http://incubator.apache.org/incubation/Process_Description.html)
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.
## Prerequisites
* Java 1.8 or newer (tested with OpenJDK 1.8)
* [Apache Maven](https://maven.apache.org/download.html) 3.2.5 or newer (older
versions probably also work)
This code relies on other
[Apache Taverna modules](https://taverna.incubator.apache.org/download/code/),
which Maven shuold automatically
download from
[Apache's Maven repository](https://taverna.incubator.apache.org/download/maven/);
however you might want to compile these yourself in the below order:
* [taverna-language](https://taverna.incubator.apache.org/download/language/)
* [taverna-osgi](https://taverna.incubator.apache.org/download/osgi/)
* [taverna-engine](https://taverna.incubator.apache.org/download/engine/)
Please see the `<properties>` of this [pom.xml](pom.xml) to find the
correct versions to build.
# Building
To build, use
mvn clean install
This will build each module and run their tests.
## Building on Windows
If you are building on Windows, ensure you unpack this source code
to a folder with a [short path name](http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows)
lenght, e.g. `C:\src` - as
Windows has a [limitation on the total path length](https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath)
which might otherwise
prevent this code from building successfully.
## Skipping tests
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](https://creadur.apache.org/rat/apache-rat-plugin/)
that enforces Apache headers in every source file - to disable it, try:
mvn clean install -Drat.skip=true
# Modules
Each module implement a particular type of
Taverna [Activity](https://taverna.incubator.apache.org/javadoc/taverna-engine/org/apache/taverna/workflowmodel/processor/activity/Activity.html).
* [taverna-beanshell-activity](taverna-beanshell-activity/): Apache Taverna Beanshell Activity,
runs [Beanshell](https://github.com/beanshell/beanshell/) scripts.
* [taverna-external-tool-activity](taverna-external-tool-activity/): Apache Taverna External Tool Activity,
run command line locally or over SSH
* [taverna-interaction-activity](taverna-interaction-activity/): Apache Taverna Interaction Activity,
ask questions to the user through a browser
* [taverna-rest-activity](taverna-rest-activity/): Apache Taverna REST Activity,
invoke [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) HTTP(S) web services based on a URI template.
* [taverna-spreadsheet-import-activity](taverna-spreadsheet-import-activity/): Apache Taverna Spreadsheet Import Activity,
imports from CSV, Excel and OpenOffice.
* [taverna-wsdl-activity](taverna-wsdl-activity/): Apache Taverna WSDL Activity,
invoke [WSDL](https://en.wikipedia.org/wiki/Web_Services_Description_Language)-described SOAP services.
* [taverna-wsdl-generic](taverna-wsdl-generic/): Apache Taverna WSDL-generic Library,
library for parsing WSDL and calling SOAP services
* [taverna-xpath-activity](taverna-xpath-activity/): Apache Taverna XPath Activity,
select XML fragments using [XPath](https://www.w3.org/TR/xpath/) expressions
# 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:
* [taverna-rest-activity](taverna-rest-activity)
depends on
[Apache HttpComponents](https://hc.apache.org/) Client,
and can be configured to initiate
`https://` connections.
* [taverna-wsdl-generic](taverna-wsdl-generic)
and [taverna-wsdl-activity](taverna-wsdl-activity) use
[Java Secure Socket Extension](https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html)
(JSSE) and depend on
[Apache WSS4J](https://ws.apache.org/wss4j/),
[Apache XML Security for Java](https://santuario.apache.org/javaindex.html)
for accessing secure SOAP Web Services.
* Apache Taverna Common Activities depends on the
[Apache Taverna Engine](http://taverna.incubator.apache.org/download/engine/)
Credential Manager API for
management of username/password and client/server SSL certificates.
* [taverna-interaction-activity](taverna-interaction-activity) depends on
[Jetty](http://www.eclipse.org/jetty/),
which includes UnixCrypt.java for one way cryptography, and can be
configured for SSL encryption using
[Java Secure Socket Extension](https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html).