You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 12:54:11 UTC

[03/49] incubator-taverna-workbench-product git commit: Initial checkin for OSGi taverna workbench product

Initial checkin for OSGi taverna workbench product

git-svn-id: https://taverna.googlecode.com/svn/taverna/products/taverna-workbench-product/trunk@15152 bf327186-88b3-11dd-a302-d386e5130c1c


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/commit/5af9b53e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/tree/5af9b53e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/diff/5af9b53e

Branch: refs/heads/master
Commit: 5af9b53e79c7680b6c68dbaa751895de1f45aaf2
Parents: 68cacb6
Author: david@mygrid.org.uk <da...@bf327186-88b3-11dd-a302-d386e5130c1c>
Authored: Fri Sep 28 12:12:29 2012 +0000
Committer: david@mygrid.org.uk <da...@bf327186-88b3-11dd-a302-d386e5130c1c>
Committed: Fri Sep 28 12:12:29 2012 +0000

----------------------------------------------------------------------
 taverna-workbench-product/.project              |  23 ++
 taverna-workbench-product/pom.xml               | 373 +++++++++++++++++++
 .../src/main/assembly/release-assembly.xml      |  44 +++
 .../src/main/etc/conf/log4j.properties          |  14 +
 .../src/main/etc/conf/logging.properties        |  11 +
 .../src/main/etc/conf/taverna.app.properties    |   2 +
 .../src/main/etc/taverna.bat                    |  17 +
 .../src/main/etc/taverna.sh                     |  25 ++
 8 files changed, 509 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/.project
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/.project b/taverna-workbench-product/.project
new file mode 100644
index 0000000..17b3c53
--- /dev/null
+++ b/taverna-workbench-product/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>taverna-workbench-product</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/pom.xml b/taverna-workbench-product/pom.xml
new file mode 100644
index 0000000..40ce91a
--- /dev/null
+++ b/taverna-workbench-product/pom.xml
@@ -0,0 +1,373 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<artifactId>taverna-parent</artifactId>
+		<groupId>net.sf.taverna</groupId>
+		<version>3.0.1-SNAPSHOT</version>
+	</parent>
+	<groupId>uk.org.taverna.workbench</groupId>
+	<artifactId>taverna-workbench-product</artifactId>
+	<version>3.0.0-SNAPSHOT</version>
+	<name>Taverna Workbench Product</name>
+	<packaging>pom</packaging>
+	<dependencies>
+		<!-- Spring DM -->
+		<dependency>
+			<groupId>net.sourceforge.cglib</groupId>
+			<artifactId>com.springsource.net.sf.cglib</artifactId>
+			<version>2.1.3</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.osgi</groupId>
+			<artifactId>spring-osgi-annotation</artifactId>
+			<version>${spring.dm.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.osgi</groupId>
+			<artifactId>spring-osgi-extender</artifactId>
+			<version>${spring.dm.version}</version>
+		</dependency>
+		<!-- Spring -->
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>org.springframework.context</artifactId>
+			<version>${spring.version}</version>
+		</dependency>
+
+		<!-- Java Extension Implementations -->
+		<!-- <dependency>
+			<groupId>com.sun.xml</groupId>
+			<artifactId>com.springsource.com.sun.xml.bind</artifactId>
+			<version>2.2.0</version>
+		</dependency> -->
+		<dependency>
+			<groupId>javax.xml.bind</groupId>
+			<artifactId>com.springsource.javax.xml.bind</artifactId>
+			<version>2.2.0</version>
+		</dependency>
+		<dependency> <!-- required by bsh -->
+			<groupId>javax.servlet</groupId>
+			<artifactId>com.springsource.javax.servlet</artifactId>
+			<version>2.5.0</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.jms</groupId>
+			<artifactId>com.springsource.javax.jms</artifactId>
+			<version>1.1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.xml.soap</groupId>
+			<artifactId>com.springsource.javax.xml.soap</artifactId>
+			<version>1.3.0</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.xml.stream</groupId>
+			<artifactId>com.springsource.javax.xml.stream</artifactId>
+			<version>1.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.mail</groupId>
+			<artifactId>com.springsource.javax.mail</artifactId>
+			<version>${mail.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>com.springsource.org.apache.commons.codec</artifactId>
+			<version>${commons.codec.version}</version>
+		</dependency>
+
+		<!-- OSGi Enterprise Services -->
+		<dependency>
+			<groupId>uk.org.taverna.osgi.services</groupId>
+			<artifactId>xml-parser-service</artifactId>
+			<version>${osgi.services.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.osgi.services</groupId>
+			<artifactId>xml-transformer-service</artifactId>
+			<version>${osgi.services.version}</version>
+		</dependency>
+
+		<!-- Taverna Activities -->
+		<dependency>
+			<groupId>net.sf.taverna.t2.activities</groupId>
+			<artifactId>all-activities</artifactId>
+			<version>${t2.activities.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>net.sf.taverna.t2.activities</groupId>
+					<artifactId>biomoby-activity</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<!-- Taverna Activities UI -->
+		<!-- <dependency>
+			<groupId>net.sf.taverna.t2.ui-activities</groupId>
+			<artifactId>all-activity-uis</artifactId>
+			<version>${t2.activities.version}</version>
+			<exclusions>
+				<exclusion>
+					<groupId>net.sf.taverna.t2.activities</groupId>
+					<artifactId>biomoby-activity-ui</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency> -->
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-activities</groupId>
+			<artifactId>beanshell-activity-ui</artifactId>
+			<version>${t2.ui.activities.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-activities</groupId>
+			<artifactId>biomart-activity-ui</artifactId>
+			<version>${t2.ui.activities.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-activities</groupId>
+			<artifactId>stringconstant-activity-ui</artifactId>
+			<version>${t2.ui.activities.version}</version>
+		</dependency>
+
+		<!-- Taverna Workbench -->
+		<dependency>
+			<groupId>uk.org.taverna.workbench</groupId>
+			<artifactId>taverna-workbench</artifactId>
+			<version>0.1.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>workbench-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>activity-palette-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>configuration-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>edits-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>file-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>menu-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>report-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-components</groupId>
+			<artifactId>perspective-design</artifactId>
+			<version>${t2.ui.components.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-components</groupId>
+			<artifactId>contextual-views</artifactId>
+			<version>${t2.ui.components.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-exts</groupId>
+			<artifactId>menu-items</artifactId>
+			<version>${t2.ui.exts.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-exts</groupId>
+			<artifactId>loop-ui</artifactId>
+			<version>${t2.ui.exts.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-exts</groupId>
+			<artifactId>parallelize-ui</artifactId>
+			<version>${t2.ui.exts.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-exts</groupId>
+			<artifactId>retry-ui</artifactId>
+			<version>${t2.ui.exts.version}</version>
+		</dependency>
+
+
+		<!-- Taverna Platform -->
+		<dependency>
+			<groupId>uk.org.taverna.platform</groupId>
+			<artifactId>taverna-capability-impl</artifactId>
+			<version>${platform.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.platform</groupId>
+			<artifactId>taverna-data-impl</artifactId>
+			<version>${platform.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.platform</groupId>
+			<artifactId>taverna-run-impl</artifactId>
+			<version>${platform.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.platform</groupId>
+			<artifactId>taverna-execution-impl</artifactId>
+			<version>${platform.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.platform</groupId>
+			<artifactId>taverna-execution-local</artifactId>
+			<version>${platform.version}</version>
+		</dependency>
+
+		<!-- Taverna Configuration -->
+		<dependency>
+			<groupId>uk.org.taverna.configuration</groupId>
+			<artifactId>taverna-configuration-impl</artifactId>
+			<version>${taverna.configuration.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.configuration</groupId>
+			<artifactId>taverna-app-configuration-impl</artifactId>
+			<version>${taverna.configuration.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.configuration</groupId>
+			<artifactId>taverna-database-configuration-impl</artifactId>
+			<version>${taverna.configuration.version}</version>
+		</dependency>
+
+		<!-- Scufl2 -->
+		<dependency>
+			<groupId>uk.org.taverna.scufl2</groupId>
+			<artifactId>scufl2-rdfxml</artifactId>
+			<version>0.9.3-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.scufl2</groupId>
+			<artifactId>scufl2-t2flow</artifactId>
+			<version>0.9.3-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.scufl2</groupId>
+			<artifactId>scufl2-validation-structural</artifactId>
+			<version>0.9.3-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.scufl2</groupId>
+			<artifactId>scufl2-validation-correctness</artifactId>
+			<version>0.9.3-SNAPSHOT</version>
+		</dependency>
+
+		<!-- Taverna Security -->
+		<dependency>
+			<groupId>net.sf.taverna.t2.security</groupId>
+			<artifactId>credential-manager-impl</artifactId>
+			<version>${t2.security.version}</version>
+		</dependency>
+
+		<!-- Taverna Workflow Engine -->
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>workflowmodel-impl</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>workflowmodel-core-extensions</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>reference-impl</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>reference-core-extensions</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+
+		<!-- Taverna Provenance -->
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>provenance-derby</artifactId>
+			<version>${t2.core.provenance.derby.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>provenance-mysql</artifactId>
+			<version>${t2.core.provenance.mysql.version}</version>
+		</dependency>
+
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.3</version>
+				<executions>
+					<execution>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<descriptors>
+						<descriptor>src/main/assembly/release-assembly.xml</descriptor>
+					</descriptors>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<repositories>
+		<repository>
+			<releases />
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+			<id>mygrid-repository</id>
+			<name>myGrid Repository</name>
+			<url>http://www.mygrid.org.uk/maven/repository</url>
+		</repository>
+		<repository>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots />
+			<id>mygrid-snapshot-repository</id>
+			<name>myGrid Snapshot Repository</name>
+			<url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
+		</repository>
+		<repository>
+			<id>spring-maven-milestone</id>
+			<name>Springframework Maven Repository</name>
+			<url>http://maven.springframework.org/milestone</url>
+		</repository>
+		<repository>
+			<id>com.springsource.repository.bundles.milestone</id>
+			<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Milestones</name>
+			<url>http://repository.springsource.com/maven/bundles/milestone</url>
+		</repository>
+		<repository>
+			<id>OPS4J</id>
+			<url>http://repository.ops4j.org/maven2</url>
+		</repository>
+	</repositories>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/assembly/release-assembly.xml
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/assembly/release-assembly.xml b/taverna-workbench-product/src/main/assembly/release-assembly.xml
new file mode 100644
index 0000000..5687d70
--- /dev/null
+++ b/taverna-workbench-product/src/main/assembly/release-assembly.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<assembly
+	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+	<id>bin</id>
+	<formats>
+		<format>dir</format>
+		<!-- <format>zip</format> -->
+	</formats>
+
+	<dependencySets>
+		<dependencySet>
+			<useTransitiveDependencies>true</useTransitiveDependencies>
+			<outputDirectory>/bundles</outputDirectory>
+			<excludes>
+				<exclude>net.sf.taverna.t2.activities:all-activities</exclude>
+				<exclude>uk.org.taverna.workbench:taverna-workbench</exclude>
+				<exclude>uk.org.taverna.osgi:osgi-launcher</exclude>
+				<exclude>org.eclipse.osgi:org.eclipse.osgi</exclude>
+			</excludes>
+		</dependencySet>
+		<dependencySet>
+			<outputDirectory>/lib</outputDirectory>
+			<includes>
+				<include>uk.org.taverna.workbench:taverna-workbench</include>
+				<include>uk.org.taverna.osgi:osgi-launcher</include>
+				<include>org.apache.log4j:com.springsource.org.apache.log4j</include>
+				<include>uk.org.taverna.configuration:taverna-app-configuration-api</include>
+				<include>uk.org.taverna.configuration:taverna-app-configuration-impl</include>
+				<include>org.osgi:org.osgi.core</include>
+				<include>org.eclipse.osgi:org.eclipse.osgi</include>
+			</includes>
+		</dependencySet>
+	</dependencySets>
+
+	<fileSets>
+		<fileSet>
+			<directory>src/main/etc</directory>
+			<fileMode>0755</fileMode>
+			<outputDirectory></outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/etc/conf/log4j.properties
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/etc/conf/log4j.properties b/taverna-workbench-product/src/main/etc/conf/log4j.properties
new file mode 100644
index 0000000..5014f2b
--- /dev/null
+++ b/taverna-workbench-product/src/main/etc/conf/log4j.properties
@@ -0,0 +1,14 @@
+# By default, WARN (our external libraries)
+log4j.rootLogger=INFO, CONSOLE
+
+# Get rid of some xml sec warnings
+log4j.logger.org.apache.ws.security=ERROR
+log4j.logger.org.apache.commons.httpclient=ERROR
+
+# Default output to console is restrictive
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%-5p %d{ISO8601} (%c:%L) - %m%n
+
+# Output WARN and above to console -
+log4j.appender.CONSOLE.Threshold=ERROR
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/etc/conf/logging.properties
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/etc/conf/logging.properties b/taverna-workbench-product/src/main/etc/conf/logging.properties
new file mode 100644
index 0000000..aa77e69
--- /dev/null
+++ b/taverna-workbench-product/src/main/etc/conf/logging.properties
@@ -0,0 +1,11 @@
+handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
+
+.level = ALL
+
+java.util.logging.ConsoleHandler.level = WARNING
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+java.util.logging.FileHandler.level = ALL
+java.util.logging.FileHandler.count = 5
+java.util.logging.FileHandler.limit = 1048576
+java.util.logging.FileHandler.limit = %h/.taverna-3.0.0/logs/taverna-3.0.0.log
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/etc/conf/taverna.app.properties
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/etc/conf/taverna.app.properties b/taverna-workbench-product/src/main/etc/conf/taverna.app.properties
new file mode 100644
index 0000000..9634438
--- /dev/null
+++ b/taverna-workbench-product/src/main/etc/conf/taverna.app.properties
@@ -0,0 +1,2 @@
+taverna.app.name=taverna-workbench-3.0.0
+taverna.app.title=Taverna Workbench 3.0.0

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/etc/taverna.bat
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/etc/taverna.bat b/taverna-workbench-product/src/main/etc/taverna.bat
new file mode 100644
index 0000000..8bba381
--- /dev/null
+++ b/taverna-workbench-product/src/main/etc/taverna.bat
@@ -0,0 +1,17 @@
+@ECHO OFF
+
+REM Taverna startup script
+
+REM distribution directory
+set TAVERNA_HOME=%~dp0
+
+
+REM 300 MB memory, 140 MB for classes
+set ARGS=-Xmx300m -XX:MaxPermSize=140m
+
+REM Taverna system properties
+set ARGS=%ARGS% "-Dlog4j.configuration=file:///%TAVERNA_HOME%conf/log4j.properties"
+set ARGS=%ARGS% "-Djava.util.logging.config.file=%TAVERNA_HOME%conf/logging.properties"
+set ARGS=%ARGS% "-Dtaverna.app.startup=%TAVERNA_HOME%."
+
+java %ARGS% -jar "%TAVERNA_HOME%lib\taverna-command-line-0.1.1.jar" %*

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-product/blob/5af9b53e/taverna-workbench-product/src/main/etc/taverna.sh
----------------------------------------------------------------------
diff --git a/taverna-workbench-product/src/main/etc/taverna.sh b/taverna-workbench-product/src/main/etc/taverna.sh
new file mode 100644
index 0000000..36a24d3
--- /dev/null
+++ b/taverna-workbench-product/src/main/etc/taverna.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -e
+
+## resolve links - $0 may be a symlink
+prog="$0"
+
+real_path() {
+    readlink -m "$1" 2>/dev/null || python -c 'import os,sys;print os.path.realpath(sys.argv[1])' "$1"
+}
+
+realprog=`real_path "$prog"`
+taverna_home=`dirname "$realprog"`
+javabin=java
+if test -x "$JAVA_HOME/bin/java"; then
+    javabin="$JAVA_HOME/bin/java"
+fi
+
+# 300 MB memory, 140 MB for classes
+exec "$javabin" -Xmx300m -XX:MaxPermSize=140m \
+  "-Dlog4j.configuration=file://$taverna_home/conf/log4j.properties " \
+  "-Djava.util.logging.config.file=$taverna_home/conf/logging.properties " \
+  "-Dtaverna.app.startup=$taverna_home" \
+  -jar "$taverna_home/lib/taverna-workbench-0.1.0-SNAPSHOT.jar" \
+  ${1+"$@"}