taverna-engine README updates
diff --git a/README.md b/README.md
index b3565cc..437e468 100644
--- a/README.md
+++ b/README.md
@@ -19,12 +19,24 @@
Workflow engine for
[Apache Taverna](http://taverna.incubator.apache.org/) (incubating).
+The engine executes a Taverna workflow, defined using
+[Apache Taverna Language](https://taverna.incubator.apache.org/download/language/).
+
+Note that the engine does not include the
+[activity implementations](https://github.com/apache/incubator-taverna-common-activities/)
+that actual perform work (e.g. calling a REST service). To
+use the engine, use the
+[Apache Taverna Command Line](https://github.com/apache/incubator-taverna-commandline/)
+or [Apache Taverna Server](https://github.com/apache/incubator-taverna-server/).
+
+All Taverna Engine modules are also valid [OSGi](http://www.osgi.org/) bundles,
+providing [OSGi services](#osgi-services).
+
## License
-(c) 2007-2014 University of Manchester
-
-(c) 2014-2016 Apache Software Foundation
+* (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/).
@@ -76,7 +88,7 @@
## Prerequisites
-* Java 1.7 or newer (tested with OpenJDK 1.8)
+* 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)
@@ -104,6 +116,80 @@
mvn clean install -Drat.skip=true
+# Modules
+
+The Taverna Engine modules are generally
+split into `-api` and `-impl`. `-api` contain
+Java interfaces and abstract classes and minimal dependencies, while `-impl`
+contain the corresponding implementation(s).
+
+Thus, the [taverna-common-activities](https://github.com/apache/incubator-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](https://github.com/apache/incubator-taverna-commandline/tree/master/taverna-commandline-product).
+
+* [taverna-activity-archetype](taverna-activity-archetype/) Apache Taverna Activity archetype
+* [taverna-activity-test-utils](taverna-activity-test-utils/) Apache Taverna Activity test utils
+* [taverna-capability-api](taverna-capability-api/) Apache Taverna Platform Capability API
+* [taverna-capability-impl](taverna-capability-impl/) Apache Taverna Platform Capability impl
+* [taverna-credential-manager](taverna-credential-manager/) Apache Taverna Credential manager
+* [taverna-credential-manager-impl](taverna-credential-manager-impl/) Apache Taverna Credential Manager impl
+* [taverna-database-configuration-api](taverna-database-configuration-api/) Apache Taverna Database Configuration API
+* [taverna-database-configuration-impl](taverna-database-configuration-impl/) Apache Taverna Database Configuration impl
+* [taverna-dataflow-activity](taverna-dataflow-activity/) Apache Taverna Dataflow Activity
+* [taverna-execution-api](taverna-execution-api/) Apache Taverna Platform Execution Service API
+* [taverna-execution-hadoop](taverna-execution-hadoop/) Apache Taverna Hadoop Workflow Execution Service
+* [taverna-execution-impl](taverna-execution-impl/) Apache Taverna Platform Execution Service impl
+* [taverna-execution-local](taverna-execution-local/) Apache Taverna Platform Local Execution Service
+* [taverna-execution-remote](taverna-execution-remote/) Apache Taverna Platform Remote Execution Service
+* [taverna-observer](taverna-observer/) Apache Taverna Observer pattern
+* [taverna-prov](taverna-prov/) Apache Taverna PROV support
+* [taverna-provenanceconnector](taverna-provenanceconnector/) Apache Taverna Provenance Connector
+* [taverna-prov-owl-bindings](taverna-prov-owl-bindings/) Apache Taverna PROV OWL bindings
+* [taverna-reference-api](taverna-reference-api/) Apache Taverna Reference Manager API
+* [taverna-reference-impl](taverna-reference-impl/) Apache Taverna Reference Manager impl
+* [taverna-reference-testhelpers](taverna-reference-testhelpers/) Apache Taverna Reference Test Helpers
+* [taverna-reference-types](taverna-reference-types/) Apache Taverna Engine Reference Types
+* [taverna-report-api](taverna-report-api/) Apache Taverna Platform Report Service
+* [taverna-run-api](taverna-run-api/) Apache Taverna Platform Run Service API
+* [taverna-run-impl](taverna-run-impl/) Apache Taverna Platform Run Service impl
+* [taverna-services-api](taverna-services-api/) Apache Taverna Services API
+* [taverna-services-impl](taverna-services-impl/) Apache Taverna Platform Services impl
+* [taverna-stringconstant-activity](taverna-stringconstant-activity/) Apache Taverna StringConstant Activity
+* [taverna-workflowmodel-api](taverna-workflowmodel-api/) Apache Taverna Workflow Model API
+* [taverna-workflowmodel-extensions](taverna-workflowmodel-extensions/) Apache Taverna Workflow Model Extension Points
+* [taverna-workflowmodel-impl](taverna-workflowmodel-impl/) Apache Taverna Workflow Model impl
+
+See the [taverna-engine javadoc](http://taverna.incubator.apache.org/javadoc/taverna-engine/)
+for details. In brief - assuming a workflow run by the
+[Apache Taverna Command Line](https://github.com/apache/incubator-taverna-commandline/):
+
+*
+
+## Spring services
+
+The OSGi services should be
+discoverable as [Spring](https://spring.io/) services,
+e.g. by adding to
+your `META-INF/spring/update-context-osgi.xml`:
+
+```xml
+
+ <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="applicationConfiguration" interface="org.apache.taverna.configuration.app.ApplicationConfiguration" />
+ <reference id="proxyConfiguration" interface="org.apache.taverna.configuration.proxy.HttpProxyConfiguration" />
+ <reference id="configurationManager" interface="org.apache.taverna.configuration.ConfigurationManager" />
+ <reference id="downloadManager" interface="org.apache.taverna.download.DownloadManager" />
+ <reference id="pluginManager" interface="org.apache.taverna.plugin.PluginManager" />
+ <reference id="updateManager" interface="org.apache.taverna.update.UpdatenManager" />
+ </beans:beans>
+```
+
# Export restrictions
This distribution includes cryptographic software.
@@ -147,4 +233,3 @@
* [taverna-database-configuration-impl](taverna-database-configuration-impl) and
[taverna-reference-impl](taverna-reference-impl) depend on [Apache Derby](http://db.apache.org/derby/),
which use the Java Cryptography Extension (JCE) API.
-